blob: 8ef181f7ca396ae8919696fcaa190cc0fa52a1b6 [file] [log] [blame]
package kube
service etcd spec: {
clusterIP: "None"
ports: [{
}, {
name: "peer"
}]
}
statefulSet etcd spec: {
serviceName: "etcd"
replicas: 3
template: {
metadata annotations: {
"prometheus.io.scrape": "true"
"prometheus.io.port": "2379"
}
spec: {
affinity podAntiAffinity requiredDuringSchedulingIgnoredDuringExecution: [{
labelSelector matchExpressions: [{
key: "app"
operator: "In"
values: ["etcd"]
}]
topologyKey: "kubernetes.io/hostname"
}]
terminationGracePeriodSeconds: 10
containers: [{
image: "quay.io/coreos/etcd:v3.3.10"
ports: [{
name: "client"
containerPort: 2379
}, {
name: "peer"
containerPort: 2380
}]
livenessProbe: {
httpGet: {
path: "/health"
port: "client"
}
initialDelaySeconds: 30
}
volumeMounts: [{
name: "etcd3"
mountPath: "/data"
}]
env: [{
name: "ETCDCTL_API"
value: "3"
}, {
name: "ETCD_AUTO_COMPACTION_RETENTION"
value: "4"
}, {
name: "NAME"
valueFrom fieldRef fieldPath: "metadata.name"
}, {
name: "IP"
valueFrom fieldRef fieldPath: "status.podIP"
}]
command: ["/usr/local/bin/etcd"]
args: ["-name", "$(NAME)", "-data-dir", "/data/etcd3", "-initial-advertise-peer-urls", "http://$(IP):2380", "-listen-peer-urls", "http://$(IP):2380", "-listen-client-urls", "http://$(IP):2379,http://127.0.0.1:2379", "-advertise-client-urls", "http://$(IP):2379", "-discovery", "https://discovery.etcd.io/xxxxxx"]
}]
}
}
// bootstrap
// "-initial-cluster-token", "etcd-prod-events2",
volumeClaimTemplates: [{
metadata: {
name: "etcd3"
annotations "volume.alpha.kubernetes.io/storage-class": "default"
}
spec: {
accessModes: ["ReadWriteOnce"]
resources requests storage: "10Gi"
}
}]
}