Add separate PV for each SDN-C MYSQL pod 19/45719/3
authorMohammadreza Pasandideh <mohammadreza.pasandideh@amdocs.com>
Tue, 8 May 2018 21:42:11 +0000 (17:42 -0400)
committerMohammadreza Pasandideh <mohammadreza.pasandideh@amdocs.com>
Tue, 8 May 2018 21:42:33 +0000 (17:42 -0400)
Change-Id: I5238ee63c2e7adadaaf9a25cf2c72dab03ed1af8
Signed-off-by: Mohammadreza Pasandideh <mohammadreza.pasandideh@amdocs.com>
Issue-ID: SDNC-299

kubernetes/common/mysql/templates/pv.yaml
kubernetes/common/mysql/templates/pvc.yaml [deleted file]
kubernetes/common/mysql/templates/statefulset.yaml
kubernetes/common/mysql/templates/storageclass.yaml
kubernetes/common/mysql/values.yaml
kubernetes/sdnc/templates/pv.yaml
kubernetes/sdnc/templates/statefulset.yaml
kubernetes/sdnc/values.yaml

index 824dcbb..3bef651 100644 (file)
 */}}
 
 {{- if (and (and (.Values.persistence.enabled) (not .Values.persistence.existingClaim)) ( .Values.disableNfsProvisioner)) -}}
+{{ $pvNum := default 1 .Values.replicaCount | int }}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-data
+  name: {{ include "common.fullname" . }}-mysql0
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -31,8 +32,31 @@ spec:
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
+  storageClassName: "{{ include "common.fullname" . }}-mysql"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
+{{ if gt $pvNum 1 }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-mysql1
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    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 }}
+  storageClassName: "{{ include "common.fullname" . }}-mysql"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
+{{ end }}
 {{- end -}}
