Update Helm to version 3.3.4 06/7306/8
authorCian Johnston <cian.johnston@est.tech>
Tue, 26 Jan 2021 11:26:32 +0000 (11:26 +0000)
committerCian Johnston <cian.johnston@est.tech>
Tue, 2 Feb 2021 22:53:11 +0000 (22:53 +0000)
 * helm_version -> v3.3.4
 * required changes to Helm CLI invocations

Change-Id: I4816a6da5da50d039d5cf77717d8d33797ff0d6e
Signed-off-by: Cian Johnston <cian.johnston@est.tech>
apps/prometheus/kubespray/playbooks/roles/install/tasks/main.yaml
apps/spinnaker/kubespray/playbooks/roles/install/tasks/main.yml
playbooks/roles/package/defaults/main.yaml
playbooks/roles/package/tasks/containers.yaml
playbooks/roles/postinstall/tasks/configure-jumphost.yml
playbooks/roles/postinstall/tasks/configure-localhost.yml
vars/kubernetes.yaml

index 3161f20..98aca07 100644 (file)
   command: helm init --client-only --local-repo-url {{ local_repo_url }} --stable-repo-url {{ stable_repo_url }}
   register: helm_init_result
   changed_when: true
+  when: helm_version is version('v3', '<')
+
+- name: Check if stable helm repo exists (helm v3+)
+  command: "helm repo list"
+  changed_when: true
+  failed_when: false
+  register: helm_repo_list_result
+
+- name: Add stable helm repo (helm v3+)
+  command: "helm repo add stable {{ stable_repo_url }}"
+  register: helm_repo_add_stable_result
+  changed_when: true
+  when: >
+    helm_version is version('v3.0.0', '>=')
+    and execution_mode == "online-deployment"
+    and helm_repo_list_result is not search(stable_repo_url)
 
 - name: Clone Helm Charts repository
   git:
 - name: Install Prometheus using helm
   command: >
     helm install
-      --name "{{ prometheus_service }}"
+      {% if helm_version is version('v3.0.0', '<') %} --name {% endif %}"{{ prometheus_service }}"
       --namespace "{{ prometheus_namespace }}"
-      --timeout 900
+      --timeout "900{% if helm_version is version('v3.0.0', '>=') %}s{% endif %}"
       {{ config_path }}/repos/charts/stable/prometheus
   register: prometheus_helm_log
   changed_when: true
index a722222..ddff98e 100644 (file)
   command: helm init --client-only --local-repo-url {{ local_repo_url }} --stable-repo-url {{ stable_repo_url }}
   register: helm_init_result
   changed_when: true
+  when: helm_version is version('v3', '<')
+
+- name: Check if stable helm repo exists (helm v3+)
+  command: "helm repo list"
+  changed_when: true
+  failed_when: false
+  register: helm_repo_list_result
+
+- name: Add stable helm repo (helm v3+)
+  command: "helm repo add stable {{ stable_repo_url }}"
+  register: helm_repo_add_stable_result
+  changed_when: true
+  when: >
+    helm_version is version('v3.0.0', '>=')
+    and execution_mode == "online-deployment"
+    and helm_repo_list_result is not search(stable_repo_url)
 
 - name: Clone Helm Charts repository
   git:
 - name: Install Spinnaker using helm
   command: >
     helm install
-      --name "{{ spinnaker_service }}"
+      {% if helm_version is version('v3.0.0', '<')%} --name {% endif %}"{{ spinnaker_service }}"
       --namespace "{{ spinnaker_namespace }}"
-      --timeout 900
+      --timeout "900{% if helm_version is version('v3.0.0', '>=') %}s{% endif %}"
       {{ engine_cache }}/repos/charts/stable/spinnaker
   register: spinnaker_helm_log
   changed_when: true
index 04f5325..4596859 100644 (file)
@@ -59,7 +59,6 @@ k8s_misc_images:
   - nodelocaldns
   - pod_infra
   - registry_proxy
