Skip to content
This repository was archived by the owner on Feb 22, 2022. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion stable/postgresql/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: postgresql
version: 0.8.0
version: 0.8.1
description: Object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance.
keywords:
- postgresql
Expand Down
16 changes: 8 additions & 8 deletions stable/postgresql/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
PostgreSQL can be accessed via port 5432 on the following DNS name from within your cluster:
{{ template "fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
{{ template "postgresql.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local

To get your user password run:

PGPASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath="{.data.postgres-password}" | base64 --decode; echo)
PGPASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "postgresql.fullname" . }} -o jsonpath="{.data.postgres-password}" | base64 --decode; echo)

To connect to your database run the following command (using the env variable from above):

kubectl run {{ template "fullname" . }}-client --rm --tty -i --image postgres \
kubectl run {{ template "postgresql.fullname" . }}-client --rm --tty -i --image postgres \
--env "PGPASSWORD=$PGPASSWORD" \{{- if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }}
--labels="{{ template "fullname" . }}-client=true" \{{- end }}
--labels="{{ template "postgresql.fullname" . }}-client=true" \{{- end }}
--command -- psql -U {{ default "postgres" .Values.postgresUser }} \
-h {{ template "fullname" . }} {{ default "postgres" .Values.postgresDatabase }}
-h {{ template "postgresql.fullname" . }} {{ default "postgres" .Values.postgresDatabase }}

{{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }}
Note: Since NetworkPolicy is enabled, only pods with label
{{ template "fullname" . }}-client=true"
{{ template "postgresql.fullname" . }}-client=true"
will be able to connect to this PostgreSQL cluster.
{{- end }}

To connect to your database directly from outside the K8s cluster:
{{- if contains "NodePort" .Values.service.type }}
PGHOST=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath='{.items[0].status.addresses[0].address}')
PGPORT=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.spec.ports[0].nodePort}')
PGPORT=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "postgresql.fullname" . }} -o jsonpath='{.spec.ports[0].nodePort}')

{{- else if contains "ClusterIP" .Values.service.type }}
PGHOST=127.0.0.1
PGPORT={{ default "5432" .Values.service.port }}

# Execute the following commands to route the connection:
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "postgresql.fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward $POD_NAME {{ default "5432" .Values.service.port }}:{{ default "5432" .Values.service.port }}

{{- end }}
6 changes: 3 additions & 3 deletions stable/postgresql/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "name" -}}
{{- define "postgresql.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "fullname" -}}
{{- define "postgresql.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Return the appropriate apiVersion for networkpolicy.
*/}}
{{- define "networkPolicy.apiVersion" -}}
{{- define "postgresql.networkPolicy.apiVersion" -}}
{{- if and (ge .Capabilities.KubeVersion.Minor "4") (le .Capabilities.KubeVersion.Minor "6") -}}
"extensions/v1beta1"
{{- else if ge .Capabilities.KubeVersion.Minor "7" -}}
Expand Down
14 changes: 7 additions & 7 deletions stable/postgresql/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ template "fullname" . }}
name: {{ template "postgresql.fullname" . }}
labels:
app: {{ template "fullname" . }}
app: {{ template "postgresql.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
template:
metadata:
labels:
app: {{ template "fullname" . }}
app: {{ template "postgresql.fullname" . }}
spec:
containers:
- name: {{ template "fullname" . }}
- name: {{ template "postgresql.fullname" . }}
image: "{{ .Values.image }}:{{ .Values.imageTag }}"
imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
env:
Expand All @@ -32,7 +32,7 @@ spec:
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "fullname" . }}
name: {{ template "postgresql.fullname" . }}
key: postgres-password
- name: POD_IP
valueFrom: { fieldRef: { fieldPath: status.podIP } }
Expand Down Expand Up @@ -87,14 +87,14 @@ spec:
- name: data
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.existingClaim | default (include "fullname" .) }}
claimName: {{ .Values.persistence.existingClaim | default (include "postgresql.fullname" .) }}
{{- else }}
emptyDir: {}
{{- end }}
{{- if and .Values.metrics.enabled .Values.metrics.customMetrics }}
- name: custom-metrics
secret:
secretName: {{ template "fullname" . }}
secretName: {{ template "postgresql.fullname" . }}
items:
- key: custom-metrics.yaml
path: custom-metrics.yaml
Expand Down
10 changes: 5 additions & 5 deletions stable/postgresql/templates/networkpolicy.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{{- if .Values.networkPolicy.enabled }}
kind: NetworkPolicy
apiVersion: {{ template "networkPolicy.apiVersion" . }}
apiVersion: {{ template "postgresql.networkPolicy.apiVersion" . }}
metadata:
name: "{{ template "fullname" . }}"
name: "{{ template "postgresql.fullname" . }}"
labels:
app: {{ template "fullname" . }}
app: {{ template "postgresql.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
podSelector:
matchLabels:
app: "{{ template "fullname" . }}"
app: "{{ template "postgresql.fullname" . }}"
ingress:
# Allow inbound connections
- ports:
Expand All @@ -20,7 +20,7 @@ spec:
from:
- podSelector:
matchLabels:
{{ template "fullname" . }}-client: "true"
{{ template "postgresql.fullname" . }}-client: "true"
{{- end }}
# Allow prometheus scrapes
- ports:
Expand Down
4 changes: 2 additions & 2 deletions stable/postgresql/templates/pvc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "fullname" . }}
name: {{ template "postgresql.fullname" . }}
labels:
app: {{ template "fullname" . }}
app: {{ template "postgresql.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
Expand Down
4 changes: 2 additions & 2 deletions stable/postgresql/templates/secrets.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ template "fullname" . }}
name: {{ template "postgresql.fullname" . }}
labels:
app: {{ template "fullname" . }}
app: {{ template "postgresql.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
Expand Down
6 changes: 3 additions & 3 deletions stable/postgresql/templates/svc.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: {{ template "fullname" . }}
name: {{ template "postgresql.fullname" . }}
labels:
app: {{ template "fullname" . }}
app: {{ template "postgresql.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
Expand All @@ -23,4 +23,4 @@ spec:
{{ toYaml .Values.service.externalIPs | indent 4 }}
{{- end }}
selector:
app: {{ template "fullname" . }}
app: {{ template "postgresql.fullname" . }}