From 597758d92f4f5e9f49870c87feb2df4eb022753f Mon Sep 17 00:00:00 2001 From: Anthony Yeh Date: Fri, 18 Nov 2016 16:59:47 -0800 Subject: [PATCH] Demonstrate master/slave ConfigMap entries. --- .../replicated-stateful-application/my.cnf | 5 ----- .../mysql-configmap.yaml | 16 ++++++++++++++++ .../mysql-statefulset.yaml | 13 +++++++++---- 3 files changed, 25 insertions(+), 9 deletions(-) delete mode 100644 docs/tutorials/replicated-stateful-application/my.cnf create mode 100644 docs/tutorials/replicated-stateful-application/mysql-configmap.yaml diff --git a/docs/tutorials/replicated-stateful-application/my.cnf b/docs/tutorials/replicated-stateful-application/my.cnf deleted file mode 100644 index c15357b9fd..0000000000 --- a/docs/tutorials/replicated-stateful-application/my.cnf +++ /dev/null @@ -1,5 +0,0 @@ -# Create a ConfigMap resource from this file: -# kubectl create configmap mysql --from-file=./my.cnf -[mysqld] -log-bin - diff --git a/docs/tutorials/replicated-stateful-application/mysql-configmap.yaml b/docs/tutorials/replicated-stateful-application/mysql-configmap.yaml new file mode 100644 index 0000000000..46d34e422c --- /dev/null +++ b/docs/tutorials/replicated-stateful-application/mysql-configmap.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql + labels: + app: mysql +data: + master.cnf: | + # Apply this config only on the master. + [mysqld] + log-bin + slave.cnf: | + # Apply this config only on slaves. + [mysqld] + super-read-only + diff --git a/docs/tutorials/replicated-stateful-application/mysql-statefulset.yaml b/docs/tutorials/replicated-stateful-application/mysql-statefulset.yaml index accefb2fe2..13ff16c3ef 100644 --- a/docs/tutorials/replicated-stateful-application/mysql-statefulset.yaml +++ b/docs/tutorials/replicated-stateful-application/mysql-statefulset.yaml @@ -18,13 +18,18 @@ spec: set -ex\n # mysqld --initialize expects an empty data dir.\n rm -rf /mnt/data/lost+found\n - # Copy conf.d from config-map to emptyDir.\n - cp /mnt/config-map/* /mnt/conf.d/\n # Generate mysql server-id from pod ordinal index.\n [[ `hostname` =~ -([0-9]+)$ ]] || exit 1\n + ordinal=${BASH_REMATCH[1]}\n echo [mysqld] > /mnt/conf.d/server-id.cnf\n # Add an offset to avoid reserved server-id=0 value.\n - echo server-id=$((100 + ${BASH_REMATCH[1]})) >> /mnt/conf.d/server-id.cnf\n + echo server-id=$((100 + $ordinal)) >> /mnt/conf.d/server-id.cnf\n + # Copy appropriate conf.d files from config-map to emptyDir.\n + if [[ $ordinal -eq 0 ]]; then\n + cp /mnt/config-map/master.cnf /mnt/conf.d/\n + else\n + cp /mnt/config-map/slave.cnf /mnt/conf.d/\n + fi\n "], "volumeMounts": [ {"name": "data", "mountPath": "/mnt/data"}, @@ -102,7 +107,7 @@ spec: # 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 xtrabackup_binlog_info + rm -f xtrabackup_binlog_info elif [[ -f xtrabackup_binlog_info ]]; then # We're cloning directly from master. Parse binlog position. [[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1