diff options
Diffstat (limited to 'kubernetes/sdnc/templates/db-statefulset.yaml')
-rw-r--r-- | kubernetes/sdnc/templates/db-statefulset.yaml | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/kubernetes/sdnc/templates/db-statefulset.yaml b/kubernetes/sdnc/templates/db-statefulset.yaml deleted file mode 100644 index 29d592a6a7..0000000000 --- a/kubernetes/sdnc/templates/db-statefulset.yaml +++ /dev/null @@ -1,220 +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 not .Values.disableSdncSdncDbhost }} -apiVersion: apps/v1beta1 -kind: StatefulSet -metadata: - name: sdnc-dbhost - namespace: "{{ .Values.nsPrefix }}" -spec: - serviceName: "dbhost" - replicas: {{ .Values.numberOfDbReplicas }} - selector: - matchLabels: - app: sdnc-dbhost - template: - metadata: - labels: - app: sdnc-dbhost - name: sdnc-dbhost - spec: - initContainers: - - name: init-mysql - image: {{ .Values.image.mysql }} - imagePullPolicy: {{ .Values.pullPolicy }} - command: - - bash - - "-c" - - | - set -ex - # Generate mysql server-id from pod ordinal index. - [[ `hostname` =~ -([0-9]+)$ ]] || exit 1 - ordinal=${BASH_REMATCH[1]} - echo BASH_REMATCH=${BASH_REMATCH} - echo [mysqld] > /mnt/conf.d/server-id.cnf - # Add an offset to avoid reserved server-id=0 value. - echo server-id=$((100 + $ordinal)) >> /mnt/conf.d/server-id.cnf - # Copy appropriate conf.d files from config-map to emptyDir. - if [[ $ordinal -eq 0 ]]; then - cp /mnt/config-map/master.cnf /mnt/conf.d/ - else - cp /mnt/config-map/slave.cnf /mnt/conf.d/ - fi - volumeMounts: - - name: conf - mountPath: /mnt/conf.d - - name: config-map - mountPath: /mnt/config-map - - name: clone-mysql - image: {{ .Values.image.xtrabackup }} - env: - - name: MYSQL_ROOT_PASSWORD - value: openECOMP1.0 - command: - - bash - - "-c" - - | - set -ex - # Skip the clone if data already exists. - [[ -d /var/lib/mysql/mysql ]] && exit 0 - # Skip the clone on master (ordinal index 0). - [[ `hostname` =~ -([0-9]+)$ ]] || exit 1 - ordinal=${BASH_REMATCH[1]} - echo ${BASH_REMATCH} - [[ $ordinal -eq 0 ]] && exit 0 - # Clone data from previous peer. - ncat --recv-only sdnc-dbhost-$(($ordinal-1)).dbhost.{{ .Values.nsPrefix }} 3307 | xbstream -x -C /var/lib/mysql - # Prepare the backup. - xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --prepare --target-dir=/var/lib/mysql - ls -l /var/lib/mysql - volumeMounts: - - name: sdnc-data - mountPath: /var/lib/mysql -#{{ if not .Values.disableNfsProvisioner }} - subPath: mysql -#{{ end }} - - name: conf - mountPath: /etc/mysql/conf.d - containers: - - env: - - name: MYSQL_ROOT_PASSWORD - value: openECOMP1.0 - - name: MYSQL_ROOT_HOST - value: '%' - - name: MYSQL_ALLOW_EMPTY_PASSWORD - value: "0" - image: {{ .Values.image.mysql }} - imagePullPolicy: {{ .Values.pullPolicy }} - name: sdnc-db-container - volumeMounts: - - mountPath: /var/lib/mysql - name: sdnc-data -#{{ if not .Values.disableNfsProvisioner }} - subPath: mysql -#{{ end }} - - name: conf - mountPath: /etc/mysql/conf.d - ports: - - containerPort: 3306 - resources: - requests: - cpu: 500m - memory: 1Gi - livenessProbe: - exec: - command: ["mysqladmin", "ping"] - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 5 - readinessProbe: - tcpSocket: - port: 3306 - initialDelaySeconds: 5 - periodSeconds: 10 - - name: xtrabackup - image: {{ .Values.image.xtrabackup }} - env: - - name: MYSQL_ROOT_PASSWORD - value: openECOMP1.0 - ports: - - name: xtrabackup - containerPort: 3307 - command: - - bash - - "-c" - - | - set -ex - cd /var/lib/mysql - ls -l - # Determine binlog position of cloned data, if any. - if [[ -f xtrabackup_slave_info ]]; then - echo "Inside xtrabackup_slave_info" - # XtraBackup already generated a partial "CHANGE MASTER TO" query - # because we're cloning from an existing slave. - mv xtrabackup_slave_info change_master_to.sql.in - # Ignore xtrabackup_binlog_info in this case (it's useless). - rm -f xtrabackup_binlog_info - elif [[ -f xtrabackup_binlog_info ]]; then - echo "Inside xtrabackup_binlog_info" - # We're cloning directly from master. Parse binlog position. - [[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1 - rm xtrabackup_binlog_info - echo "CHANGE MASTER TO MASTER_LOG_FILE='${BASH_REMATCH[1]}',\ - MASTER_LOG_POS=${BASH_REMATCH[2]}" > change_master_to.sql.in - fi - - # Check if we need to complete a clone by starting replication. - if [[ -f change_master_to.sql.in ]]; then - echo "Waiting for mysqld to be ready (accepting connections)" - [[ `hostname` =~ -([0-9]+)$ ]] || exit 1 - ordinal=${BASH_REMATCH[1]} - echo $ordinal - until mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h 127.0.0.1 -e "SELECT 1"; do sleep 1; done - - echo "Initializing replication from clone position" - # In case of container restart, attempt this at-most-once. - mv change_master_to.sql.in change_master_to.sql.orig - mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h 127.0.0.1 <<EOF - $(<change_master_to.sql.orig), - MASTER_HOST="sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}", - MASTER_USER="root", - MASTER_PASSWORD="$MYSQL_ROOT_PASSWORD", - MASTER_CONNECT_RETRY=10; - START SLAVE; - EOF - fi - - # Start a server to send backups when requested by peers. - 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=127.0.0.1" - volumeMounts: - - name: sdnc-data - mountPath: /var/lib/mysql -#{{ if not .Values.disableNfsProvisioner }} - subPath: mysql -#{{ end }} - - name: conf - mountPath: /etc/mysql/conf.d - resources: - requests: - cpu: 100m - memory: 100Mi - volumes: - - name: conf - emptyDir: {} - - name: config-map - configMap: - name: sdnc-mysql - - name: localtime - hostPath: - path: /etc/localtime -#{{ if .Values.disableNfsProvisioner }} - - name: sdnc-data - hostPath: - path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdnc/data/mysql -#{{ else }} - volumeClaimTemplates: - - metadata: - name: sdnc-data - annotations: - volume.beta.kubernetes.io/storage-class: "{{ .Values.nsPrefix }}-sdnc-data" - spec: - accessModes: ["ReadWriteMany"] - resources: - requests: - storage: 1Gi -#{{ end }} -#{{ end }} - |