Chart version: 0.2.23
Api version: v1
App version: 1.1.4
A Helm chart for Rookout Controller on Kubernetes
Chart Type
Set me up:
helm repo add center
Install Chart:
helm install controller center/rookout/controller
Versions (0)


Rookout gets data from your live code, as it runs. Extract any piece of data from your code and pipeline it anywhere, in realtime, even if you’d never thought about it beforehand or created any instrumentation to collect it.


helm repo add rookout
helm repo update
helm install --name my-release rookout/controller --set controller.token=YOUR_ORGANIZATIONAL_TOKEN


This chart bootstraps a Rookout Controller deployment on a Kubernetes cluster using the Helm package manager.


  • Kubernetes 1.9+ with Beta APIs enabled

Installing the Chart using helm

To install the chart with the release name my-release:

$ helm install --name my-controller rookout/controller --set controller.token=YOUR_ORGANIZATIONAL_TOKEN

The command deploys Rookout on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Tip: List all releases using helm list

Installation without helm

If you’re not using helm with your kubernetes cluster, you’ll still be able to install the controller. Helm will be needed to be installed locally just to create the yaml file from the templates.

  1. Install helm locally:
  2. Clone this repository and cd charts/controller
  3. run helm template . --set controller.token=YOUR_ORGANIZATIONAL_TOKEN --name=rookout > rookout-controller.yaml
  4. A generation of the yamls will be piped right to a single yaml file called rookout-controller.yaml
  5. Run kubectl apply -f rookout-controller.yaml

Uninstalling the Chart

To uninstall/delete the my-controller deployment:

$ helm delete my-controller

or, if you’re not using helm:

$ kubectl delete -f rookout-controller.yaml

Those commands removes all the Kubernetes components associated with the chart and deletes the release.


Server Modes

The controller runs with one of 2 modes (controller.serverMode):

  • TLS - You will need to create the following secret & configmap in your k8s cluster :

    1. Create configmapName for the TLS certificate : kubectl create configmap rookout-tls-cert --from-file=tls.crt=<path to cert file>
    2. Create secret for the TLS private-key : kubectl create secret generic rookout-tls-key --from-file=tls.key=<path to key file>
  • PLAIN - If you want to use your own ingress and enforce SSL validation not on application-level, you can set to this mode and configure your own ingress (with SSL termination) to receive requests and route them to the controller’s port.

The following table lists the configurable parameters of the Rookout Router chart and their default values.

| Parameter | Description | Default | | —————————————– | —————————————- | ——————————————————- | | controller.serverMode | TLS / PLAIN | PLAIN | controller.token | Rookout organizational token | Nil You must provide your own token |
| | Secret ref in which the Rookout token resides | Nil You must provide your own secret (Optional if setting the token using controller.token) |
| controller.tokenFromSecret.key | Key of the secret in which the Rookout token resides | Nil You must provide your own secret (Optional if setting the token using controller.token) |
| ingress.enabled | Creates a simple ingress that will direct a defined hostname to the controller. Note that this ingress does not consist of cert-manager | False | | | Hostname set to the controller | (none) | | controller.listenAll | Configuring the Controller to listen on all addresses instead of only localhost. | False Listens only on localhost | | controller.labels | Additional labels for the Deployment | (None) | | controller.resources.requests.cpu | CPU resource requests | 30m | | controller.resources.limits.cpu | CPU resource limits | 4000m | | controller.resources.requests.memory | Memory resource requests | 32Mi | | controller.resources.limits.memory | Memory resource limits | 1024Mi | | controller.internalResources.limits.cpu | Rookout Controller internal cpu limit, measured in number of full cpus | 4 | | controller.internalReources.limits.memory | Rookout Controller internal memory limit, measured in Mb | 1024 | | image.registry | Rookout image registry | | | image.repository | Rookout image name | rookout/controller | | image.tag | Rookout image tag | {VERSION} | | image.pullPolicy | Image pull policy | Always if imageTag is latest, else IfNotPresent | | image.pullSecrets | Specify image pull secrets | nil | | | Optional name for the service account | (none) | | podAnnotations | Annotations for the controller k8s pod | (none) | | service.annotations | Annotations for the controller k8s service | (none) |

The above parameters map to the env variables defined in rookout/controller. For more information please refer to the rookout/controller image documentation.

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

helm repo add rookout
helm repo update
helm install --name my-controller \
  --set controller.token=YOUR_ORGANIZATIONAL_TOKEN,listenAll=False \

The above command sets the Rookout Controller token to your organizational token. Additionally, it sets the listenAll to False.

Tip: You can use the default values.yaml