| apiVersion: v1 |
| kind: Service |
| metadata: |
| name: {{ include "postgresql.primary.svc.headless" . }} |
| namespace: {{ .Release.Namespace | quote }} |
| labels: {{- include "common.labels.standard" . | nindent 4 }} |
| {{- if .Values.commonLabels }} |
| {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} |
| {{- end }} |
| app.kubernetes.io/component: primary |
| {{- if or .Values.primary.service.headless.annotations .Values.commonAnnotations }} |
| annotations: |
| {{- if .Values.primary.service.headless.annotations }} |
| {{- include "common.tplvalues.render" ( dict "value" .Values.primary.service.headless.annotations "context" $ ) | nindent 4 }} |
| {{- end }} |
| {{- if .Values.commonAnnotations }} |
| {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} |
| {{- end }} |
| {{- end }} |
| # Use this annotation in addition to the actual publishNotReadyAddresses |
| # 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" |
| spec: |
| type: ClusterIP |
| clusterIP: None |
| # We want all pods in the StatefulSet to have their addresses published for |
| # the sake of the other Postgresql 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: |
| - name: tcp-postgresql |
| port: {{ template "postgresql.service.port" . }} |
| targetPort: tcp-postgresql |
| selector: {{- include "common.labels.matchLabels" . | nindent 4 }} |
| app.kubernetes.io/component: primary |