Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
alexnuttinck committed Jun 6, 2019
2 parents f6df3a5 + 6fea584 commit d34dee2
Show file tree
Hide file tree
Showing 9 changed files with 194 additions and 24 deletions.
4 changes: 2 additions & 2 deletions Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: pgadmin
version: 0.1.0
appVersion: 4.7.0
version: 0.1.1
appVersion: 4.8.0
description: pgAdmin is a web based administration tool for the PostgreSQL database.
keywords:
- pgadmin
Expand Down
29 changes: 19 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ The following items can be set via `--set` flag during installation or configure
Install the pgAdmin helm chart with a release name `my-release`:

```bash
helm install --name my-release helm install cetic/helm-pgadmin
helm install --name my-release cetic/pgadmin
```

## Uninstallation
Expand All @@ -61,29 +61,38 @@ The following table lists the configurable parameters of the pgAdmin chart and t
| --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------| ------------------------------- |
| **Image** |
| `image.repository` | pgAdmin Image name | `dpage/pgadmin4` |
| `image.tag` | pgAdmin Image tag | `4.7` |
| `image.tag` | pgAdmin Image tag | `4.8` |
| `image.pullPolicy` | pgAdmin Image pull policy | `IfNotPresent` |
| **PgAdmin** |
| `pgadmin.username` | pgAdmin admin user | `[email protected]` |
| `pgadmin.paasword` | pgAdmin admin password | `admin` |
| `pgadmin.password` | pgAdmin admin password | `admin` |
| `pgadmin.tls` | pgAdmin admin TLS. the container will listen on port 80 for connections in plain text. If set to any value, the container will listen on port 443 for TLS connections. When TLS is enabled, a certificate and key must be provided. See [secrets file](/templates/secrets.yaml)| `false` |
| **Persistence** |
| `persistence.enabled` | Enable the data persistence or not | `true` |
| `persistence.existingClaim` | Provide an existing PersistentVolumeClaim, the value is evaluated as a template. | `nil` |
| `persistence.storageClass` | PVC Storage Class for PostgreSQL volume. | `nil` |
| `persistence.accessMode` | The access mode of the volume. | `ReadWriteOnce` |
| `persistence.size` | The size of the volume. | `4Gi` |
| `persistence.existingClaim` | Provide an existing PersistentVolumeClaim, the value is evaluated as a template | `nil` |
| `persistence.storageClass` | PVC Storage Class for PostgreSQL volume | `nil` |
| `persistence.accessMode` | The access mode of the volume | `ReadWriteOnce` |
| `persistence.size` | The size of the volume | `4Gi` |
| **Service** |
| `service.type` | Type of service for pgAdmin frontend | `LoadBalancer` |
| `service.type` | Type of service for pgAdmin frontend | `LoadBalancer` |
| `service.port` | Port to expose service | `80` |
| `service.tlsport` | Port to expose service in tls, `pgadmin.tls`must be enabled | `443` |
| `service.loadBalancerIP` | LoadBalancerIP if service type is `LoadBalancer` | `nil` |
| `service.loadBalancerSourceRanges` | Address that are allowed when svc is `LoadBalancer` | [] |
| `service.loadBalancerSourceRanges` | Address that are allowed when svc is `LoadBalancer` | `[]` |
| `service.annotations` | Service annotations | `{}` |
| **ReadinessProbe** |
| `readinessProbe` | Rediness Probe settings | `{ "httpGet": { "path": "/", "port": http } "initialDelaySeconds": 60, "periodSeconds": 15, "timeoutSeconds": 10 }`|
| **LivenessProbe** |
| `livenessProbe` | Liveness Probe settings | `{ "httpGet": { "path": "/", "port": http } "initialDelaySeconds": 60, "periodSeconds": 30, "timeoutSeconds": 10 }` |
| **Resources** |
| `resources` | CPU/Memory resource requests/limits | `{}` |
| **Ingress** |
| `ingress.enabled` | Enables Ingress | `false` |
| `ingress.tls` | Ingress TLS configuration | `[]` |

## Credits

Initially inspired from https://github.com/jjcollinge/pgadmin-chart
Initially inspired from https://github.com/jjcollinge/pgadmin-chart, which is archived.

## License

Expand Down
35 changes: 35 additions & 0 deletions certs/server.cert
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
-----BEGIN CERTIFICATE-----
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
QBLdhJFPh7+08NtECzOrEtBrEDxPqxhznQ==
-----END CERTIFICATE-----
52 changes: 52 additions & 0 deletions certs/server.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
kZ7mTxpW0256Kt+FzVnpb7TJSpUGyhwoMA==
-----END PRIVATE KEY-----
7 changes: 6 additions & 1 deletion publish.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,12 @@ echo ">>> Create Chart Directory"

