apiVersion: v1 kind: Service metadata: name: treetrail labels: app: treetrail spec: ports: - name: "80" nodePort: 31080 port: 80 targetPort: 80 - name: "4532" nodePort: 31432 port: 4532 targetPort: 4532 selector: app: treetrail type: NodePort --- apiVersion: v1 kind: Pod metadata: labels: app: treetrail name: treetrail spec: containers: - image: code.philo.ydns.eu/philorg/treetrail-frontend:latest args: - nginx - -g - daemon off; name: treetrail-frontend ports: - containerPort: 80 hostPort: 8080 - image: code.philo.ydns.eu/philorg/treetrail-backend:latest name: treetrail-backend - image: code.philo.ydns.eu/philorg/treetrail-database:latest args: - postgres name: treetrail-database ports: - containerPort: 4532 hostPort: 15432 volumeMounts: - mountPath: /var/lib/postgresql/data name: treetrail-pgdata volumes: - name: treetrail-pgdata persistentVolumeClaim: claimName: treetrail-pgdata-pvc restartPolicy: Always --- apiVersion: v1 kind: PersistentVolume metadata: name: treetrail-pgdata-pv labels: type: local app: postgres spec: storageClassName: manual capacity: storage: 2Gi accessModes: - ReadWriteMany hostPath: path: /data/postgresql --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: treetrail-pgdata-pvc spec: storageClassName: manual accessModes: - ReadWriteMany resources: requests: storage: 2Gi --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: treetrail namespace: default #annotations: # kubernetes.io/ingress.class: traefik # #traefik.ingress.kubernetes.io/router.middlewares: default-strip-prefix@kubernetescrd spec: rules: - http: paths: - path: /treetrail pathType: Prefix backend: service: name: treetrail-frontend port: number: 80 - path: /treetrail/v1 pathType: Prefix backend: service: name: treetrail-backend port: number: 8081 - path: /treetrail/plantekey pathType: Prefix backend: service: name: treetrail-backend port: number: 8081