github.com/unigraph-dev/dgraph@v1.1.1-0.20200923154953-8b52b426f765/contrib/config/kubernetes/helm/templates/alpha-statefulset.yaml (about) 1 apiVersion: apps/v1beta2 2 kind: StatefulSet 3 metadata: 4 name: "{{ template "dgraph.alpha.fullname" . }}" 5 labels: 6 app: {{ template "dgraph.name" . }} 7 chart: {{ template "dgraph.chart" . }} 8 component: {{ .Values.alpha.name }} 9 release: {{ .Release.Name }} 10 heritage: {{ .Release.Service }} 11 spec: 12 serviceName: {{ template "dgraph.alpha.fullname" . }}-headless 13 replicas: {{ .Values.alpha.replicaCount }} 14 podManagementPolicy: {{ .Values.alpha.podManagementPolicy | quote }} 15 updateStrategy: 16 type: {{ .Values.alpha.updateStrategy | quote }} 17 {{- if (eq "Recreate" .Values.alpha.updateStrategy) }} 18 rollingUpdate: null 19 {{- else if .Values.alpha.rollingUpdatePartition }} 20 rollingUpdate: 21 partition: {{ .Values.alpha.rollingUpdatePartition }} 22 {{- end }} 23 selector: 24 matchLabels: 25 app: {{ template "dgraph.name" . }} 26 chart: {{ template "dgraph.chart" . }} 27 release: {{ .Release.Name }} 28 component: {{ .Values.alpha.name }} 29 template: 30 metadata: 31 name: "{{ template "dgraph.alpha.fullname" . }}" 32 labels: 33 app: {{ template "dgraph.name" . }} 34 chart: {{ template "dgraph.chart" . }} 35 release: {{ .Release.Name }} 36 component: {{ .Values.alpha.name }} 37 spec: 38 {{- if or (eq .Values.alpha.antiAffinity "hard") (eq .Values.alpha.antiAffinity "soft") .Values.alpha.nodeAffinity }} 39 affinity: 40 {{- end }} 41 {{- if eq .Values.alpha.antiAffinity "hard" }} 42 podAntiAffinity: 43 requiredDuringSchedulingIgnoredDuringExecution: 44 labelSelector: 45 matchExpressions: 46 - key: component 47 operator: In 48 values: 49 - {{ .Values.alpha.name }} 50 topologyKey: {{ .Values.alpha.podAntiAffinitytopologyKey }} 51 {{- else if eq .Values.alpha.antiAffinity "soft" }} 52 podAntiAffinity: 53 preferredDuringSchedulingIgnoredDuringExecution: 54 - weight: 100 55 podAffinityTerm: 56 labelSelector: 57 matchExpressions: 58 - key: component 59 operator: In 60 values: 61 - {{ .Values.alpha.name }} 62 topologyKey: {{ .Values.alpha.podAntiAffinitytopologyKey }} 63 {{- end }} 64 {{- with .Values.alpha.nodeAffinity }} 65 nodeAffinity: 66 {{ toYaml . | indent 10 }} 67 {{- end }} 68 {{- include "dgraph.imagePullSecrets" . | indent 6 }} 69 {{- if .Values.alpha.securityContext.enabled }} 70 securityContext: 71 fsGroup: {{ .Values.alpha.securityContext.fsGroup }} 72 runAsUser: {{ .Values.alpha.securityContext.runAsUser }} 73 {{- end }} 74 {{- if .Values.alpha.nodeSelector }} 75 nodeSelector: 76 {{ toYaml .Values.alpha.nodeSelector | indent 8 }} 77 {{- end }} 78 {{- if .Values.alpha.tolerations }} 79 tolerations: 80 {{ toYaml .Values.alpha.tolerations | indent 8 }} 81 {{- end }} 82 containers: 83 - name: "{{ template "dgraph.alpha.fullname" . }}" 84 image: "{{ template "dgraph.image" . }}" 85 ports: 86 - containerPort: 7080 87 name: alpha-grpc-int 88 - containerPort: 8080 89 name: alpha-http 90 - containerPort: 9080 91 name: alpha-grpc 92 imagePullPolicy: {{ .Values.image.pullPolicy | quote }} 93 env: 94 - name: POD_NAMESPACE 95 valueFrom: 96 fieldRef: 97 fieldPath: metadata.namespace 98 command: 99 - bash 100 - "-c" 101 - | 102 set -ex 103 dgraph alpha --my=$(hostname -f):7080 --lru_mb {{ .Values.alpha.lru_mb }} --zero {{ template "dgraph.zero.fullname" . }}-0.{{ template "dgraph.zero.fullname" . }}-headless.${POD_NAMESPACE}.svc.cluster.local:5080 104 resources: 105 {{ toYaml .Values.alpha.resources | indent 10 }} 106 {{- if .Values.alpha.livenessProbe.enabled }} 107 livenessProbe: 108 httpGet: 109 port: {{ .Values.alpha.livenessProbe.port }} 110 path: {{ .Values.alpha.livenessProbe.path }} 111 initialDelaySeconds: {{ .Values.alpha.livenessProbe.initialDelaySeconds }} 112 periodSeconds: {{ .Values.alpha.livenessProbe.periodSeconds }} 113 timeoutSeconds: {{ .Values.alpha.livenessProbe.timeoutSeconds }} 114 successThreshold: {{ .Values.alpha.livenessProbe.successThreshold }} 115 failureThreshold: {{ .Values.alpha.livenessProbe.failureThreshold }} 116 {{- end }} 117 {{- if .Values.alpha.readinessProbe.enabled }} 118 readinessProbe: 119 httpGet: 120 port: {{ .Values.alpha.livenessProbe.port }} 121 path: {{ .Values.alpha.livenessProbe.path }} 122 initialDelaySeconds: {{ .Values.alpha.readinessProbe.initialDelaySeconds }} 123 periodSeconds: {{ .Values.alpha.readinessProbe.periodSeconds }} 124 timeoutSeconds: {{ .Values.alpha.readinessProbe.timeoutSeconds }} 125 successThreshold: {{ .Values.alpha.readinessProbe.successThreshold }} 126 failureThreshold: {{ .Values.alpha.readinessProbe.failureThreshold }} 127 {{- end }} 128 volumeMounts: 129 {{- if .Values.alpha.persistence.enabled }} 130 - name: datadir 131 mountPath: /dgraph 132 {{- end }} 133 terminationGracePeriodSeconds: {{ .Values.alpha.terminationGracePeriodSeconds }} 134 volumes: 135 - name: datadir 136 persistentVolumeClaim: 137 claimName: datadir 138 {{- if .Values.alpha.persistence.enabled }} 139 volumeClaimTemplates: 140 - metadata: 141 name: datadir 142 annotations: 143 volume.alpha.kubernetes.io/storage-class: anything 144 spec: 145 accessModes: 146 {{- range .Values.alpha.persistence.accessModes }} 147 - {{ . | quote }} 148 {{- end }} 149 resources: 150 requests: 151 storage: {{ .Values.alpha.persistence.size | quote }} 152 {{- if .Values.alpha.persistence.storageClass }} 153 {{- if (eq "-" .Values.alpha.persistence.storageClass) }} 154 storageClassName: "" 155 {{- else }} 156 storageClassName: {{ .Values.alpha.persistence.storageClass | quote }} 157 {{- end -}} 158 {{- end -}} 159 {{- else }} 160 - name: datadir 161 emptyDir: {} 162 {{- end }}