[OOM] add helm3 linting 41/115441/13
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>
Thu, 26 Nov 2020 09:25:39 +0000 (10:25 +0100)
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>
Tue, 8 Dec 2020 11:05:58 +0000 (12:05 +0100)
As OOM supports helm2 and helm3, it's important to check that all new
additions don't break helm3 support.

Issue-ID: OOM-1
Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Change-Id: I38307e3b105606eb3dded1933e3a90673078d4dc
[Add helm3 job template boilerplate]
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
jjb/global-templates-helm.yaml
jjb/oom/oom-helm-verify-helm2.yaml [new file with mode: 0644]
jjb/oom/oom-helm.yaml
packer/provision/helm.yaml
shell/helm-repo-init.sh [changed mode: 0644->0755]
shell/helm2-repo-init.sh [new file with mode: 0755]
shell/helm2-verify.sh [new file with mode: 0755]

index d6f1374..e8fb13a 100644 (file)
@@ -19,7 +19,7 @@
     pre_build_script: ''
     submodule-disable: false
     submodule-timeout: 10
-    build-timeout: 180
+    build-timeout: 240
 
     #####################
     # Job Configuration #
diff --git a/jjb/oom/oom-helm-verify-helm2.yaml b/jjb/oom/oom-helm-verify-helm2.yaml
new file mode 100644 (file)
index 0000000..f816e4c
--- /dev/null
@@ -0,0 +1,61 @@
+---
+- job-template: &helm-verify2
+    name: "{project-name}-{stream}-verify-helm2"
+    concurrent: true
+    branch: master
+    submodule-recursive: true
+    build_script: ""
+    post_build_script: ""
+    pre_build_script: ""
+    submodule-disable: false
+    submodule-timeout: 10
+
+    project-type: freestyle
+    node: "{build-node}"
+
+    properties:
+      - lf-infra-properties:
+          build-days-to-keep: "{build-days-to-keep}"
+
+    parameters:
+      - lf-infra-parameters:
+          branch: "{branch}"
+          project: "{project}"
+          stream: "{stream}"
+          lftools-version: "{lftools-version}"
+
+    wrappers:
+      - lf-infra-wrappers:
+          build-timeout: "{build-timeout}"
+          jenkins-ssh-credential: "{jenkins-ssh-credential}"
+
+    publishers:
+      - lf-infra-publish
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: "$GERRIT_REFSPEC"
+          choosing-strategy: "gerrit"
+          submodule-recursive: "{submodule-recursive}"
+
+    triggers:
+      - gerrit-trigger-helm-patch-submitted:
+          status-context: "{project}-Helm-Verify"
+          server: "{server-name}"
+          project: "{project}"
+          branch: "{branch}"
+          files: "{files}"
+
+    builders:
+      - lf-infra-pre-build
+      - shell: !include-raw-escape: shell/helm2-repo-init.sh
+      - shell: !include-raw-escape: shell/helm2-verify.sh
+
+- job-template:
+    <<: *helm-verify2
+    name: "{project-name}-{subproject}-{stream}-verify-helm2"
+
+    builders:
+      - lf-infra-pre-build
+      - shell: !include-raw-escape: shell/helm2-repo-init.sh
+      - shell: "cd kubernetes/ ; make common ; make {subproject}"
index 3fb14c9..9263a28 100644 (file)
     project: oom
     mvn-settings: oom-settings
     mvn-global-settings: global-settings
-    archive-artifacts: ''
+    archive-artifacts: ""
     build-node: ubuntu1804-helm-2c-1g
     pre_build_script: !include-raw-escape: shell/helm-repo-init.sh
     oom_build_script: |
-        #!/bin/bash
-        set -e -o pipefail
-        cd kubernetes/
-        make all
+      #!/bin/bash
+      set -e -o pipefail
+      cd kubernetes/
+      make HELM_BIN=helm3 all
     subproject_build_script: |
-        #!/bin/bash
-        cd kubernetes/
-        make common
-        make {subproject}
+      #!/bin/bash
+      cd kubernetes/
+      make HELM_BIN=helm3 common
+      make HELM_BIN=helm3 {subproject}
     oom_post_build_script: !include-raw-escape: shell/publish_helm_charts.sh
 
     stream:
