apiVersion: apps/v1 kind: Deployment metadata: namespace: finance name: actualbudget labels: app: actualbudget spec: # deployment running a single container selector: matchLabels: app: actualbudget replicas: 1 template: metadata: labels: app: actualbudget spec: containers: - name: actualbudget image: actualbudget/actual-server:latest imagePullPolicy: Always env: - name: TZ value: Europe/Berlin volumeMounts: - name: actualbudget-data-nfs mountPath: /data ports: - containerPort: 5006 name: http protocol: TCP volumes: - name: actualbudget-data-nfs persistentVolumeClaim: claimName: actualbudget-data-nfs --- apiVersion: v1 kind: PersistentVolume metadata: namespace: finance name: "actualbudget-data-nfs" spec: storageClassName: fast capacity: storage: "5Gi" accessModes: - ReadWriteOnce nfs: path: /export/kluster/actualbudget server: 192.168.1.157 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: namespace: finance name: "actualbudget-data-nfs" spec: storageClassName: "fast" accessModes: - ReadWriteOnce resources: requests: storage: "5Gi" # selector: # matchLabels: # directory: "journal-data" --- apiVersion: v1 kind: Service metadata: namespace: finance name: actualbudget spec: selector: app: actualbudget ports: - protocol: TCP port: 5006 targetPort: 5006 type: ClusterIP --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: namespace: finance name: actualbudget spec: entryPoints: - websecure routes: - match: Host(`actualbudget.kluster.moll.re`) kind: Rule services: - name: actualbudget port: 5006 tls: certResolver: default-tls