add PV support for artifactbroker 57/94957/7
authorLiang Ding <liang.ding@intel.com>
Wed, 4 Sep 2019 16:55:35 +0000 (09:55 -0700)
committerLiang Ding <liang.ding@intel.com>
Thu, 12 Sep 2019 04:40:31 +0000 (04:40 +0000)
add PV/PVC files
  - update deployment files to use PVC and resolve permission issue of data dir
  - update values for the init container image

Change-Id: I354043a79915d25bf1e5396b538b98b0dbdb7fe7
Issue-ID: MULTICLOUD-717
Signed-off-by: Liang Ding <liang.ding@intel.com>
kubernetes/multicloud/charts/multicloud-windriver/templates/deployment.yaml
kubernetes/multicloud/charts/multicloud-windriver/templates/pv.yaml [new file with mode: 0644]
kubernetes/multicloud/charts/multicloud-windriver/templates/pvc.yaml [new file with mode: 0644]
kubernetes/multicloud/charts/multicloud-windriver/values.yaml

index e6f1456..0cb1d73 100644 (file)
@@ -39,6 +39,14 @@ spec:
       annotations:
         sidecar.istio.io/inject: "{{.Values.istioSidecar}}"
     spec:
+     initContainers:
+     - command: ["sh", "-c", "chown -R 100:101 /data"]
+       image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.global.ubuntuInitImage }}"
+       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+       name: {{ include "common.name" . }}-init
+       volumeMounts:
+       - mountPath: /data
+         name: artifact-data
      containers:
      - env:
        - name: MSB_ADDR
@@ -122,7 +130,12 @@ spec:
        configMap:
          name: {{ include "common.fullname" . }}-log-configmap
      - name: artifact-data
+     {{- if .Values.persistence.enabled }}
+       persistentVolumeClaim:
+         claimName: {{ include "common.fullname" . }}
+     {{- else }}
        emptyDir: {}
+     {{- end }}
      imagePullSecrets:
      - name: "{{ include "common.namespace" . }}-docker-registry-key"
      restartPolicy: Always
diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/pv.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/pv.yaml
new file mode 100644 (file)
index 0000000..e2e326d
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+# 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.
+*/}}
+
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/pvc.yaml b/kubernetes/multicloud/charts/multicloud-windriver/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..5bc04cd
--- /dev/null
@@ -0,0 +1,41 @@
+{{/*
+# 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.
+*/}}
+
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" .}}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+{{- end -}}
index 9f8dff3..fbc9103 100644 (file)
@@ -18,6 +18,8 @@
 #################################################################
 global:
   nodePortPrefix: 302
+  ubuntuInitRepository: oomk8s
+  ubuntuInitImage: ubuntu-init:1.0.0
 
 #################################################################
 # Application configuration defaults.
@@ -67,6 +69,14 @@ liveness:
 ingress:
   enabled: false
 
+persistence:
+  enabled: true
+  mountPath: /dockerdata-nfs
+  mountSubPath: multicloud-windriver/data
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteOnce
+  size: 5Gi
+
 # Resource Limit flavor -By Default using small
 flavor: small
 # Segregation for Different environment (Small and Large)