From 9729b6b75a414199d608d8ac6b71bf5457077694 Mon Sep 17 00:00:00 2001
From: Joren Zandstra <jorenzandstra@yahoo.com>
Date: Fri, 2 Oct 2020 19:14:48 +0200
Subject: [PATCH] Add extra arguments variables for openstack and vsphere cloud
 controller manager daemonsets (#6783)

---
 .../external_cloud_controller/openstack/defaults/main.yml   | 6 ++++++
 .../external-openstack-cloud-controller-manager-ds.yml.j2   | 3 +++
 .../external_cloud_controller/vsphere/defaults/main.yml     | 6 ++++++
 .../external-vsphere-cloud-controller-manager-ds.yml.j2     | 3 +++
 4 files changed, 18 insertions(+)

diff --git a/roles/kubernetes-apps/external_cloud_controller/openstack/defaults/main.yml b/roles/kubernetes-apps/external_cloud_controller/openstack/defaults/main.yml
index ace493825..2533385e6 100644
--- a/roles/kubernetes-apps/external_cloud_controller/openstack/defaults/main.yml
+++ b/roles/kubernetes-apps/external_cloud_controller/openstack/defaults/main.yml
@@ -12,4 +12,10 @@ external_openstack_domain_name: "{{ lookup('env','OS_USER_DOMAIN_NAME') }}"
 external_openstack_domain_id: "{{ lookup('env','OS_USER_DOMAIN_ID') }}"
 external_openstack_cacert: "{{ lookup('env','OS_CACERT') }}"
 
+## A dictionary of extra arguments to add to the openstack cloud controller manager daemonset
+## Format:
+##  external_openstack_cloud_controller_extra_args:
+##    arg1: "value1"
+##    arg2: "value2"
+external_openstack_cloud_controller_extra_args: {}
 external_openstack_cloud_controller_image_tag: "v1.18.2"
diff --git a/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-controller-manager-ds.yml.j2 b/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-controller-manager-ds.yml.j2
index b30222dab..db33fcd9e 100644
--- a/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-controller-manager-ds.yml.j2
+++ b/roles/kubernetes-apps/external_cloud_controller/openstack/templates/external-openstack-cloud-controller-manager-ds.yml.j2
@@ -44,6 +44,9 @@ spec:
             - --cloud-provider=openstack
             - --use-service-account-credentials=true
             - --address=127.0.0.1
+{% for key, value in external_openstack_cloud_controller_extra_args.items() %}
+            - "{{ '--' + key + '=' + value }}"
+{% endfor %}
           volumeMounts:
             - mountPath: /etc/kubernetes/pki
               name: k8s-certs
diff --git a/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml b/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml
index c4422f31b..4691e324a 100644
--- a/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml
+++ b/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml
@@ -2,4 +2,10 @@
 external_vsphere_vcenter_port: "443"
 external_vsphere_insecure: "true"
 
+## A dictionary of extra arguments to add to the vsphere cloud controller manager daemonset
+## Format:
+##  external_vsphere_cloud_controller_extra_args:
+##    arg1: "value1"
+##    arg2: "value2"
+external_vsphere_cloud_controller_extra_args: {}
 external_vsphere_cloud_controller_image_tag: "latest"
diff --git a/roles/kubernetes-apps/external_cloud_controller/vsphere/templates/external-vsphere-cloud-controller-manager-ds.yml.j2 b/roles/kubernetes-apps/external_cloud_controller/vsphere/templates/external-vsphere-cloud-controller-manager-ds.yml.j2
index 81120cec3..8bd4e6410 100644
--- a/roles/kubernetes-apps/external_cloud_controller/vsphere/templates/external-vsphere-cloud-controller-manager-ds.yml.j2
+++ b/roles/kubernetes-apps/external_cloud_controller/vsphere/templates/external-vsphere-cloud-controller-manager-ds.yml.j2
@@ -41,6 +41,9 @@ spec:
             - --v=2
             - --cloud-provider=vsphere
             - --cloud-config=/etc/cloud/vsphere.conf
+{% for key, value in external_vsphere_cloud_controller_extra_args.items() %}
+            - "{{ '--' + key + '=' + value }}"
+{% endfor %}
           volumeMounts:
             - mountPath: /etc/cloud
               name: vsphere-config-volume
-- 
GitLab