# This is the service that should be used by the clients of Dgraph to talk to the cluster. apiVersion: v1 kind: Service metadata: name: dgraph-public labels: app: dgraph spec: type: ClusterIP ports: - port: 5080 targetPort: 5080 name: grpc-zero - port: 6080 targetPort: 6080 name: http-zero - port: 8080 targetPort: 8080 name: http-alpha - port: 9080 targetPort: 9080 name: grpc-alpha selector: app: dgraph --- # This StatefulSet runs 1 pod with one Zero container and one Alpha container. apiVersion: apps/v1 kind: StatefulSet metadata: name: dgraph spec: serviceName: "dgraph" replicas: 1 selector: matchLabels: app: dgraph template: metadata: labels: app: dgraph spec: containers: - name: zero image: dgraph/dgraph:latest imagePullPolicy: IfNotPresent ports: - containerPort: 5080 name: grpc-zero - containerPort: 6080 name: http-zero volumeMounts: - name: datadir mountPath: /dgraph command: - bash - "-c" - | set -ex dgraph zero --survive filesystem --my=$(hostname -f):5080 - name: alpha image: dgraph/dgraph:latest imagePullPolicy: IfNotPresent ports: - containerPort: 8080 name: http-alpha - containerPort: 9080 name: grpc-alpha volumeMounts: - name: datadir mountPath: /dgraph env: - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace command: - bash - "-c" - | set -ex dgraph alpha --survive filesystem --my=$(hostname -f):7080 --zero dgraph-0.dgraph.${POD_NAMESPACE}.svc.cluster.local:5080 --security whitelist=0.0.0.0/0 terminationGracePeriodSeconds: 60 volumes: - name: datadir persistentVolumeClaim: claimName: datadir updateStrategy: type: RollingUpdate volumeClaimTemplates: - metadata: name: datadir annotations: volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: - "ReadWriteOnce" resources: requests: storage: 5Gi