aboutsummaryrefslogtreecommitdiff
path: root/zookeeper/zookeeper.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'zookeeper/zookeeper.yaml')
-rw-r--r--zookeeper/zookeeper.yaml123
1 files changed, 123 insertions, 0 deletions
diff --git a/zookeeper/zookeeper.yaml b/zookeeper/zookeeper.yaml
new file mode 100644
index 0000000..ada1af3
--- /dev/null
+++ b/zookeeper/zookeeper.yaml
@@ -0,0 +1,123 @@
+# A headless service to create DNS records
+apiVersion: v1
+kind: Service
+metadata:
+ annotations:
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+ name: zk
+ labels:
+ app: zk
+spec:
+ ports:
+ - port: 2888
+ name: peer
+ - port: 3888
+ name: leader-election
+ # *.zk.default.svc.cluster.local
+ clusterIP: None
+ selector:
+ app: zk
+---
+apiVersion: apps/v1alpha1
+kind: PetSet
+metadata:
+ name: zoo
+spec:
+ serviceName: "zk"
+ replicas: 3
+ template:
+ metadata:
+ labels:
+ app: zk
+ annotations:
+ pod.alpha.kubernetes.io/initialized: "true"
+ pod.alpha.kubernetes.io/init-containers: '[
+ {
+ "name": "install",
+ "image": "gcr.io/google_containers/zookeeper-install:0.1",
+ "imagePullPolicy": "Always",
+ "args": ["--version=3.5.0-alpha", "--install-into=/opt", "--work-dir=/work-dir"],
+ "volumeMounts": [
+ {
+ "name": "opt",
+ "mountPath": "/opt/"
+ },
+ {
+ "name": "workdir",
+ "mountPath": "/work-dir"
+ }
+ ]
+ },
+ {
+ "name": "bootstrap",
+ "image": "java:openjdk-8-jre",
+ "command": ["/work-dir/peer-finder"],
+ "args": ["-on-start=\"/work-dir/on-start.sh\"", "-service=zk"],
+ "env": [
+ {
+ "name": "POD_NAMESPACE",
+ "valueFrom": {
+ "fieldRef": {
+ "apiVersion": "v1",
+ "fieldPath": "metadata.namespace"
+ }
+ }
+ }
+ ],
+ "volumeMounts": [
+ {
+ "name": "opt",
+ "mountPath": "/opt/"
+ },
+ {
+ "name": "workdir",
+ "mountPath": "/work-dir"
+ },
+ {
+ "name": "datadir",
+ "mountPath": "/tmp/zookeeper"
+ }
+ ]
+ }
+ ]'
+ spec:
+ containers:
+ - name: zk
+ image: java:openjdk-8-jre
+ ports:
+ - containerPort: 2888
+ name: peer
+ - containerPort: 3888
+ name: leader-election
+ command:
+ - /opt/zookeeper/bin/zkServer.sh
+ args:
+ - start-foreground
+ readinessProbe:
+ exec:
+ command:
+ - sh
+ - -c
+ - "/opt/zookeeper/bin/zkCli.sh ls /"
+ initialDelaySeconds: 15
+ timeoutSeconds: 5
+ volumeMounts:
+ - name: datadir
+ mountPath: /tmp/zookeeper
+ - name: opt
+ mountPath: /opt/
+ volumes:
+ - name: opt
+ emptyDir: {}
+ - name: workdir
+ emptyDir: {}
+ volumeClaimTemplates:
+ - metadata:
+ name: datadir
+ annotations:
+ volume.alpha.kubernetes.io/storage-class: anything
+ spec:
+ accessModes: [ "ReadWriteOnce" ]
+ resources:
+ requests:
+ storage: 20Gi