67 lines
3.1 KiB
YAML
67 lines
3.1 KiB
YAML
{{/*
|
|
Validation template to ensure external service configurations are provided when deploy: false
|
|
This template will fail the Helm deployment if external config is missing for required services
|
|
*/}}
|
|
{{- if not .Values.postgres.deploy }}
|
|
{{- if and (not .Values.postgres.external.databaseUrl) (not .Values.postgres.external.existingSecret) }}
|
|
{{- fail "PostgreSQL external configuration is required when postgres.deploy=false. Please provide either postgres.external.databaseUrl or postgres.external.existingSecret" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if not .Values.redis.deploy }}
|
|
{{- if not .Values.redis.external.host }}
|
|
{{- fail "Redis external configuration is required when redis.deploy=false. Please provide redis.external.host" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if not .Values.clickhouse.deploy }}
|
|
{{- if or (not .Values.clickhouse.external.host) (not .Values.clickhouse.external.username) }}
|
|
{{- fail "ClickHouse external configuration is required when clickhouse.deploy=false. Please provide clickhouse.external.host and clickhouse.external.username" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.s3.deploy }}
|
|
{{- if and (not .Values.s3.auth.existingSecret) (not .Values.s3.auth.accessKeyId) (not .Values.s3.auth.rootUser) }}
|
|
{{- fail "S3 auth credentials are required when s3.deploy=true. Please provide either s3.auth.accessKeyId, s3.auth.existingSecret, or s3.auth.rootUser" }}
|
|
{{- end }}
|
|
{{- else }}
|
|
{{- if not .Values.s3.external.endpoint }}
|
|
{{- fail "S3 external configuration is required when s3.deploy=false. Please provide s3.external.endpoint" }}
|
|
{{- end }}
|
|
{{- if and (not .Values.s3.external.existingSecret) (or (not .Values.s3.external.accessKeyId) (not .Values.s3.external.secretAccessKey)) }}
|
|
{{- fail "S3 credentials are required when s3.deploy=false. Please provide either s3.external.existingSecret or both s3.external.accessKeyId and s3.external.secretAccessKey" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if not .Values.electric.deploy }}
|
|
{{- if not .Values.electric.external.url }}
|
|
{{- fail "Electric external configuration is required when electric.deploy=false. Please provide electric.external.url" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if and .Values.s2.deploy .Values.s2.external.endpoint }}
|
|
{{- fail "S2 configuration conflict: s2.external.endpoint is set but s2.deploy=true, so the external endpoint would be ignored. Set s2.deploy=false to use an external S2 endpoint, or clear s2.external.endpoint to use the bundled s2-lite." }}
|
|
{{- end }}
|
|
|
|
{{- if not .Values.registry.deploy }}
|
|
{{- if or (not .Values.registry.external.host) }}
|
|
{{- fail "Registry external configuration is required when registry.deploy=false. Please provide registry.external.host" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
This template produces no output but will fail the deployment if validation fails
|
|
*/}}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: {{ include "trigger-v4.fullname" . }}-external-config-validation
|
|
labels:
|
|
{{- include "trigger-v4.labels" . | nindent 4 }}
|
|
annotations:
|
|
helm.sh/hook: pre-install,pre-upgrade
|
|
helm.sh/hook-weight: "-10"
|
|
helm.sh/hook-delete-policy: before-hook-creation
|
|
data:
|
|
validation: "completed" |