--- kind: StatefulSet apiVersion: apps/v1 metadata: name: environment-database namespace: home-monitor labels: app: environment-database spec: replicas: 1 selector: matchLabels: app: environment-database serviceName: environment-database template: metadata: labels: app: environment-database spec: containers: - name: environment-database image: timescale/timescaledb:latest-pg16 imagePullPolicy: IfNotPresent env: - name: POSTGRES_USER valueFrom: secretKeyRef: name: environment-database-credentials key: username - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: environment-database-credentials key: password - name: POSTGRES_DB value: environment volumeMounts: - name: data mountPath: /var/lib/postgresql/data resources: limits: cpu: 1000m memory: 1Gi requests: cpu: 500m memory: 512Mi restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst nodeSelector: kubernetes.io/hostname: kubernetes schedulerName: default-scheduler volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] storageClassName: local-path resources: requests: storage: 4Gi --- kind: Service apiVersion: v1 metadata: name: environment-database spec: ports: - name: client port: 5432 selector: app: environment-database type: LoadBalancer --- kind: Deployment apiVersion: apps/v1 metadata: name: environment-service namespace: home-monitor labels: app: environment-service spec: replicas: 1 selector: matchLabels: app: environment-service template: metadata: labels: app: environment-service spec: containers: - name: environment-service image: ckaczor/home-monitor-environment-service:#BUILD_BUILDNUMBER# terminationMessagePath: "/dev/termination-log" terminationMessagePolicy: File imagePullPolicy: Always securityContext: privileged: true env: - name: Environment__Database__Host value: environment-database - name: Environment__Database__User valueFrom: secretKeyRef: name: environment-database-credentials key: username - name: Environment__Database__Password valueFrom: secretKeyRef: name: environment-database-credentials key: password - name: Environment__Hub__Url value: http://hub-service/environment resources: limits: cpu: 1000m memory: 1Gi requests: cpu: 500m memory: 512Mi restartPolicy: Always terminationGracePeriodSeconds: 30 dnsPolicy: ClusterFirst nodeSelector: kubernetes.io/hostname: kubernetes schedulerName: default-scheduler --- kind: Service apiVersion: v1 metadata: name: environment-service spec: ports: - name: client port: 8080 selector: app: environment-service type: ClusterIP --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: annotations: kubernetes.io/ingress.class: traefik creationTimestamp: null name: environment namespace: home-monitor spec: routes: - kind: Rule match: PathPrefix(`/api/environment`) middlewares: - name: api-environment namespace: home-monitor services: - kind: Service name: environment-service namespace: home-monitor port: 8080 --- apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: creationTimestamp: null name: api-environment namespace: home-monitor spec: stripPrefix: prefixes: - /api/environment