feat: add pg-admin
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||
kind: Kustomization
|
||||
metadata:
|
||||
name: pgadmin
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 10m
|
||||
path: ./apps/pgadmin
|
||||
prune: true
|
||||
sourceRef:
|
||||
kind: GitRepository
|
||||
name: flux-system
|
||||
decryption:
|
||||
provider: sops
|
||||
secretRef:
|
||||
name: sops-age
|
||||
@@ -0,0 +1,57 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: pgadmin-config
|
||||
namespace: pgadmin
|
||||
data:
|
||||
servers.json: |
|
||||
{
|
||||
"Servers": {
|
||||
"1": {
|
||||
"Name": "Davis",
|
||||
"Group": "CNPG",
|
||||
"Host": "davis-db-rw.davis.svc.cluster.local",
|
||||
"Port": 5432,
|
||||
"MaintenanceDB": "postgres",
|
||||
"Username": "postgres",
|
||||
"SSLMode": "prefer"
|
||||
},
|
||||
"2": {
|
||||
"Name": "Forgejo",
|
||||
"Group": "CNPG",
|
||||
"Host": "forgejo-db-rw.forgejo.svc.cluster.local",
|
||||
"Port": 5432,
|
||||
"MaintenanceDB": "postgres",
|
||||
"Username": "postgres",
|
||||
"SSLMode": "prefer"
|
||||
},
|
||||
"3": {
|
||||
"Name": "Garmin",
|
||||
"Group": "CNPG",
|
||||
"Host": "garmin-db-rw.garmin.svc.cluster.local",
|
||||
"Port": 5432,
|
||||
"MaintenanceDB": "postgres",
|
||||
"Username": "postgres",
|
||||
"SSLMode": "prefer"
|
||||
},
|
||||
"4": {
|
||||
"Name": "Synapse",
|
||||
"Group": "CNPG",
|
||||
"Host": "synapse-db-rw.synapse.svc.cluster.local",
|
||||
"Port": 5432,
|
||||
"MaintenanceDB": "postgres",
|
||||
"Username": "postgres",
|
||||
"SSLMode": "prefer"
|
||||
},
|
||||
"5": {
|
||||
"Name": "Synapse MAS",
|
||||
"Group": "CNPG",
|
||||
"Host": "mas-db-rw.synapse.svc.cluster.local",
|
||||
"Port": 5432,
|
||||
"MaintenanceDB": "postgres",
|
||||
"Username": "postgres",
|
||||
"SSLMode": "prefer"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pgadmin
|
||||
namespace: pgadmin
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pgadmin
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pgadmin
|
||||
spec:
|
||||
securityContext:
|
||||
fsGroup: 5050
|
||||
containers:
|
||||
- name: pgadmin
|
||||
image: dpage/pgadmin4:latest
|
||||
ports:
|
||||
- containerPort: 80
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: pgadmin-secret
|
||||
env:
|
||||
- name: PGADMIN_SERVER_JSON_FILE
|
||||
value: /pgadmin4/servers.json
|
||||
volumeMounts:
|
||||
- name: pgadmin-data
|
||||
mountPath: /var/lib/pgadmin
|
||||
- name: pgadmin-config
|
||||
mountPath: /pgadmin4/servers.json
|
||||
subPath: servers.json
|
||||
volumes:
|
||||
- name: pgadmin-data
|
||||
persistentVolumeClaim:
|
||||
claimName: pgadmin-pvc
|
||||
- name: pgadmin-config
|
||||
configMap:
|
||||
name: pgadmin-config
|
||||
@@ -0,0 +1,10 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: pgadmin
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- secret.sops.yaml
|
||||
- configmap.yaml
|
||||
- pvc.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: pgadmin
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: pgadmin-pvc
|
||||
namespace: pgadmin
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClassName: longhorn # du nutzt Longhorn laut deiner Struktur
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
@@ -0,0 +1,30 @@
|
||||
apiVersion: ENC[AES256_GCM,data:S6I=,iv:9kcFV2XMJVl1j8uPvyg4zDIaUa0WHLUK7jkH1ZjYWK8=,tag:w1Xz8SWN2exyt0f9lGsOdg==,type:str]
|
||||
kind: ENC[AES256_GCM,data:2LHfZbCK,iv:DqMYkW+7+9Ved4hvXRBiqK1ydY5GrHTnToNLMU4Ne90=,tag:J84eLTmKxHwaC+QLX1jJrw==,type:str]
|
||||
metadata:
|
||||
name: ENC[AES256_GCM,data:5uP/Faegom7X2qE3fGs=,iv:Rr2l4PaiS9GDnZoT3ASRH6CGq0snnaLDHoJfAqfZItg=,tag:DgVmVgFKnz8oTdw/wgmJAw==,type:str]
|
||||
namespace: ENC[AES256_GCM,data:1AZ1cHo59w==,iv:uEVIvjVXMOyd+LXelmTwuW3BcAJUY8ycYFJhB0oHK/U=,tag:uqBy8SkwTd+hwKjGm4afzQ==,type:str]
|
||||
stringData:
|
||||
#ENC[AES256_GCM,data:PWJdjfRj6U8k,iv:E2CGfPxRBJI0Vhr0WZ/E1dYTqItREyPl2CNUmYpIFwo=,tag:kNBAsTaWa8j4ZexqK+GlJg==,type:comment]
|
||||
PGADMIN_DEFAULT_EMAIL: ENC[AES256_GCM,data:ic6a0htMv2Vc5gFaNlIKe60nLyM=,iv:BvevFffY2XW02zJf7gOT5XHFXmC7lpYU3dY9ZIZ1pWU=,tag:tDM4yDpo7wknOEeJxvkaOA==,type:str]
|
||||
#ENC[AES256_GCM,data:bVMCR1ntygJ+H6dVsl0IUk53+1fccludCqPiVKU=,iv:B0/KW1EAAcukyBWvBREpkhiMiDGsJ9W4vB6/6mF+JUo=,tag:SMzHjGq4O1NCfQeyeRkQlA==,type:comment]
|
||||
PGADMIN_DEFAULT_PASSWORD: ENC[AES256_GCM,data:bFMgeTFcay0=,iv:bAoWlJsfDzwnEcYQ8Yi3QPtRLQUmxe/x/4DL1nId3vY=,tag:bgAmCXMDK2rNkg8+FbW8nQ==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1rydfcalt7pu4jnmh298lgjlasxyjldyaz3xyssk7v54lpu30fv0qna96ea
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBINEJtSjJOSHZpKzk2dkFO
|
||||
emhpbFp4N0F6c25EVnlZQXZTUndUaFgrZzEwCnZOZytyY2N1a2FyNnp6b01yVmVy
|
||||
aklNK0p4OUNoSHF6OURlSzh6UHFpUFkKLS0tIEFWVFFNQlFQV3BPdWxqbmFlazgx
|
||||
TjI4NHBMdXRUSHVBcU14eHdvVkwvdG8KJ4LblkxOzp5WlgPFLqTrEdu+qm13pdzm
|
||||
wVCb2n1ormGxCE5oVdW+zI1ZrnWtZe0nKcq4WCtfnwBdsQYcarxChQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-04-30T10:35:18Z"
|
||||
mac: ENC[AES256_GCM,data:KWIcP9bUuFDFQP8I35EvvY6Z5jbB5sWPBInP41UA18lLSoXCLsMxKY0cHWAVZTex0vNM3ScjsuZt28LYdugZtcHUMDMwYYAslhKQDHI4HUG3piJ5oEG5cvOiWXkpMkpN4kplKrIJPzs8njEkZics4855kbWjmc2z97IEudmk5tk=,iv:d1x1UKAPeup3Hy74H5sIUOgH/bf5LBmCkDfeElYlTAg=,tag:BTXuWcg1wubL00DqJi843A==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.4
|
||||
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pgadmin
|
||||
namespace: pgadmin
|
||||
spec:
|
||||
selector:
|
||||
app: pgadmin
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 80
|
||||
Reference in New Issue
Block a user