From 6b248cb385d351891592923e8fa219bb7451f21b Mon Sep 17 00:00:00 2001 From: zhiminwen Date: Sun, 8 Apr 2018 00:11:08 +0800 Subject: [PATCH] Add MSSQL Master DB persistence (#4701) * Add MSSQL Master DB persistence * update version * enable persistence by default * following persistence best practise * formatting --- stable/mssql-linux/Chart.yaml | 2 +- stable/mssql-linux/templates/deployment.yaml | 17 ++++++++++++ stable/mssql-linux/templates/pvc-master.yaml | 28 ++++++++++++++++++++ stable/mssql-linux/values.yaml | 7 +++-- 4 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 stable/mssql-linux/templates/pvc-master.yaml diff --git a/stable/mssql-linux/Chart.yaml b/stable/mssql-linux/Chart.yaml index 01948af76f..2a6f15236a 100644 --- a/stable/mssql-linux/Chart.yaml +++ b/stable/mssql-linux/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: SQL Server 2017 Linux Helm Chart name: mssql-linux -version: 0.2.0 +version: 0.3.0 appVersion: 14.0.3023.8 home: https://hub.docker.com/r/microsoft/mssql-server-linux/ icon: https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE1I4Dx diff --git a/stable/mssql-linux/templates/deployment.yaml b/stable/mssql-linux/templates/deployment.yaml index 1b259f1628..290310f5b7 100644 --- a/stable/mssql-linux/templates/deployment.yaml +++ b/stable/mssql-linux/templates/deployment.yaml @@ -41,6 +41,10 @@ spec: value: "{{ .Values.service.port }}" - name: MSSQL_BACKUP_DIR value: "/mssql-backup/backup" + - name: MSSQL_MASTER_DATA_FILE + value: /mssql-data/master/master.mdf + - name: MSSQL_MASTER_LOG_FILE + value: /mssql-data/master/mastlog.ldf ports: - name: mssql containerPort: {{ .Values.service.port }} @@ -51,6 +55,8 @@ spec: mountPath: /mssql-translog/translog - name: backup mountPath: /mssql-backup/backup + - name: master + mountPath: /mssql-data/master livenessProbe: tcpSocket: port: mssql @@ -101,3 +107,14 @@ spec: {{- else }} emptyDir: {} {{- end }} + - name: master + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + {{- if .Values.persistence.existingMasterClaim }} + claimName: {{ .Values.persistence.existingMasterClaim }} + {{- else }} + claimName: {{ template "mssql.fullname" . }}-master + {{- end }} + {{- else }} + emptyDir: {} + {{- end }} diff --git a/stable/mssql-linux/templates/pvc-master.yaml b/stable/mssql-linux/templates/pvc-master.yaml new file mode 100644 index 0000000000..6a44253bf4 --- /dev/null +++ b/stable/mssql-linux/templates/pvc-master.yaml @@ -0,0 +1,28 @@ +{{- if and .Values.persistence.enabled (not .Values.persistence.existingMasterClaim) }} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ template "mssql.fullname" . }}-master + labels: + app: {{ template "mssql.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.masterAccessMode | quote }} + resources: + requests: + storage: {{ .Values.persistence.masterSize | quote }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} \ No newline at end of file diff --git a/stable/mssql-linux/values.yaml b/stable/mssql-linux/values.yaml index 2a3a2cd42c..5bd82c8a32 100644 --- a/stable/mssql-linux/values.yaml +++ b/stable/mssql-linux/values.yaml @@ -12,17 +12,20 @@ service: type: ClusterIP port: 1433 persistence: - enabled: false + enabled: true # existingDataClaim: # existingTransactionLogClaim: # existingBackupClaim: - # storageClass: "-" + # existingMasterClaim: + storageClass: "" dataAccessMode: ReadWriteOnce dataSize: 1Gi transactionLogAccessMode: ReadWriteOnce transactionLogSize: 1Gi backupAccessMode: ReadWriteOnce backupSize: 1Gi + masterAccessMode: ReadWriteOnce + masterSize: 1Gi livenessprobe: initialDelaySeconds: 15 periodSeconds: 20