Skip to content
This repository has been archived by the owner on Oct 6, 2022. It is now read-only.

Latest commit

 

History

History

ci

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Testing

Test pipelines

  • wings: concourse deployed as a BOSH release on VMs (removed¹⁾)
  • hush-house: concourse deployed as helm chart on GKE

Pipeline setup

On changes to the Dockerfile or a new upstream image we build a new kind-on-c image. After the image is built and pushed to the registry, we update the task config to use this new version of the image in the dev branch.

This new commit triggers the pipeline with all the tests. When all tests come back green, the pipeline promotes the current state by merging dev into master.

To summarize: Push your changes into the dev branch, if all tests come back green theses changes will be automatically merged into master.

./set-pipeline.sh

This is a helper, that pulls credentials as a secure note from lastpass and it as a vars file when setting the pipeline.

The secure note should have a notes field like:

---
github:
  token: <the github token for pulling the kind releases> 
  push_key: <private SSH key for pushing into kind-on-c's master>
crs:
  kind-on-c: # everything about the main kind-on-c image
    repository: <repo>
    tag: <tag>
    username: <user>
    password: <pass>
  build-artefacts: # everything about the artefact image for kind-on-c
    repository: <repo>
    tag: <tag>
    username: <user>
    password: <pass>
slack:
  url: <slack webhook url>

By default

  • a pipeline named kind will be set, which that can overwritten by setting $PIPELINE_NAME
  • the credentials will be pulled from the secure note Shared-CF K8s C10s/kind-on-c/pipeline-vars.yaml, which can be overwritten by setting $LPASS_PATH

Any arguments to set-pipeline.sh will be passed through to fly, so you can set e.g. your target.

Example:

PIPELINE_NAME=kind-on-c-ci LPASS_PATH=pipelines/kind-on-c/vars.yaml ./ci/set-pipeline.sh -t wings

... will wet the pipeline kind-on-c-ci on a concourse named wings and will pull the secrets from a lastpass note at pipelines/kind-on-c/vars.yaml.

One-off builds

You can also use concourse to run the local state of kind-on-c (e.g. while testing features) by using fly execute like so:

KIND_TESTS='echo "no really running tests"; exit 0' \
KINDONC_DEBUG=1 \
INSTALL_METALLB=1 \
  fly -t hh execute \
    --config kind.yaml \
    --privileged \
    --inputs-from 'kind/kind master' \
    --input kind-on-c=.

¹⁾ We used to have the same pipeline on both hush-house and wings. We got enough confidence in running nested containers on hush-house and therefore decided to remove the pipeline from wings.