From: Sylvain Desbureaux Date: Thu, 26 Nov 2020 09:25:39 +0000 (+0100) Subject: [OOM] add helm3 linting X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=5657eda41a8b8e5d25582551fceff54da27110af;p=ci-management.git [OOM] add helm3 linting 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 Change-Id: I38307e3b105606eb3dded1933e3a90673078d4dc [Add helm3 job template boilerplate] Signed-off-by: Krzysztof Opasiak --- diff --git a/jjb/global-templates-helm.yaml b/jjb/global-templates-helm.yaml index d6f1374ef..e8fb13a47 100644 --- a/jjb/global-templates-helm.yaml +++ b/jjb/global-templates-helm.yaml @@ -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 index 000000000..f816e4cce --- /dev/null +++ b/jjb/oom/oom-helm-verify-helm2.yaml @@ -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}" diff --git a/jjb/oom/oom-helm.yaml b/jjb/oom/oom-helm.yaml index 3fb14c94d..9263a28a0 100644 --- a/jjb/oom/oom-helm.yaml +++ b/jjb/oom/oom-helm.yaml @@ -5,111 +5,65 @@ 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: "**" diff --git a/packer/provision/helm.yaml b/packer/provision/helm.yaml index daecffee9..def9d8940 100644 --- a/packer/provision/helm.yaml +++ b/packer/provision/helm.yaml @@ -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: @@ -34,5 +36,38 @@ 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' diff --git a/shell/helm-repo-init.sh b/shell/helm-repo-init.sh old mode 100644 new mode 100755 index fb2f81029..6bf1338e3 --- a/shell/helm-repo-init.sh +++ b/shell/helm-repo-init.sh @@ -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 index 000000000..fb2f81029 --- /dev/null +++ b/shell/helm2-repo-init.sh @@ -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 index 000000000..c652a5cf9 --- /dev/null +++ b/shell/helm2-verify.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# Ensure we fail the job if any steps fail +set -e -o pipefail + +cd kubernetes/ +make all