Changes for Helm v3 compatibility: 81/7781/2
authorCian Johnston <cian.johnston@est.tech>
Wed, 3 Mar 2021 10:15:37 +0000 (10:15 +0000)
committerCian Johnston <cian.johnston@est.tech>
Fri, 5 Mar 2021 11:46:17 +0000 (11:46 +0000)
 * Helm v3 complains if kubeconfig is world-readable. Setting permissions
   on /root/.kube/config to keep it happy.
 * Add local helm repos in prometheus/spinnaker install tasks
 * Pinning openshift due to regression in kubernetes client

Signed-off-by: Cian Johnston <cian.johnston@est.tech>
Change-Id: Ie0dc3d9c7af4eda5a4d56461f9e3e4341ea7a12c

apps/prometheus/kubespray/playbooks/roles/install/tasks/main.yaml
apps/spinnaker/kubespray/playbooks/roles/install/tasks/main.yml
playbooks/roles/postinstall/tasks/configure-jumphost.yml
playbooks/roles/postinstall/vars/main.yaml

index 98aca070bc234297e2cc47951861dabdd5ad36da..ed9a2c93d1f47179ec59d547b59889303017eb3a 100644 (file)
       src: "index.yaml.j2"
       dest: "{{ engine_workspace }}/offline/charts/stable/index.yaml"
       force: true
+
+  - name: Create local repo index (empty initially)
+    command: "helm repo index {{ engine_workspace }}/offline/charts/local/"
+    args:
+      creates: "{{ engine_workspace }}/offline/charts/local/index.yaml"
   when: execution_mode == "offline-deployment"
 
 - name: Initialize Helm
     and execution_mode == "online-deployment"
     and helm_repo_list_result is not search(stable_repo_url)
 
+- name: Add local helm repo (helm v3+)
+  command: "helm repo add local {{ local_repo_url }}"
+  register: helm_repo_add_local_result
+  changed_when: true
+  when: >
+    helm_version is version('v3.0.0', '>=')
+    and execution_mode == "offline-deployment"
+    and helm_repo_list_result is not search(local_repo_url)
+
 - name: Clone Helm Charts repository
   git:
     repo: "{{ helm_charts_git_url }}"
index ddff98ee5885da9f9c86432eb4767c3195540677..e90fbade1d4ea4c7d3e2151f8a76e97e7ae45eec 100644 (file)
       src: "index.yaml.j2"
       dest: "{{ engine_workspace }}/offline/charts/stable/index.yaml"
       force: true
+
+  - name: Create local repo index (empty initially)
+    command: "helm repo index {{ engine_workspace }}/offline/charts/local/"
+    creates: "{{ engine_workspace }}/offline/charts/local/index.yaml"
   when: execution_mode == "offline-deployment"
 
 - name: Initialize Helm
     and execution_mode == "online-deployment"
     and helm_repo_list_result is not search(stable_repo_url)
 
+- name: Add local helm repo (helm v3+)
+  command: "helm repo add local {{ local_repo_url }}"
+  register: helm_repo_add_local_result
+  changed_when: true
+  when: >
+    helm_version is version('v3.0.0', '>=')
+    and execution_mode == "offline-deployment"
+    and helm_repo_list_result is not search(local_repo_url)
+
 - name: Clone Helm Charts repository
   git:
     repo: "{{ helm_charts_git_url }}"
index a5dc9a6e8d4f50465198bea74004586b07ed9525..4ba1e9073f5b44d6bfa9fb8625d446a024d68900 100644 (file)
@@ -22,7 +22,7 @@
 
 - name: Install openshift
   pip:
-    name: openshift
+    name: "openshift=={{ openshift_version }}"
 
 - name: Ensure /root/.kube folder exists and empty
   file:
@@ -39,7 +39,7 @@
     src: "{{ engine_cache }}/repos/kubespray/inventory/engine/artifacts/admin.conf"
     dest: "/root/.kube/config"
     owner: "root"
-    mode: 0644
+    mode: 0600
 
 - name: Download kubectl and place it to /usr/local/bin
   get_url:
index 9c1177b9589edb2c73f8fb462570ec43403d1b04..01abd5b49409996ce33209006dc584d3ad7b29da 100644 (file)
@@ -18,5 +18,8 @@
 # ============LICENSE_END=========================================================
 
 jumphost: "{{ 'jumphost' if provisioner_type == 'heat' else 'localhost' }}"
+# NOTE (cian): pinning openshift due to regression in 0.12
+# Ref: https://github.com/ansible-collections/community.kubernetes/issues/283
+openshift_version: "0.11"
 
 # vim: set ts=2 sw=2 expandtab: