Browse Source

fix: update helm logic

pull/122/head
Bruno Bernard 7 months ago
parent
commit
706af6bf8a
  1. 2
      charts/textbee/Chart.yaml
  2. 30
      charts/textbee/example/values.yaml
  3. 98
      charts/textbee/templates/NOTES.txt
  4. 1
      charts/textbee/templates/_helpers.tpl
  5. 79
      charts/textbee/templates/api-deployment.yaml
  6. 32
      charts/textbee/templates/api-hpa.yaml
  7. 43
      charts/textbee/templates/api-ingress.yaml
  8. 21
      charts/textbee/templates/api-service.yaml
  9. 4
      charts/textbee/templates/hpa.yaml
  10. 88
      charts/textbee/templates/ingress.yaml
  11. 41
      charts/textbee/templates/service.yaml
  12. 74
      charts/textbee/templates/web-deployment.yaml
  13. 43
      charts/textbee/templates/web-ingress.yaml
  14. 21
      charts/textbee/templates/web-service.yaml
  15. 123
      charts/textbee/values.yaml

2
charts/textbee/Chart.yaml

@ -3,6 +3,6 @@ name: textbee
description: A Helm chart to deploy TextBee.
type: application
version: 0.1.2
version: 0.1.3
appVersion: "v2.6.2"

30
charts/textbee/example/values.yaml

@ -0,0 +1,30 @@
web:
enabled: true
service:
enabled: true
type: LoadBalancer
annotations:
tailscale.com/expose: "true"
tailscale.com/hostname: "textbee-web"
api:
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
service:
enabled: true
ingress:
enabled: true
hosts:
- host: textbee-api.demo.com
paths:
- path: /
pathType: Prefix
className: nginx
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
tls:
- secretName: textbee-api-tls
hosts:
- textbee-api.demo.com

98
charts/textbee/templates/NOTES.txt

@ -1,44 +1,84 @@
Text Bee is ready !
Don't forget to create a secret
########################
# IMPORTANT #
########################
TextBee is almost ready !
Create those secrets below:
---
apiVersion: v1
kind: Secret
metadata:
name: textbee-api-secrets
name: {{ include "textbee.fullname" . }}-secrets
namespace: {{ .Release.Namespace }}
type: Opaque
stringData:
MONGO_URI: mongodb://adminUser:adminPassword@textbee-db:27017/textbee?authSource=admin
JWT_SECRET: supersecret
JWT_SECRET: "" # https://generate-secret.vercel.app/32
JWT_EXPIRATION: 60d
FIREBASE_PROJECT_ID:
FIREBASE_PRIVATE_KEY_ID:
FIREBASE_PRIVATE_KEY:
FIREBASE_CLIENT_EMAIL:
FIREBASE_CLIENT_ID:
FIREBASE_CLIENT_C509_CERT_URL:
MAIL_HOST:
MAIL_PORT:
MAIL_USER:
MAIL_PASS:
MAIL_FROM:
MAIL_REPLY_TO:
# Go to Firebase Console -> Press on cog (Project Settings) -> Service Accounts -> Generate new private key
FIREBASE_PROJECT_ID: ""
FIREBASE_PRIVATE_KEY_ID: ""
FIREBASE_PRIVATE_KEY: ""
FIREBASE_CLIENT_EMAIL: ""
FIREBASE_CLIENT_ID: ""
FIREBASE_CLIENT_C509_CERT_URL: ""
MAIL_HOST: ""
MAIL_PORT: ""
MAIL_USER: ""
MAIL_PASS: ""
MAIL_FROM: ""
MAIL_REPLY_TO: ""
---
apiVersion: v1
kind: Secret
metadata:
name: {{ include "textbee.fullname" . }}-web-secrets
namespace: {{ .Release.Namespace }}
type: Opaque
stringData:
NEXT_PUBLIC_GOOGLE_CLIENT_ID: ""
NEXT_PUBLIC_TAWKTO_EMBED_URL: ""
MAIL_HOST: ""
MAIL_PORT: ""
MAIL_USER: ""
MAIL_PASS: ""
MAIL_FROM: ""
ADMIN_EMAIL: ""
---
apiVersion: v1
kind: Secret
metadata:
name: {{ include "textbee.fullname" . }}-web-secrets
namespace: {{ .Release.Namespace }}
type: Opaque
stringData:
NEXT_PUBLIC_GOOGLE_CLIENT_ID: ""
NEXT_PUBLIC_TAWKTO_EMBED_URL: ""
MAIL_HOST: ""
MAIL_PORT: ""
MAIL_USER: ""
MAIL_PASS: ""
MAIL_FROM: ""
ADMIN_EMAIL: ""
---
apiVersion: v1
kind: Secret
metadata:
name: textbee-web-secrets
name: {{ .Values.globals.mongo_uri.secretName }}
namespace: {{ .Release.Namespace }}
type: Opaque
stringData:
AUTH_SECRET= # https://generate-secret.vercel.app/32
NEXT_PUBLIC_SITE_URL: http://localhost:80
NEXT_PUBLIC_GOOGLE_CLIENT_ID:
NEXT_PUBLIC_TAWKTO_EMBED_URL:
DATABASE_URL: mongodb://adminUser:adminPassword@textbee-db:27017/textbee?authSource=admin
MAIL_HOST:
MAIL_PORT:
MAIL_USER:
MAIL_PASS:
MAIL_FROM:
ADMIN_EMAIL:
uri: "" # mongodb://user:password@host:port/database
---
########################
# IMPORTANT #
########################
Create those secrets above!

