Opsdroid is a ChatOps bot framework written in Python. This helm chart allows you to easily install opsdroid on a kubernetes cluster.
This chart will deploy the following:
- 1 x Opsdroid bot
- 1 x Rasa NLU instance (optional)
Add the opsdroid chart repo:
$ helm repo add opsdroid https://helm.opsdroid.dev/
$ helm repo updateTo install the chart with the release name my-bot:
$ helm install my-bot opsdroid/opsdroidThe following tables list the configurable parameters of the Opsdroid chart and their default values.
| Parameter | Description | Default | 
|---|---|---|
| opsdroid.configuration | The yaml configuration for opsdroid | nil(opsdroid will generate default at runtime) | 
| opsdroid.environment | Environment variables for the bot | [] | 
| Parameter | Description | Default | 
|---|---|---|
| opsdroid.image.repository | Container image name | opsdroid/opsdroid | 
| opsdroid.image.tag | Container tag name | Latest stable tag | 
| opsdroid.image.imagePullPolicy | Container image pull policy | IfNotPresent | 
| Parameter | Description | Default | 
|---|---|---|
| opsdroid.service.port | Port for service to use | 8080 | 
| Parameter | Description | Default | 
|---|---|---|
| opsdroid.resources.requests.cpu | Minimum CPU request | nil | 
| opsdroid.resources.limits.cpu | Maximum CPU limit | nil | 
| opsdroid.resources.requests.memory | Minimum memory request | nil | 
| opsdroid.resources.limits.memory | Maximum memory limit | nil | 
| Parameter | Description | Default | 
|---|---|---|
| opsdroid.pvc.enabled | Use a Persistent Volume to store opsdroid state | false | 
| opsdroid.pvc.annotations | Annotations for the Persistent Volume Claim | {} | 
| opsdroid.pvc.selector | Selector for the Persistent Volume Claim | {} | 
| opsdroid.pvc.accessModes | Persistent Volume Claim access mode | ['ReadWriteOnce'] | 
| opsdroid.pvc.storage | Persistent Volume Claim size | 5Gi | 
| opsdroid.pvc.storageClassName | Persistent Volume Claim name | nil | 
| Parameter | Description | Default | 
|---|---|---|
| opsdroid.ingress.enabled | Use an Ingress to access opsdroid | false | 
| opsdroid.ingress.annotations | Opsdroid Ingress annotations | {} | 
| opsdroid.ingress.hosts | Opsdroid Ingress Hostnames | [] | 
| opsdroid.ingress.ingressClassName | Opsdroid Ingress Class Name | nil | 
| opsdroid.ingress.tls | Opsdroid Ingress TLS configuration | [] | 
| Parameter | Description | Default | 
|---|---|---|
| rasanlu.enabled | Use Rasa NLU | false | 
| rasanlu.token | API key for Rasa NLU to use | abc123 | 
| Parameter | Description | Default | 
|---|---|---|
| rasanlu.image.repository | Container image name | rasa/rasa_nlu | 
| rasanlu.image.tag | Container tag name | Latest stable tag | 
| rasanlu.image.imagePullPolicy | Container image pull policy | IfNotPresent | 
| Parameter | Description | Default | 
|---|---|---|
| rasanlu.service.port | Port for service to use | 5000 | 
| Parameter | Description | Default | 
|---|---|---|
| rasanlu.resources.requests.cpu | Minimum CPU request | nil | 
| rasanlu.resources.limits.cpu | Maximum CPU limit | nil | 
| rasanlu.resources.requests.memory | Minimum memory request | nil | 
| rasanlu.resources.limits.memory | Maximum memory limit | nil | 
| Parameter | Description | Default | 
|---|---|---|
| rasanlu.pvc.enabled | Use a Persistent Volume to store opsdroid state | false | 
| rasanlu.pvc.annotations | Annotations for the Persistent Volume Claim | {} | 
| rasanlu.pvc.selector | Selector for the Persistent Volume Claim | {} | 
| rasanlu.pvc.accessModes | Persistent Volume Claim access mode | ['ReadWriteOnce'] | 
| rasanlu.pvc.storage | Persistent Volume Claim size | 5Gi | 
| rasanlu.pvc.storageClassName | Persistent Volume Claim name | nil | 
Specify each parameter using the --set key=value[,key=value] argument to helm install.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
$ helm install --name my-release -f values.yaml incubator/opsdroidTip: You can use the default values.yaml
Releases of the Helm chart are automatically pushed to the gh-pages branch by GitHub Actions when the version in the Chart.yaml is modified.
Before releasing you may want to ensure the chart is up to date with the latest Docker images and opsdroid versions:
- Update the image tags in opsdroid/values.yamlto reflect the latest release of the opsdroid Docker images.
- Update the appVersionvalue inopsdroid/Chart.yamlto also reflect this version.
Then to perform a release you need to create rev the version on master.
- Update the versionkey inopsdroid/Chart.yamlwith the new chart versionx.x.x.
- Add a release PR with this new version.
- When merging the PR GitHub Actions will create a new tag and release automatically.
- The chart will be built and attached to the release.
- A new commit will be pushed to the gh-pagesbranch to update the repo index to point to the release asset.