apiVersion: v1
kind: Service
metadata:
  # This service only exists to create DNS entries for each pod in the stateful
  # set such that they can resolve each other's IP addresses. It does not
  # create a load-balanced ClusterIP and should not be used directly by clients
  # in most circumstances.
  name: cockroachdb
  labels:
    app: cockroachdb
  annotations:
    # Enable automatic monitoring of all instances when Prometheus is running in the cluster.
    prometheus.io/scrape: "true"
    prometheus.io/path: "_status/vars"
    prometheus.io/port: "8080"
spec:
  ports:
  - port: 26257
    targetPort: 26257
    name: grpc
  - port: 8080
    targetPort: 8080
    name: http
  clusterIP: None
  selector:
    app: cockroachdb
  # This is needed to make the peer-finder work properly and to help avoid
  # edge cases where instance 0 comes up after losing its data and needs to
  # decide whether it should create a new cluster or try to join an existing
  # one. If it creates a new cluster when it should have joined an existing
  # one, we'd end up with two separate clusters listening at the same service
  # endpoint, which would be very bad.
  publishNotReadyAddresses: true
