AAI Rolling upgrade using helm hooks
[oom.git] / kubernetes / aai / charts / aai-traversal / templates / job.yaml
index 9d0acf6..31db068 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright © 2017-2018 AT&T
+# Modifications Copyright © 2018 Amdocs, Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,6 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{{ if .Values.global.jobs.updateQueryData.enabled }}
+
 apiVersion: batch/v1
 kind: Job
 metadata:
@@ -22,6 +25,12 @@ metadata:
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
+{{ if .Values.global.jobs.migration.enabled }}
+  annotations:
+    "helm.sh/hook": post-upgrade,post-rollback,post-install
+    "helm.sh/hook-weight": "2"
+    "helm.sh/hook-delete-policy": before-hook-creation
+{{ end }}
 spec:
   template:
     metadata:
@@ -36,6 +45,10 @@ spec:
         args:
         - --container-name
         - aai
+        {{ if eq .Values.global.aafEnabled true }}
+        - --container-name
+        - aaf-locate
+        {{ end }}
         env:
         - name: NAMESPACE
           valueFrom:
@@ -47,7 +60,7 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
       - name: {{ include "common.name" . }}-job
-        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - bash
@@ -55,39 +68,43 @@ spec:
         - |
           set -x
           mkdir -p /opt/aai/logroot/AAI-GQ/misc
+          until nc -w10 -z -v aai.{{.Release.Namespace}} 8443; do echo "Retrying to reach aai on port 8443"; done;
           bash -x /opt/app/aai-traversal/docker-entrypoint.sh install/updateQueryData.sh
         env:
         - name: LOCAL_USER_ID
-          value: "1000"
+          value: {{ .Values.global.config.userId | quote }}
         - name: LOCAL_GROUP_ID
-          value: "1000"
+          value: {{ .Values.global.config.groupId | quote }}
         volumeMounts:
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties
-          name: {{ include "common.fullname" . }}-db-real-conf
+          name: {{ include "common.fullname" . }}-config
           subPath: janusgraph-realtime.properties
         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties
-          name: {{ include "common.fullname" . }}-db-cached-conf
+          name: {{ include "common.fullname" . }}-config
           subPath: janusgraph-cached.properties
         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties
-          name: {{ include "common.fullname" . }}-aaiconfig-conf
+          name: {{ include "common.fullname" . }}-config
           subPath: aaiconfig.properties
-        - mountPath: /var/log/onap
+        - mountPath: /opt/aai/logroot/AAI-GQ/
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /opt/app/aai-traversal/resources/logback.xml
-          name: {{ include "common.fullname" . }}-log-conf
+          name: {{ include "common.fullname" . }}-config
           subPath: logback.xml
         - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml
-          name: {{ include "common.fullname" . }}-localhost-access-log-conf
+          name: {{ include "common.fullname" . }}-config
           subPath: localhost-access-logback.xml
         - mountPath: /opt/app/aai-traversal/resources/application.properties
-          name: {{ include "common.fullname" . }}-springapp-conf
+          name: {{ include "common.fullname" . }}-config
           subPath: application.properties
-        - mountPath: /opt/app/aai-traversal/resources/etc/auth/aai_keystore
-          name: {{ include "common.fullname" . }}-auth-sec
-          subPath: aai_keystore
+          {{ $global := . }}
+          {{ range $job := .Values.global.config.auth.files }}
+        - mountPath: /opt/app/aai-traversal/resources/etc/auth/{{ . }}
+          name: {{ include "common.fullname" $global }}-auth-truststore-sec
+          subPath: {{ . }}
+          {{ end }}
         # disable liveness probe when breakpoints set in debugger
         # so K8s doesn't restart unresponsive container
       volumes:
@@ -99,33 +116,21 @@ spec:
           name: aai-filebeat
       - name: {{ include "common.fullname" . }}-logs
         hostPath:
-          path: {{ .Values.persistence.mountPath }}/{{ include "common.namespace" . }}/{{ .Values.persistence.mountSubPath }}-update-query
+          path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}-update-query
       - name: {{ include "common.fullname" . }}-filebeat
         emptyDir: {}
-      - name: {{ include "common.fullname" . }}-log-conf
-        configMap:
-         name: {{ include "common.fullname" . }}-log
-      - name: {{ include "common.fullname" . }}-localhost-access-log-conf
-        configMap:
-         name: {{ include "common.fullname" . }}-localhost-access-log-configmap
-      - name: {{ include "common.fullname" . }}-db-real-conf
-        configMap:
-         name: {{ include "common.fullname" . }}-db-real-configmap
-      - name: {{ include "common.fullname" . }}-db-cached-conf
-        configMap:
-         name: {{ include "common.fullname" . }}-db-cached-configmap
-      - name: {{ include "common.fullname" . }}-aaiconfig-conf
-        configMap:
-         name: {{ include "common.fullname" . }}-aaiconfig-configmap
-      - name: {{ include "common.fullname" . }}-springapp-conf
-        configMap:
-         name: {{ include "common.fullname" . }}-springapp-configmap
-      - name: {{ include "common.fullname" . }}-realm-conf
+      - name: {{ include "common.fullname" . }}-config
         configMap:
-         name: {{ include "common.fullname" . }}-realm-configmap
-      - name: {{ include "common.fullname" . }}-auth-sec
+         name: {{ include "common.fullname" . }}-configmap
+      - name: {{ include "common.fullname" . }}-auth-truststore-sec
         secret:
-         secretName: aai-auth-secret
+         secretName: aai-common-truststore
+         items:
+          {{ range $job := .Values.global.config.auth.files }}
+           - key: {{ . }}
+             path: {{ . }}
+          {{ end }}
       restartPolicy: OnFailure
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
+{{ end }}