add directus
This commit is contained in:
		| @@ -18,9 +18,20 @@ dependencies: | ||||
|     alias: site-profile | ||||
|     repository: https://bjw-s.github.io/helm-charts/ | ||||
|     version: 3.3.2 | ||||
|   - name: app-template | ||||
|     alias: directus | ||||
|     repository: https://bjw-s.github.io/helm-charts/ | ||||
|     version: 3.3.2 | ||||
|   - name: valkey | ||||
|     version: 0.3.13 | ||||
|     repository: https://charts.bitnami.com/bitnami     | ||||
|   - name: cloudflared | ||||
|     alias: cloudflared | ||||
|     repository: http://alexlebens.github.io/helm-charts | ||||
|     version: 1.6.0 | ||||
|   - name: postgres-cluster | ||||
|     alias: postgres-16-cluster | ||||
|     version: 3.8.4 | ||||
|     repository: http://alexlebens.github.io/helm-charts | ||||
| icon: https://d21zlbwtcn424f.cloudfront.net/icon_white.png | ||||
| appVersion: 0.1.5 | ||||
|   | ||||
| @@ -1,5 +1,83 @@ | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: directus-config | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: directus-config | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: admin-email | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/site-profile/directus/config | ||||
|         metadataPolicy: None | ||||
|         property: admin-email | ||||
|     - secretKey: admin-password | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/site-profile/directus/config | ||||
|         metadataPolicy: None | ||||
|         property: admin-password | ||||
|     - secretKey: secret | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/site-profile/directus/config | ||||
|         metadataPolicy: None | ||||
|         property: secret | ||||
|     - secretKey: key | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/site-profile/directus/config | ||||
|         metadataPolicy: None | ||||
|         property: key | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: directus-oidc-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: directus-oidc-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: OIDC_CLIENT_ID | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /authentik/oidc/directus | ||||
|         metadataPolicy: None | ||||
|         property: client | ||||
|     - secretKey: OIDC_CLIENT_SECRET | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /authentik/oidc/directus | ||||
|         metadataPolicy: None | ||||
|         property: secret | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: site-profile-cloudflared-api-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
| @@ -20,4 +98,95 @@ spec: | ||||
|         decodingStrategy: None | ||||
|         key: /cloudflare/tunnels/site-profile | ||||
|         metadataPolicy: None | ||||
|         property: token | ||||
|         property: token | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: directus-config-backup-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: directus-config-backup-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: backup | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   target: | ||||
|     template: | ||||
|       mergePolicy: Merge | ||||
|       engineVersion: v2 | ||||
|       data: | ||||
|         RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/directus/directus-data" | ||||
|   data: | ||||
|     - secretKey: BUCKET_ENDPOINT | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/volsync/restic/config | ||||
|         metadataPolicy: None | ||||
|         property: S3_BUCKET_ENDPOINT | ||||
|     - secretKey: RESTIC_PASSWORD | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/volsync/restic/config | ||||
|         metadataPolicy: None | ||||
|         property: RESTIC_PASSWORD | ||||
|     - secretKey: AWS_DEFAULT_REGION | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/volsync/restic/config | ||||
|         metadataPolicy: None | ||||
|         property: AWS_DEFAULT_REGION | ||||
|     - secretKey: AWS_ACCESS_KEY_ID | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /aws/keys/cl01tl-volsync-backups | ||||
|         metadataPolicy: None | ||||
|         property: access_key | ||||
|     - secretKey: AWS_SECRET_ACCESS_KEY | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /aws/keys/cl01tl-volsync-backups | ||||
|         metadataPolicy: None | ||||
|         property: secret_key | ||||
|  | ||||
| --- | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: directus-postgresql-16-cluster-backup-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: directus-postgresql-16-cluster-backup-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: database | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   data: | ||||
|     - secretKey: ACCESS_KEY_ID | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /aws/keys/cl01tl-directus-postgresql | ||||
|         metadataPolicy: None | ||||
|         property: access_key | ||||
|     - secretKey: ACCESS_SECRET_KEY | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /aws/keys/cl01tl-directus-postgresql | ||||
|         metadataPolicy: None | ||||
|         property: secret_key | ||||
|   | ||||
| @@ -0,0 +1,27 @@ | ||||
| apiVersion: volsync.backube/v1alpha1 | ||||
| kind: ReplicationSource | ||||
| metadata: | ||||
|   name: directus-data-backup-source | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: directus-data-backup-source | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: backup | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   sourcePVC: directus-data | ||||
|   trigger: | ||||
|     schedule: 0 0 * * * | ||||
|   restic: | ||||
|     pruneIntervalDays: 7 | ||||
|     repository: directus-data-backup-secret | ||||
|     retain: | ||||
|       hourly: 1 | ||||
|       daily: 1 | ||||
|       weekly: 3 | ||||
|       monthly: 2 | ||||
|       yearly: 4 | ||||
|     copyMethod: Snapshot | ||||
|     storageClassName: ceph-block-delete | ||||
|     volumeSnapshotClassName: ceph-blockpool-snapshot | ||||
| @@ -25,6 +25,176 @@ site-profile: | ||||
|           port: 80 | ||||
|           targetPort: 4321 | ||||
|           protocol: HTTP | ||||
| directus: | ||||
|   controllers: | ||||
|     main: | ||||
|       type: deployment | ||||
|       replicas: 1 | ||||
|       strategy: Recreate | ||||
|       revisionHistoryLimit: 3 | ||||
|       containers: | ||||
|         main: | ||||
|           image: | ||||
|             repository: ghcr.io/alexlebens/site-profile | ||||
|             tag: 0.1.5 | ||||
|             pullPolicy: IfNotPresent | ||||
|           env: | ||||
|             - name: PUBLIC_URL | ||||
|               value: https://directus-site-profile-cl01tl.boreal-beaufort.ts.net | ||||
|             - name: ADMIN_EMAIL | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-config | ||||
|                   key: admin-email | ||||
|             - name: ADMIN_PASSWORD | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-config | ||||
|                   key: admin-password | ||||
|             - name: SECRET | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-config | ||||
|                   key: secret | ||||
|             - name: KEY | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-config | ||||
|                   key: key | ||||
|             - name: DB_CLIENT | ||||
|               value: postgres | ||||
|             - name: DB_HOST | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-postgresql-16-cluster-app | ||||
|                   key: host | ||||
|             - name: DB_DATABASE | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-postgresql-16-cluster-app | ||||
|                   key: dbname | ||||
|             - name: DB_PORT | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-postgresql-16-cluster-app | ||||
|                   key: port | ||||
|             - name: DB_USER | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-postgresql-16-cluster-app | ||||
|                   key: user | ||||
|             - name: DB_PASSWORD | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-postgresql-16-cluster-app | ||||
|                   key: password | ||||
|             - name: REDIS_ENABLED | ||||
|               value: true | ||||
|             - name: REDIS_HOST | ||||
|               value: site-profile-valkey-master | ||||
|             - name: REDIS_PORT | ||||
|               value: 6379 | ||||
|             - name: STORAGE_LOCATIONS | ||||
|               value: LOCAL | ||||
|             - name: STORAGE_LOCAL_DRIVER | ||||
|               value: local | ||||
|             - name: STORAGE_LOCAL_ROOT | ||||
|               value: /mnt/store | ||||
|             - name: AUTH_PROVIDERS | ||||
|               value: AUTHENTIK | ||||
|             - name: AUTH_AUTHENTIK_DRIVER | ||||
|               value: openid | ||||
|             - name: AUTH_AUTHENTIK_CLIENT_ID | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-oidc-secret | ||||
|                   key: client | ||||
|             - name: AUTH_AUTHENTIK_CLIENT_SECRET | ||||
|               valueFrom: | ||||
|                 secretKeyRef: | ||||
|                   name: directus-oidc-secret | ||||
|                   key: secret | ||||
|             - name: AUTH_AUTHENTIK_SCOPE | ||||
|               value: openid profile email | ||||
|             - name: AUTH_AUTHENTIK_AUTHORIZE_URL | ||||
|               value: https://auth-cl01tl.boreal-beaufort.ts.net/application/o/authorize/ | ||||
|             - name: AUTH_AUTHENTIK_ACCESS_URL | ||||
|               value: https://auth-cl01tl.boreal-beaufort.ts.net/application/o/ | ||||
|             - name: AUTH_AUTHENTIK_PROFILE_URL | ||||
|               value: https://auth-cl01tl.boreal-beaufort.ts.net/application/o/userinfo/ | ||||
|             - name: AUTH_AUTHENTIK_IDENTIFIER_KEY | ||||
|               value: prefered_username | ||||
|             - name: AUTH_AUTHENTIK_ALLOW_PUBLIC_REGISTRATION | ||||
|               value: true | ||||
|             - name: AUTH_AUTHENTIK_ICON | ||||
|               value: https://goauthentik.io/img/icon.png | ||||
|             - name: AUTH_AUTHENTIK_LABEL | ||||
|               value: SSO Login | ||||
|             - name: TELEMETRY | ||||
|               value: false | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 100m | ||||
|               memory: 256Mi | ||||
|   serviceAccount: | ||||
|     create: true | ||||
|   service: | ||||
|     main: | ||||
|       controller: main | ||||
|       ports: | ||||
|         http: | ||||
|           port: 80 | ||||
|           targetPort: 8055 | ||||
|           protocol: TCP | ||||
|   ingress: | ||||
|     tailscale: | ||||
|       enabled: true | ||||
|       className: tailscale | ||||
|       hosts: | ||||
|         - host: directus-site-profile-cl01tl | ||||
|           paths: | ||||
|             - path: / | ||||
|               pathType: Prefix | ||||
|               service: | ||||
|                 name: directus | ||||
|                 port: 80 | ||||
|       tls: | ||||
|         - hosts: | ||||
|             - directus-site-profile-cl01tl | ||||
|   persistence: | ||||
|     data: | ||||
|       storageClass: ceph-block | ||||
|       accessMode: ReadWriteOnce | ||||
|       size: 10Gi | ||||
|       retain: true | ||||
|       advancedMounts: | ||||
|         main: | ||||
|           main: | ||||
|             - path: /mnt/store | ||||
|               readOnly: false | ||||
| valkey: | ||||
|   architecture: standalone | ||||
|   auth: | ||||
|     enabled: true | ||||
| cloudflared: | ||||
|   name: cloudflared | ||||
|   existingSecretName: site-profile-cloudflared-api-secret | ||||
| postgres-16-cluster: | ||||
|   nameOverride: directus | ||||
|   mode: standalone | ||||
|   cluster: | ||||
|     walStorage: | ||||
|       storageClass: local-path | ||||
|     storage: | ||||
|       storageClass: local-path | ||||
|     monitoring: | ||||
|       enabled: true | ||||
|       prometheusRule: | ||||
|         enabled: false | ||||
|   backup: | ||||
|     enabled: true | ||||
|     endpointURL: https://s3.us-east-2.amazonaws.com | ||||
|     destinationPath: s3://cl01tl-postgresql-backups/directus | ||||
|     endpointCredentials: directus-postgresql-16-cluster-backup-secret | ||||
|     backupIndex: 1 | ||||
|     retentionPolicy: 14d | ||||
|   | ||||
		Reference in New Issue
	
	Block a user