-      - 'master':
-          branch: 'master'
-      - 'guilin':
-          branch: 'guilin'
-      - 'frankfurt':
-          branch: 'frankfurt'
-      - 'dublin':
-          branch: 'dublin'
-      - 'casablanca':
-          branch: 'casablanca'
+      - "master":
+          branch: "master"
+      - "guilin":
+          branch: "guilin"
+      - "frankfurt":
+          branch: "frankfurt"
+      - "dublin":
+          branch: "dublin"
+      - "casablanca":
+          branch: "casablanca"
 
     subproject:
-      - 'aaf':
-          files: 'kubernetes/aaf/**'
-      - 'aai':
-          files: 'kubernetes/aai/**'
-      - 'appc':
-          files: 'kubernetes/appc/**'
-      - 'clamp':
-          files: 'kubernetes/clamp/**'
-      - 'cli':
-          files: 'kubernetes/cli/**'
-      - 'common':
-          files: 'kubernetes/common/**'
-      - 'consul':
-          files: 'kubernetes/consul/**'
-      - 'dcaegen2':
-          files: 'kubernetes/dcaegen2/**'
-      - 'dmaap':
-          files: 'kubernetes/dmaap/**'
-      - 'esr':
-          files: 'kubernetes/esr/**'
-      - 'log':
-          files: 'kubernetes/log/**'
-      - 'msb':
-          files: 'kubernetes/msb/**'
-      - 'multicloud':
-          files: 'kubernetes/multicloud/**'
-      - 'nbi':
-          files: 'kubernetes/nbi/**'
-      - 'oof':
-          files: 'kubernetes/oof/**'
-      - 'policy':
-          files: 'kubernetes/policy/**'
-      - 'portal':
-          files: 'kubernetes/portal/**'
-      - 'readiness':
-          files: 'kubernetes/readiness/**'
-      - 'robot':
-          files: 'kubernetes/robot/**'
-      - 'sdc':
-          files: 'kubernetes/sdc/**'
-      - 'sdnc':
-          files: 'kubernetes/sdnc/**'
-      - 'sniro-emulator':
-          files: 'kubernetes/sniro-emulator/**'
-      - 'so':
-          files: 'kubernetes/so/**'
-      - 'uui':
-          files: 'kubernetes/uui/**'
-      - 'vfc':
-          files: 'kubernetes/vfc/**'
-      - 'vid':
-          files: 'kubernetes/vid/**'
-      - 'vnfsdk':
-          files: 'kubernetes/vnfsdk/**'
+      - "aai":
+          files: "kubernetes/aai/**"
+      - "robot":
+          files: "kubernetes/robot/**"
 
     jobs:
-      - '{project-name}-{stream}-image-verify':
-          files: '**'
+      - "{project-name}-{stream}-image-verify":
+          files: "**"
+      - "{project-name}-{stream}-verify-helm2":
+          files: "**"
           build-timeout: 240
-      - '{project-name}-{stream}-verify-helm':
-          build_script: '{oom_build_script}'
-          files: '**'
+      - "{project-name}-{stream}-verify-helm":
+          build_script: "{oom_build_script}"
+          files: "**"
           build-timeout: 240
-      - '{project-name}-{stream}-merge-helm':
-          build_script: '{oom_build_script}'
+      - "{project-name}-{stream}-merge-helm":
+          build_script: "{oom_build_script}"
           post_build_script: !include-raw-escape: shell/publish_helm_charts.sh
-          files: '**'
-      - '{project-name}-{stream}-stage-helm':
-          build_script: '{oom_build_script}'
+          files: "**"
+      - "{project-name}-{stream}-stage-helm":
+          build_script: "{oom_build_script}"
           post_build_script: !include-raw-escape: shell/publish_helm_charts.sh
-          files: '**'
+          files: "**"
 
       # Below jobs disabled until future need.
