From db07be70a0ae04f46623a4be3f92fe8647912380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Huss?= Date: Fri, 26 Jan 2024 09:12:40 +0100 Subject: [PATCH] fix --- apps/code-server/index.yaml | 122 ++++---- apps/dbgate/index.yaml | 212 +++++++------- apps/gitea/index.yaml | 490 ++++++++++++++++++++------------- apps/gitea/postgresql.tf | 3 +- apps/gitea/redis.tf | 2 +- apps/nextcloud/index.yaml | 479 +++++++++++++++++++------------- apps/nextcloud/postgresql.tf | 3 +- apps/nextcloud/redis.tf | 2 +- share/dataset-pg/databases.tf | 3 + share/dataset-pg/index.yaml | 104 +++++-- share/dataset-pg/postgresql.tf | 5 +- share/wildduck/index.yaml | 188 +++++++++---- share/wildduck/mongo.tf | 2 +- share/wildduck/redis.tf | 2 +- 14 files changed, 974 insertions(+), 643 deletions(-) diff --git a/apps/code-server/index.yaml b/apps/code-server/index.yaml index 287ab98..09d8e5a 100644 --- a/apps/code-server/index.yaml +++ b/apps/code-server/index.yaml @@ -6,53 +6,48 @@ metadata: name: code-server description: null options: - app_group: - default: dev - examples: - - dev - type: string - sub_domain: - default: code - examples: - - code - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string storage: default: - accessMode: ReadWriteOnce - size: 20Gi - type: Filesystem + volume: + accessMode: ReadWriteOnce + size: 20Gi + type: Filesystem + description: Configure this app storage examples: - - accessMode: ReadWriteOnce - size: 20Gi - type: Filesystem + - volume: + accessMode: ReadWriteOnce + size: 20Gi + type: Filesystem properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 20Gi - type: string - type: - default: Filesystem - enum: - - Filesystem - - Block - type: string + volume: + default: + accessMode: ReadWriteOnce + size: 20Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 20Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object type: object - domain_name: - default: your_company.com + no_editor: + default: false examples: - - your_company.com - type: string + - false + type: boolean images: default: codeserver: @@ -92,21 +87,6 @@ options: type: number type: object type: object - domain: - default: your-company - examples: - - your-company - type: string - no-editor: - default: false - examples: - - false - type: boolean - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string admin: default: cluster: false @@ -122,11 +102,41 @@ options: default: false type: boolean type: object + ingress_class: + default: traefik + examples: + - traefik + type: string + sub_domain: + default: code + examples: + - code + type: string timezone: default: Europe/Paris examples: - Europe/Paris type: string + domain: + default: your-company + examples: + - your-company + type: string + app_group: + default: dev + examples: + - dev + type: string + domain_name: + default: your-company.com + examples: + - your-company.com + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string dependencies: - dist: null category: share diff --git a/apps/dbgate/index.yaml b/apps/dbgate/index.yaml index c0355de..b0b7101 100644 --- a/apps/dbgate/index.yaml +++ b/apps/dbgate/index.yaml @@ -6,77 +6,36 @@ metadata: name: dbgate description: null options: - mongo: - default: [] + sub_domain: + default: dbgate examples: - - [] - items: - properties: - dbname: - default: '' - type: string - name: - default: '' - type: string - namespace: - default: '' - type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string - type: object - type: array - storage: - default: - accessMode: ReadWriteOnce - size: 1Gi - type: Filesystem - examples: - - accessMode: ReadWriteOnce - size: 1Gi - type: Filesystem - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 1Gi - type: string - type: - default: Filesystem - enum: - - Filesystem - - Block - type: string - type: object + - dbgate + type: string domain: default: your-company examples: - your-company type: string + ingress_class: + default: traefik + examples: + - traefik + type: string + app_group: + default: dev + examples: + - dev + type: string + domain_name: + default: your_company.com + examples: + - your_company.com + type: string issuer: default: letsencrypt-prod examples: - letsencrypt-prod type: string - sub_domain: - default: dbgate - examples: - - dbgate - type: string pg: default: [] examples: @@ -106,16 +65,64 @@ options: type: string type: object type: array - domain_name: - default: your_company.com + maria: + default: [] examples: - - your_company.com - type: string - app_group: - default: dev + - [] + items: + properties: + dbname: + default: '' + type: string + name: + default: '' + type: string + namespace: + default: '' + type: string + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: + default: '' + type: string + type: object + type: array + mongo: + default: [] examples: - - dev - type: string + - [] + items: + properties: + dbname: + default: '' + type: string + name: + default: '' + type: string + namespace: + default: '' + type: string + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: + default: '' + type: string + type: object + type: array images: default: dbgate: @@ -169,40 +176,43 @@ options: type: string type: object type: array - ingress_class: - default: traefik + storage: + default: + volume: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + description: Configure this app storage examples: - - traefik - type: string - maria: - default: [] - examples: - - [] - items: - properties: - dbname: - default: '' - type: string - name: - default: '' - type: string - namespace: - default: '' - type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string - type: object - type: array + - volume: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + properties: + volume: + default: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 1Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object dependencies: - dist: null category: core diff --git a/apps/gitea/index.yaml b/apps/gitea/index.yaml index cd26ee7..4d69c93 100644 --- a/apps/gitea/index.yaml +++ b/apps/gitea/index.yaml @@ -9,192 +9,92 @@ metadata: A painless self-hosted Git service. Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license. options: - theme: - default: gitea-modern - examples: - - gitea-modern - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - images: - default: - gitea: - pullPolicy: IfNotPresent - registry: docker.io - repository: gitea/gitea - tag: 1.20.5-rootless - examples: - - gitea: - pullPolicy: IfNotPresent - registry: docker.io - repository: gitea/gitea - tag: 1.20.5-rootless - properties: - gitea: - default: - pullPolicy: IfNotPresent - registry: docker.io - repository: gitea/gitea - tag: 1.20.5-rootless - properties: - pullPolicy: - default: IfNotPresent - enum: - - Always - - Never - - IfNotPresent - type: string - registry: - default: docker.io - type: string - repository: - default: gitea/gitea - type: string - tag: - default: 1.20.5-rootless - type: string - type: object - type: object - load-balancer: - default: - ip: '' - examples: - - ip: '' - properties: - ip: - default: '' - type: string - type: object - timezone: - default: Europe/Paris - examples: - - Europe/Paris - type: string - admin: - default: - email: git-admin@git.your_company.com - name: gitea_admin - examples: - - email: git-admin@git.your_company.com - name: gitea_admin - properties: - email: - default: git-admin@git.your_company.com - type: string - name: - default: gitea_admin - type: string - type: object - postgres: - default: - replicas: 1 - storage: 10Gi - version: '14' - examples: - - replicas: 1 - storage: 10Gi - version: '14' - properties: - replicas: - default: 1 - type: integer - storage: - default: 10Gi - type: string - version: - default: '14' - type: string - type: object - replicas: - default: 1 - examples: - - 1 - type: integer - domain: - default: your-company - examples: - - your-company - type: string - release: - default: 8.3.0 - examples: - - 8.3.0 - type: string - redis: - default: - exporter: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.12 - storage: 2Gi - examples: - - exporter: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.12 - storage: 2Gi - properties: - exporter: - default: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - properties: - enabled: - default: true - type: boolean - image: - default: quay.io/opstree/redis-exporter:v1.44.0 - type: string - type: object - image: - default: quay.io/opstree/redis:v7.0.12 - type: string - storage: - default: 2Gi - type: string - type: object - ssh-sub_domain: - default: git - examples: - - git - type: string - ssh-port: - default: 2222 - examples: - - 2222 - type: integer - volume: - default: - accessMode: ReadWriteOnce - size: 10Gi - examples: - - accessMode: ReadWriteOnce - size: 10Gi - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 10Gi - type: string - type: object - app_group: - default: dev - examples: - - dev - type: string ingress_class: default: traefik examples: - traefik type: string + timezone: + default: Europe/Paris + examples: + - Europe/Paris + type: string + app_group: + default: dev + examples: + - dev + type: string + domain: + default: your-company + examples: + - your-company + type: string + disable-registration: + default: true + examples: + - true + type: boolean + storage: + default: + postgres: + size: 10Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + size: 10Gi + type: Filesystem + description: Configure this app storage + examples: + - postgres: + size: 10Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + size: 10Gi + type: Filesystem + properties: + postgres: + default: + size: 10Gi + properties: + size: + default: 10Gi + type: string + type: object + redis: + default: + size: 2Gi + properties: + size: + default: 2Gi + type: string + type: object + volume: + default: + accessMode: ReadWriteOnce + size: 10Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 10Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object backups: default: enable: false @@ -301,10 +201,20 @@ options: default: false type: boolean type: object - sub_domain: - default: git + postgres: + default: + replicas: 1 examples: - - git + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object + release: + default: 8.3.0 + examples: + - 8.3.0 type: string default-branch: default: main @@ -331,11 +241,11 @@ options: default: 'true' type: string type: object - disable-registration: - default: true + domain_name: + default: your_company.com examples: - - true - type: boolean + - your_company.com + type: string webhook: default: allowed-hosts: private @@ -351,11 +261,209 @@ options: default: false type: boolean type: object - domain_name: - default: your_company.com + sub_domain: + default: git examples: - - your_company.com + - git type: string + ssh-sub_domain: + default: git + examples: + - git + type: string + load-balancer: + default: + ip: '' + examples: + - ip: '' + properties: + ip: + default: '' + type: string + type: object + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + redis: + default: + exporter: + enabled: true + examples: + - exporter: + enabled: true + properties: + exporter: + default: + enabled: true + properties: + enabled: + default: true + type: boolean + type: object + type: object + theme: + default: gitea-modern + examples: + - gitea-modern + type: string + admin: + default: + email: git-admin@git.your_company.com + name: gitea_admin + examples: + - email: git-admin@git.your_company.com + name: gitea_admin + properties: + email: + default: git-admin@git.your_company.com + type: string + name: + default: gitea_admin + type: string + type: object + replicas: + default: 1 + examples: + - 1 + type: integer + images: + default: + gitea: + pullPolicy: IfNotPresent + registry: docker.io + repository: gitea/gitea + tag: 1.20.5-rootless + postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + examples: + - gitea: + pullPolicy: IfNotPresent + registry: docker.io + repository: gitea/gitea + tag: 1.20.5-rootless + postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + properties: + gitea: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: gitea/gitea + tag: 1.20.5-rootless + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: gitea/gitea + type: string + tag: + default: 1.20.5-rootless + type: string + type: object + postgresql: + default: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + properties: + registry: + default: ghcr.io + type: string + repository: + default: cloudnative-pg/postgresql + type: string + tag: + default: 15.3 + type: number + type: object + redis: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis + type: string + tag: + default: v7.0.12 + type: string + type: object + redis_exporter: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis-exporter + type: string + tag: + default: v1.44.0 + type: string + type: object + type: object + ssh-port: + default: 2222 + examples: + - 2222 + type: integer dependencies: - dist: null category: share diff --git a/apps/gitea/postgresql.tf b/apps/gitea/postgresql.tf index 07376bd..0ca58b2 100644 --- a/apps/gitea/postgresql.tf +++ b/apps/gitea/postgresql.tf @@ -17,8 +17,9 @@ resource "kubectl_manifest" "prj_pg" { "k8up.io/file-extension": ".sql" spec: instances: ${var.postgres.replicas} + imageName: "${var.images.postgresql.registry}/${var.images.postgresql.repository}:${var.images.postgresql.tag}" storage: - size: "${var.postgres.storage}" + size: "${var.storage.postgres.size}" bootstrap: initdb: database: "${var.component}" diff --git a/apps/gitea/redis.tf b/apps/gitea/redis.tf index b78a033..88a59fa 100644 --- a/apps/gitea/redis.tf +++ b/apps/gitea/redis.tf @@ -14,7 +14,7 @@ resource "kubectl_manifest" "prj_redis" { spec: kubernetesConfig: image: "${var.images.redis.registry}/${var.images.redis.repository}:${var.images.redis.tag}" - imagePullPolicy: "IfNotPresent" + imagePullPolicy: "${var.images.redis.pullPolicy}" storage: volumeClaimTemplate: spec: diff --git a/apps/nextcloud/index.yaml b/apps/nextcloud/index.yaml index 911be3b..03e0824 100644 --- a/apps/nextcloud/index.yaml +++ b/apps/nextcloud/index.yaml @@ -6,6 +6,157 @@ metadata: name: nextcloud description: null options: + storage: + default: + postgres: + size: 5Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + size: 10Gi + type: Filesystem + description: Configure this app storage + examples: + - postgres: + size: 5Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + size: 10Gi + type: Filesystem + properties: + postgres: + default: + size: 5Gi + properties: + size: + default: 5Gi + type: string + type: object + redis: + default: + size: 2Gi + properties: + size: + default: 2Gi + type: string + type: object + volume: + default: + accessMode: ReadWriteOnce + size: 10Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 10Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object + apps: + default: + audioplayer: false + bookmarks: false + bpm: false + calendar: false + collabora: false + contacts: false + deck: false + groupfolders: true + mindmap: false + music: false + notes: false + onlyoffice: false + passman: false + spreed: false + tables: false + tasks: false + texteditor: true + examples: + - audioplayer: false + bookmarks: false + bpm: false + calendar: false + collabora: false + contacts: false + deck: false + groupfolders: true + mindmap: false + music: false + notes: false + onlyoffice: false + passman: false + spreed: false + tables: false + tasks: false + texteditor: true + properties: + audioplayer: + default: false + type: boolean + bookmarks: + default: false + type: boolean + bpm: + default: false + type: boolean + calendar: + default: false + type: boolean + collabora: + default: false + type: boolean + contacts: + default: false + type: boolean + deck: + default: false + type: boolean + groupfolders: + default: true + type: boolean + mindmap: + default: false + type: boolean + music: + default: false + type: boolean + notes: + default: false + type: boolean + onlyoffice: + default: false + type: boolean + passman: + default: false + type: boolean + spreed: + default: false + type: boolean + tables: + default: false + type: boolean + tasks: + default: false + type: boolean + texteditor: + default: true + type: boolean + type: object admin: default: name: nextcloud_admin @@ -16,26 +167,26 @@ options: default: nextcloud_admin type: string type: object - domain: - default: your-company + hpa: + default: + avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 examples: - - your-company - type: string - app_group: - default: '' - examples: - - '' - type: string - openid-name: - default: vynil - examples: - - vynil - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string + - avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 + properties: + avg-cpu: + default: 50 + type: integer + max-replicas: + default: 5 + type: integer + min-replicas: + default: 1 + type: integer + type: object domain_name: default: your_company.com examples: @@ -46,58 +197,6 @@ options: examples: - traefik type: string - redis: - default: - exporter: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.12 - storage: 2Gi - examples: - - exporter: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.12 - storage: 2Gi - properties: - exporter: - default: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - properties: - enabled: - default: true - type: boolean - image: - default: quay.io/opstree/redis-exporter:v1.44.0 - type: string - type: object - image: - default: quay.io/opstree/redis:v7.0.12 - type: string - storage: - default: 2Gi - type: string - type: object - storage: - default: - accessMode: ReadWriteOnce - size: 10Gi - examples: - - accessMode: ReadWriteOnce - size: 10Gi - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 10Gi - type: string - type: object images: default: collabora: @@ -125,6 +224,20 @@ options: registry: docker.io repository: onlyoffice/documentserver tag: 7.5.0.1 + postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 examples: - collabora: pullPolicy: IfNotPresent @@ -151,6 +264,20 @@ options: registry: docker.io repository: onlyoffice/documentserver tag: 7.5.0.1 + postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 properties: collabora: default: @@ -260,27 +387,81 @@ options: default: 7.5.0.1 type: string type: object + postgresql: + default: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + properties: + registry: + default: ghcr.io + type: string + repository: + default: cloudnative-pg/postgresql + type: string + tag: + default: 15.3 + type: number + type: object + redis: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis + type: string + tag: + default: v7.0.12 + type: string + type: object + redis_exporter: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis-exporter + type: string + tag: + default: v1.44.0 + type: string + type: object type: object - hpa: - default: - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 + domain: + default: your-company examples: - - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 - properties: - avg-cpu: - default: 50 - type: integer - max-replicas: - default: 5 - type: integer - min-replicas: - default: 1 - type: integer - type: object + - your-company + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string backups: default: enable: false @@ -387,121 +568,21 @@ options: default: false type: boolean type: object - apps: - default: - audioplayer: false - bookmarks: false - bpm: false - calendar: false - collabora: false - contacts: false - deck: false - groupfolders: true - mindmap: false - music: false - notes: false - onlyoffice: false - passman: false - spreed: false - tables: false - tasks: false - texteditor: true + openid-name: + default: vynil examples: - - audioplayer: false - bookmarks: false - bpm: false - calendar: false - collabora: false - contacts: false - deck: false - groupfolders: true - mindmap: false - music: false - notes: false - onlyoffice: false - passman: false - spreed: false - tables: false - tasks: false - texteditor: true - properties: - audioplayer: - default: false - type: boolean - bookmarks: - default: false - type: boolean - bpm: - default: false - type: boolean - calendar: - default: false - type: boolean - collabora: - default: false - type: boolean - contacts: - default: false - type: boolean - deck: - default: false - type: boolean - groupfolders: - default: true - type: boolean - mindmap: - default: false - type: boolean - music: - default: false - type: boolean - notes: - default: false - type: boolean - onlyoffice: - default: false - type: boolean - passman: - default: false - type: boolean - spreed: - default: false - type: boolean - tables: - default: false - type: boolean - tasks: - default: false - type: boolean - texteditor: - default: true - type: boolean - type: object - postgres: - default: - replicas: 1 - storage: 5Gi - version: '14' - examples: - - replicas: 1 - storage: 5Gi - version: '14' - properties: - replicas: - default: 1 - type: integer - storage: - default: 5Gi - type: string - version: - default: '14' - type: string - type: object + - vynil + type: string sub_domain: default: files examples: - files type: string + app_group: + default: '' + examples: + - '' + type: string dependencies: - dist: null category: share diff --git a/apps/nextcloud/postgresql.tf b/apps/nextcloud/postgresql.tf index 07376bd..0ca58b2 100644 --- a/apps/nextcloud/postgresql.tf +++ b/apps/nextcloud/postgresql.tf @@ -17,8 +17,9 @@ resource "kubectl_manifest" "prj_pg" { "k8up.io/file-extension": ".sql" spec: instances: ${var.postgres.replicas} + imageName: "${var.images.postgresql.registry}/${var.images.postgresql.repository}:${var.images.postgresql.tag}" storage: - size: "${var.postgres.storage}" + size: "${var.storage.postgres.size}" bootstrap: initdb: database: "${var.component}" diff --git a/apps/nextcloud/redis.tf b/apps/nextcloud/redis.tf index b78a033..88a59fa 100644 --- a/apps/nextcloud/redis.tf +++ b/apps/nextcloud/redis.tf @@ -14,7 +14,7 @@ resource "kubectl_manifest" "prj_redis" { spec: kubernetesConfig: image: "${var.images.redis.registry}/${var.images.redis.repository}:${var.images.redis.tag}" - imagePullPolicy: "IfNotPresent" + imagePullPolicy: "${var.images.redis.pullPolicy}" storage: volumeClaimTemplate: spec: diff --git a/share/dataset-pg/databases.tf b/share/dataset-pg/databases.tf index 1fd3e2d..ae72849 100644 --- a/share/dataset-pg/databases.tf +++ b/share/dataset-pg/databases.tf @@ -16,6 +16,9 @@ locals { pg_username = data.kubernetes_secret_v1.postgresql_password.data["username"] pg_password = data.kubernetes_secret_v1.postgresql_password.data["password"] pg_host = "${var.instance}-${var.component}-rw.${var.namespace}.svc" + pg-username = pg_username + pg-password = pg_password + pg-host = pg_host sorted-db-name = reverse(distinct(sort([ for db in var.databases: db.name diff --git a/share/dataset-pg/index.yaml b/share/dataset-pg/index.yaml index 10f98d8..11ea0d0 100644 --- a/share/dataset-pg/index.yaml +++ b/share/dataset-pg/index.yaml @@ -60,36 +60,26 @@ options: default: backup-settings type: string type: object - domain: - default: your-company + postgres: + default: + replicas: 1 examples: - - your-company - type: string - sub_domain: - default: dataset-pg + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object + issuer: + default: letsencrypt-prod examples: - - dataset-pg + - letsencrypt-prod type: string app_group: default: api examples: - api type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - storage: - default: 8Gi - examples: - - 8Gi - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string databases: default: [] items: @@ -99,6 +89,11 @@ options: type: string type: object type: array + sub_domain: + default: dataset-pg + examples: + - dataset-pg + type: string roles: default: [] items: @@ -108,6 +103,28 @@ options: type: string type: object type: array + domain_name: + default: your_company.com + examples: + - your_company.com + type: string + storage: + default: + postgres: + size: 10Gi + examples: + - postgres: + size: 10Gi + properties: + postgres: + default: + size: 10Gi + properties: + size: + default: 10Gi + type: string + type: object + type: object extentions: default: directus: @@ -289,16 +306,45 @@ options: type: object type: object type: object - issuer: - default: letsencrypt-prod + images: + default: + postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 examples: - - letsencrypt-prod + - postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + properties: + postgresql: + default: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + properties: + registry: + default: ghcr.io + type: string + repository: + default: cloudnative-pg/postgresql + type: string + tag: + default: 15.3 + type: number + type: object + type: object + ingress_class: + default: traefik + examples: + - traefik type: string - replicas: - default: 1 + domain: + default: your-company examples: - - 1 - type: integer + - your-company + type: string dependencies: - dist: null category: dbo diff --git a/share/dataset-pg/postgresql.tf b/share/dataset-pg/postgresql.tf index a379ee7..609cdec 100644 --- a/share/dataset-pg/postgresql.tf +++ b/share/dataset-pg/postgresql.tf @@ -17,9 +17,10 @@ resource "kubectl_manifest" "prj_pg" { namespace: "${var.namespace}" labels: ${jsonencode(local.pg-labels)} spec: - instances: ${var.replicas} + instances: ${var.postgres.replicas} + imageName: "${var.images.postgresql.registry}/${var.images.postgresql.repository}:${var.images.postgresql.tag}" storage: - size: "${var.storage}" + size: "${var.storage.postgres.size}" monitoring: enablePodMonitor: true bootstrap: diff --git a/share/wildduck/index.yaml b/share/wildduck/index.yaml index 0ec7d10..c696b6f 100644 --- a/share/wildduck/index.yaml +++ b/share/wildduck/index.yaml @@ -6,41 +6,11 @@ metadata: name: wildduck description: null options: - ingress_class: - default: traefik + app_group: + default: '' examples: - - traefik + - '' type: string - backups: - default: - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings - examples: - - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key-id-key: - default: s3-id - type: string - secret-key: - default: s3-secret - type: string - secret-name: - default: backup-settings - type: string - type: object images: default: haraka: @@ -48,6 +18,16 @@ options: registry: docker.io repository: sebt3/wildduck-haraka tag: 3.0.2 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 rspamd: pullPolicy: IfNotPresent registry: docker.io @@ -79,6 +59,16 @@ options: registry: docker.io repository: sebt3/wildduck-haraka tag: 3.0.2 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 rspamd: pullPolicy: IfNotPresent registry: docker.io @@ -129,6 +119,54 @@ options: default: 3.0.2 type: string type: object + redis: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis + type: string + tag: + default: v7.0.12 + type: string + type: object + redis_exporter: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis-exporter + type: string + tag: + default: v1.44.0 + type: string + type: object rspamd: default: pullPolicy: IfNotPresent @@ -250,54 +288,90 @@ options: type: string type: object type: object - domain: - default: your-company + sub_domain: + default: mail examples: - - your-company - type: string - app_group: - default: '' - examples: - - '' + - mail type: string additional-domains: default: [] items: type: string type: array + domain: + default: your-company + examples: + - your-company + type: string redis: default: exporter: enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.5 - storage: 2Gi examples: - exporter: enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.5 - storage: 2Gi properties: exporter: default: enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 properties: enabled: default: true type: boolean - image: - default: quay.io/opstree/redis-exporter:v1.44.0 + type: object + type: object + storage: + default: + redis: + size: 2Gi + examples: + - redis: + size: 2Gi + properties: + redis: + default: + size: 2Gi + properties: + size: + default: 2Gi type: string type: object - image: - default: quay.io/opstree/redis:v7.0.5 + type: object + backups: + default: + enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + examples: + - enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + properties: + enable: + default: false + type: boolean + endpoint: + default: '' type: string - storage: - default: 2Gi + key-id-key: + default: s3-id + type: string + secret-key: + default: s3-secret + type: string + secret-name: + default: backup-settings type: string type: object + ingress_class: + default: traefik + examples: + - traefik + type: string domain_name: default: your_company.com examples: @@ -308,11 +382,6 @@ options: examples: - letsencrypt-prod type: string - sub_domain: - default: mail - examples: - - mail - type: string dependencies: - dist: null category: dbo @@ -330,4 +399,5 @@ providers: postgresql: null restapi: true http: null + gitea: null tfaddtype: null diff --git a/share/wildduck/mongo.tf b/share/wildduck/mongo.tf index c9a89db..7986174 100644 --- a/share/wildduck/mongo.tf +++ b/share/wildduck/mongo.tf @@ -40,7 +40,7 @@ resource "kubectl_manifest" "prj_mongo" { spec: members: 1 type: ReplicaSet - version: "4.4.0" + version: "7.0.2" statefulSet: spec: template: diff --git a/share/wildduck/redis.tf b/share/wildduck/redis.tf index b78a033..88a59fa 100644 --- a/share/wildduck/redis.tf +++ b/share/wildduck/redis.tf @@ -14,7 +14,7 @@ resource "kubectl_manifest" "prj_redis" { spec: kubernetesConfig: image: "${var.images.redis.registry}/${var.images.redis.repository}:${var.images.redis.tag}" - imagePullPolicy: "IfNotPresent" + imagePullPolicy: "${var.images.redis.pullPolicy}" storage: volumeClaimTemplate: spec: