From bcac3c62a261705cb4408abce2d9a23ce282ea87 Mon Sep 17 00:00:00 2001
From: Paul Rey <Sryther@users.noreply.github.com>
Date: Wed, 1 Jul 2020 13:52:17 +0200
Subject: [PATCH] Add additional metadata configuration options to external
 Openstack CCM (kubernetes-sigs#6338) (#6339)

* Add additional metadata configuration option to external Openstack CCM (kubernetes-sigs#6338)

* Set the variable external_openstack_metadata_search_order undefined by default
---
 docs/openstack.md                                           | 6 ++++++
 inventory/sample/group_vars/all/openstack.yml               | 1 +
 .../openstack/templates/external-openstack-cloud-config.j2  | 5 +++++
 3 files changed, 12 insertions(+)

diff --git a/docs/openstack.md b/docs/openstack.md
index ee1047ae9..c74ecbec4 100644
--- a/docs/openstack.md
+++ b/docs/openstack.md
@@ -108,5 +108,11 @@ The new cloud provider is configured to have Octavia by default in Kubespray.
   - ""
   ```
 
+- You can override the default OpenStack metadata configuration (see [#6338](https://github.com/kubernetes-sigs/kubespray/issues/6338) for explanation):
+  
+  ```yaml
+  external_openstack_metadata_search_order: "configDrive,metadataService"
+  ```
+
 - Run `source path/to/your/openstack-rc` to read your OpenStack credentials like `OS_AUTH_URL`, `OS_USERNAME`, `OS_PASSWORD`, etc. Those variables are used for accessing OpenStack from the external cloud provider.
 - Run the `cluster.yml` playbook
diff --git a/inventory/sample/group_vars/all/openstack.yml b/inventory/sample/group_vars/all/openstack.yml
index ca76bb092..71c392414 100644
--- a/inventory/sample/group_vars/all/openstack.yml
+++ b/inventory/sample/group_vars/all/openstack.yml
@@ -33,6 +33,7 @@
 #   - ""
 # external_openstack_network_public_networks:
 #   - ""
+# external_openstack_metadata_search_order: "configDrive,metadataService"
 
 ## The tag of the external OpenStack Cloud Controller image
 # external_openstack_cloud_controller_image_tag: "latest"
diff --git a/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-config.j2 b/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-config.j2
index d807426a0..25a3ab089 100644
--- a/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-config.j2
+++ b/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-config.j2
@@ -57,3 +57,8 @@ internal-network-name="{{ network_name }}"
 {% for network_name in external_openstack_network_public_networks %}
 public-network-name="{{ network_name }}"
 {% endfor %}
+
+[Metadata]
+{% if external_openstack_metadata_search_order is defined %}
+search-order="{{ external_openstack_metadata_search_order }}"
+{% endif %}
\ No newline at end of file
-- 
GitLab