-      - '{project-name}-{subproject}-{stream}-verify-helm':
-          build_script: '{subproject_build_script}'
-      - '{project-name}-{subproject}-{stream}-merge-helm':
-          build_script: '{subproject_build_script}'
-      - '{project-name}-{stream}-update-helm-weekly':
-          build_script: '{oom_build_script}'
-          files: '**'
+      - "{project-name}-{subproject}-{stream}-verify-helm2":
+          build_script: "{subproject_build_script}"
+      - "{project-name}-{subproject}-{stream}-verify-helm":
+          build_script: "{subproject_build_script}"
+      - "{project-name}-{subproject}-{stream}-merge-helm":
+          build_script: "{subproject_build_script}"
+      - "{project-name}-{stream}-update-helm-weekly":
+          build_script: "{oom_build_script}"
+          files: "**"
index daecffe..def9d89 100644 (file)
@@ -8,6 +8,8 @@
   vars:
     kubectl_version: 1.15.11
     helm_version: 2.16.6
+    helm3_version: 3.3.4
+    chartmuseum_version: 0.12.0
 
   tasks:
     - name: 'Install kubectl {{kubectl_version}}'
@@ -21,7 +23,7 @@
       block:
         - name: 'Fetch tar.gz'
           get_url:
-            url: http://storage.googleapis.com/kubernetes-helm/helm-v{{helm_version}}-linux-amd64.tar.gz
+            url: "http://storage.googleapis.com/kubernetes-helm/helm-v{{helm_version}}-linux-amd64.tar.gz"
             dest: /tmp/helm-v{{helm_version}}-linux-amd64.tar.gz
         - name: 'Unarchive'
           unarchive:
           become: yes
         - name: 'Check helm.'
           command: 'which helm'
+
+    - name: 'Install Helm3 {{helm3_version}}'
+      block:
+        - name: create directory
+          file:
+            path: /tmp/helm3
+            state: directory
+        - name: 'Fetch tar.gz'
+          get_url:
+            url: "http://storage.googleapis.com/kubernetes-helm/helm-v{{helm3_version}}-linux-amd64.tar.gz"
+            dest: /tmp/helm3/helm-v{{helm3_version}}-linux-amd64.tar.gz
+        - name: 'Unarchive'
+          unarchive:
+            src: /tmp/helm3/helm-v{{helm3_version}}-linux-amd64.tar.gz
+            dest: /tmp/helm3
+            remote_src: true
+          become: yes
+        - name: 'Move helm to /usr/local/bin and set as executable'
+          command: 'mv /tmp/helm3/linux-amd64/helm /usr/local/bin/helm3'
+          become: yes
+        - name: 'Check helm3.'
+          command: 'which helm3'
         - name: 'Check kubectl.'
           command: 'which kubectl'
+
+    - name: 'Install ChartMuseum {{chartmuseum_version}}'
+      block:
+        - name: 'Fetch bin'
+          get_url:
+            url: "https://s3.amazonaws.com/chartmuseum/release/v{{ chartmuseum_version }}/bin/linux/amd64/chartmuseum"
+            dest: /usr/local/bin/chartmuseum
+            mode: "0755"
+          become: yes
+        - name: 'Check chartmuseum.'
+          command: 'which chartmuseum'
old mode 100644 (file)
new mode 100755 (executable)
index fb2f810..6bf1338
@@ -2,8 +2,7 @@
 # Ensure we fail the job if any steps fail
 set -e -o pipefail
 
-# client only init, tiller will not be installed
-helm init --client-only
-cd kubernetes/ || exit
-make repo
-cd ..
+mkdir -p ".chartstorage"
+chartmuseum --port=6464 --storage="local" --storage-local-rootdir=".chartstorage" &
+helm3 plugin install https://github.com/chartmuseum/helm-push.git
+helm3 repo add local http://localhost:6464
diff --git a/shell/helm2-repo-init.sh b/shell/helm2-repo-init.sh
new file mode 100755 (executable)
index 0000000..fb2f810
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+# Ensure we fail the job if any steps fail
+set -e -o pipefail
+
+# client only init, tiller will not be installed
+helm init --client-only
+cd kubernetes/ || exit
+make repo
+cd ..
diff --git a/shell/helm2-verify.sh b/shell/helm2-verify.sh
new file mode 100755 (executable)
index 0000000..c652a5c
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/bash
+# Ensure we fail the job if any steps fail
+set -e -o pipefail
+
+cd kubernetes/
+make all