# Deployment description apiVersion: apps/v1 kind: Deployment metadata: name: pgadmin-deployment namespace: infra-environment labels: app: pgadmin spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: pgadmin template: metadata: labels: app: pgadmin spec: securityContext: runAsUser: 5050 runAsGroup: 5050 fsGroup: 5050 containers: - name: pgadmin image: dpage/pgadmin4 resources: requests: memory: "512Mi" cpu: "100m" limits: memory: "1Gi" 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: "sa#36041Fulda!" - 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: infra-environment labels: app: pgadmin spec: storageClassName: longhorn accessModes: - ReadWriteOnce resources: requests: storage: 2Gi --- # Pgadmin Service apiVersion: v1 kind: Service metadata: name: pgadmin namespace: infra-environment spec: selector: app: pgadmin ports: - name: pgadmin-http port: 80 targetPort: pgadmin-http type: NodePort --- # Ingress description apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: pgadmin-ingress namespace: infra-environment annotations: kubernetes.io/ingress.class: "traefik" spec: rules: - host: pgadmin.k8s.semprod.local http: paths: - path: / backend: serviceName: pgadmin servicePort: 80