initial test-chart WIP

This commit is contained in:
Dr Nic Williams 2018-11-17 10:53:15 +10:00
parent 1e3ce2f518
commit 5fb15f360f
4 changed files with 121 additions and 4 deletions

View File

@ -28,6 +28,16 @@ meta:
email: (( param "Please provide the git email for automated commits" ))
name: (( param "Please provide the git name for automated commits" ))
kubernetes:
pool:
uri: (( param "Please provide kubernetes pool uri" ))
branch: (( param "Please provide kubernetes pool branch" ))
private_key: (( param "Please provide kubernetes pool private_key" ))
name: (( param "Please provide kubernetes pool pool" ))
google:
serviceaccount: (( param "Please provide GCP Service Account JSON" ))
aws:
bucket: (( concat meta.name "-pipeline" ))
region_name: us-east-1
@ -62,6 +72,7 @@ groups:
- name: (( grab meta.name ))
jobs:
- latest-image
- helm-test
- rc
- shipit
- name: versioning
@ -87,6 +98,46 @@ jobs:
icon_url: (( grab meta.slack.icon ))
text: '(( concat meta.slack.fail_url " " meta.pipeline ": patch job failed" ))'
- name: helm-test
public: true
plan:
- aggregate:
- { get: git, trigger: true }
- { 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
config:
platform: linux
image_resource:
type: docker-image
source:
repository: (( grab meta.image.name ))
tag: (( grab meta.image.tag ))
inputs:
- name: git
- name: kube
- name: image-latest
run:
path: ./git/ci/scripts/test-chart
args: []
params:
CHART_ROOT: (( grab meta.helm.chart_path ))
REPO_ROOT: git
K8S_CLUSTER: kube
GCP_SERVICEACCOUNT: (( grab meta.google.serviceaccount ))
ensure:
do:
- put: kube
resource: kubernetes-pool
params:
release: kube
- name: shipit
public: true
serial: true
@ -94,8 +145,6 @@ jobs:
- do:
- name: inputs
aggregate:
# - { get: version, params: {bump: final} }
# - { get: git }
- { get: version, passed: [rc], params: {bump: final} }
- { get: git, passed: [rc] }
- { get: image-latest, passed: [latest-image], params: { save: true } }
@ -179,8 +228,7 @@ jobs:
plan:
- do:
- aggregate:
# - { get: git, trigger: true }
- { get: git, trigger: true, passed: [latest-image] }
- { get: git, trigger: true, passed: [helm-test] }
- { get: version, trigger: true, params: {pre: rc} }
- task: release-notes
config:
@ -289,3 +337,11 @@ resources:
user: (( grab meta.github.owner ))
repository: (( grab meta.github.repo ))
access_token: (( grab meta.github.access_token ))
- name: kubernetes-pool
type: pool
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 ))

View File

@ -0,0 +1,19 @@
#!/bin/bash
CLOUD_PROVIDER=$(cat $K8S_CLUSTER/metadata | jq -r ".provider")
case ${CLOUD_PROVIDER:?require "provider" key in pool resource metadata} in
google|gcp)
gcloud auth activate-service-account --key-file <(echo "${GCP_SERVICEACCOUNT:?require GCP Service Account JSON}")
PROJECT=$(cat $K8S_CLUSTER/metadata | jq -r ".project")
CLUSTER_NAME=$(cat $K8S_CLUSTER/metadata | jq -r ".cluster_name")
CLUSTER_ZONE=$(cat $K8S_CLUSTER/metadata | jq -r ".cluster_zone")
# CLUSTER_REGION=$(cat $K8S_CLUSTER/metadata | jq -r ".cluster_region")
gcloud container clusters get-credentials "$CLUSTER_NAME" --region "$CLUSTER_ZONE" --project "$PROJECT"
;;
*)
echo "ERROR: unknown cloud provider $CLOUD_PROVIDER"
exit 1
;;
esac

32
ci/scripts/test-chart Executable file
View File

@ -0,0 +1,32 @@
#!/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}
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

View File

@ -11,6 +11,16 @@ meta:
email: ((git-commit-email))
name: ((git-commit-name))
kubernetes:
pool:
uri: git@github.com:drnic/example-concourse-kubenetes-pool.git
branch: master
private_key: ((github-private-key))
name: gke
google:
serviceaccount: ((gcp-service-account-knative-experiments))
aws:
bucket: (( grab meta.pipeline ))
region_name: us-east-1