# Deployment description apiVersion: apps/v1 kind: Deployment metadata: name: pgadmin-deployment namespace: dev-environment labels: app: pgadmin-dev spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: pgadmin-dev template: metadata: labels: app: pgadmin-dev spec: securityContext: runAsUser: 5050 runAsGroup: 5050 fsGroup: 5050 containers: - name: pgadmin image: dpage/pgadmin4:5.7 resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "512Mi" cpu: "4" ports: - containerPort: 80 name: pgadmin-http protocol: TCP volumeMounts: - mountPath: /var/lib/pgadmin name: pgadmin-pv-dev env: - name: PGADMIN_DEFAULT_EMAIL value: "boss@semapp.de" - name: PGADMIN_DEFAULT_PASSWORD value: "Semapp123456!" - name: PGADMIN_LISTEN_ADDRESS value: "0.0.0.0" volumes: - name: pgadmin-pv-dev persistentVolumeClaim: claimName: pgadmin-pvc-dev --- # Persistent Volume Claim description apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pgadmin-pvc-dev namespace: dev-environment labels: app: pgadmin-dev spec: storageClassName: longhorn accessModes: - ReadWriteOnce resources: requests: storage: 2Gi --- # Pgadmin Service apiVersion: v1 kind: Service metadata: name: pgadmin namespace: dev-environment spec: selector: app: pgadmin-dev ports: - name: pgadmin-http port: 80 targetPort: pgadmin-http type: NodePort --- # Ingress description apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: pgadmin-dev-ingress namespace: dev-environment annotations: kubernetes.io/ingress.class: "traefik" spec: rules: - host: pgadmin-dev.k3s.semapp.lan http: paths: - path: / backend: serviceName: pgadmin servicePort: 80