-  - tiller
   - weave_kube
   - weave_npc
 
index 9101950..2d032b5 100644 (file)
   become: true
   changed_when: false
 
+- name: Pull tiller container image (helm v2 only)
+  command: "docker pull {{ downloads['tiller'].repo }}:{{ downloads['tiller'].tag }}"
+  become: true
+  changed_when: false
+  when: helm_version is version('v3.0.0', '<')
+
 - name: Pull misc container images
   command: "docker pull {{ downloads[item].repo }}:{{ downloads[item].tag }}"
   loop: "{{ k8s_misc_images }}"
   become: true
   changed_when: false
 
+- name: Save tiller container image (helm v2 only)
+  command: |-
+    docker save {{ downloads['tiller'].repo }}:{{ downloads['tiller'].tag }}
+    -o {{ downloads['tiller'].repo }} -o {{ downloads['tiller'].repo | replace('/', '_') }}_{{ downloads['tiller'].tag }}.tar
+  args:
+    chdir: "{{ containers_folder }}"
+  become: true
+  changed_when: false
+  when: helm_version is version('v3.0.0', '<')
+
 - name: Save other container images
   command: |-
     docker save {{ other_images[item.key].repo }}:{{ other_images[item.key].tag }}
index 3e0cfb5..a5dc9a6 100644 (file)
     remote_src: true
     dest: /tmp
 
-- name: Place helm and tiller binaries to /usr/local/bin
+- name: Place helm binaries to /usr/local/bin
   copy:
-    src: "/tmp/linux-amd64/{{ item }}"
+    src: "/tmp/linux-amd64/helm"
     remote_src: true
-    dest: "/usr/local/bin/{{ item }}"
+    dest: "/usr/local/bin/helm"
     owner: root
     group: root
     mode: 0755
-  with_items:
-    - helm
-    - tiller
+
+- name: Place tiller binaries to /usr/local/bin
+  copy:
+    src: "/tmp/linux-amd64/tiller"
+    remote_src: true
+    dest: "/usr/local/bin/tiller"
+    owner: root
+    group: root
+    mode: 0755
+  when: helm_version is version('v3.0.0', '<')
 
 - name: Delete temporary files and folders
   file:
index f6a23b2..3616adc 100644 (file)
@@ -35,7 +35,7 @@
     src: "{{ engine_cache }}/repos/kubespray/inventory/engine/artifacts/admin.conf"
     dest: "/home/{{ ansible_env.SUDO_USER }}/.kube/config"
     owner: "{{ ansible_env.SUDO_USER }}"
-    mode: 0644
+    mode: 0600
 
 - name: Download kubectl and place it to /usr/local/bin
   get_url:
     remote_src: true
     dest: /tmp
 
-- name: Place helm and tiller binaries to /usr/local/bin
+- name: Place helm binaries to /usr/local/bin
   copy:
-    src: "/tmp/linux-amd64/{{ item }}"
+    src: "/tmp/linux-amd64/helm"
     remote_src: true
-    dest: "/usr/local/bin/{{ item }}"
+    dest: "/usr/local/bin/helm"
     owner: root
     group: root
     mode: 0755
-  with_items:
-    - helm
-    - tiller
+
+- name: Place tiller binaries to /usr/local/bin
+  copy:
+    src: "/tmp/linux-amd64/tiller"
+    remote_src: true
+    dest: "/usr/local/bin/tiller"
+    owner: root
+    group: root
+    mode: 0755
+  when: helm_version is version('v3.0.0', '<')
 
 - name: Delete temporary files and folders
   file:
index f533d2e..c0247b3 100644 (file)
@@ -108,7 +108,7 @@ spinnaker_app_version: "1.16.2"
 # -------------------------------------------------------------------------------
 # Kubernetes: App versions
 # -------------------------------------------------------------------------------
-helm_version: "v2.16.1"
+helm_version: "v3.3.4"
 charts_version: "0b64349aeb537d0fd038df0e1d40ec5cf1206609"
 istio_version: "1.3.1"