[stable/hubot] Better Hubot chart (#16016)

* Better Hubot chart

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Reverting OWNERS file

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Adding a space to please the linter

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Update stable/hubot/values.yaml

Co-Authored-By: Dario Blanco <dblancoit@gmail.com>
Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Changes after code review

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Correct Docker image source URL

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Updated README.md

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Workaround for CI

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>

* Add myself to OWNERS file

Signed-off-by: Roman Komkov <roman.komkov@4finance.com>
This commit is contained in:
Roman
2019-08-25 09:44:21 -07:00
committed by Kubernetes Prow Robot
co-authored by Dario Blanco
parent 65b7751965
commit 9199caeabc
19 changed files with 443 additions and 118 deletions
+10 -5
View File
@@ -1,16 +1,21 @@
---
apiVersion: v1
description: Hubot chatbot for Slack
name: hubot
version: 0.0.2
appVersion: 0.1.9
home: https://github.com/mind-doc/hubot
version: 1.0.0
appVersion: 3.3.2
home: https://hubot.github.com
sources:
- https://github.com/mind-doc/hubot
- https://github.com/hubotio/hubot
- https://github.com/minddocdev/hubot
keywords:
- slack
- hubot
- chatbot
icon: https://i.imgur.com/UIkAW9t.png
icon: https://hubot.github.com/assets/images/layout/hubot-avatar@2x.png
maintainers:
- name: darioblanco
email: dblanco@minddoc.com
- name: decayofmind
email: r.komkov@gmail.com
+2
View File
@@ -1,4 +1,6 @@
approvers:
- darioblanco
- decayofmind
reviewers:
- darioblanco
- decayofmind
+75 -27
View File
@@ -1,8 +1,8 @@
# Hubot
## Hubot
Hubot 3 chatbot with the Slack adaptor
Learn more: https://github.com/mind-doc/hubot
Learn more: https://hubot.github.com
## TL;DR;
@@ -47,26 +47,41 @@ The following table lists the configurable parameters of the Hubot chart and the
Parameter | Description | Default
--- | --- | ---
`namespace` | namespace to use | `default`
`replicaCount` | desired number of pods | `1`
`image.repository` | container image repository | `minddocdev/hubot`
`image.tag` | container image tag | `latest`
`image.pullPolicy` | container image pull policy | `Always`
`service.type` | type of service to create | `NodePort`
`service.httpPort` | port for the http service | `80`
`fullnameOverride` | Override the full resource names | `""`
`replicaCount` | Desired number of pods | `1`
`strategyType` | Type of deployment strategy | `RollingUpdate`
`image.repository` | Container image repository | `minddocdev/hubot`
`image.tag` | Container image tag | `3.3.2`
`image.pullPolicy` | Container image pull policy | `IfNotPresent`
`service.type` | Type of service to create | `NodePort`
`service.port` | Port for the http service | `80`
`config` | Hubot configuration (environment variables) | `{}`
`secretConfig` | Sensitive environment variables passed to Hubot as Secret | `{}`
`existingSecretConfigName` | Reference to an existing Secret with sensitive env vars | `""`
`args` | Arguments passed to Hubot binary | `["--name", "${HUBOT_NAME}", "--adapter", "--slack"]`
`extraArgs` | Additional arguments to Hubot binary | `[]`
`scripts` | Custom hubot scripts | `{}`
`scriptsRepo.enable` | Flag to checkout repo with scripts | `false`
`scriptsRepo.image` | Image with git-sync | `k8s.gcr.io/git-sync:v3.1.2`
`scriptsRepo.repository` | Git repository to checkout | `""`
`scriptsRepo.branch` | Branch in repository to checkout from | `master`
`scriptsRepo.username` | Git repo username | `null`
`scriptsRepo.password` | Password for git repo | `null`
`scriptsRepo.existingSecretName` | Set if your git credentials are stored in some existing Secret | `null`
`extraPackages` | List of additional npm packages to install on Hubot startup (usually, dependencies for scripts) | `[]`
`externalScripts` | Content for external-scripts.json file (all listed packages will be installed on startup) | `[]`
`redis.enabled` | Install a dependency chart with Redis (needed for hubot-brain) | `true`
`ingress.enabled` | flag to add ingress functionality | `false`
`ingress.annotations` | ingress load balancer annotations | `Always`
`ingress.path` | proxied path | `/`
`ingress.hosts` | proxied hosts | `[ hubot.local ]`
`ingress.tls` | tls certificate secrets | `[]`
`resources` | resource requests & limits | `{}`
`extraConfigMapMounts` | Additional configMaps to be mounted (good for extra files, certs) | `[]`
`extraLabels` | Extra labels to add to the Resources | `{}`
`nodeSelector` | node selector logic | `{}`
`tolerations` | resource tolerations | `{}`
`affinity` | node affinity | `{}`
`hubot.config` | hubot configuration (environment variables) | `{}`
`hubot.scriptsFolder` | hubot scripts folder path | `/minddocbot/scripts`
`hubot.scripts` | custom hubot scripts | `{ health.coffee: <script content> }`
`hubot.slackToken` | slack hubot integration token | `''`
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
For example:
@@ -91,20 +106,54 @@ $ helm install --name my-release -f values.yaml stable/hubot
#### Config
With the `hubot.config` parameter you can provide a hash that will be used as
environment variables by hubot. These environment variables will be picked by
hubot's scripts.
The chart provides you with two dictionaries: `config` and `secretConfig`.
Hashes in both of these variables will be exposed to the Hubot process
as environment variables and may be picked by scripts.
The difference between them is that the `config` dictionary will be saved as
ConfigMap object, but the value of `secretConfig` will be saved as a Secret object.
For instance:
```yaml
hubot:
config:
HUBOT_STANDUP_PREPEND: '@channel'
config:
HUBOT_STANDUP_PREPEND: '@channel'
secretConfig:
HUBOT_SLACK_TOKEN: 'xxx-secret-token-xxx'
```
#### Redis
By default, this chart will deploy a [Redis chart](https://github.com/helm/charts/tree/master/stable/redis)
as a dependency. It's required by "hubot-redis-brain" script, which provides persistent
storage for Hubot.
In this case, the value of `REDIS_URL` environment variable will be set automatically.
If you want Hubot to use an already existing Redis instance, you need to have
`redis.enabled` set to `false` and then set `REDIS_URL` variable, pointing to that
instance in `config` or `secretConfig` dictionaries.
For instance:
```
redis:
enabled: false
secretConfig:
REDIS_URL: "redis://:password@mycompany.redis:6379/prefix"
```
#### Scripts
There are three ways of how to extend Hubot with scripts:
* Install via npm and enable in `external-scripts.json` file
* Use a git repository with scripts and set `scriptsRepo.enabled` to `true`.
It's common for companies to have a dedicated repo with customized scripts.
* List scripts in `scripts` hash (good for small scripts).
In addition, you can add your own scripts, which will be created in the scripts
folder, with `.js` or `.coffee` format.
See [Hubot Scripting](https://hubot.github.com/docs/scripting/).
@@ -112,12 +161,11 @@ See [Hubot Scripting](https://hubot.github.com/docs/scripting/).
For example:
```yaml
hubot:
scripts:
hithere.coffee: |
# Description
# A hubot script that is an example for this chart
module.exports = (robot) ->
robot.respond /hi my bot/i, (msg) ->
msg.send 'Hi there my human'
scripts:
hithere.coffee: |
# Description
# A hubot script that is an example for this chart
module.exports = (robot) ->
robot.respond /hi my bot/i, (msg) ->
msg.send 'Hi there my human'
```
+7
View File
@@ -0,0 +1,7 @@
# CI values for Hubot.
args:
- --name
- "test-bot"
tty: true
+6
View File
@@ -0,0 +1,6 @@
dependencies:
- name: redis
repository: https://kubernetes-charts.storage.googleapis.com/
version: 8.0.19
digest: sha256:63c74f491d913133c58a096b312c0f99dfd1b1f3ca40af0f398c8b29466c872c
generated: "2019-07-30T13:01:44.865771+02:00"
+5
View File
@@ -0,0 +1,5 @@
dependencies:
- name: redis
version: ~8.0.0
repository: https://kubernetes-charts.storage.googleapis.com/
condition: redis.enabled
+13
View File
@@ -30,3 +30,16 @@ Create chart name and version as used by the chart label.
{{- define "hubot.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/* Generate basic labels */}}
{{- define "hubot.labels" }}
app.kubernetes.io/name: {{ include "hubot.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "hubot.chart" . }}
{{- end }}
{{- define "hubot.redis.fullname" -}}
{{- $name := default "redis" .Values.redis.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
+13
View File
@@ -0,0 +1,13 @@
{{- if .Values.config }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "hubot.fullname" . }}-config
labels:
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
data:
{{ toYaml .Values.config | indent 2 }}
{{- end }}
+16
View File
@@ -0,0 +1,16 @@
{{- if .Values.secretConfig }}
apiVersion: v1
kind: Secret
metadata:
name: {{ template "hubot.fullname" . }}-config
labels:
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
type: Opaque
data:
{{ range $key, $value := .Values.secretConfig }}
{{ $key }}: {{ $value | b64enc }}
{{- end }}
{{- end }}
@@ -1,11 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "hubot.fullname" . }}-scripts
labels:
app: {{ template "hubot.name" . }}
chart: {{ template "hubot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
data:
{{ toYaml .Values.hubot.scripts | indent 2 }}
-11
View File
@@ -1,11 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "hubot.fullname" . }}
labels:
app: {{ template "hubot.name" . }}
chart: {{ template "hubot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
data:
{{ toYaml .Values.hubot.config | indent 2 }}
+154 -23
View File
@@ -1,52 +1,179 @@
apiVersion: apps/v1beta1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "hubot.fullname" . }}
labels:
app: {{ template "hubot.name" . }}
chart: {{ template "hubot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
spec:
replicas: {{ .Values.replicaCount }}
strategy:
type: {{ .Values.strategyType }}
selector:
matchLabels:
app: {{ template "hubot.name" . }}
release: {{ .Release.Name }}
app.kubernetes.io/name: {{ include "hubot.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/config-cm.yaml") . | sha256sum }}
checksum/secret-config: {{ include (print $.Template.BasePath "/config-secret.yaml") . | sha256sum }}
checksum/external-scripts.json: {{ include (print $.Template.BasePath "/external-scripts-cm.yaml") . | sha256sum }}
{{- if .Values.scripts }}
checksum/scripts: {{ include (print $.Template.BasePath "/scripts-cm.yaml") . | sha256sum }}
{{- end }}
labels:
app: {{ template "hubot.name" . }}
release: {{ .Release.Name }}
app.kubernetes.io/name: {{ include "hubot.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
volumes:
- name: {{ template "hubot.fullname" . }}-scripts
configMap:
name: {{ template "hubot.fullname" . }}-scripts
initContainers:
{{- if .Values.redis.enabled }}
- name: wait-for-redis
image: busybox
env:
- name: HUBOT_REDIS_HOST
value: {{ template "hubot.redis.fullname" . }}-master
- name: HUBOT_REDIS_PORT
value: "{{ .Values.redis.master.service.port }}"
command: [ "/bin/sh", "-c", "until nc -zv $HUBOT_REDIS_HOST $HUBOT_REDIS_PORT -w1; do echo 'waiting for redis'; sleep 1; done" ]
{{- end }}
{{- if .Values.scriptsRepo.enabled }}
- name: checkout-scripts-repo
image: {{ .Values.scriptsRepo.image }}
imagePullPolicy: Always
volumeMounts:
- name: scripts
mountPath: /tmp/git
env:
- name: GIT_SYNC_DEST
value: "scripts"
- name: GIT_SYNC_REPO
value: {{ .Values.scriptsRepo.repository | quote }}
- name: GIT_SYNC_ONE_TIME
value: "true"
- name: GIT_SYNC_DEPTH
value: "1"
{{- if .Values.scriptsRepo.branch }}
- name: GIT_SYNC_BRANCH
value: {{ .Values.scriptsRepo.branch }}
{{- end }}
{{- if .Values.scriptsRepo.username }}
{{- if .Values.scriptsRepo.existingSecretName }}
- name: GIT_SYNC_USERNAME
valueFrom:
secretKeyRef:
name: {{ .Values.scriptsRepo.existingSecretName }}
key: username
- name: GIT_SYNC_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.scriptsRepo.existingSecretName }}
key: password
{{- else }}
- name: GIT_SYNC_USERNAME
valueFrom:
secretKeyRef:
name: {{ template "hubot.fullname" . }}-scripts-repo
key: username
- name: GIT_SYNC_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "hubot.fullname" . }}-scripts-repo
key: password
{{- end }}
{{- end }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
- name: hubot
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
args:
{{ toYaml .Values.args | indent 12 }}
{{- if .Values.extraArgs }}
{{ toYaml .Values.extraArgs | indent 12 }}
{{- end }}
{{- if .Values.tty }}
tty: true
{{- end }}
ports:
- name: http
containerPort: 8080
protocol: TCP
livenessProbe:
tcpSocket:
port: 8080
httpGet:
path: /health
port: http
readinessProbe:
tcpSocket:
port: 8080
httpGet:
path: /health
port: http
volumeMounts:
- name: {{ template "hubot.fullname" . }}-scripts
mountPath: {{ .Values.hubot.scriptsFolder }}
- name: {{ template "hubot.fullname" . }}-external-scripts
mountPath: /home/hubot/external-scripts.json
subPath: external-scripts.json
readOnly: true
{{- range .Values.extraConfigmapMounts }}
- name: {{ .name }}
mountPath: {{ .mountPath }}
readOnly: {{ .readOnly }}
{{- end }}
{{- if .Values.scriptsRepo.enabled }}
- name: scripts
mountPath: /home/hubot/scripts
subPath: scripts
{{- end }}
{{- if .Values.scripts }}
{{- range keys .Values.scripts }}
- name: "{{ template "hubot.fullname" $ }}-scripts"
mountPath: "/home/hubot/scripts/{{ . }}"
subPath: "{{ . }}"
{{- end }}
{{- end }}
env:
{{- if .Values.redis.enabled }}
- name: REDIS_URL
value: redis://{{ template "hubot.redis.fullname" . }}-master:{{ .Values.redis.port }}/hubot
{{- end }}
- name: EXTRA_PACKAGES
value: {{ (join "," .Values.extraPackages) | quote }}
envFrom:
- secretRef:
name: {{ template "hubot.fullname" . }}
{{- if .Values.config }}
- configMapRef:
name: {{ template "hubot.fullname" . }}
name: {{ template "hubot.fullname" . }}-config
{{- end }}
{{- if .Values.secretConfig }}
- secretRef:
name: {{ template "hubot.fullname" . }}-config
{{- end }}
{{- if .Values.existingSecretConfigName }}
- secretRef:
name: {{ .Values.existingSecretConfigName }}
{{- end }}
resources:
{{ toYaml .Values.resources | indent 12 }}
volumes:
{{- if .Values.scriptsRepo.enabled }}
- name: scripts
emptyDir: {}
{{- end }}
- name: {{ template "hubot.fullname" . }}-external-scripts
configMap:
name: {{ template "hubot.fullname" . }}-external-scripts
{{- range .Values.extraConfigmapMounts }}
- name: {{ .name }}
configMap:
name: {{ .configMap }}
{{- end }}
{{- if .Values.scripts }}
- name: {{ template "hubot.fullname" . }}-scripts
configMap:
name: {{ template "hubot.fullname" . }}-scripts
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
@@ -59,3 +186,7 @@ spec:
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
- name: {{ .Values.imagePullSecrets }}
{{- end }}
@@ -0,0 +1,21 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "hubot.fullname" . }}-external-scripts
labels:
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
data:
external-scripts.json: |-
[
{{- range .Values.externalScripts }}
{{ . | quote }},
{{- end }}
"hubot-diagnostics",
"hubot-help",
"hubot-redis-brain",
"hubot-rules",
"hubot-health"
]
+4 -4
View File
@@ -7,10 +7,10 @@ kind: Ingress
metadata:
name: {{ $fullName }}
labels:
app: {{ template "hubot.name" . }}
chart: {{ template "hubot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
{{- with .Values.ingress.annotations }}
annotations:
{{ toYaml . | indent 4 }}
+13
View File
@@ -0,0 +1,13 @@
{{- if .Values.scripts }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "hubot.fullname" . }}-scripts
labels:
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
data:
{{ toYaml .Values.scripts | indent 2 }}
{{- end }}
@@ -0,0 +1,17 @@
{{- if and .Values.scriptsRepo.enabled }}
{{- if and .Values.scriptsRepo.username .Values.scriptsRepo.password (not .Values.scriptsRepo.existingSecretName) }}
apiVersion: v1
kind: Secret
metadata:
name: {{ template "hubot.fullname" . }}-scripts-repo
labels:
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
type: Opaque
data:
username: {{ .Values.scriptsRepo.username | b64enc | quote }}
password: {{ .Values.scriptsRepo.password | b64enc | quote }}
{{- end }}
{{- end }}
-12
View File
@@ -1,12 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ template "hubot.fullname" . }}
labels:
app: {{ template "hubot.name" . }}
chart: {{ template "hubot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
type: Opaque
data:
HUBOT_SLACK_TOKEN: {{ .Values.hubot.slackToken | b64enc }}
+8 -6
View File
@@ -1,12 +1,14 @@
---
apiVersion: v1
kind: Service
metadata:
name: {{ template "hubot.fullname" . }}
labels:
app: {{ template "hubot.name" . }}
chart: {{ template "hubot.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{ include "hubot.labels" . | indent 4 }}
{{- if .Values.extraLabels }}
{{ toYaml .Values.extraLabels | indent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
@@ -15,5 +17,5 @@ spec:
targetPort: http
protocol: TCP
selector:
app: {{ template "hubot.name" . }}
release: {{ .Release.Name }}
app.kubernetes.io/name: {{ include "hubot.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
+79 -19
View File
@@ -1,12 +1,14 @@
# Default values for hubot.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
---
fullnameOverride: ""
replicaCount: 1
strategyType: RollingUpdate
image:
repository: minddocdev/hubot
tag: 0.1.9
tag: 3.3.2
pullPolicy: IfNotPresent
service:
@@ -27,16 +29,16 @@ ingress:
# - hubot.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
@@ -44,11 +46,69 @@ tolerations: []
affinity: {}
hubot:
config: {}
extraLabels: {}
scriptsFolder: /minddocbot/scripts
extraConfigmapMounts: []
# - name: certs-configmap
# mountPath: /hubot/ssl/
# configMap: certs-configmap
# readOnly: true
scripts: {}
args:
- --name
- "${HUBOT_NAME}"
- --adapter
- slack
slackToken: ''
extraArgs: []
# - --alias
# - '!'
scripts: {}
# hithere.coffee: |
# module.exports = (robot) ->
# robot.respond /hi my bot/i, (msg) ->
# msg.send 'Hi there my human'
scriptsRepo:
enabled: false
image: k8s.gcr.io/git-sync:v3.1.2
repository: "" # https:///git.mycompany.com/hubot-scripts.git
branch: master
# username: git_username
# password: mysecretpassword
# existingSecretName: git-readonly-secret
# npm packages, required for custom scripts
extraPackages: []
# - aws-sdk
# - cron
# - underscore
# external scripts (npm packages) to be enabled
externalScripts: []
# - hubot-pugme
# - hubot-plusplus
# Environment variables passed to Hubot.
config: {}
# HUBOT_URL: "http://hubot.mycompany.internal/"
# HUBOT_LOG_LEVEL: 'debug'
# HUBOT_CACHE_IMAGE: 'true'
# Sensitive environment variables passed to Hubot as Secret.
secretConfig: {}
# HUBOT_SLACK_TOKEN: 'xoxb-somenumbers-someletters'
# Reference to an existing Secret with sensitive env vars.
existingSecretConfigName: ""
redis:
enabled: true
usePassword: false
cluster:
enabled: false
# This should be changed only during CI tests
tty: false