388 lines
9.8 KiB
Smarty
388 lines
9.8 KiB
Smarty
{{- define "tc.v1.common.lib.deps.wait" -}}
|
|
{{- if .Values.redis.enabled -}}
|
|
{{- $container := include "tc.v1.common.lib.deps.wait.redis" $ | fromYaml -}}
|
|
{{- if $container -}}
|
|
{{- range .Values.workload -}}
|
|
{{- if not (hasKey .podSpec "initContainers") -}}
|
|
{{- $_ := set .podSpec "initContainers" dict -}}
|
|
{{- end -}}
|
|
{{- $_ := set .podSpec.initContainers "redis-wait" $container -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if .Values.mariadb.enabled -}}
|
|
{{- $container := include "tc.v1.common.lib.deps.wait.mariadb" $ | fromYaml -}}
|
|
{{- if $container -}}
|
|
{{- range .Values.workload -}}
|
|
{{- if not (hasKey .podSpec "initContainers") -}}
|
|
{{- $_ := set .podSpec "initContainers" dict -}}
|
|
{{- end -}}
|
|
{{- $_ := set .podSpec.initContainers "mariadb-wait" $container -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if .Values.mongodb.enabled -}}
|
|
{{- $container := include "tc.v1.common.lib.deps.wait.mongodb" $ | fromYaml -}}
|
|
{{- if $container -}}
|
|
{{- range .Values.workload -}}
|
|
{{- if not (hasKey .podSpec "initContainers") -}}
|
|
{{- $_ := set .podSpec "initContainers" dict -}}
|
|
{{- end -}}
|
|
{{- $_ := set .podSpec.initContainers "mongodb-wait" $container -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if .Values.clickhouse.enabled -}}
|
|
{{- $container := include "tc.v1.common.lib.deps.wait.clickhouse" $ | fromYaml -}}
|
|
{{- if $container -}}
|
|
{{- range .Values.workload -}}
|
|
{{- if not (hasKey .podSpec "initContainers") -}}
|
|
{{- $_ := set .podSpec "initContainers" dict -}}
|
|
{{- end -}}
|
|
{{- $_ := set .podSpec.initContainers "clickhouse-wait" $container -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if .Values.solr.enabled -}}
|
|
{{- $container := include "tc.v1.common.lib.deps.wait.solr" $ | fromYaml -}}
|
|
{{- if $container -}}
|
|
{{- range .Values.workload -}}
|
|
{{- if not (hasKey .podSpec "initContainers") -}}
|
|
{{- $_ := set .podSpec "initContainers" dict -}}
|
|
{{- end -}}
|
|
{{- $_ := set .podSpec.initContainers "solr-wait" $container -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- $result := false -}}
|
|
{{- range .Values.cnpg -}}
|
|
{{- if .enabled -}}
|
|
{{- $result = true -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if $result -}}
|
|
{{- $container := include "tc.v1.common.lib.deps.wait.cnpg" $ | fromYaml -}}
|
|
{{- if $container -}}
|
|
{{- range $.Values.workload -}}
|
|
{{- if not (hasKey .podSpec "initContainers") -}}
|
|
{{- $_ := set .podSpec "initContainers" dict -}}
|
|
{{- end -}}
|
|
{{- $_ := set .podSpec.initContainers "cnpg-wait" $container -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- define "tc.v1.common.lib.deps.wait.redis" -}}
|
|
enabled: true
|
|
type: system
|
|
imageSelector: redisClientImage
|
|
securityContext:
|
|
runAsUser: 568
|
|
runAsGroup: 568
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
allowPrivilegeEscalation: false
|
|
privileged: false
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
capabilities:
|
|
add: []
|
|
drop:
|
|
- ALL
|
|
env:
|
|
REDIS_HOST:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "rediscreds" }}'
|
|
key: plainhost
|
|
REDIS_PASSWORD:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "rediscreds" }}'
|
|
key: redis-password
|
|
REDIS_PORT: "6379"
|
|
command:
|
|
- "/bin/sh"
|
|
- "-c"
|
|
- |
|
|
/bin/bash <<'EOF'
|
|
echo "Executing DB waits..."
|
|
[[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD";
|
|
export LIVE=false;
|
|
until "$LIVE";
|
|
do
|
|
response=$(
|
|
timeout -s 3 2 \
|
|
redis-cli \
|
|
-h "$REDIS_HOST" \
|
|
-p "$REDIS_PORT" \
|
|
ping
|
|
)
|
|
if [ "$response" == "PONG" ] || [ "$response" == "LOADING Redis is loading the dataset in memory" ]; then
|
|
LIVE=true
|
|
echo "$response"
|
|
echo "Redis Responded, ending initcontainer and starting main container(s)..."
|
|
else
|
|
echo "$response"
|
|
echo "Redis not responding... Sleeping for 10 sec..."
|
|
sleep 10
|
|
fi;
|
|
done
|
|
EOF
|
|
{{- end -}}
|
|
|
|
{{- define "tc.v1.common.lib.deps.wait.mariadb" -}}
|
|
enabled: true
|
|
type: system
|
|
imageSelector: mariadbClientImage
|
|
securityContext:
|
|
runAsUser: 568
|
|
runAsGroup: 568
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
allowPrivilegeEscalation: false
|
|
privileged: false
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
capabilities:
|
|
add: []
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
env:
|
|
MARIADB_HOST:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "mariadbcreds" }}'
|
|
key: plainhost
|
|
MARIADB_ROOT_PASSWORD:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "mariadbcreds" }}'
|
|
key: mariadb-root-password
|
|
command:
|
|
- "/bin/sh"
|
|
- "-c"
|
|
- |
|
|
/bin/bash <<'EOF'
|
|
echo "Executing DB waits..."
|
|
until
|
|
mysqladmin -uroot -h"${MARIADB_HOST}" -p"${MARIADB_ROOT_PASSWORD}" ping \
|
|
&& mysqladmin -uroot -h"${MARIADB_HOST}" -p"${MARIADB_ROOT_PASSWORD}" status;
|
|
do sleep 2;
|
|
done
|
|
EOF
|
|
{{- end -}}
|
|
|
|
{{- define "tc.v1.common.lib.deps.wait.mongodb" -}}
|
|
enabled: true
|
|
type: system
|
|
imageSelector: mongodbClientImage
|
|
securityContext:
|
|
runAsUser: 568
|
|
runAsGroup: 568
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
allowPrivilegeEscalation: false
|
|
privileged: false
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
capabilities:
|
|
add: []
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
env:
|
|
MONGODB_HOST:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "mongodbcreds" }}'
|
|
key: plainhost
|
|
MONGODB_DATABASE: "{{ .Values.mongodb.mongodbDatabase }}"
|
|
command:
|
|
- "/bin/sh"
|
|
- "-c"
|
|
- |
|
|
/bin/bash <<'EOF'
|
|
echo "Executing DB waits..."
|
|
until
|
|
HOME=/config && echo "db.runCommand(\"ping\")" | mongosh --host ${MONGODB_HOST} --port 27017 ${MONGODB_DATABASE} --quiet;
|
|
do sleep 2;
|
|
done
|
|
EOF
|
|
{{- end -}}
|
|
|
|
{{- define "tc.v1.common.lib.deps.wait.clickhouse" -}}
|
|
enabled: true
|
|
type: system
|
|
imageSelector: wgetImage
|
|
securityContext:
|
|
runAsUser: 568
|
|
runAsGroup: 568
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
allowPrivilegeEscalation: false
|
|
privileged: false
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
capabilities:
|
|
add: []
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
env:
|
|
CLICKHOUSE_PING:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "clickhousecreds" }}'
|
|
key: ping
|
|
command:
|
|
- "/bin/sh"
|
|
args:
|
|
- "-c"
|
|
- |
|
|
echo "Executing DB waits..."
|
|
until wget --quiet --tries=1 --spider "${CLICKHOUSE_PING}"; do
|
|
echo "ClickHouse - no response. Sleeping 2 seconds..."
|
|
sleep 2
|
|
done
|
|
echo "ClickHouse - accepting connections"
|
|
{{- end -}}
|
|
|
|
{{- define "tc.v1.common.lib.deps.wait.solr" -}}
|
|
enabled: true
|
|
type: system
|
|
imageSelector: wgetImage
|
|
securityContext:
|
|
runAsUser: 568
|
|
runAsGroup: 568
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
allowPrivilegeEscalation: false
|
|
privileged: false
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
capabilities:
|
|
add: []
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
env:
|
|
SOLR_HOST:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "solrcreds" }}'
|
|
key: plainhost
|
|
SOLR_CORES: "{{ .Values.solr.solrCores }}"
|
|
SOLR_ENABLE_AUTHENTICATION: "{{ .Values.solr.solrEnableAuthentication }}"
|
|
SOLR_ADMIN_USERNAME: "{{ .Values.solr.solrUsername }}"
|
|
SOLR_ADMIN_PASSWORD:
|
|
secretKeyRef:
|
|
expandObjectName: false
|
|
name: '{{ printf "%s-%s" .Release.Name "solrcreds" }}'
|
|
key: solr-password
|
|
|
|
command:
|
|
- "/bin/sh"
|
|
args:
|
|
- "-c"
|
|
- |
|
|
echo "Executing DB waits..."
|
|
if [ "$SOLR_ENABLE_AUTHENTICATION" == "yes" ]; then
|
|
until curl --fail --user "${SOLR_ADMIN_USERNAME}":"${SOLR_ADMIN_PASSWORD}" "${SOLR_HOST}":8983/solr/"${SOLR_CORES}"/admin/ping; do
|
|
echo "Solr is not responding... Sleeping 2 seconds..."
|
|
sleep 2
|
|
done
|
|
else
|
|
until curl --fail "${SOLR_HOST}":8983/solr/"${SOLR_CORES}"/admin/ping; do
|
|
echo "Solr is not responding... Sleeping 2 seconds..."
|
|
sleep 2
|
|
done
|
|
fi
|
|
{{- end -}}
|
|
|
|
{{- define "tc.v1.common.lib.deps.wait.cnpg" -}}
|
|
enabled: true
|
|
type: system
|
|
imageSelector: postgresClientImage
|
|
securityContext:
|
|
runAsUser: 568
|
|
runAsGroup: 568
|
|
readOnlyRootFilesystem: true
|
|
runAsNonRoot: true
|
|
allowPrivilegeEscalation: false
|
|
privileged: false
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
capabilities:
|
|
add: []
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 50Mi
|
|
limits:
|
|
cpu: 4000m
|
|
memory: 8Gi
|
|
command:
|
|
- "/bin/sh"
|
|
- "-c"
|
|
- |
|
|
/bin/sh <<'EOF'
|
|
{{ range $name, $cnpg := .Values.cnpg }}
|
|
{{ if $cnpg.enabled }}
|
|
echo "Executing DB waits..."
|
|
{{ $cnpgName := include "tc.v1.common.lib.chart.names.fullname" $ }}
|
|
{{ $cnpgName = printf "%v-cnpg-%v" $cnpgName $name }}
|
|
echo "Detected RW pooler, testing RW pooler availability..."
|
|
until
|
|
echo "Testing database on url: {{ $cnpgName }}-rw"
|
|
pg_isready -U {{ .user }} -d {{ .database }} -h {{ $cnpgName }}-rw
|
|
do sleep 5
|
|
done
|
|
{{ if $cnpg.acceptRO }}
|
|
echo "Detected RO pooler, testing RO pooler availability..."
|
|
until
|
|
echo "Testing database on url: {{ $cnpgName }}-ro"
|
|
pg_isready -U {{ .user }} -d {{ .database }} -h {{ $cnpgName }}-ro
|
|
do sleep 5
|
|
done
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ end }}
|
|
sleep 5
|
|
EOF
|
|
{{- end -}}
|