1
charts/textbee/templates/_helpers.tpl

@ -46,7 +46,6 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
Selector labels
*/}}
{{- define "textbee.selectorLabels" -}}
app.kubernetes.io/name: {{ include "textbee.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

79
charts/textbee/templates/deployment.yaml → charts/textbee/templates/api-deployment.yaml

@ -1,9 +1,9 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "textbee.fullname" .}}-api
labels:
app: {{ include "textbee.fullname" .}}-api
{{- include "textbee.labels" . | nindent 4 }}
spec:
{{- if not .Values.api.autoscaling.enabled }}
@ -11,42 +11,26 @@ spec:
{{- end }}
selector:
matchLabels:
{{- include "textbee.selectorLabels" . | nindent 6 }}
app: {{ include "textbee.fullname" .}}-api
template:
metadata:
{{- with .Values.api.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "textbee.labels" . | nindent 8 }}
{{- with .Values.api.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
app: {{ include "textbee.fullname" .}}-api
spec:
containers:
{{- with .Values.api.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
- name: {{ .Chart.Name }}-api
{{- with .Values.api.securityContext }}
securityContext:
{{- toYaml . | nindent 12 }}
{{- end }}
- name: {{ include "textbee.fullname" .}}-api
image: "{{ .Values.api.image.repository }}:{{ .Values.api.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.api.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.api.service.port }}
protocol: TCP
env:
- name: PORT
value: "{{ .Values.api.service.port }}"
{{- if .Values.web.enabled }}
- name: FRONTEND_URL
value: "http://{{ include "textbee.fullname" .}}-web:{{ .Values.web.service.port }}"
{{- end}}
{{- if .Values.api.redis.enabled }}
- name: REDIS_URL
value: "{{ .Values.api.redis.dsn }}"
@ -56,13 +40,14 @@ spec:
- name: USE_SMS_QUEUE
value: "false"
{{- end }}
{{- if .Values.web.enabled }}
- name: FRONTEND_URL
value: "http://{{ include "textbee.fullname" .}}-web:{{ .Values.web.service.port }}"
{{- end}}
- name: MONGO_URI
valueFrom:
secretKeyRef:
name: {{ .Values.globals.mongo_uri.secretName }}
key: {{ .Values.globals.mongo_uri.secretKey }}
envFrom:
- secretRef:
name: {{ include "textbee.fullname" .}}-api-secrets
name: {{ .Values.api.envSecretName | default (include "textbee.fullname" .) }}-api-secrets
{{- with .Values.api.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
@ -94,38 +79,4 @@ spec:
{{- with .Values.api.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
---
{{- if .Values.web.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "textbee.fullname" .}}-web
labels:
{{- include "textbee.labels" . | nindent 4 }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ include "textbee.fullname" .}}-web
template:
metadata:
labels:
app: {{ include "textbee.fullname" .}}-web
spec:
containers:
- name: {{ include "textbee.fullname" .}}-web
image: "{{ .Values.web.image.repository }}:{{ .Values.web.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.api.image.pullPolicy }}
ports:
- containerPort: {{ .Values.web.service.port }}
env:
- name: PORT
value: "{{ .Values.web.service.port }}"
- name: NEXT_PUBLIC_API_BASE_URL
value: "http://{{ include "textbee.fullname" .}}-api:{{ .Values.web.service.port }}/api/v1"
envFrom:
- secretRef:
name: {{ include "textbee.fullname" .}}-web-secrets
{{- end }}
{{- end }}

32
charts/textbee/templates/api-hpa.yaml

@ -0,0 +1,32 @@
{{- if .Values.api.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "textbee.fullname" . }}-api-hpa
labels:
{{- include "textbee.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "textbee.fullname" . }}-api
minReplicas: {{ .Values.api.autoscaling.minReplicas }}
maxReplicas: {{ .Values.api.autoscaling.maxReplicas }}
metrics:
{{- if .Values.api.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.api.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.api.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.api.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}

43
charts/textbee/templates/api-ingress.yaml

@ -0,0 +1,43 @@
{{- if .Values.api.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-{{ include "textbee.fullname" . }}-api
labels:
{{- include "textbee.labels" . | nindent 4 }}
{{- with .Values.api.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- with .Values.api.ingress.className }}
ingressClassName: {{ . }}
{{- end }}
{{- if .Values.api.ingress.tls }}
tls:
{{- range .Values.api.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.api.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- with .pathType }}
pathType: {{ . }}
{{- end }}
backend:
service:
name: svc-{{ include "textbee.fullname" $ }}-api
port:
number: {{ $.Values.api.service.port }}
{{- end }}
{{- end }}
{{- end }}

21
charts/textbee/templates/api-service.yaml

@ -0,0 +1,21 @@
apiVersion: v1
kind: Service
metadata:
name: svc-{{ include "textbee.fullname" .}}-api
labels:
app: textbee-api
{{- include "textbee.labels" . | nindent 4 }}
{{- if .Values.api.service.labels }}
{{- toYaml .Values.api.service.labels | nindent 4 }}
{{- end }}
{{- if .Values.api.service.annotations }}
annotations:
{{- toYaml .Values.api.service.annotations | nindent 4 }}
{{- end }}
spec:
selector:
app: {{ include "textbee.fullname" .}}-api
ports:
- port: {{ .Values.api.service.port }}
targetPort: {{ .Values.api.service.port }}
type: {{ .Values.api.service.type }}

4
charts/textbee/templates/hpa.yaml

@ -2,14 +2,14 @@
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "textbee.fullname" . }}
name: {{ include "textbee.fullname" . }}-api-hpa
labels:
{{- include "textbee.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "textbee.fullname" . }}
name: {{ include "textbee.fullname" . }}-api
minReplicas: {{ .Values.api.autoscaling.minReplicas }}
maxReplicas: {{ .Values.api.autoscaling.maxReplicas }}
metrics:

88
charts/textbee/templates/ingress.yaml

@ -1,88 +0,0 @@
{{- if .Values.api.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "textbee.fullname" . }}
labels:
{{- include "textbee.labels" . | nindent 4 }}
{{- with .Values.api.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- with .Values.api.ingress.className }}
ingressClassName: {{ . }}
{{- end }}
{{- if .Values.api.ingress.tls }}
tls:
{{- range .Values.api.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.api.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- with .pathType }}
pathType: {{ . }}
{{- end }}
backend:
service:
name: {{ include "textbee.fullname" $ }}
port:
number: {{ $.Values.api.service.port }}
{{- end }}
{{- end }}
{{- end }}
---
{{- if .Values.web.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "textbee.fullname" . }}
labels:
{{- include "textbee.labels" . | nindent 4 }}
{{- with .Values.web.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- with .Values.api.ingress.className }}
ingressClassName: {{ . }}
{{- end }}
{{- if .Values.web.ingress.tls }}
tls:
{{- range .Values.web.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.web.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- with .pathType }}
pathType: {{ . }}
{{- end }}
backend:
service:
name: {{ include "textbee.fullname" $ }}
port:
number: {{ $.Values.web.service.port }}
{{- end }}
{{- end }}
{{- end }}

41
charts/textbee/templates/service.yaml

@ -1,41 +0,0 @@
---
{{- if .Values.web.service.enabled -}}
apiVersion: v1
kind: Service
metadata:
name: {{ include "textbee.fullname" . }}-web
labels:
{{- include "textbee.labels" . | nindent 4 }}
spec:
selector:
app: {{ include "textbee.fullname" . }}-web
{{- if .Values.web.service.annotations }}
annotations:
{{- toYaml .Values.web.service.annotations | nindent 4 }}
{{- end }}
ports:
- port: {{ .Values.web.service.port | default 80 }}
targetPort: {{ .Values.web.service.targetPort | default 80 }}
type: {{ .Values.web.service.type | default "ClusterIP" }}
{{- end }}
---
{{- if .Values.api.service.enabled -}}
apiVersion: v1
kind: Service
metadata:
name: {{ include "textbee.fullname" . }}-api
labels:
{{- include "textbee.labels" . | nindent 4 }}
spec:
selector:
app: {{ include "textbee.fullname" . }}-web
{{- if .Values.api.service.annotations }}
annotations:
{{- toYaml .Values.api.service.annotations | nindent 4 }}
{{- end }}
ports:
- port: {{ .Values.api.service.port | default 80 }}
targetPort: {{ .Values.api.service.targetPort | default 80 }}
type: {{ .Values.api.service.type | default "ClusterIP" }}
{{- end }}

74
charts/textbee/templates/web-deployment.yaml

@ -0,0 +1,74 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "textbee.fullname" .}}-web
labels:
app: {{ include "textbee.fullname" .}}-web
{{- include "textbee.labels" . | nindent 4 }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ include "textbee.fullname" .}}-web
template:
metadata:
labels:
app: {{ include "textbee.fullname" .}}-web
spec:
containers:
- name: {{ include "textbee.fullname" .}}-web
image: "{{ .Values.web.image.repository }}:{{ .Values.web.image.tag | default .Chart.AppVersion }}"
ports:
- name: http
containerPort: {{ .Values.web.service.port }}
env:
- name: HOSTNAME
value: 0.0.0.0
{{- if .Values.web.ingress.enabled }}
- name: NEXT_PUBLIC_SITE_URL
value: "https://{{ .Values.web.ingress.url }}"
{{- end }}
- name: PORT
value: "{{ .Values.web.service.port }}"
- name: NEXT_PUBLIC_API_BASE_URL
value: "http://{{ include "textbee.fullname" .}}-api:{{ .Values.web.service.port }}/api/v1"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: {{ .Values.globals.mongo_uri.secretName | default (include "textbee.fullname" .) }}-mongo-uri
key: {{ .Values.globals.mongo_uri.secretKey }}
envFrom:
- secretRef:
name: {{ .Values.web.envSecretName | default (include "textbee.fullname" .) }}-web-secrets
{{- with .Values.web.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.web.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.web.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.web.volumeMounts }}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.web.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.web.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.web.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.web.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

43
charts/textbee/templates/web-ingress.yaml

@ -0,0 +1,43 @@
{{- if .Values.web.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-{{ include "textbee.fullname" . }}-web
labels:
{{- include "textbee.labels" . | nindent 4 }}
{{- with .Values.web.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- with .Values.web.ingress.className }}
ingressClassName: {{ . }}
{{- end }}
{{- if .Values.web.ingress.tls }}
tls:
{{- range .Values.web.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.web.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- with .pathType }}
pathType: {{ . }}
{{- end }}
backend:
service:
name: svc-{{ include "textbee.fullname" $ }}-web
port:
number: {{ $.Values.web.service.port }}
{{- end }}
{{- end }}
{{- end }}

21
charts/textbee/templates/web-service.yaml

@ -0,0 +1,21 @@
apiVersion: v1
kind: Service
metadata:
name: svc-{{ include "textbee.fullname" .}}-web
labels:
app: {{ include "textbee.fullname" .}}-web
{{- include "textbee.labels" . | nindent 4 }}
{{- if .Values.web.service.labels }}
{{- toYaml .Values.web.service.labels | nindent 4 }}
{{- end }}
{{- if .Values.web.service.annotations }}
annotations:
{{- toYaml .Values.web.service.annotations | nindent 4 }}
{{- end }}
spec:
selector:
app: {{ include "textbee.fullname" .}}-web
ports:
- port: {{ .Values.web.service.port }}
targetPort: {{ .Values.web.service.port }}
type: {{ .Values.web.service.type }}

123
charts/textbee/values.yaml

@ -1,6 +1,12 @@
api:
globals:
mongo_uri:
secretName: "textbee-mongo-uri-secret"
secretKey: "uri"
api:
# This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
replicaCount: 1
# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/
image:
repository: ghcr.io/vernu/textbee/api
# This sets the pull policy for images.
@ -8,23 +14,18 @@ api:
# Overrides the image tag whose default is the chart appVersion.
tag: ""
# enable SMS queueing
redis:
enabled: false
dsn: "redis://localhost:6379"
# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
imagePullSecrets: []
# This is to override the chart name.
nameOverride: ""
fullnameOverride: ""
# Redis enabled means API SMS QUEUE is enabled.
redis:
enabled: true
dsn: ""
# This is the name of the secret that contains the environment variables for the API.
# If not set, it will default to the chart name with '-env' suffix.
envSecretName: ""
# This is for setting Kubernetes Annotations to a Pod.
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
podAnnotations: {}
@ -50,7 +51,9 @@ api:
# This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports
port: 80
annotations: {}
labels: {}
# service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp"
# service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012"
# service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress:
@ -95,7 +98,7 @@ api:
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
@ -119,24 +122,108 @@ api:
affinity: {}
web:
enabled: false
# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/
image:
repository: ghcr.io/vernu/textbee/web
repository: ghcr.io/vernu/textbee/api
# This sets the pull policy for images.
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
imagePullSecrets: []
# This is for setting Kubernetes Annotations to a Pod.
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
podAnnotations: {}
# This is for setting Kubernetes Labels to a Pod.
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
podLabels: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
# This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/
service:
# This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
type: ClusterIP
# This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports
port: 80
labels: {}
annotations: {}
# service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp"
# service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012"
# service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.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
# This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
# This section is for setting up autoscaling more information can be found here: https://kubernetes.io/docs/concepts/workloads/autoscaling/
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
# Additional volumes on the output Deployment definition.
volumes: []
# - name: foo
# secret:
# secretName: mysecret
# optional: false
# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
# - name: foo
# mountPath: "/etc/foo"
# readOnly: true
nodeSelector: {}
tolerations: []
affinity: {}
Loading…
Cancel
Save