X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=kubernetes%2Fcommon%2FreadinessCheck%2Ftemplates%2F_readinessCheck.tpl;h=51791fec13d0b657dc1beea488994504b453f5db;hb=refs%2Fheads%2Fmaster;hp=5c70e78735bd549a23bfa152309bc1a8ff23c6d8;hpb=7cccd2a303d4f61dee5aa2ab5da701bd9e18fec8;p=oom.git diff --git a/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl b/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl index 5c70e78735..51791fec13 100644 --- a/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl +++ b/kubernetes/common/readinessCheck/templates/_readinessCheck.tpl @@ -17,20 +17,61 @@ {{/* Generate readiness part for a pod Will look by default to .Values.wait_for + There are two formats available. - Value of wait_for is an array of all pods /jobs to wait: - - Example: + The simple one (where wait_for is just list of containers): wait_for: - aaf-locate - aaf-cm - aaf-service - The function can takes two arguments (inside a dictionary): + The powerful one (where wait_for is a map): + + wait_for: + name: myname + containers: + - aaf-locate + - aaf-cm + - aaf-service + + the powerful one allows also to wait for pod names with this + (has to start with the given pod name): + wait_for: + name: myname + pods: + - test-pod + + the powerful one allows also to wait for a service to be + available, which means all pods are deployed, which are + selected by the service definition: + wait_for: + name: myservice + services: + - mariadb-galera-service + + the powerful one allows also to wait for pods with the + given "app" label: + wait_for: + name: myname + apps: + - mariadb-galera + + the powerful one allows also to wait for jobs with this: + wait_for: + name: myname + jobs: + - '{{ include "common.release" . }}-the-job' + + Be careful, as on the example above, the job name may have a "non fixed" name + and thus don't forget to use templates if needed + + The function can takes below arguments (inside a dictionary): - .dot : environment (.) - - .wait_for : list of containers / jobs to wait for (default to - .Values.wait_for) + - .initRoot : the root dictionary of readinessCheck submodule + (default to .Values.readinessCheck) + - .wait_for : list of service / containers / pods /apps / jobs to wait for + (default to .Values.wait_for) Example calls: {{ include "common.readinessCheck.waitFor" . }} @@ -40,24 +81,53 @@ {{- $dot := default . .dot -}} {{- $initRoot := default $dot.Values.readinessCheck .initRoot -}} {{/* Our version of helm doesn't support deepCopy so we need this nasty trick */}} -{{- $subchartDot := include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot) }} -{{- $wait_for := default $dot.Values.wait_for .wait_for -}} -- name: {{ include "common.name" $dot }}-{{ $wait_for.name }}-readiness - image: "{{ $subchartDot.Values.global.readinessRepository }}/{{ $subchartDot.Values.global.readinessImage }}" +{{- $subchartDot := fromJson (include "common.subChartDot" (dict "dot" $dot "initRoot" $initRoot)) }} +{{- $wait_for := default $initRoot.wait_for .wait_for -}} +{{- $containers := index (ternary (dict "containers" $wait_for) $wait_for (kindIs "slice" $wait_for)) "containers" -}} +{{- $services := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "services" -}} +{{- $pods := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "pods" -}} +{{- $apps := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "apps" -}} +{{- $namePart := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "name" -}} +{{- $jobs := index (ternary (dict) $wait_for (kindIs "slice" $wait_for)) "jobs" -}} +- name: {{ include "common.name" $dot }}{{ ternary "" (printf "-%s" $namePart) (empty $namePart) }}-readiness + image: {{ include "repositoryGenerator.image.readiness" $subchartDot }} imagePullPolicy: {{ $subchartDot.Values.global.pullPolicy | default $subchartDot.Values.pullPolicy }} + securityContext: + runAsUser: {{ $subchartDot.Values.user }} + runAsGroup: {{ $subchartDot.Values.group }} command: - - /root/ready.py + - /app/ready.py args: - {{- range $container := $wait_for.containers }} + {{- range $container := default (list) $containers }} - --container-name - {{ tpl $container $dot }} {{- end }} + {{- range $pod := default (list) $pods }} + - --pod-name + - {{ tpl $pod $dot }} + {{- end }} + {{- range $service := default (list) $services }} + - --service-name + - {{ tpl $service $dot }} + {{- end }} + {{- range $app := default (list) $apps }} + - --app-name + - {{ tpl $app $dot }} + {{- end }} + {{- range $job := $jobs }} + - --job-name + - {{ tpl $job $dot }} + {{- end }} env: - name: NAMESPACE + {{- if $subchartDot.Values.namespace }} + value: {{ $subchartDot.Values.namespace }} + {{- else }} valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace + {{- end }} resources: limits: cpu: {{ $subchartDot.Values.limits.cpu }}