storing robot logs on the pv
[oom.git] / kubernetes / robot / templates / deployment.yaml
index 596d622..e5cc1d3 100644 (file)
@@ -1,7 +1,21 @@
+# Copyright © 2017 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.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
-  name: {{ include "common.name" . }}
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -9,52 +23,69 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
-  replicas: {{ .Values.robotReplicas }}
+  replicas: {{ .Values.replicaCount }}
   template:
     metadata:
-       labels:
+      labels:
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
+      initContainers:
+      - name: {{ include "common.name" . }}-inject-demo-project
+        command:
+        - /bin/bash
+        - -c
+        - >
+          git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit;
+          echo "Clone complete. Copying from /tmp/gerrit/heat to /share";
+          cp -rf /tmp/gerrit/heat /share;
+          echo "Done.";
+        image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.ubuntuInitImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: demodir
+          mountPath: "/share"
       containers:
-        - name: {{ .Chart.Name }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
-          livenessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
-          readinessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-          volumeMounts:
-          - name: localtime
-            mountPath: /etc/localtime
-            readOnly: true
-          - name: robot-eteshare
-            mountPath: /share/config
-          - name: robot-resources
-            mountPath: /var/opt/OpenECOMP_ETE/robot/resources/asdc_interface.robot
-            subPath: asdc_interface.robot
-          - name: robot-resources
-            mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot
-            subPath: policy_interface.robot
-          - name: robot-resources
-            mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot
-            subPath: sdngc_interface.robot
-          - name: robot-lighttpd-authorization
-            mountPath: /etc/lighttpd/authorization
-            subPath: authorization
-          resources:
+      - name: {{ include "common.name" . }}
+        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        {{ if .Values.liveness.enabled }}
+        livenessProbe:
+          tcpSocket:
+            port: {{ .Values.service.internalPort }}
+          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.liveness.periodSeconds }}
+        {{ end }}
+        readinessProbe:
+          tcpSocket:
+            port: {{ .Values.service.internalPort }}
+          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.readiness.periodSeconds }}
+        volumeMounts:
+        - name: localtime
+          mountPath: /etc/localtime
+          readOnly: true
+        - name: robot-eteshare
+          mountPath: /share/config
+        - name: robot-resources
+          mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot
+          subPath: policy_interface.robot
+        - name: robot-resources
+          mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot
+          subPath: sdngc_interface.robot
+        - name: robot-resources
+          mountPath: /var/opt/OpenECOMP_ETE/robot/resources/oof_interface.robot
+          subPath: oof_interface.robot
+        - name: robot-lighttpd-authorization
+          mountPath: /etc/lighttpd/authorization
+          subPath: authorization
+        - name: demodir
+          mountPath: /share
+        - name: robot-logs
+          mountPath: /share/logs
+        resources:
 {{ toYaml .Values.resources | indent 12 }}
         {{- if .Values.nodeSelector }}
         nodeSelector:
@@ -65,18 +96,27 @@ spec:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
       volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: robot-eteshare
-          configMap:
-            name: {{ include "common.name" . }}-eteshare-configmap
-            defaultMode: 0755
-        - name: robot-resources
-          configMap:
-            name: {{ include "common.name" . }}-resources-configmap
-        - name: robot-lighttpd-authorization
-          configMap:
-            name: {{ include "common.name" . }}-lighttpd-authorization-configmap
+    {{- if .Values.persistence.enabled }}
+      - name: robot-logs
+        persistentVolumeClaim:
+          claimName: {{ include "common.fullname" . }}
+    {{- else }}
+        emptyDir: {}
+    {{- end }}
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: robot-eteshare
+        configMap:
+          name: {{ include "common.fullname" . }}-eteshare-configmap
+          defaultMode: 0755
+      - name: robot-resources
+        configMap:
+          name: {{ include "common.fullname" . }}-resources-configmap
+      - name: robot-lighttpd-authorization
+        configMap:
+          name: {{ include "common.fullname" . }}-lighttpd-authorization-configmap
+      - name: demodir
+        emptyDir: {}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"