Skip to content

Latest commit

 

History

History
104 lines (72 loc) · 3.69 KB

CONTRIBUTING.md

File metadata and controls

104 lines (72 loc) · 3.69 KB

Contributing

Version bumps

The “bump” pipeline is here to help bumping Traefik version.

When a pull request is submitted by the pipeline, the Traefik configuration template in jobs/traefik/templates/conf/traefik.toml should be inspected for any required evolution.

The helper scripts/check-config.sh is designed to assist that task.

As requirements, the colordiff utility must be installed first, and the TRAEFIK_REPO environment variable must point to a Git directory where the traefik new version has been checked out.

For a first run, adapt the following example commands to your context:

cd traefik-boshrelease
git clone --branch "v1.7" -- https://github.com/containous/traefik.git ../traefik
TRAEFIK_REPO=../traefik scripts/check-config.sh

This will display a diff between current configuration ERB template, and new configuration examples, so that you have a chance to spot any evolutions, that you would then port to the configurtion ERB template.

Testing

When submitting code, take care that it is tested. For this, one option is to run the Concourse pipeline, another is to run the smoke tests manually.

Run tests manually

As a requirement, you need to target a properly-configured Bosh Director.

This means that you need the bosh CLI in your shell $PATH, and typically four environment variables to be properly set (i.e. BOSH_ENVIRONMENT, BOSH_CA_CERT, BOSH_CLIENT and BOSH_CLIENT_SECRET) so that the CLI can properly “talk” to the Director. Of course, this requires a configured and deployed Bosh server, that properly serves the Director REST API. Refer to the documentation for that.

This director needs to have a “runtime config” that properly implements BOSH DNS, and a “cloud config” that defines a default VM type, a default network, and a default persistent disk type. This is fairly common when using bosh-deployment, as advised by the Bosh documentation, but also a source of confusion for newcomers when it's missing.

When these requirements are met, just run the manual-testflight.sh script, that will execute the same bosh deploy and bosh run-errand smoke-tests as the testflight job does in the Concourse pipeline.

scripts/manual-testflight.sh

Ans you may pass a --non-interactive option to this script when you're confident about what you are doing.

After the debug is done, make sure that you properly cleanup the “testflight” deployment.

bosh delete-deployment --deployment "traefik-testflight" --non-interactive

Run tests in the pipeline

The Concourse pipeline can be deployed on any Concourse installation using the ci/repipe script, just as explained in the documentation.

Re-generate the pipeline from (updated) template

The Concourse pipeline is a standard pipeline of boshrelease type, from the pipeline templates, as maintained by the Cloud Foundry community. It can be re-generated using the setup boshrelease command as detailed by the documentation.

cd traefik-boshrelease
path/to/concourse/pipeline-templates/setup boshrelease

After runing this, one should inspect the changes appled, and update the settings.yml accordingly, to that the spruce merge operation keeps being successful. This is most often a trivial update.