renovate/lib/modules/manager/kubernetes/__fixtures__/complex.yaml

256 lines
9.0 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "call-nested" (list . "prosody" "prosody.fullname") }}-common
labels:
{{- include "jitsi-meet.labels" . | nindent 4 }}
data:
ENABLE_AUTH: {{ ternary "1" "0" .Values.enableAuth | quote }}
ENABLE_GUESTS: {{ ternary "1" "0" .Values.enableGuests | quote }}
PUBLIC_URL: {{ include "jitsi-meet.publicURL" . }}
XMPP_DOMAIN: {{ include "jitsi-meet.xmpp.domain" . }}
XMPP_MUC_DOMAIN: {{ .Values.xmpp.mucDomain | default (printf "muc.%s" (include "jitsi-meet.xmpp.domain" .)) }}
XMPP_AUTH_DOMAIN: {{ .Values.xmpp.authDomain | default (printf "auth.%s" (include "jitsi-meet.xmpp.domain" .)) }}
XMPP_GUEST_DOMAIN: {{ .Values.xmpp.guestDomain | default (printf "guest.%s" (include "jitsi-meet.xmpp.domain" .)) }}
XMPP_RECORDER_DOMAIN: {{ .Values.xmpp.recorderDomain | default (printf "recorder.%s" (include "jitsi-meet.xmpp.domain" .)) }}
XMPP_INTERNAL_MUC_DOMAIN: {{ .Values.xmpp.internalMucDomain | default (printf "internal-muc.%s" (include "jitsi-meet.xmpp.domain" .)) }}
{{- if or .Values.websockets.colibri.enabled }}
ENABLE_COLIBRI_WEBSOCKET: 'true'
# TODO: rework into a proper regex or dynamic name list
ENABLE_COLIBRI_WEBSOCKET_UNSAFE_REGEX: '1'
{{- else }}
ENABLE_SCTP: 'true'
ENABLE_COLIBRI_WEBSOCKET: 'false'
JVB_PREFER_SCTP: 'true'
{{- end }}
{{- if .Values.websockets.xmpp.enabled }}
ENABLE_XMPP_WEBSOCKET: 'true'
{{- else }}
ENABLE_XMPP_WEBSOCKET: 'false'
{{- end }}
{{- if .Values.jibri.enabled }}
{{- if .Values.jibri.recording }}
ENABLE_RECORDING: "true"
ENABLE_FILE_RECORDING_SERVICE_SHARING: "true"
{{- end }}
{{- if .Values.jibri.livestreaming }}
ENABLE_LIVESTREAMING: "true"
{{- end }}
{{- end }}
TZ: '{{ .Values.tz }}'
{{- range $key, $value := .Values.extraCommonEnvs }}
{{- if not (kindIs "invalid" $value) }}
{{ $key }}: {{ tpl $value $ | quote }}
{{- end }}
{{- end }}
{{- if .Values.octo.enabled }}
ENABLE_OCTO: "1"
TESTING_OCTO_PROBABILITY: "1"
DEPLOYMENTINFO_REGION: "all"
DEPLOYMENTINFO_USERREGION: "all"
{{- end }}
---
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "jitsi-meet.web.fullname" . }}-test-connection"
labels:
{{- include "jitsi-meet.web.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "jitsi-meet.web.fullname" . }}:{{ .Values.web.service.port }}']
restartPolicy: Never
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "jitsi-meet.jvb.fullname" . }}
labels:
{{- include "jitsi-meet.jvb.labels" . | nindent 4 }}
{{- with .Values.jvb.annotations }}
annotations:
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.jvb.replicaCount }}
selector:
matchLabels:
{{- include "jitsi-meet.jvb.selectorLabels" . | nindent 6 }}
{{- if .Values.jvb.useHostPort }}
strategy:
type: Recreate
{{- end }}
template:
metadata:
labels:
{{- include "jitsi-meet.jvb.selectorLabels" . | nindent 8 }}
{{- range $label, $value := mergeOverwrite .Values.global.podLabels .Values.jvb.podLabels }}
{{ $label }}: {{ $value }}
{{- end }}
annotations:
checksum/config: {{ include (print $.Template.BasePath "/jvb/configmap.yaml") . | sha256sum }}
checksum/secret: {{ include (print $.Template.BasePath "/jvb/xmpp-secret.yaml") . | sha256sum }}
{{- if and .Values.jvb.metrics.enabled .Values.jvb.metrics.prometheusAnnotations }}
prometheus.io/port: "9888"
prometheus.io/scrape: "true"
{{- end }}
{{- range $annotation, $value := mergeOverwrite .Values.global.podAnnotations .Values.jvb.podAnnotations }}
{{ $annotation }}: {{ $value|quote }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "jitsi-meet.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.jvb.podSecurityContext | nindent 8 }}
{{- if .Values.jvb.useHostNetwork }}
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
{{- end }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.jvb.securityContext | nindent 12 }}
image: "{{ .Values.jvb.image.repository }}:{{ default .Chart.AppVersion .Values.jvb.image.tag }}"
imagePullPolicy: {{ pluck "pullPolicy" .Values.jvb.image .Values.image | first }}
envFrom:
- secretRef:
name: {{ include "call-nested" (list . "prosody" "prosody.fullname") }}-jvb
- configMapRef:
name: {{ include "call-nested" (list . "prosody" "prosody.fullname") }}-common
- configMapRef:
name: {{ include "jitsi-meet.jvb.fullname" . }}
{{- if .Values.global.releaseSecretsOverride.enabled }}
{{- range .Values.global.releaseSecretsOverride.extraEnvFrom }}
- {{ tpl (toYaml . ) $ | indent 12 | trim }}
{{- end }}
{{- end }}
env:
{{- if or .Values.jvb.useNodeIP .Values.jvb.publicIPs }}
- name: DOCKER_HOST_ADDRESS
{{- if .Values.jvb.publicIPs }}
value: {{ first .Values.jvb.publicIPs }}
{{- else }}
valueFrom:
fieldRef:
fieldPath: status.hostIP
{{- end }}
- name: JVB_ADVERTISE_IPS
{{- if .Values.jvb.publicIPs }}
value: {{ .Values.jvb.publicIPs | join "," }}
{{- else }}
valueFrom:
fieldRef:
fieldPath: status.hostIP
{{- end }}
{{- else }}
{{- fail "(jvb.publicIPs | jvb.useNodeIP) Please set an external IP addresses for JVB(s) or enable the Node IP autodetection!" }}
{{- end }}
{{- if .Values.websockets.colibri.enabled }}
- name: JVB_WS_SERVER_ID
valueFrom:
fieldRef:
fieldPath: status.podIP
{{- end }}
{{- if .Values.octo.enabled }}
- name: JVB_OCTO_BIND_ADDRESS
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: JVB_OCTO_RELAY_ID
valueFrom:
fieldRef:
fieldPath: status.podIP
{{- end }}
ports:
- name: rtp-udp
containerPort: {{ .Values.jvb.UDPPort }}
{{- if .Values.jvb.useHostPort }}
hostPort: {{ .Values.jvb.UDPPort }}
{{- end }}
protocol: UDP
{{- if .Values.websockets.colibri.enabled }}
- name: colibri-ws-tcp
containerPort: 9090
protocol: TCP
{{- end }}
{{- if .Values.octo.enabled }}
- name: octo
containerPort: 4096
protocol: TCP
{{- end }}
{{- with .Values.jvb.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.jvb.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.jvb.resources | nindent 12 }}
{{- with .Values.jvb.extraVolumeMounts }}
volumeMounts:
{{- toYaml . | nindent 10 }}
{{- end }}
{{- if .Values.jvb.metrics.enabled }}
- name: metrics
image: {{ .Values.jvb.metrics.image.repository }}:{{ .Values.jvb.metrics.image.tag }}
imagePullPolicy: {{ .Values.jvb.metrics.image.pullPolicy }}
securityContext:
runAsUser: 10001
command:
- /prometheus-jitsi-meet-exporter
- -videobridge-url
- http://localhost:8080/colibri/stats
ports:
- containerPort: 9888
name: tcp-metrics
protocol: TCP
readinessProbe:
httpGet:
path: /health
port: 9888
initialDelaySeconds: 3
periodSeconds: 5
resources:
{{- toYaml .Values.jvb.metrics.resources | nindent 12 }}
{{- end }}
{{- with .Values.jvb.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if or .Values.jvb.useHostPort .Values.jvb.affinity }}
affinity:
{{- if .Values.jvb.affinity }}
{{- toYaml .Values.jvb.affinity | nindent 8 }}
{{- else }}
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/component
operator: In
values:
- jvb
topologyKey: "kubernetes.io/hostname"
{{- end }}
{{- end }}
{{- with .Values.jvb.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.jvb.extraVolumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}