65 lines
2.7 KiB
YAML
65 lines
2.7 KiB
YAML
# This service only exists to create DNS entries for each pod in
|
|
# the StatefulSet 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.
|
|
kind: Service
|
|
apiVersion: v1
|
|
metadata:
|
|
name: {{ template "cockroachdb.fullname" . }}
|
|
namespace: {{ .Release.Namespace | quote }}
|
|
labels:
|
|
helm.sh/chart: {{ template "cockroachdb.chart" . }}
|
|
app.kubernetes.io/name: {{ template "cockroachdb.name" . }}
|
|
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
|
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
|
{{- with .Values.service.discovery.labels }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
{{- with .Values.labels }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
annotations:
|
|
# Use this annotation in addition to the actual field below because the
|
|
# annotation will stop being respected soon, but the field is broken in
|
|
# some versions of Kubernetes:
|
|
# https://github.com/kubernetes/kubernetes/issues/58662
|
|
service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
|
|
# Enable automatic monitoring of all instances when Prometheus is running
|
|
# in the cluster.
|
|
{{- if .Values.prometheus.enabled }}
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/path: _status/vars
|
|
prometheus.io/port: {{ .Values.service.ports.http.port | quote }}
|
|
{{- end }}
|
|
{{- with .Values.service.discovery.annotations }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
clusterIP: None
|
|
# We want all Pods in the StatefulSet to have their addresses published for
|
|
# the sake of the other CockroachDB Pods even before they're ready, since they
|
|
# have to be able to talk to each other in order to become ready.
|
|
publishNotReadyAddresses: true
|
|
ports:
|
|
{{- $ports := .Values.service.ports }}
|
|
# The main port, served by gRPC, serves Postgres-flavor SQL, inter-node
|
|
# traffic and the CLI.
|
|
- name: {{ $ports.grpc.external.name | quote }}
|
|
port: {{ $ports.grpc.external.port | int64 }}
|
|
targetPort: grpc
|
|
{{- if ne ($ports.grpc.internal.port | int64) ($ports.grpc.external.port | int64) }}
|
|
- name: {{ $ports.grpc.internal.name | quote }}
|
|
port: {{ $ports.grpc.internal.port | int64 }}
|
|
targetPort: grpc
|
|
{{- end }}
|
|
# The secondary port serves the UI as well as health and debug endpoints.
|
|
- name: {{ $ports.http.name | quote }}
|
|
port: {{ $ports.http.port | int64 }}
|
|
targetPort: http
|
|
selector:
|
|
app.kubernetes.io/name: {{ template "cockroachdb.name" . }}
|
|
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
|
{{- with .Values.statefulset.labels }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|