diff --git a/manifests/_apps/donetick.yaml b/manifests/_apps/donetick.yaml new file mode 100644 index 0000000..64828f3 --- /dev/null +++ b/manifests/_apps/donetick.yaml @@ -0,0 +1,25 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: donetick + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: cluster.fun + destination: + namespace: donetick + name: cluster-fun (v2) + source: + path: manifests/donetick + repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" + targetRevision: HEAD + syncPolicy: + automated: {} + syncOptions: + - CreateNamespace=true + ignoreDifferences: + - kind: Secret + jsonPointers: + - /data + diff --git a/manifests/donetick/donetick.yaml b/manifests/donetick/donetick.yaml new file mode 100644 index 0000000..985723d --- /dev/null +++ b/manifests/donetick/donetick.yaml @@ -0,0 +1,117 @@ +apiVersion: v1 +kind: Secret +metadata: + name: donetick + namespace: donetick + labels: + app: donetick + app.kubernetes.io/name: donetick + annotations: + kube-1password: p7zyebs55g25wq7be2g2kv7wbm + kube-1password/vault: Kubernetes + kube-1password/secret-text-key: selfhosted.yaml +type: Opaque +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: donetick + namespace: donetick + labels: + app: donetick + app.kubernetes.io/name: donetick +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + selector: + matchLabels: + app: donetick + template: + metadata: + labels: + app: donetick + app.kubernetes.io/name: donetick + spec: + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + fsGroup: 1000 + containers: + - name: donetick + image: donetick/donetick:v0.1.80 + imagePullPolicy: IfNotPresent + env: + - name: DT_ENV + value: selfhosted + ports: + - containerPort: 2021 + name: web + volumeMounts: + - mountPath: /config + name: config + - mountPath: /donetick-data + name: data + volumes: + - name: data + persistentVolumeClaim: + claimName: donetick + - name: config + secret: + secretName: donetick +--- +apiVersion: v1 +kind: Service +metadata: + name: donetick + namespace: donetick + labels: + app: donetick + app.kubernetes.io/name: donetick +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: web + name: web + selector: + app: donetick +--- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: donetick + namespace: donetick + labels: + app: donetick + app.kubernetes.io/name: donetick + annotations: + cert-manager.io/cluster-issuer: letsencrypt + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/proxy-body-size: "0" + nginx.ingress.kubernetes.io/client-body-buffer-size: 25m + nginx.ingress.kubernetes.io/proxy-connect-timeout: "300" + nginx.ingress.kubernetes.io/proxy-send-timeout: "300" + nginx.ingress.kubernetes.io/proxy-read-timeout: "300" + nginx.ingress.kubernetes.io/proxy-next-upstream: "300" + nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: "300" +spec: + ingressClassName: nginx + tls: + - hosts: + - donetick.cluster.fun + secretName: donetick-ingress + rules: + - host: donetick.cluster.fun + http: + paths: + - path: / + pathType: ImplementationSpecific + backend: + service: + name: donetick + port: + name: web diff --git a/manifests/donetick/pvs.yaml b/manifests/donetick/pvs.yaml new file mode 100644 index 0000000..ac9f852 --- /dev/null +++ b/manifests/donetick/pvs.yaml @@ -0,0 +1,13 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: donetick + namespace: donetick +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: sbs-default-retain +---