# ================================ # DONETICK - CHORE & TASK TRACKER # https://github.com/donetick/donetick # ================================ --- apiVersion: v1 kind: PersistentVolume metadata: name: donetick-pv spec: capacity: storage: 1Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: donetick-local-storage local: path: /home/kimjunte/k8s_storage/donetick nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - mist --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: donetick-pvc spec: accessModes: - ReadWriteOnce storageClassName: donetick-local-storage resources: requests: storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: donetick labels: app: donetick spec: replicas: 1 selector: matchLabels: app: donetick template: metadata: labels: app: donetick spec: nodeSelector: kubernetes.io/hostname: mist containers: - name: donetick image: donetick/donetick:latest ports: - containerPort: 2021 env: - name: DT_ENV value: "selfhosted" - name: DT_SQLITE_PATH value: "/donetick-data/donetick.db" - name: TZ value: "America/Toronto" resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "256Mi" volumeMounts: - name: donetick-data mountPath: /donetick-data - name: donetick-data mountPath: /config subPath: config volumes: - name: donetick-data persistentVolumeClaim: claimName: donetick-pvc --- apiVersion: v1 kind: Service metadata: name: donetick spec: selector: app: donetick ports: - port: 2021 targetPort: 2021 --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: donetick-ingressroute spec: entryPoints: - websecure routes: - match: Host(`donetick.juntekim.com`) kind: Rule services: - name: donetick port: 2021 tls: certResolver: myresolver domains: - main: donetick.juntekim.com