From 34792222d81ca3a89be1cf08ff39dc410ccd3f95 Mon Sep 17 00:00:00 2001 From: "azykov@mail.ru" Date: Sat, 8 Aug 2026 19:39:02 +0300 Subject: [PATCH] davical --- .../apps/davical/helmrelease-davical.yaml | 82 +++++++++++++++++++ .../apps/davical/helmrelease-postgres.yaml | 45 ++++++++++ .../base/apps/davical/helmrepository.yaml | 10 +++ clusters/base/apps/davical/kustomization.yaml | 7 ++ clusters/base/apps/davical/secret.enc.yaml | 24 ++++++ clusters/home/apps/davical.yaml | 21 +++++ clusters/home/apps/kustomization.yaml | 1 + 7 files changed, 190 insertions(+) create mode 100644 clusters/base/apps/davical/helmrelease-davical.yaml create mode 100644 clusters/base/apps/davical/helmrelease-postgres.yaml create mode 100644 clusters/base/apps/davical/helmrepository.yaml create mode 100644 clusters/base/apps/davical/kustomization.yaml create mode 100644 clusters/base/apps/davical/secret.enc.yaml create mode 100644 clusters/home/apps/davical.yaml diff --git a/clusters/base/apps/davical/helmrelease-davical.yaml b/clusters/base/apps/davical/helmrelease-davical.yaml new file mode 100644 index 0000000..8c9dac9 --- /dev/null +++ b/clusters/base/apps/davical/helmrelease-davical.yaml @@ -0,0 +1,82 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: davical + namespace: pim +spec: + interval: 10m + dependsOn: + - name: davical-postgres + chartRef: + kind: OCIRepository + name: davical + driftDetection: + mode: enabled + values: + controllers: + app: + containers: + app: + image: + repository: tuxnvape/davical-standalone + tag: "82-1.1.12" + env: + TZ: Europe/Moscow + HOST_NAME: c2.aggtaa.com + DBHOST: davical-postgres + UPDATE_FROM_OLD: "false" + PGSQL_ROOT_PASS: + valueFrom: + secretKeyRef: + name: davical-secrets + key: PGSQL_ROOT_PASS + PASSDAVDB: + valueFrom: + secretKeyRef: + name: davical-secrets + key: PASSDAVDB + ADMINDAVICALPASS: + valueFrom: + secretKeyRef: + name: davical-secrets + key: ADMINDAVICALPASS + probes: + liveness: + enabled: true + readiness: + enabled: true + + service: + app: + controller: app + ports: + http: + port: 80 + + ingress: + app: + className: traefik + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: c2.aggtaa.com + paths: + - path: / + pathType: Prefix + service: + identifier: app + port: http + tls: + - secretName: davical-tls + hosts: + - c2.aggtaa.com + + persistence: + config: + type: persistentVolumeClaim + accessMode: ReadWriteOnce + size: 256Mi + storageClass: longhorn + retain: true + globalMounts: + - path: /config diff --git a/clusters/base/apps/davical/helmrelease-postgres.yaml b/clusters/base/apps/davical/helmrelease-postgres.yaml new file mode 100644 index 0000000..630fe2c --- /dev/null +++ b/clusters/base/apps/davical/helmrelease-postgres.yaml @@ -0,0 +1,45 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: davical-postgres + namespace: pim +spec: + interval: 10m + chartRef: + kind: OCIRepository + name: davical + driftDetection: + mode: enabled + values: + controllers: + postgres: + containers: + app: + image: + repository: postgres + tag: "16-alpine" + env: + TZ: Europe/Moscow + POSTGRES_PASSWORD: + valueFrom: + secretKeyRef: + name: davical-secrets + key: PGSQL_ROOT_PASS + + service: + app: + controller: postgres + ports: + postgres: + port: 5432 + + persistence: + data: + type: persistentVolumeClaim + accessMode: ReadWriteOnce + size: 2Gi + storageClass: longhorn + retain: true + globalMounts: + - path: /var/lib/postgresql/data + subPath: data diff --git a/clusters/base/apps/davical/helmrepository.yaml b/clusters/base/apps/davical/helmrepository.yaml new file mode 100644 index 0000000..f006d7d --- /dev/null +++ b/clusters/base/apps/davical/helmrepository.yaml @@ -0,0 +1,10 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: OCIRepository +metadata: + name: davical + namespace: pim +spec: + interval: 10m + url: oci://ghcr.io/bjw-s-labs/helm/app-template + ref: + tag: "5.0.1" diff --git a/clusters/base/apps/davical/kustomization.yaml b/clusters/base/apps/davical/kustomization.yaml new file mode 100644 index 0000000..25d792e --- /dev/null +++ b/clusters/base/apps/davical/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - helmrepository.yaml + - secret.enc.yaml + - helmrelease-postgres.yaml + - helmrelease-davical.yaml diff --git a/clusters/base/apps/davical/secret.enc.yaml b/clusters/base/apps/davical/secret.enc.yaml new file mode 100644 index 0000000..8540031 --- /dev/null +++ b/clusters/base/apps/davical/secret.enc.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: Secret +metadata: + name: davical-secrets + namespace: pim +stringData: + PGSQL_ROOT_PASS: ENC[AES256_GCM,data:XEhP2zDIz0QCpAXXnZi5JtPsVIfns9zp4fvxcg9/bskHiLU5rR+EgU5n/SdOEDkJ,iv:wR3CGk3csHSCSBqFX+ukOUAmS/p+oZMmdNgvCFNHZlI=,tag:ttAe0GuLmwqA77cWLlne2Q==,type:str] + PASSDAVDB: ENC[AES256_GCM,data:d9RazQG7xeIH4g3ovti6HwyiIyLTzyaPjAcQvLmhsrwdgev7i0AJK7yQeRXxu/16,iv:9ZdfWTlOuyUNpV2ycykOgx8SY7Golz7/Lb+gfTa9fW0=,tag:eL1euF9uQJ+nDLsR1kxtvg==,type:str] + ADMINDAVICALPASS: ENC[AES256_GCM,data:1Zq7duPTIfJX2Stp6AEhKcLHkmQB6vWf4y1f0Iju/zI=,iv:PMOyD3O7UzVPRlFmHTOQSAys032iD4CF8JbI51agWcg=,tag:eDgMbg2lRMnl57NCf5iIkw==,type:str] +sops: + age: + - recipient: age14x4jjs2fwdgw28g2pkr6jyj2yzmwc544xwmaaglrxwz5e99seutqtr8jv5 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaRzBGb2RmQ2tGOVhVNjA3 + ZzB5NEptK05Vc2p0UXZqb2pTZllxSmxmTGtJCldZcGc3QXcwU3krc0pUT1NWT3Mx + bEtlOVFFd0phYlRnSlEvU3hOYTdSNXMKLS0tIGwzTGpIbENyZDFueW9LV2NJWUk5 + TGRZTTdjT0tSR1dFZFZmRElScmNoU0UKo6Uiuqjhlmis2F+aznlqVRSJiJd5dyQ+ + GBw+o6V8YgbjdTStCABDkLylWNJaTz7ES0eud+rFA7ihRau/CwTYpA== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2026-08-08T16:37:01Z" + mac: ENC[AES256_GCM,data:OoE6fml/3DSH2EMafCoeYz/JHo89Fb9uwQ58k7hxQDU6YMazdO/eGM0jKX5ghjuMKJqA/zQs4FeZ4yASkIUT1CBbxRpycmE9qo6Zny121NLeqveBp3YMjmUZGt3tgw2dNqtkhpOnl/BmHQCtTTvX2brtSVmANx3LbFxjqbK2OGM=,iv:8Us7LJSZ2aHZQnYIjnsvkR7Av0KeHFEYEETZd7WZX4Q=,tag:7NbbEOq1k2c5IcsnqpvlOQ==,type:str] + encrypted_regex: ^(data|stringData)$ + version: 3.11.0 diff --git a/clusters/home/apps/davical.yaml b/clusters/home/apps/davical.yaml new file mode 100644 index 0000000..9838c0c --- /dev/null +++ b/clusters/home/apps/davical.yaml @@ -0,0 +1,21 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: davical + namespace: flux-system +spec: + interval: 10m + sourceRef: + kind: GitRepository + name: flux-system + path: ./clusters/base/apps/davical + prune: true + wait: true + dependsOn: + - name: namespaces + - name: infra + retryInterval: 5s + decryption: + provider: sops + secretRef: + name: sops-age diff --git a/clusters/home/apps/kustomization.yaml b/clusters/home/apps/kustomization.yaml index 32dd132..cf1cc03 100644 --- a/clusters/home/apps/kustomization.yaml +++ b/clusters/home/apps/kustomization.yaml @@ -1,6 +1,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - davical.yaml - vaultwarden.yaml - zigbee2mqtt.yaml - radicale.yaml