statefulset.yaml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. apiVersion: apps/v1
  2. kind: StatefulSet
  3. metadata:
  4. name: mysql
  5. spec:
  6. serviceName: "galera"
  7. replicas: 3
  8. selector:
  9. matchLabels:
  10. app: mysql
  11. template:
  12. metadata:
  13. labels:
  14. app: mysql
  15. spec:
  16. initContainers:
  17. - name: install
  18. image: k8s.gcr.io/galera-install:0.1
  19. imagePullPolicy: Always
  20. args:
  21. - "--work-dir=/work-dir"
  22. volumeMounts:
  23. - name: workdir
  24. mountPath: "/work-dir"
  25. - name: config
  26. mountPath: "/etc/mysql"
  27. - name: bootstrap
  28. image: debian:jessie
  29. command:
  30. - "/work-dir/peer-finder"
  31. args:
  32. - -on-start="/work-dir/on-start.sh"
  33. - "-service=galera"
  34. env:
  35. - name: POD_NAMESPACE
  36. valueFrom:
  37. fieldRef:
  38. apiVersion: v1
  39. fieldPath: metadata.namespace
  40. volumeMounts:
  41. - name: workdir
  42. mountPath: "/work-dir"
  43. - name: config
  44. mountPath: "/etc/mysql"
  45. containers:
  46. - name: mysql
  47. image: k8s.gcr.io/mysql-galera:e2e
  48. ports:
  49. - containerPort: 3306
  50. name: mysql
  51. - containerPort: 4444
  52. name: sst
  53. - containerPort: 4567
  54. name: replication
  55. - containerPort: 4568
  56. name: ist
  57. args:
  58. - --defaults-file=/etc/mysql/my-galera.cnf
  59. - --user=root
  60. readinessProbe:
  61. # TODO: If docker exec is buggy just use k8s.gcr.io/mysql-healthz:1.0
  62. exec:
  63. command:
  64. - sh
  65. - -c
  66. - "mysql -u root -e 'show databases;'"
  67. initialDelaySeconds: 15
  68. timeoutSeconds: 5
  69. successThreshold: 2
  70. volumeMounts:
  71. - name: datadir
  72. mountPath: /var/lib/
  73. - name: config
  74. mountPath: /etc/mysql
  75. volumes:
  76. - name: config
  77. emptyDir: {}
  78. - name: workdir
  79. emptyDir: {}
  80. volumeClaimTemplates:
  81. - metadata:
  82. name: datadir
  83. spec:
  84. accessModes: [ "ReadWriteOnce" ]
  85. resources:
  86. requests:
  87. storage: 1Gi