diff --git a/kubernetes/common/mysql/templates/pvc.yaml b/kubernetes/common/mysql/templates/pvc.yaml
deleted file mode 100644 (file)
index d1558f1..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-{{/*
-# 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" . }}-data
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  accessModes:
-    - {{ .Values.persistence.accessMode }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
-{{- end -}}
index ff73b45..0f340f0 100644 (file)
@@ -100,13 +100,13 @@ spec:
           echo ${BASH_REMATCH}
           [[ $ordinal -eq 0 ]] && exit 0
           # Clone data from previous peer.
-          ncat --recv-only {{ include "common.fullname" . }}-$(($ordinal-1)).{{ .Values.service.name }}.{{ include "common.namespace" . }} 3307 | xbstream -x -C /var/lib/mysql
+          ncat --recv-only {{ include "common.fullname" . }}-$(($ordinal-1)).{{ .Values.service.name }}.{{ include "common.namespace" . }} 3307 | xbstream -x -C {{ .Values.persistence.mysqlPath }}
           # Prepare the backup.
           xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --prepare --target-dir=/var/lib/mysql
-          ls -l /var/lib/mysql
+          ls -l {{ .Values.persistence.mysqlPath }}
         volumeMounts:
-        - name: {{ include "common.fullname" . }}-data
-          mountPath: /var/lib/mysql
+        - name: {{ include "common.fullname" . }}-mysql
+          mountPath: {{ .Values.persistence.mysqlPath }}
         - name: conf
           mountPath: /etc/mysql/conf.d
 
@@ -142,8 +142,8 @@ spec:
             - name: MYSQL_ALLOW_EMPTY_PASSWORD
               value: {{ .Values.config.dbAllowEmptyPassword | default "0" | quote }}
           volumeMounts:
-          - mountPath: /var/lib/mysql
-            name: {{ include "common.fullname" . }}-data
+          - mountPath: {{ .Values.persistence.mysqlPath }}
+            name: {{ include "common.fullname" . }}-mysql
           - mountPath: /etc/mysql/conf.d
             name: conf
           resources:
@@ -174,7 +174,7 @@ spec:
           - "-c"
           - |
             set -ex
-            cd /var/lib/mysql
+            cd {{ .Values.persistence.mysqlPath }}
             ls -l
             # Determine binlog position of cloned data, if any.
             if [[ -f xtrabackup_slave_info ]]; then
@@ -222,8 +222,8 @@ spec:
             exec ncat --listen --keep-open --send-only --max-conns=1 3307 -c \
               "xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --backup --slave-info --stream=xbstream --host=$mysqlhost"
           volumeMounts:
-          - name: {{ include "common.fullname" . }}-data
-            mountPath: /var/lib/mysql
+          - name: {{ include "common.fullname" . }}-mysql
+            mountPath: {{ .Values.persistence.mysqlPath }}
           - name: conf
             mountPath: /etc/mysql/conf.d
       volumes:
@@ -235,11 +235,20 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.fullname" . }}-data
-#{{ if .Values.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ include "common.fullname" . }}-data
-#{{ else }}
+      - name: {{ include "common.fullname" . }}-mysql
+  {{ if not .Values.persistence.enabled }}
+      - name: {{ include "common.fullname" . }}-mysql
         emptyDir: {}
-#{{ end }}
-
+  {{ else }}
+  volumeClaimTemplates:
+  - metadata:
+      name: {{ include "common.fullname" . }}-mysql
+      labels:
+        name: {{ include "common.fullname" . }}
+    spec:
+      accessModes: [ {{ .Values.persistence.accessMode }} ]
+      storageClassName: {{ include "common.fullname" . }}-mysql
+      resources:
+        requests:
+          storage: {{ .Values.persistence.size }}
+  {{ end }}
index 3cd502e..4edb477 100644 (file)
@@ -18,7 +18,7 @@
 kind: StorageClass
 apiVersion: storage.k8s.io/v1
 metadata:
-  name: "{{ include "common.fullname" . }}-data"
+  name: "{{ include "common.fullname" . }}-mysql"
   namespace: {{ include "common.namespace" . }}
 provisioner: {{ include "common.fullname" . }}/nfs
 {{ end }}
index 028a440..48b7bc7 100644 (file)
@@ -59,7 +59,7 @@ readiness:
 
 ## Persist data to a persitent volume
 persistence:
-  enabled: false
+  enabled: true
   
   ## A manually managed Persistent Volume and Claim
   ## Requires persistence.enabled: true
@@ -73,10 +73,11 @@ persistence:
   ## If undefined (the default) or set to null, no storageClassName spec is
   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
   ##   GKE, AWS & OpenStack)
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 1Gi
   mountPath: /dockerdata-nfs
   mountSubPath: "mysql/data"
+  mysqlPath: /var/lib/mysql
 
 service:
   name: mysql
index e20e281..f10d67a 100644 (file)
@@ -18,7 +18,7 @@
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-data0
+  name: {{ include "common.fullname" . }}-mdsal0
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.fullname" . }}
@@ -31,7 +31,7 @@ spec:
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
+  storageClassName: "{{ include "common.fullname" . }}-mdsal"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
@@ -40,7 +40,7 @@ spec:
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-data1
+  name: {{ include "common.fullname" . }}-mdsal1
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.fullname" . }}
@@ -53,7 +53,7 @@ spec:
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
+  storageClassName: "{{ include "common.fullname" . }}-mdsal"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
@@ -63,7 +63,7 @@ spec:
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.fullname" . }}-data2
+  name: {{ include "common.fullname" . }}-mdsal2
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.fullname" . }}
@@ -76,9 +76,9 @@ spec:
     storage: {{ .Values.persistence.size}}
   accessModes:
     - {{ .Values.persistence.accessMode }}
-  storageClassName: "{{ include "common.fullname" . }}-data"
+  storageClassName: "{{ include "common.fullname" . }}-mdsal"
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}2
 {{ end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
index c8565f5..05a5e7e 100644 (file)
@@ -103,7 +103,7 @@ spec:
             name: onap-sdnc-svclogic-config
             subPath: svclogic.properties
           - mountPath: {{ .Values.persistence.mdsalPath }}
-            name: {{ include "common.fullname" . }}-data
+            name: {{ include "common.fullname" . }}-mdsal
           - mountPath: /var/log/onap
             name: logs
           resources:
@@ -188,17 +188,17 @@ spec:
               path: svclogic.properties
               mode: 0644
   {{ if not .Values.persistence.enabled }}
-        - name: {{ include "common.fullname" . }}-data
+        - name: {{ include "common.fullname" . }}-mdsal
           emptyDir: {}
   {{ else }}
   volumeClaimTemplates:
   - metadata:
-      name: {{ include "common.fullname" . }}-data
+      name: {{ include "common.fullname" . }}-mdsal
       labels:
         name: {{ include "common.fullname" . }}
     spec:
       accessModes: [ {{ .Values.persistence.accessMode }} ]
-      storageClassName: {{ include "common.fullname" . }}-data
+      storageClassName: {{ include "common.fullname" . }}-mdsal
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
index 2603cd9..2da2661 100644 (file)
@@ -78,7 +78,7 @@ mysql:
   nfsprovisionerPrefix: sdnc
   sdnctlPrefix: sdnc
   persistence:
-    mountSubPath: sdnc/data
+    mountSubPath: sdnc/mysql
     enabled: true
   disableNfsProvisioner: true
   replicaCount: 1