Skip to content

Commit

Permalink
v6 release (#6)
Browse files Browse the repository at this point in the history
* Chart v6 (#4)

Configuration simplifications and description improvements

Co-authored-by: Sergey Bespalov <bespalov_sm@srvhub.ru>
Co-authored-by: Sergey Bespalov <serg-bs@yandex.ru>
  • Loading branch information
3 people authored Dec 20, 2020
1 parent 3588499 commit e8eb262
Show file tree
Hide file tree
Showing 12 changed files with 323 additions and 158 deletions.
4 changes: 2 additions & 2 deletions charts/centrifugo/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: v1
name: centrifugo
description: Centrifugo is a scalable real-time messaging server in language-agnostic way
version: 5.0.3
appVersion: 2.7.2
version: 6.0.0
appVersion: 2.8.0
home: https://centrifugal.github.io/centrifugo/
icon: https://centrifugal.github.io/centrifugo/images/favicon.png
maintainers:
Expand Down
128 changes: 104 additions & 24 deletions charts/centrifugo/README.md

Large diffs are not rendered by default.

49 changes: 49 additions & 0 deletions charts/centrifugo/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,52 @@ Allow the release namespace to be overridden for multi-namespace deployments in
{{- .Release.Namespace -}}
{{- end -}}
{{- end -}}

{{- define "centrifugo.image" -}}
{{- $registryName := .Values.image.registry -}}
{{- $repositoryName := .Values.image.repository -}}
{{- $tag := coalesce .Values.image.tag (printf "v%s" .Chart.AppVersion ) | toString -}}
{{- if .Values.global -}}
{{- if .Values.global.imageRegistry }}
{{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
{{- else -}}
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
{{- end -}}
{{- else -}}
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
{{- end -}}
{{- end -}}

{{/*
Return the proper Docker Image Registry Secret Names
*/}}
{{- define "centrifugo.imagePullSecrets" -}}
{{- if .Values.global }}
{{- if .Values.global.imagePullSecrets }}
imagePullSecrets:
{{- range .Values.global.imagePullSecrets }}
- name: {{ . }}
{{- end }}
{{- else if .Values.image.pullSecrets}}
imagePullSecrets:
{{- range .Values.image.pullSecrets }}
- name: {{ . }}
{{- end }}
{{- end -}}
{{- else if .Values.image.pullSecrets }}
imagePullSecrets:
{{- range .Values.image.pullSecrets }}
- name: {{ . }}
{{- end }}
{{- end -}}
{{- end -}}

{{- define "centrifugo.secretName" -}}
{{- if .Values.existingSecret -}}
{{- printf "%s" (tpl .Values.existingSecret $) -}}
{{- else -}}
{{- printf "%s" (include "centrifugo.fullname" .) -}}
{{- end -}}
{{- end -}}


2 changes: 1 addition & 1 deletion charts/centrifugo/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ metadata:
{{- include "centrifugo.labels" . | nindent 4 }}
data:
config.json: |-
{{ toJson .Values.centrifugo.config| indent 4 }}
{{ toJson .Values.config| indent 4 }}
57 changes: 27 additions & 30 deletions charts/centrifugo/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@ spec:
labels:
{{- include "centrifugo.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- include "centrifugo.imagePullSecrets" . | indent 6 }}
serviceAccountName: {{ include "centrifugo.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
Expand All @@ -43,81 +40,81 @@ spec:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ if .Values.image.tag }}{{ .Values.image.tag }}{{ else }}v{{ .Chart.AppVersion }}{{ end }}"
image: {{ include "centrifugo.image" .}}
imagePullPolicy: {{ .Values.image.pullPolicy }}
command:
- centrifugo
args:
- --health
- --prometheus
- --port
- "{{ .Values.centrifugo.ports.external }}"
- "{{ .Values.service.port }}"
- --internal_port
- "{{ .Values.centrifugo.ports.internal }}"
- "{{ .Values.internalService.port }}"
- --grpc_api
- --grpc_api_port
- "{{ .Values.centrifugo.ports.grpc }}"
- "{{ .Values.grpcService.port }}"
env:
- name: CENTRIFUGO_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: admin_password
- name: CENTRIFUGO_ADMIN_SECRET
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: admin_secret
{{- if .Values.centrifugo.secrets.tokenHmacSecretKey }}
{{- if .Values.secrets.tokenHmacSecretKey }}
- name: CENTRIFUGO_TOKEN_HMAC_SECRET_KEY
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: token_hmac_secret_key
{{- end }}
{{- if .Values.centrifugo.secrets.apiKey }}
{{- if .Values.secrets.apiKey }}
- name: CENTRIFUGO_API_KEY
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: api_key
{{- end }}
{{- if .Values.centrifugo.secrets.grpcApiKey }}
{{- if .Values.secrets.grpcApiKey }}
- name: CENTRIFUGO_GRPC_API_KEY
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: grpc_api_key
{{- end }}
{{- if .Values.centrifugo.secrets.redisUrl }}
{{- if .Values.secrets.redisUrl }}
- name: CENTRIFUGO_REDIS_URL
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: redis_url
{{- end }}
{{- if .Values.centrifugo.secrets.redisPassword }}
{{- if .Values.secrets.redisPassword }}
- name: CENTRIFUGO_REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: redis_password
{{- end }}
{{- if .Values.centrifugo.secrets.redisSentinelPassword }}
{{- if .Values.secrets.redisSentinelPassword }}
- name: CENTRIFUGO_REDIS_SENTINEL_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: redis_sentinel_password
{{- end }}
{{- if .Values.centrifugo.secrets.natsUrl }}
{{- if .Values.secrets.natsUrl }}
- name: CENTRIFUGO_NATS_URL
valueFrom:
secretKeyRef:
name: {{ include "centrifugo.fullname" . }}
name: {{ include "centrifugo.secretName" . }}
key: nats_url
{{- end }}
{{- range $key, $value := .Values.centrifugo.env }}
{{- range $key, $value := .Values.env }}
- name: {{ $key }}
value: {{ $value }}
{{- end }}
Expand All @@ -127,21 +124,21 @@ spec:
readOnly: true
ports:
- name: external
containerPort: {{ .Values.centrifugo.ports.external }}
containerPort: {{ .Values.service.port }}
- name: internal
containerPort: {{ .Values.centrifugo.ports.internal }}
containerPort: {{ .Values.internalService.port }}
- name: grpc
containerPort: {{ .Values.centrifugo.ports.grpc }}
containerPort: {{ .Values.grpcService.port }}
livenessProbe:
httpGet:
path: /health
port: {{ .Values.centrifugo.ports.internal }}
port: {{ .Values.internalService.port }}
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: {{ .Values.centrifugo.ports.internal }}
port: {{ .Values.internalService.port }}
initialDelaySeconds: 3
periodSeconds: 10
resources:
Expand Down
2 changes: 1 addition & 1 deletion charts/centrifugo/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "centrifugo.fullname" . -}}
{{- $namespace := include "centrifugo.namespace" . -}}
{{- $svcPort := .Values.service.externalPort -}}
{{- $svcPort := .Values.service.port -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
Expand Down
38 changes: 20 additions & 18 deletions charts/centrifugo/templates/secret.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{- if not .Values.existingSecret }}
apiVersion: v1
kind: Secret
metadata:
Expand All @@ -7,34 +8,35 @@ metadata:
{{- include "centrifugo.labels" . | nindent 4 }}
type: Opaque
data:
{{- if .Values.centrifugo.secrets.tokenHmacSecretKey }}
token_hmac_secret_key: {{ .Values.centrifugo.secrets.tokenHmacSecretKey | b64enc | quote }}
{{- if .Values.secrets.tokenHmacSecretKey }}
token_hmac_secret_key: {{ .Values.secrets.tokenHmacSecretKey | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.apiKey }}
api_key: {{ .Values.centrifugo.secrets.apiKey | b64enc | quote }}
{{- if .Values.secrets.apiKey }}
api_key: {{ .Values.secrets.apiKey | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.grpcApiKey }}
grpc_api_key: {{ .Values.centrifugo.secrets.grpcApiKey | b64enc | quote }}
{{- if .Values.secrets.grpcApiKey }}
grpc_api_key: {{ .Values.secrets.grpcApiKey | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.adminPassword }}
admin_password: {{ .Values.centrifugo.secrets.adminPassword | b64enc | quote }}
{{- if .Values.secrets.adminPassword }}
admin_password: {{ .Values.secrets.adminPassword | b64enc | quote }}
{{- else }}
admin_password: {{ randAlphaNum 12 | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.adminSecret }}
admin_secret: {{ .Values.centrifugo.secrets.adminSecret | b64enc | quote }}
{{- if .Values.secrets.adminSecret }}
admin_secret: {{ .Values.secrets.adminSecret | b64enc | quote }}
{{- else }}
admin_secret: {{ randAlphaNum 24 | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.redisUrl }}
redis_url: {{ .Values.centrifugo.secrets.redisUrl | b64enc | quote }}
{{- if .Values.secrets.redisUrl }}
redis_url: {{ .Values.secrets.redisUrl | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.redisPassword }}
redis_password: {{ .Values.centrifugo.secrets.redisPassword | b64enc | quote }}
{{- if .Values.secrets.redisPassword }}
redis_password: {{ .Values.secrets.redisPassword | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.redisSentinelPassword }}
redis_sentinel_password: {{ .Values.centrifugo.secrets.redisSentinelPassword | b64enc | quote }}
{{- if .Values.secrets.redisSentinelPassword }}
redis_sentinel_password: {{ .Values.secrets.redisSentinelPassword | b64enc | quote }}
{{- end }}
{{- if .Values.centrifugo.secrets.natsUrl }}
nats_url: {{ .Values.centrifugo.secrets.natsUrl | b64enc | quote }}
{{- if .Values.secrets.natsUrl }}
nats_url: {{ .Values.secrets.natsUrl | b64enc | quote }}
{{- end }}
{{- end }}
2 changes: 1 addition & 1 deletion charts/centrifugo/templates/service-grpc-api.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{{- if .Values.grpcService.enabled -}}
{{- if .Values.service.useSeparateGrpcService -}}
apiVersion: v1
kind: Service
metadata:
Expand Down
2 changes: 1 addition & 1 deletion charts/centrifugo/templates/service-internal.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{{- if .Values.internalService.enabled -}}
{{- if .Values.service.useSeparateInternalService -}}
apiVersion: v1
kind: Service
metadata:
Expand Down
26 changes: 13 additions & 13 deletions charts/centrifugo/templates/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,30 @@ metadata:
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.externalPort }}
- port: {{ .Values.service.port }}
targetPort: external
protocol: TCP
name: external
{{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.externalNodePort))) }}
nodePort: {{ .Values.service.externalNodePort }}
{{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}
{{- if not .Values.internalService.enabled }}
- port: {{ .Values.service.internalPort }}
{{- if not .Values.service.useSeparateInternalService }}
- port: {{ .Values.internalService.port }}
targetPort: internal
protocol: TCP
name: internal
{{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.internalNodePort))) }}
nodePort: {{ .Values.service.internalNodePort }}
{{- if (and (eq .Values.internalService.type "NodePort") (not (empty .Values.internalService.nodePort))) }}
nodePort: {{ .Values.internalService.nodePort }}
{{- end }}
{{- end }}
{{- if not .Values.grpcService.enabled }}
- port: {{ .Values.service.grpcPort }}
{{- end }}
{{- if not .Values.service.useSeparateGrpcService }}
- port: {{ .Values.grpcService.port }}
targetPort: grpc
protocol: TCP
name: grpc
{{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.grpcNodePort))) }}
nodePort: {{ .Values.service.grpcNodePort }}
{{- if (and (eq .Values.grpcService.type "NodePort") (not (empty .Values.grpcService.nodePort))) }}
nodePort: {{ .Values.grpcService.nodePort }}
{{- end }}
{{- end }}
{{- end }}
selector:
{{- include "centrifugo.selectorLabels" . | nindent 4 }}
23 changes: 16 additions & 7 deletions charts/centrifugo/templates/servicemonitor.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
{{- if .Values.serviceMonitor.enabled }}
{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "centrifugo.fullname" . }}
{{- if .Values.serviceMonitor.namespace }}
namespace: {{ .Values.serviceMonitor.namespace }}
{{- if .Values.metrics.serviceMonitor.namespace }}
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
{{- end }}
labels:
{{- include "centrifugo.labels" . | nindent 4 }}
{{- range $key, $value := .Values.serviceMonitor.labels }}
{{- range $key, $value := .Values.metrics.serviceMonitor.additionalLabels }}
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
endpoints:
- port: internal
{{- if .Values.serviceMonitor.interval }}
interval: {{ .Values.serviceMonitor.interval }}
- port: metrics
{{- if .Values.metrics.serviceMonitor.interval }}
interval: {{ .Values.metrics.serviceMonitor.interval }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.honorLabels }}
honorLabels: {{ .Values.metrics.serviceMonitor.honorLabels }}
{{- end }}
{{- if .Values.metrics.serviceMonitor.relabellings }}
metricRelabelings: {{- toYaml .Values.metrics.serviceMonitor.relabellings | nindent 6 }}
{{- end }}
selector:
matchLabels:
{{- include "centrifugo.selectorLabels" . | nindent 6 }}
Expand Down
Loading

0 comments on commit e8eb262

Please sign in to comment.