summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>2020-11-26 10:25:39 +0100
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>2020-12-08 12:05:58 +0100
commit5657eda41a8b8e5d25582551fceff54da27110af (patch)
tree691f4f1cacd6d564431c3473b9d98790b237905b
parent5d7016befaaf507712ce88bdbe6fe7eb14d3448c (diff)
[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 <sylvain.desbureaux@orange.com> Change-Id: I38307e3b105606eb3dded1933e3a90673078d4dc [Add helm3 job template boilerplate] Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
-rw-r--r--jjb/global-templates-helm.yaml2
-rw-r--r--jjb/oom/oom-helm-verify-helm2.yaml61
-rw-r--r--jjb/oom/oom-helm.yaml136
-rw-r--r--packer/provision/helm.yaml37
-rwxr-xr-x[-rw-r--r--]shell/helm-repo-init.sh9
-rwxr-xr-xshell/helm2-repo-init.sh9
-rwxr-xr-xshell/helm2-verify.sh6
7 files changed, 162 insertions, 98 deletions
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
index fb2f81029..6bf1338e3 100644..100755
--- 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