initial test-chart WIP
This commit is contained in:
parent
1e3ce2f518
commit
5fb15f360f
|
@ -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 ))
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue