Continuous Integration (CI) for Cloud Foundry Container Runtime (CFCR)
Repos covered by the pipelines:
- Kubo release - a BOSH release for Kubernetes
- Kubo deployment - BOSH deployment manifest and ops-files for deploying a single kubernetes cluster using CFCR.
- CFCR Etcd - A BOSH release of Etcd used in CFCR
- Docker BOSH release - A BOSH release of Docker used in CFCR
Other related repos:
- Kubo disaster recovery acceptance tests (kdrats) - Provides tests used by pipelines contained within this repo.
- [Kubo locks] - provides configuration information for the CI environments used by the pipelines. Private repo for CFCR team use.
To view the pipelines visit ci.kubo.sh
The main pipeline, runs on every commit in kubo-release and kubo-deployment. Is also used to create Github releases. Runs tests on GCP, AWS and vSphere.
Runs tests on Openstack with a long-lived director instead of a freshly-deployed one for each run. Configuring OpenStack and Creating New Environments
Tests the CIDRS suite of the integration tests. It tests changing the Pod and Service CIDRs for kubernetes.
Tests whether Istio specifications can be deployed on CFCR, and the Istio integration tests are run.
Attempts to update the CFCR deployment on which the gaffer application is run. The gaffer application backs https://gaffer.kubo.sh
kubo-release-pr & kubo-deployment-pr
Test pull requests to the repos. Have to be triggered manually.
Tests that the PodSecurityPolicy admission controller and policies work as expected.
Tests the etcd release used in CFCR with different configurations. Creates and destroys the cluster at each run.
Uses a long-lived etcd cluster and specifically focuses on potential “split brain” failure scenarios, centred around network partitions and VM restarts.
The bump-* pipelines are used to automatically update components of CFCR or the CI infrastructure. The docker-boshrelease pipeline tests and releases new versions of the docker release.
Building docker images
This pipeline builds all the images used in the other pipelines based on the dockerfiles located in kubo-ci.
Maintaining CI IaaS environments
The recycle pipeline is used to clean up environments. It is triggered automatically whenever a lock is released by the pipeline using that environment. The cleanup-gcp is used to clean up leftover LoadBalancers and Disks in GCP. The vsphere-cleaner pipeline generates a binary which is used by the recycle pipeline to clean vsphere environments.