Skip to content

Commit 2015932

Browse files
committed
Add pgadmin
1 parent 384a658 commit 2015932

File tree

6 files changed

+167
-0
lines changed

6 files changed

+167
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
generators:
4+
- secret-generator.yaml
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: pgadmin-secret
5+
namespace: database
6+
stringData:
7+
PGADMIN_DEFAULT_EMAIL: ENC[AES256_GCM,data:1hRFoPItcCAv+qa77fDbC+P7Vw==,iv:QHiUN3i0ZeW5QQ9XRYmhFY+qLjYtKObjCVi+Y5UcOX8=,tag:4EhKxSTMTrgIjDvD0jSvAA==,type:str]
8+
PGADMIN_DEFAULT_PASSWORD: ENC[AES256_GCM,data:kRCOLc7K3hjYKAN2g6w4VR3ORRabNyU=,iv:uaScuIrNl9rIDzshayREreQeLmGJIXto2bMIbhhvFYw=,tag:ondOHMXb9KTVWMart6L6mA==,type:str]
9+
config_local.py: ENC[AES256_GCM,data:WxVz/RakiN/JZZ6Z5JkbmarsrhJpx+eocGoV0b6rrgy/f29aJ5FjD/jOmleWuvHazFGFs5CahuEPU52KY6srnYKGpb5V3PosNV0yLcK8MPwuDRoGVSNu8iuy9DrdbLEEGwOjTbeCQBz05qmAg6VYq3CtdW8+Gl3HPU/8/+0GZa767qiGzJAdxVOJbmrxNLxEUJ20QmiWPzMz1Ad4Z4YbazBz0o+xnUEG4ANmDCwJgdMKk+KkoiW8sao6P3WhC/WlooiBipzgI+FcM1uhopMjRxDL5cPpQRehntjHlJdvZUDS/2+DHZ3FIAhGwxNO3GGbj+zHWuIhkrXLhbtt16NMbu5znpBAHUG8eba9U05/ooYgAcemOXQ781d855PRAVTc3RFj4j5nDdx1GbI+aZjA50zcPmZ76V06IHCM7rBfvZYzNhdi1eMMDzJH2ssssXHgb9DHE8QsCvSQnYyXbqzNlfz3FQc7u+m4OJU2JmNnRwdsvM2VH+gcXva6DC5N/tGT/95Pssh0OBd+vm0m5IS4308MESYgAgfFSn14Trc/IShEvvJue1zb11YFo1M45uu2k8fsrDH15DoVp+JYxeiC9ehHKO5WvyZRkGr5uksgf5yz1NN005sCO6yUHxeveVzQJ6yey4VGsZsXRsrYDCBBPtYDrq5gWKDNK20HwAURoa43FT7B5Fxkk01/hChZ3BR+NbexgkAWWPs3iQ7JXhM/wePOnbLuBRJXlkzDQ8CtYn/cCi+tkCi/5OxAdwrGaLI/rdl6ghYPsvSi+JD1U+v+dVZyyzdsLIyhH1USYpkuSCIkaZDEbW1EJTnfEfreiD3LlSygV+2IsP7n2QZfAXKE74hVcB7rX2pgGxk8PAUUEn0LEQtN+fuFhogIs8Eo/83b7+dBjsFhlKV+/P/TPxgVc6VSvRcCrFu4GGP+TyFaZCPw9yp2TZ4fEhIyh1nHW9RVQMn6SOGLm7fQDUGQLLnW4CQgv34DiuIKyWdPBl/dDq3eOjfumysSTxl9xlu1hN9gqeeomYV+RstB14sD1NuLUWdjC9tNcX7rOfOzNgLR6B/CWoemwE/KejdrTnzoy+bYvULgZBc9rv9GmqmT2h2qSK2Vp6nNi5cLO+oihxd77I1WxL+RwIn6DetSwubWINlgWs6ATlMOyD5cX1WdEHwJeckTGOgd2FfgYot2Z+/URA63i83P0uvj/+ISQnTSRxYftHOvO/jP7vyiUI+eF03WSJKOj9+93NKJ/lziPcU8o6TgDJvb+a8=,iv:d2EDblO98u0wMozTteeIMwyjAr5F1qHzgS/dp2WOxe8=,tag:Hoz4Qvv6sI4c2I++AF8keA==,type:str]
10+
sops:
11+
age:
12+
- recipient: age1j7x3jkw82w02taqj8dmqplae07fxcrup2enejnta9z2v82fzsakqd4ka6p
13+
enc: |
14+
-----BEGIN AGE ENCRYPTED FILE-----
15+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFdXFzNnc3dGprZ3VVc2Zr
16+
S2NVS29mbEJlRDl0WGUrb3FweTYxamRJcERFCkdNakxIcWVIZHZ1MXFJSWVzVDJ1
17+
WEhGUUFlbCtycGxTYjBDdjI0RWtWdHMKLS0tIFZIK00xZTB3OGp3STUzY3VXTFhZ
18+
Q2h5TjYxQWN6a2pOWFdFNjJkMzhGNWcKTWsGZI2BDkde2mWkcNyc+jhVdldLSYXs
19+
4xakfj73KLpiIZ5DE7zP/9gEtH4MkuuM5uIXld/lKZXbT4gX1CDejg==
20+
-----END AGE ENCRYPTED FILE-----
21+
lastmodified: "2026-01-02T14:56:59Z"
22+
mac: ENC[AES256_GCM,data:X/E660CfHiUwEITrF/m1emOlBevc1XdEsI6i07xRPeeFnQivoXQN6nIbHJy5Cy0sfRW4DD+fw+tU+zoV9kBEa+70k8CpGjLlDAU8Gvz3wBDQ/uJluEpr34dtH/B4Hs8kdJF8hlBLP/LyF+9GYkGxy2GuT71IAFh/uDrrnt4Bi70=,iv:fl5ORGRFVPeu4dVlK17X/xtLVObZP7vMQ+7b4NbwB0I=,tag:+ht0qfhpwPOaCSqa/yKY2A==,type:str]
23+
encrypted_regex: ^(data|stringData)$
24+
mac_only_encrypted: true
25+
version: 3.11.0
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: viaduct.ai/v1
2+
kind: ksops
3+
metadata:
4+
name: pgadmin-secret-generator
5+
annotations:
6+
config.kubernetes.io/function: |
7+
exec:
8+
path: ksops
9+
files:
10+
- ./pgadmin-secret.sops.yaml
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
defaultPodOptions:
2+
securityContext:
3+
runAsNonRoot: true
4+
runAsUser: 3000
5+
runAsGroup: 3000
6+
fsGroup: 3000
7+
fsGroupChangePolicy: OnRootMismatch
8+
9+
controllers:
10+
pgadmin:
11+
annotations:
12+
reloader.stakater.com/auto: "true"
13+
containers:
14+
app:
15+
image:
16+
repository: docker.io/dpage/pgadmin4
17+
tag: "9.11@sha256:50700ac17936d0227f9e3e4bb086a91efb67064debc4b4737c35545bf1564088"
18+
env:
19+
GUNICORN_LIMIT_REQUEST_LINE: "0"
20+
GUNICORN_LIMIT_REQUEST_FIELD_SIZE: "0"
21+
PGADMIN_CUSTOM_CONFIG_DISTRO_FILE: /tmp/config_distro.py
22+
PGADMIN_DISABLE_POSTFIX: "true"
23+
envFrom:
24+
- secretRef:
25+
name: pgadmin-secret
26+
resources:
27+
requests:
28+
cpu: 50m
29+
memory: 100Mi
30+
limits:
31+
memory: 500Mi
32+
33+
service:
34+
app:
35+
controller: pgadmin
36+
ports:
37+
http:
38+
port: 80
39+
40+
ingress:
41+
app:
42+
className: internal
43+
hosts:
44+
- host: pgadmin.laboratory.casa
45+
paths:
46+
- path: /
47+
service:
48+
identifier: app
49+
port: http
50+
51+
persistence:
52+
config:
53+
type: persistentVolumeClaim
54+
storageClass: longhorn
55+
accessMode: ReadWriteOnce
56+
size: 512Mi
57+
globalMounts:
58+
- path: /var/lib/pgadmin
59+
oauth:
60+
enabled: true
61+
type: secret
62+
name: pgadmin-secret
63+
advancedMounts:
64+
pgadmin:
65+
app:
66+
- path: /pgadmin4/config_local.py
67+
subPath: config_local.py
68+
empty:
69+
type: emptyDir
70+
sizeLimit: 100Mi
71+
globalMounts:
72+
- path: /tmp
73+
subPath: tmp
74+
- path: /var/log
75+
subPath: log

