mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
[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:
committed by
Kubernetes Prow Robot
co-authored by
Dario Blanco
parent
65b7751965
commit
9199caeabc
+10
-5
@@ -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
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
approvers:
|
||||
- darioblanco
|
||||
- decayofmind
|
||||
reviewers:
|
||||
- darioblanco
|
||||
- decayofmind
|
||||
|
||||
+75
-27
@@ -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'
|
||||
```
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# CI values for Hubot.
|
||||
|
||||
args:
|
||||
- --name
|
||||
- "test-bot"
|
||||
|
||||
tty: true
|
||||
@@ -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"
|
||||
@@ -0,0 +1,5 @@
|
||||
dependencies:
|
||||
- name: redis
|
||||
version: ~8.0.0
|
||||
repository: https://kubernetes-charts.storage.googleapis.com/
|
||||
condition: redis.enabled
|
||||
@@ -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 -}}
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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 }}
|
||||
@@ -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 }}
|
||||
@@ -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"
|
||||
]
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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 }}
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user