Versioned Releases

A common pattern for managing configuration is to send changes through an approval process. CloudTruth will introduce an approval workflow feature in the future. In the interim, one can accomplish the same goals by using tags against our versioned configuration store. This can be tied into your release cycle or used explicitly to update configuration between releases. It enables you to have a stable set of configurations to make several incremental changes before batching them into a single push to your production systems. One can approximate an approval process with the manual step of only allowing authorized users to update tags to current.

Creating Tags

Tags are intrinsically tied to environments. To create one, go to the Environments page, select the desired environment and click the Create Tag button. Give the tag a name, and optionally select a point in time that the tag represents (defaults to now).

Select the Immutable option to prevent the tag from being updated to reflect recent changes.

You can also create tags using the CLI:

cloudtruth environments tag set production stable --current

Referencing Tags

Once you have tags set up for your critical environments, you can use them when referencing your configuration at any of our integration points (push actions, Kubernetes operator, CLI, API, etc)

CLI examples

cloudtruth --project backend --env production parameters list --as-of stable --format json
cloudtruth --project backend --env production template get dotenv --as-of stable

Kubernetes Operator Example

Use the tag specifier on any project mappings that you desire to use a tag on. You can also specify it globally for all project mappings by use of a helm property override at install time:

helm install \
    --set appSettings.apiKey=<api_key> \
    --set projectMappings.root.environment=production \
    --set projectMappings.root.tag=stable \
    kubetruth cloudtruth/kubetruth

Push Action Example

Tags are required for Push Action, as can be seen in the create/edit dialog for a push action:

Updating Tags

To edit a tag, go to the Environment page, select the environment containing the tag, then click the triple-dot menu for the tag and select Edit Tag.

Show the date picker and click in the timestamp field to have the option of selecting a specific timestamp or selecting Now to update the tag to right now, thereby promoting it to contain all current values.

Once updated, any subsequent operations that reference this tag at one of our integration points will now get any updated values.

You can also update tags using the CLI, e.g. for use within a CI/CD pipeline:

cloudtruth environments tag set production stable --current

Comparing Changes

To approximate an approval process, use the History page to check any Current changes against a tag (works for Parameters and Templates):

Last updated

CopyrightΒ© 2023 CloudTruth