mkdir $HELM_CHARTS_SOURCE/

cp -r `ls -1 | grep -v $HELM_CHART` /$HELM_CHART
mv $WORKING_DIRECTORY/Chart.yaml $HELM_CHARTS_SOURCE/Chart.yaml
mv $WORKING_DIRECTORY/.helmignore $HELM_CHARTS_SOURCE/.helmignore
mv $WORKING_DIRECTORY/LICENSE.md $HELM_CHARTS_SOURCE/LICENSE.md
mv $WORKING_DIRECTORY/values.yaml $HELM_CHARTS_SOURCE/values.yaml
mv $WORKING_DIRECTORY/templates $HELM_CHARTS_SOURCE/templates
mv $WORKING_DIRECTORY/certs $HELM_CHARTS_SOURCE/certs

echo '>> Prepare...'
mkdir -p /tmp/helm/bin
Expand Down
36 changes: 33 additions & 3 deletions templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ spec:
secretKeyRef:
name: {{ template "fullname" . }}
key: pgadmin-password
{{- if .Values.pgadmin.tls }}
- name: PGADMIN_ENABLE_TLS
value: {{ .Values.pgadmin.tls | quote }}
{{- end }}
ports:
- name: http
containerPort: 80
Expand All @@ -37,16 +41,42 @@ spec:
volumeMounts:
- name: pgadmin-data
mountPath: /var/lib/pgadmin
{{- if .Values.pgadmin.tls }}
- name: tls-cert
mountPath: /certs/server.cert
subPath: server.cert
- name: tls-private-key
mountPath: /certs/server.key
subPath: server.key
{{- end }}
resources:
{{ toYaml .Values.resources | indent 12 }}
livenessProbe:
{{ toYaml .Values.livenessProbe | indent 12 }}
readinessProbe:
{{ toYaml .Values.readinessProbe | indent 12 }}
volumes:
- name: pgadmin-data
{{- if .Values.persistence.enabled }}
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ template "fullname" . }}
{{- else }}
{{- else }}
emptyDir: {}
{{- end }}
{{- end }}
{{- if .Values.pgadmin.tls }}
- name: tls-private-key
secret:
secretName: {{ template "fullname" . }}
items:
- key: server.key
path: server.key
- name: tls-cert
secret:
secretName: {{ template "fullname" . }}
items:
- key: server.cert
path: server.cert
{{- end }}
{{- if .Values.nodeSelector }}
nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
Expand Down
4 changes: 4 additions & 0 deletions templates/secrets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@ metadata:
type: Opaque
data:
pgadmin-password: {{ default "admin" .Values.pgadmin.password | b64enc | quote }}
{{- if .Values.pgadmin.tls }}
server.cert: {{ .Files.Get "certs/server.cert" | b64enc }}
server.key: {{ .Files.Get "certs/server.key" | b64enc }}
{{- end }}
10 changes: 10 additions & 0 deletions templates/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ metadata:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- if .Values.service.annotations }}
annotations:
{{ toYaml .Values.service.annotations | indent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
{{- if and .Values.service.loadBalancerIP (eq .Values.service.type "LoadBalancer") }}
Expand All @@ -23,6 +27,12 @@ spec:
targetPort: http
protocol: TCP
name: http
{{- if .Values.pgadmin.tls }}
- port: {{ .Values.service.tlsport }}
targetPort: https
protocol: TCP
name: https
{{- end }}
selector:
app: {{ template "name" . }}
release: {{ .Release.Name }}
41 changes: 33 additions & 8 deletions values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@
##
image:
repository: dpage/pgadmin4
tag: 4.7
tag: 4.8
pullPolicy: IfNotPresent

pgadmin:
## pgadmin admin user
username: [email protected]
## pgadmin admin password
password: admin

resources: {}
tls: false

## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
Expand Down Expand Up @@ -47,6 +46,8 @@ service:
name: pgadmin
type: LoadBalancer
port: 80
tlsport: 443
annotations: {}

## Set the LoadBalancer service type to internal only.
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
Expand All @@ -70,11 +71,35 @@ ingress:
clusterIssuer: letsencrypt-staging
externalDNSName: pgadmin.example.com

## TODO
## Configure liveness and readiness probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
##
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 60
periodSeconds: 15
timeoutSeconds: 10
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 10

## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
#resources:
# requests:
# memory: 256Mi
# cpu: 250m
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi

0 comments on commit d34dee2

Please sign in to comment.