From 85b3526617c72c10781c3cf8f094837b18e00392 Mon Sep 17 00:00:00 2001
From: Aleksandr Loktionov <loktionovam@gmail.com>
Date: Tue, 2 Jun 2020 15:42:15 +0300
Subject: [PATCH] Fix vSphere CPI configMap and vSphere CSI secret re-deploy
 (#6209) (#6210)

---
 .../csi_driver/vsphere/tasks/main.yml              | 14 ++++++++++++--
 .../vsphere/tasks/main.yml                         | 12 ++++++++++--
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/roles/kubernetes-apps/csi_driver/vsphere/tasks/main.yml b/roles/kubernetes-apps/csi_driver/vsphere/tasks/main.yml
index 8047d468d..4e341b2af 100644
--- a/roles/kubernetes-apps/csi_driver/vsphere/tasks/main.yml
+++ b/roles/kubernetes-apps/csi_driver/vsphere/tasks/main.yml
@@ -24,9 +24,19 @@
   when: inventory_hostname == groups['kube-master'][0]
   tags: vsphere-csi-driver
 
-- name: vSphere CSI Driver | Create a CSI secret
-  command: "{{ bin_dir }}/kubectl create secret generic vsphere-config-secret --from-file=csi-vsphere.conf={{ kube_config_dir }}/vsphere-csi-cloud-config -n kube-system"
+- name: vSphere CSI Driver | Generate a CSI secret manifest
+  command: "{{ bin_dir }}/kubectl create secret generic vsphere-config-secret --from-file=csi-vsphere.conf={{ kube_config_dir }}/vsphere-csi-cloud-config -n kube-system --dry-run --save-config -o yaml"
+  register: vsphere_csi_secret_manifest
   when: inventory_hostname == groups['kube-master'][0]
+  no_log: true
+  tags: vsphere-csi-driver
+
+- name: vSphere CSI Driver | Apply a CSI secret manifest
+  command:
+    cmd: "{{ bin_dir }}/kubectl apply -f -"
+    stdin: "{{ vsphere_csi_secret_manifest.stdout }}"
+  when: inventory_hostname == groups['kube-master'][0]
+  no_log: true
   tags: vsphere-csi-driver
 
 - name: vSphere CSI Driver | Apply Manifests
diff --git a/roles/kubernetes-apps/external_cloud_controller/vsphere/tasks/main.yml b/roles/kubernetes-apps/external_cloud_controller/vsphere/tasks/main.yml
index 6b49cfdf8..0dbf3f7dc 100644
--- a/roles/kubernetes-apps/external_cloud_controller/vsphere/tasks/main.yml
+++ b/roles/kubernetes-apps/external_cloud_controller/vsphere/tasks/main.yml
@@ -25,8 +25,16 @@
   when: inventory_hostname == groups['kube-master'][0]
   tags: external-vsphere
 
-- name: External vSphere Cloud Provider Interface | Create a CPI configMap
-  command: "{{ bin_dir }}/kubectl create configmap cloud-config --from-file=vsphere.conf={{ kube_config_dir }}/external-vsphere-cpi-cloud-config -n kube-system"
+- name: External vSphere Cloud Provider Interface | Create a CPI configMap manifest
+  command: "{{ bin_dir }}/kubectl create configmap cloud-config --from-file=vsphere.conf={{ kube_config_dir }}/external-vsphere-cpi-cloud-config -n kube-system --dry-run --save-config -o yaml"
+  register: external_vsphere_configmap_manifest
+  when: inventory_hostname == groups['kube-master'][0]
+  tags: external-vsphere
+
+- name: External vSphere Cloud Provider Interface | Apply a CPI configMap manifest
+  command:
+    cmd: "{{ bin_dir }}/kubectl apply -f -"
+    stdin: "{{ external_vsphere_configmap_manifest.stdout }}"
   when: inventory_hostname == groups['kube-master'][0]
   tags: external-vsphere
 
-- 
GitLab