diff --git a/ci/pipeline.yml b/ci/pipeline.yml index 1c7359a..373750a 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -84,7 +84,6 @@ groups: jobs: - name: latest-image public: true - serial: true plan: - get: git trigger: true @@ -107,12 +106,8 @@ jobs: - { get: image-latest, params: {skip_download: true} } # - { get: git, passed: [latest-image], trigger: true } # - { get: image-latest, passed: [latest-image] } - - put: kube - resource: kubernetes-pool - params: - acquire: true - - name: test-chart - task: test-chart + - name: build-chart + task: build-chart config: platform: linux image_resource: @@ -122,23 +117,21 @@ jobs: tag: (( grab meta.image.tag )) inputs: - name: git - - name: kube - name: image-latest + outputs: + - name: chart run: - path: ./git/ci/scripts/test-chart + path: ./git/ci/scripts/build-chart args: [] params: - CHART_ROOT: (( grab meta.helm.chart_path )) - REPO_ROOT: git - K8S_CLUSTER: kube - GCP_SERVICEACCOUNT: (( grab meta.google.serviceaccount )) - NAMESPACE: (( concat "test-" meta.name )) - ensure: - do: - - put: kube - resource: kubernetes-pool - params: - release: kube + CHART_ROOT: (( grab meta.helm.chart_path )) + REPO_ROOT: git + CHART_OUT: chart + - put: helm-install-test + params: + chart: chart/*.tgz + devel: true + wait_until_ready: 10 - name: shipit public: true @@ -230,6 +223,7 @@ jobs: - put: helm-install-latest params: chart: github/*.tgz + wait_until_ready: 10 - name: rc public: true @@ -353,13 +347,17 @@ resources: repository: (( grab meta.github.repo )) access_token: (( grab meta.github.access_token )) - - name: kubernetes-pool - type: pool + - name: helm-install-test + type: helm source: - uri: (( grab meta.kubernetes.pool.uri )) - branch: (( grab meta.kubernetes.pool.branch )) - private_key: (( grab meta.kubernetes.pool.private_key )) - pool: (( grab meta.kubernetes.pool.name )) + release: (( concat "ci-test-" meta.name )) + gcloud_auth: ((gcp-service-account-knative-experiments)) + gcloud_project: ((gke-project-name)) + gcloud_cluster: ((gke-cluster-name)) + gcloud_zone: ((gke-cluster-zone)) + ca_cert: ((helm-ca)) + client_cert: ((helm-tiller-cert)) + client_key: ((helm-tiller-key)) - name: helm-install-latest type: helm diff --git a/ci/scripts/build-chart b/ci/scripts/build-chart new file mode 100755 index 0000000..d505c19 --- /dev/null +++ b/ci/scripts/build-chart @@ -0,0 +1,34 @@ +#!/bin/bash + +# +# ci/scripts/build-chart +# +# Script for build Helm chart package +# +# author: Dr Nic Williams +# created: 2018-11-17 + +set -eu + +: ${CHART_ROOT:?required} +: ${REPO_ROOT:?required} +: ${CHART_OUT:?required} + +header() { + echo + echo "###############################################" + echo + echo $* + echo +} + +CHART_NAME=$(bosh int ${REPO_ROOT}/${CHART_ROOT}/Chart.yaml --path /name) +header "Copy chart into folder with chart name ${CHART_NAME}..." +mkdir -p chart/${CHART_NAME} +cp -r ${REPO_ROOT}/${CHART_ROOT}/* chart/${CHART_NAME} + +header "Set values.yaml for docker + version" +echo "TODO ****" + +header "Build helm chart" +helm package chart/${CHART_NAME} -d ${CHART_OUT} diff --git a/ci/scripts/test-chart b/ci/scripts/test-chart deleted file mode 100755 index 54f27bf..0000000 --- a/ci/scripts/test-chart +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash - -# -# ci/scripts/test-chart -# -# Script for installing Helm chart to test it -# -# author: Dr Nic Williams -# created: 2018-11-17 - -set -eu - -: ${CHART_ROOT:?required} -: ${REPO_ROOT:?required} -: ${K8S_CLUSTER:?required} -: ${NAMESPACE:?required} - -header() { - echo - echo "###############################################" - echo - echo $* - echo -} - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -header "Authenticate to Kubernetes" - -$DIR/lib/kubernetes-target.sh - -kubectl get pods --all-namespaces - -header "Configure Helm" - -helm init -c - -header "Install chart" - -kubectl create ns ${NAMESPACE} -function finish { - header "Cleanup namespace ${NAMESPACE}" - kubectl get pods -n ${NAMESPACE} - kubectl delete ns ${NAMESPACE} -} -trap finish EXIT SIGINT SIGTERM - -helm upgrade --install test ${REPO_ROOT}/${CHART_ROOT} \ - --namespace ${NAMESPACE} \ - --set "database.service.class=null" - -timeout 5s kubectl get pods -w -n ${NAMESPACE}