The example below demonstrates how to use Helm to deploy a TriggerMesh Bridge and manage its lifecycle.
Initialize a new Helm chart using the
helm command-line tool:
$ helm create bridge-chart Creating bridge-chart
A file structure similar to the one below is automatically generated with multiple sample files:
bridge-chart ├── Chart.yaml ├── charts ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ ├── hpa.yaml │ ├── ingress.yaml │ ├── service.yaml │ ├── serviceaccount.yaml │ └── tests │ └── test-connection.yaml └── values.yaml
This file structure is explained in details in the Helm documentation at Charts > The Chart File Structure. In this example, we simply replace all samples contained in the
templates directory with the Bridge List-manifest generated by
$ rm -rf bridge-chart/templates/*
$ til generate my-bridge.brg.hcl > bridge-chart/templates/my-bridge-manifest.json
The chart can be deployed to the destination cluster using the command:
$ helm install my-bridge bridge-chart/ NAME: my-bridge LAST DEPLOYED: Tue Apr 20 12:59:09 2021 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None
The chart should appear as "deployed" in the list of Helm releases:
$ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION my-bridge default 1 2021-04-20 12:59:09 deployed bridge-chart-0.1.0 1.16.0
Any future modification to the Bridge description can be applied to the deployed release using the following command:
$ helm upgrade my-bridge bridge-chart/ Release "my-bridge" has been upgraded. Happy Helming! NAME: my-bridge LAST DEPLOYED: Tue Apr 20 13:18:47 2021 NAMESPACE: default STATUS: deployed REVISION: 2 TEST SUITE: None
Under the hood,
helm upgrade takes care of all lifecycle actions such as:
- Updating existing objects so they match the desired state described in the Bridge description.
- Creating objects that were added since the last Bridge release.
- Deleting objects that should no longer be part of the Bridge release.
To undo the deployment of an entire Bridge, simply uninstall its Helm release:
$ helm uninstall my-bridge release "my-bridge" uninstalled