Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
5 changes: 5 additions & 0 deletions services/databases/pgadmin/00-namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: pgadmin
10 changes: 10 additions & 0 deletions services/databases/pgadmin/01-secrets.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
apiVersion: v1
kind: Secret
metadata:
name: pgadmin-secret
namespace: pgadmin
type: Opaque
stringData:
PGADMIN_DEFAULT_EMAIL: <FILL-IN>
PGADMIN_DEFAULT_PASSWORD: <FILL-IN>
79 changes: 79 additions & 0 deletions services/databases/pgadmin/02-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: pgadmin
namespace: pgadmin
spec:
replicas: 1
selector:
matchLabels:
app: pgadmin
template:
metadata:
labels:
app: pgadmin
spec:
containers:
- name: pgadmin
image: dpage/pgadmin4:8.14
imagePullPolicy: IfNotPresent # ou Always, para garantir que temos a última versão?
resources: # Que valores devemos usar, para já temos isto como default?
limits:
memory: "512Mi" # mais, menos?
cpu: "1" # 1, 500m, ...?
requests:
memory: "32Mi" # mais, menos?
cpu: "0m" # 0m, 100m, ...?
ports: # que port usar? 80 ou outro?
- containerPort: 80
envFrom:
- secretRef:
name: pgadmin-secret
env:
- name: PGADMIN_CONFIG_MFA_ENABLED
value: "True"
- name: PGADMIN_CONFIG_MFA_FORCE_REGISTRATION
value: "True"
- name: PGADMIN_CONFIG_MFA_SUPPORTED_METHODS
value: "['authenticator']"
volumeMounts:
- name: pgadmin-config
mountPath: /pgadmin4/servers.json
subPath: servers.json
readOnly: true
- name: pgadmin-data
mountPath: /var/lib/pgadmin
volumes:
- name: pgadmin-config
configMap:
name: pgadmin-config
- name: pgadmin-data
persistentVolumeClaim:
claimName: pgadmin-data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pgadmin-data
namespace: pgadmin
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: pgadmin
namespace: pgadmin
spec:
selector:
app: pgadmin
ports:
- port: 80
targetPort: 80
protocol: TCP # é preciso especificar o protocolo?
type: ClusterIP # ou NodePort, LoadBalancer? ClusterIP é suficiente para o Traefik aceder ao serviço, certo? Precisamos de deixar definido mesmo?
13 changes: 13 additions & 0 deletions services/databases/pgadmin/03-certificates.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: pgadmin-cert
namespace: pgadmin
spec:
secretName: pgadmin-cert
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: pgadmin.niaefeup.pt
dnsNames:
- pgadmin.niaefeup.pt
17 changes: 17 additions & 0 deletions services/databases/pgadmin/04-ingress-routes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: pgadmin-https
namespace: pgadmin
spec:
entryPoints:
- websecure
routes:
- match: Host(`pgadmin.niaefeup.pt`)
kind: Rule
services:
- name: pgadmin
port: 80
tls:
secretName: pgadmin-cert
8 changes: 8 additions & 0 deletions services/databases/pgadmin/05-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: pgadmin-config
namespace: pgadmin
data:
# Configurações adicionais do pgAdmin podem ser adicionadas aqui
Loading