apiVersion: v1 kind: Namespace metadata: name: anki --- apiVersion: apps/v1 kind: Deployment metadata: name: anki namespace: anki labels: app: anki spec: replicas: 1 selector: matchLabels: app: anki template: metadata: labels: app: anki spec: containers: - name: anki-server image: ankicommunity/anki-sync-server:20220516 tty: true volumeMounts: - mountPath: /app/data name: anki-data-nfs resources: requests: memory: "250Mi" cpu: 0.5 nodeSelector: kubernetes.io/arch: amd64 volumes: - name: anki-data-nfs persistentVolumeClaim: claimName: anki-data-nfs --- apiVersion: v1 kind: Service metadata: name: anki-http namespace: anki spec: selector: app: anki ports: - protocol: TCP port: 27701 targetPort: 27701 type: ClusterIP --- apiVersion: v1 kind: PersistentVolume metadata: namespace: anki name: "anki-data-nfs" labels: directory: "anki" spec: storageClassName: fast capacity: storage: "100Mi" accessModes: - ReadWriteOnce nfs: path: /anki server: 10.43.239.43 # assigned to nfs-server service. Won't change as long as service is not redeployed --- apiVersion: v1 kind: PersistentVolumeClaim metadata: namespace: anki name: "anki-data-nfs" spec: storageClassName: "fast" accessModes: - ReadWriteOnce resources: requests: storage: "100Mi" selector: matchLabels: directory: "anki" --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: anki-ingress namespace: anki spec: entryPoints: - websecure routes: - match: Host(`anki.kluster.moll.re`) kind: Rule services: - name: anki-http port: 27701 tls: certResolver: default-tls