kubernetes/apps/security/authelia/authelia-config.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,27 @@ identity_providers:
217217
token_endpoint_auth_method: none
218218
access_token_signed_response_alg: "none"
219219
userinfo_signed_response_alg: "none"
220+
# pgAdmin
221+
- client_id: "180j8UKBM3CEMYV~0sQFlbvG-HlZX1SagNIIBf5Gk~9UtCadBzRAj32_QQdP2WkJWW3ek1AW"
222+
client_name: "pgAdmin"
223+
client_secret: "$pbkdf2-sha512$310000$mW.OvQaOY78b4afaoGtyMA$ROU1LSObbw48vu.EE2SuN/iqnK5abuTf0FYpSnXiSGobwbzFpXjLIIdyfswhpuOyUXLYonCFfXpbZzHE/VkCHA"
224+
public: false
225+
authorization_policy: "one_factor"
226+
require_pkce: true
227+
pkce_challenge_method: "S256"
228+
redirect_uris:
229+
- "https://pgadmin.laboratory.casa/oauth2/authorize"
230+
scopes:
231+
- "openid"
232+
- "profile"
233+
- "email"
234+
response_types:
235+
- "code"
236+
grant_types:
237+
- "authorization_code"
238+
access_token_signed_response_alg: "none"
239+
userinfo_signed_response_alg: "none"
240+
token_endpoint_auth_method: "client_secret_basic"
220241
# Romm
221242
- client_id: ".VBSb-hcpa9r3odp1o~1VreQRYpwUWpb1Dzw5dDkEcr08duvBx2TZ6tAIO-gFJ92q2rPZ-Y8"
222243
client_name: "Romm"
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
apiVersion: argoproj.io/v1alpha1
3+
kind: Application
4+
metadata:
5+
name: pgadmin
6+
namespace: argo-system
7+
annotations:
8+
argocd.argoproj.io/sync-wave: "0"
9+
spec:
10+
project: kubernetes
11+
sources:
12+
- repoURL: https://github.com/mebezac/home-cluster.git
13+
path: kubernetes/apps/database/pgadmin
14+
targetRevision: main
15+
ref: pgadmin-repo
16+
- repoURL: ghcr.io/bjw-s-labs/helm
17+
chart: app-template
18+
targetRevision: 4.5.0
19+
helm:
20+
releaseName: pgadmin
21+
valueFiles:
22+
- $pgadmin-repo/kubernetes/apps/database/pgadmin/values.yaml
23+
destination:
24+
name: in-cluster
25+
namespace: database
26+
syncPolicy:
27+
automated:
28+
allowEmpty: true
29+
prune: true
30+
selfHeal: true
31+
syncOptions:
32+
- CreateNamespace=true

0 commit comments

Comments
 (0)