helm-test will package + install/deploy

This commit is contained in:
Dr Nic Williams 2018-11-19 10:00:44 +10:00
parent 04a1b945c0
commit 3c64702a51
3 changed files with 58 additions and 78 deletions

View File

@ -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

34
ci/scripts/build-chart Executable file
View File

@ -0,0 +1,34 @@
#!/bin/bash
#
# ci/scripts/build-chart
#
# Script for build Helm chart package
#
# author: Dr Nic Williams <drnicwilliams@gmail.com>
# 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}

View File

@ -1,52 +0,0 @@
#!/bin/bash
#
# ci/scripts/test-chart
#
# Script for installing Helm chart to test it
#
# author: Dr Nic Williams <drnicwilliams@gmail.com>
# 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}