This repository contains additional tests above and beyond unit and integration tests. This is meant to complement the existing tests, not to replace.
- What are we testing?
- BOSH CPI releases
- Why are we testing?
- To provide a high level of confidence that new releases of BOSH, BOSH stemcells, and BOSH CPIs work together properly
- When will the certification pipeline run?
- Whenever any of the following are released: (
trigger: true
)- bosh-release
- bosh-<iaas>-cpi-release
- stemcell
- Once a day.
- Whenever any of the following are released: (
- How are we testing?
- Testing for certification consists of the following test scenarios:
- BATs are run for every flavor of stemcells (ubuntu-trusty and centos-7)
- A BOSH director upgrade test is run from a previous version family stemcell (e.g. 3363.x to 3421.latest)
- Specific IaaS end-2-end tests, if necessary
- Testing for certification consists of the following test scenarios:
- Set up infrastructure environment from scratch. We use Terraform resource whenever and wherever we can. It works beautifully.
- Deploy BOSH director with latest bosh-release, IaaS-specific cpi-release, and stemcell
- Run BATs
- Tear down BOSH director
- Tear down infrastructure environment
- Set up infrastructure environment from scratch, we use Terraform resource when and wherever we can. It works beautifully.
- Deploy BOSH director with old bosh-release (255.4), IaaS-specific cpi-release (X), and stemcell (3363.x)
- Deploy certification-release
- Redeploy bosh director with latest bosh-release, IaaS-specific, cpi-release, and stemcell
- Redeploy certification-release with
--recreate
- Tear down BOSH director
- Tear down infrastructure environment
The folder structure looks like this:
.
├── iaas
├── bats
| └── bats-spec.yml
├── certification
| └── cloud-config-ops.yml
├── ops
| └── custom-cpi-release.yml
└── pipeline.yml
iaas/bats/bats-spec.yml
: Manifest with all IaaS-specific configurations for BATs. Make a PR to add the IaaS-specific template to the BATs template folder.
iaas/certification/cloud-config-ops.yml
: Ops file to add IaaS-specific properties to the certification cloud-config
iaas/ops/custom-cpi-release.yml
: Used by the certification pipeline to upload a specific BOSH CPI release version. See example below:
- type: replace
path: /releases/name=bosh-<iaas>-cpi
value:
name: bosh-<iaas>-cpi
url: ((cpi_release_uri))
iaas/pipeline.yml
: Your Concourse certification pipeline YAML configuration. See example.
Others: