From 599d175f826b1f9d2c6b152eeee6af7a70b2787d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Huss?= Date: Thu, 9 May 2024 12:15:27 +0200 Subject: [PATCH] fix --- apps/code-server/index.yaml | 79 ++- apps/dbgate/index.yaml | 212 ++++---- apps/dolibarr/index.yaml | 487 +++++++++--------- apps/dolibarr/redis.tf | 4 +- apps/gitea/index.rhai | 18 - apps/gitea/index.yaml | 3 - apps/gramo/index.yaml | 3 - apps/infisical/configs.tf | 2 +- apps/infisical/deploy.tf | 2 +- apps/infisical/index.yaml | 84 +-- apps/infisical/secret.tf | 2 +- .../apps_v1_Deployment_nextcloud-metrics.yaml | 2 +- .../apps_v1_Deployment_nextcloud.yaml | 4 +- ..._v1_HorizontalPodAutoscaler_nextcloud.yaml | 2 +- apps/nextcloud/index.yaml | 481 +++++++++-------- ...oreos.com_v1_ServiceMonitor_nextcloud.yaml | 2 +- apps/nextcloud/redis.tf | 4 +- .../v1_ConfigMap_nextcloud-config.yaml | 2 +- .../v1_ConfigMap_nextcloud-nginxconfig.yaml | 2 +- ...istentVolumeClaim_nextcloud-nextcloud.yaml | 4 +- .../v1_Service_nextcloud-metrics.yaml | 2 +- apps/nextcloud/v1_Service_nextcloud.yaml | 2 +- apps/okd/deploy.tf | 6 +- apps/okd/index.yaml | 51 +- apps/okd/rbac.tf | 22 +- apps/traefik-ui/index.yaml | 27 +- apps/traefik-ui/presentation.tf | 2 +- apps/traefik-ui/svc.tf | 2 +- apps/woodpecker/datas.tf | 2 +- apps/woodpecker/gitea_token.tf | 2 +- apps/woodpecker/index.yaml | 179 ++++--- 31 files changed, 830 insertions(+), 866 deletions(-) delete mode 100644 apps/gitea/index.rhai diff --git a/apps/code-server/index.yaml b/apps/code-server/index.yaml index a5d0159..03872b4 100644 --- a/apps/code-server/index.yaml +++ b/apps/code-server/index.yaml @@ -6,11 +6,36 @@ metadata: name: code-server description: VS Code in the browser options: + admin: + default: + cluster: false + namespace: false + examples: + - cluster: false + namespace: false + properties: + cluster: + default: false + type: boolean + namespace: + default: false + type: boolean + type: object app_group: default: dev examples: - dev type: string + domain: + default: your-company + examples: + - your-company + type: string + domain_name: + default: your-company.com + examples: + - your-company.com + type: string images: default: codeserver: @@ -50,15 +75,10 @@ options: type: string type: object type: object - timezone: - default: Europe/Paris + ingress_class: + default: traefik examples: - - Europe/Paris - type: string - domain_name: - default: your-company.com - examples: - - your-company.com + - traefik type: string issuer: default: letsencrypt-prod @@ -70,36 +90,6 @@ options: examples: - false type: boolean - domain: - default: your-company - examples: - - your-company - type: string - sub_domain: - default: code - examples: - - code - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - admin: - default: - cluster: false - namespace: false - examples: - - cluster: false - namespace: false - properties: - cluster: - default: false - type: boolean - namespace: - default: false - type: boolean - type: object storage: default: volume: @@ -143,10 +133,17 @@ options: type: string type: object type: object + sub_domain: + default: code + examples: + - code + type: string + timezone: + default: Europe/Paris + examples: + - Europe/Paris + type: string dependencies: -- dist: null - category: share - component: authentik-forward - dist: null category: core component: secret-generator diff --git a/apps/dbgate/index.yaml b/apps/dbgate/index.yaml index d1572e6..a2db852 100644 --- a/apps/dbgate/index.yaml +++ b/apps/dbgate/index.yaml @@ -6,6 +6,70 @@ metadata: name: dbgate description: The Smartest SQL+noSQL Database Client options: + app_group: + default: dev + examples: + - dev + type: string + domain: + default: your-company + examples: + - your-company + type: string + domain_name: + default: your_company.com + examples: + - your_company.com + type: string + images: + default: + dbgate: + pull_policy: IfNotPresent + registry: docker.io + repository: dbgate/dbgate + tag: 5.2.7-alpine + examples: + - dbgate: + pull_policy: IfNotPresent + registry: docker.io + repository: dbgate/dbgate + tag: 5.2.7-alpine + properties: + dbgate: + default: + pull_policy: IfNotPresent + registry: docker.io + repository: dbgate/dbgate + tag: 5.2.7-alpine + properties: + pull_policy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: dbgate/dbgate + type: string + tag: + default: 5.2.7-alpine + type: string + type: object + type: object + ingress_class: + default: traefik + examples: + - traefik + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string maria: default: [] examples: @@ -64,45 +128,49 @@ options: type: string type: object type: array - images: - default: - dbgate: - pull_policy: IfNotPresent - registry: docker.io - repository: dbgate/dbgate - tag: 5.2.7-alpine + pg: + default: [] examples: - - dbgate: - pull_policy: IfNotPresent - registry: docker.io - repository: dbgate/dbgate - tag: 5.2.7-alpine - properties: - dbgate: - default: - pull_policy: IfNotPresent - registry: docker.io - repository: dbgate/dbgate - tag: 5.2.7-alpine - properties: - pull_policy: - default: IfNotPresent - enum: - - Always - - Never - - IfNotPresent - type: string - registry: - default: docker.io - type: string - repository: - default: dbgate/dbgate - type: string - tag: - default: 5.2.7-alpine - type: string - type: object - type: object + - [] + 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 + redis: + default: [] + examples: + - [] + items: + properties: + name: + default: '' + type: string + namespace: + default: '' + type: string + type: object + type: array storage: default: volume: @@ -146,79 +214,11 @@ options: type: string type: object type: object - ingress_class: - default: traefik - examples: - - traefik - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - domain: - default: your-company - examples: - - your-company - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string sub_domain: default: dbgate examples: - dbgate type: string - app_group: - default: dev - examples: - - dev - type: string - redis: - default: [] - examples: - - [] - items: - properties: - name: - default: '' - type: string - namespace: - default: '' - type: string - type: object - type: array - pg: - 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 dependencies: - dist: null category: core diff --git a/apps/dolibarr/index.yaml b/apps/dolibarr/index.yaml index 76a46d7..f701f6c 100644 --- a/apps/dolibarr/index.yaml +++ b/apps/dolibarr/index.yaml @@ -6,6 +6,147 @@ metadata: name: dolibarr description: Open Source ERP & CRM for business options: + app_group: + default: '' + examples: + - '' + type: string + backups: + default: + enable: false + endpoint: '' + key_id_key: s3-id + restic_key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 20 3 * * * + check: 20 5 * * 1 + db: 0 3 * * * + prune: 20 1 * * 0 + secret_key: s3-secret + secret_name: backup-settings + use_barman: false + examples: + - enable: false + endpoint: '' + key_id_key: s3-id + restic_key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 20 3 * * * + check: 20 5 * * 1 + db: 0 3 * * * + prune: 20 1 * * 0 + secret_key: s3-secret + secret_name: backup-settings + use_barman: false + properties: + enable: + default: false + type: boolean + endpoint: + default: '' + type: string + key_id_key: + default: s3-id + type: string + restic_key: + default: bck-password + type: string + retention: + default: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + properties: + db: + default: 30d + type: string + keepDaily: + default: 14 + type: integer + keepMonthly: + default: 12 + type: integer + keepWeekly: + default: 6 + type: integer + keepYearly: + default: 12 + type: integer + type: object + schedule: + default: + backup: 20 3 * * * + check: 20 5 * * 1 + db: 0 3 * * * + prune: 20 1 * * 0 + properties: + backup: + default: 20 3 * * * + type: string + check: + default: 20 5 * * 1 + type: string + db: + default: 0 3 * * * + type: string + prune: + default: 20 1 * * 0 + type: string + type: object + secret_key: + default: s3-secret + type: string + secret_name: + default: backup-settings + type: string + use_barman: + default: false + type: boolean + type: object + domain: + default: your-company + examples: + - your-company + type: string + domain_name: + default: your_company.com + examples: + - your_company.com + type: string + hpa: + default: + avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 + 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 images: default: dolibarr: @@ -155,6 +296,107 @@ options: type: string type: object type: object + ingress_class: + default: traefik + examples: + - traefik + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + log-level: + default: 5 + examples: + - 5 + type: integer + modules: + default: + - societe + examples: + - - societe + items: + type: string + type: array + parameters: + default: + MAIN_LANG_DEFAULT: auto + examples: + - MAIN_LANG_DEFAULT: auto + properties: + MAIN_LANG_DEFAULT: + default: auto + type: string + type: object + postgres: + default: + replicas: 1 + examples: + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object + redis: + default: + exporter: + enabled: true + examples: + - exporter: + enabled: true + properties: + exporter: + default: + enabled: true + properties: + enabled: + default: true + type: boolean + type: object + type: object + resources: + default: + limits: + cpu: 200m + memory: 256Mi + requests: + cpu: 50m + memory: 100Mi + examples: + - limits: + cpu: 200m + memory: 256Mi + requests: + cpu: 50m + memory: 100Mi + properties: + limits: + default: + cpu: 200m + memory: 256Mi + properties: + cpu: + default: 200m + type: string + memory: + default: 256Mi + type: string + type: object + requests: + default: + cpu: 50m + memory: 100Mi + properties: + cpu: + default: 50m + type: string + memory: + default: 100Mi + type: string + type: object + type: object storage: default: postgres: @@ -222,179 +464,11 @@ options: type: string type: object type: object - hpa: - default: - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 - 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 - backups: - default: - enable: false - endpoint: '' - key_id_key: s3-id - restic_key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 20 3 * * * - check: 20 5 * * 1 - db: 0 3 * * * - prune: 20 1 * * 0 - secret_key: s3-secret - secret_name: backup-settings - use_barman: false - examples: - - enable: false - endpoint: '' - key_id_key: s3-id - restic_key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 20 3 * * * - check: 20 5 * * 1 - db: 0 3 * * * - prune: 20 1 * * 0 - secret_key: s3-secret - secret_name: backup-settings - use_barman: false - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key_id_key: - default: s3-id - type: string - restic_key: - default: bck-password - type: string - retention: - default: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - properties: - db: - default: 30d - type: string - keepDaily: - default: 14 - type: integer - keepMonthly: - default: 12 - type: integer - keepWeekly: - default: 6 - type: integer - keepYearly: - default: 12 - type: integer - type: object - schedule: - default: - backup: 20 3 * * * - check: 20 5 * * 1 - db: 0 3 * * * - prune: 20 1 * * 0 - properties: - backup: - default: 20 3 * * * - type: string - check: - default: 20 5 * * 1 - type: string - db: - default: 0 3 * * * - type: string - prune: - default: 20 1 * * 0 - type: string - type: object - secret_key: - default: s3-secret - type: string - secret_name: - default: backup-settings - type: string - use_barman: - default: false - type: boolean - type: object - redis: - default: - exporter: - enabled: true - examples: - - exporter: - enabled: true - properties: - exporter: - default: - enabled: true - properties: - enabled: - default: true - type: boolean - type: object - type: object - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - app_group: - default: '' - examples: - - '' - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string sub_domain: default: erp examples: - erp type: string - parameters: - default: - MAIN_LANG_DEFAULT: auto - examples: - - MAIN_LANG_DEFAULT: auto - properties: - MAIN_LANG_DEFAULT: - default: auto - type: string - type: object user-groups: default: - admin: true @@ -410,84 +484,7 @@ options: type: string type: object type: array - modules: - default: - - societe - examples: - - - societe - items: - type: string - type: array - postgres: - default: - replicas: 1 - examples: - - replicas: 1 - properties: - replicas: - default: 1 - type: integer - type: object - ingress_class: - default: traefik - examples: - - traefik - type: string - domain: - default: your-company - examples: - - your-company - type: string - log-level: - default: 5 - examples: - - 5 - type: integer - resources: - default: - limits: - cpu: 200m - memory: 256Mi - requests: - cpu: 50m - memory: 100Mi - examples: - - limits: - cpu: 200m - memory: 256Mi - requests: - cpu: 50m - memory: 100Mi - properties: - limits: - default: - cpu: 200m - memory: 256Mi - properties: - cpu: - default: 200m - type: string - memory: - default: 256Mi - type: string - type: object - requests: - default: - cpu: 50m - memory: 100Mi - properties: - cpu: - default: 50m - type: string - memory: - default: 100Mi - type: string - type: object - type: object dependencies: -- dist: null - category: share - component: authentik-ldap - dist: null category: core component: secret-generator diff --git a/apps/dolibarr/redis.tf b/apps/dolibarr/redis.tf index 008912a..22a400e 100644 --- a/apps/dolibarr/redis.tf +++ b/apps/dolibarr/redis.tf @@ -5,7 +5,7 @@ locals { } resource "kubectl_manifest" "dolibarr_redis" { yaml_body = <<-EOF - apiVersion: "redis.redis.opstreelabs.in/v1beta2" + apiVersion: "redis.redis.opstreelabs.in/v1beta1" kind: "Redis" metadata: name: "${var.instance}-${var.component}-redis" @@ -25,7 +25,7 @@ resource "kubectl_manifest" "dolibarr_redis" { redisExporter: enabled: ${var.redis.exporter.enabled} image: "${var.images.redis_exporter.registry}/${var.images.redis_exporter.repository}:${var.images.redis_exporter.tag}" - podSecurityContext: + securityContext: runAsUser: 1000 fsGroup: 1000 EOF diff --git a/apps/gitea/index.rhai b/apps/gitea/index.rhai deleted file mode 100644 index 3681fe9..0000000 --- a/apps/gitea/index.rhai +++ /dev/null @@ -1,18 +0,0 @@ - -const NS=config.namespace; -const SRC=src; -const DEST=dest; -fn pre_pack() { - shell("helm repo add gitea-charts https://dl.gitea.io/charts/"); - shell(`helm template gitea --version 9.5.0 gitea-charts/gitea --namespace=vynil-ci -a "monitoring.coreos.com/v1/ServiceMonitor" -a "monitoring.coreos.com/v1/PrometheusRule" --values values.yml >${global::SRC}/chart.yaml`); -} -fn post_pack() { - shell(`rm -f ${global::DEST}/v1_Pod_gitea-test-connection.yaml`); - shell(`rm -f ${global::DEST}/v1_Secret_gitea-inline-config.yaml`); - let regex = "'\\\\\\${\\(LDAP_[A-Z_]*\\)}'"; - let final = "\\\"\\${\\1}\\\""; - shell(`sed -i "s/${regex}/${final}/g" ${global::DEST}/v1_Secret_gitea-init.yaml`); -} -fn pre_install() { - shell(`kubectl create -n ${global::NS} -f ${global::SRC}/v1_ConfigMap_gitea-themes.yaml || :`); -} diff --git a/apps/gitea/index.yaml b/apps/gitea/index.yaml index e0c77f2..80e7d2d 100644 --- a/apps/gitea/index.yaml +++ b/apps/gitea/index.yaml @@ -476,9 +476,6 @@ options: type: boolean type: object dependencies: -- dist: null - category: share - component: authentik-ldap - dist: null category: core component: secret-generator diff --git a/apps/gramo/index.yaml b/apps/gramo/index.yaml index 4e0537a..9ed52d7 100644 --- a/apps/gramo/index.yaml +++ b/apps/gramo/index.yaml @@ -91,9 +91,6 @@ options: - gramo type: string dependencies: -- dist: null - category: share - component: authentik-forward - dist: null category: core component: secret-generator diff --git a/apps/infisical/configs.tf b/apps/infisical/configs.tf index be10621..c422928 100644 --- a/apps/infisical/configs.tf +++ b/apps/infisical/configs.tf @@ -3,7 +3,7 @@ resource "kubectl_manifest" "config" { apiVersion: v1 kind: ConfigMap metadata: - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} data: diff --git a/apps/infisical/deploy.tf b/apps/infisical/deploy.tf index 15d4174..7ee7552 100644 --- a/apps/infisical/deploy.tf +++ b/apps/infisical/deploy.tf @@ -3,7 +3,7 @@ resource "kubectl_manifest" "deploy" { apiVersion: apps/v1 kind: Deployment metadata: - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} annotations: diff --git a/apps/infisical/index.yaml b/apps/infisical/index.yaml index 0dc9636..79f66d8 100644 --- a/apps/infisical/index.yaml +++ b/apps/infisical/index.yaml @@ -6,47 +6,20 @@ metadata: name: infisical description: null options: - sub_domain: - default: infisical - examples: - - infisical - type: string - replicas: - default: 1 - examples: - - 1 - type: integer app_group: default: apps examples: - apps type: string - redis: - default: - exporter: - enabled: true + domain: + default: your-company examples: - - exporter: - enabled: true - properties: - exporter: - default: - enabled: true - properties: - enabled: - default: true - type: boolean - type: object - type: object - sso_vynil: - default: true + - your-company + type: string + domain_name: + default: your-company.com examples: - - true - type: boolean - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod + - your-company.com type: string images: default: @@ -155,20 +128,47 @@ options: type: string type: object type: object - domain_name: - default: your-company.com - examples: - - your-company.com - type: string ingress_class: default: traefik examples: - traefik type: string - domain: - default: your-company + issuer: + default: letsencrypt-prod examples: - - your-company + - 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 + replicas: + default: 1 + examples: + - 1 + type: integer + sso_vynil: + default: true + examples: + - true + type: boolean + sub_domain: + default: infisical + examples: + - infisical type: string dependencies: - dist: null diff --git a/apps/infisical/secret.tf b/apps/infisical/secret.tf index 2dfd50d..89c981b 100644 --- a/apps/infisical/secret.tf +++ b/apps/infisical/secret.tf @@ -5,7 +5,7 @@ resource "kubectl_manifest" "secret" { apiVersion: "secretgenerator.mittwald.de/v1alpha1" kind: "StringSecret" metadata: - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} spec: diff --git a/apps/nextcloud/apps_v1_Deployment_nextcloud-metrics.yaml b/apps/nextcloud/apps_v1_Deployment_nextcloud-metrics.yaml index 2762953..d8c812a 100644 --- a/apps/nextcloud/apps_v1_Deployment_nextcloud-metrics.yaml +++ b/apps/nextcloud/apps_v1_Deployment_nextcloud-metrics.yaml @@ -5,7 +5,7 @@ metadata: name: nextcloud-metrics labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics diff --git a/apps/nextcloud/apps_v1_Deployment_nextcloud.yaml b/apps/nextcloud/apps_v1_Deployment_nextcloud.yaml index d8486c9..4376e77 100644 --- a/apps/nextcloud/apps_v1_Deployment_nextcloud.yaml +++ b/apps/nextcloud/apps_v1_Deployment_nextcloud.yaml @@ -5,7 +5,7 @@ metadata: name: nextcloud labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: app @@ -32,7 +32,7 @@ spec: spec: containers: - name: nextcloud - image: nextcloud:28.0.3-apache + image: nextcloud:29.0.0-apache imagePullPolicy: IfNotPresent env: diff --git a/apps/nextcloud/autoscaling_v1_HorizontalPodAutoscaler_nextcloud.yaml b/apps/nextcloud/autoscaling_v1_HorizontalPodAutoscaler_nextcloud.yaml index 67d8668..23c0450 100644 --- a/apps/nextcloud/autoscaling_v1_HorizontalPodAutoscaler_nextcloud.yaml +++ b/apps/nextcloud/autoscaling_v1_HorizontalPodAutoscaler_nextcloud.yaml @@ -5,7 +5,7 @@ metadata: name: nextcloud labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: app diff --git a/apps/nextcloud/index.yaml b/apps/nextcloud/index.yaml index a5730d1..07317e9 100644 --- a/apps/nextcloud/index.yaml +++ b/apps/nextcloud/index.yaml @@ -6,62 +6,20 @@ metadata: name: nextcloud description: null options: - openid-name: - default: vynil - examples: - - vynil - type: string - redis: + admin: default: - exporter: - enabled: true + name: nextcloud_admin examples: - - exporter: - enabled: true + - name: nextcloud_admin properties: - exporter: - default: - enabled: true - properties: - enabled: - default: true - type: boolean - type: object + name: + default: nextcloud_admin + type: string type: object - hpa: - default: - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 + app_group: + default: '' 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 - ingress_class: - default: traefik - examples: - - traefik - type: string - domain: - default: your-company - examples: - - your-company - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod + - '' type: string apps: default: @@ -153,95 +111,142 @@ options: default: true type: boolean type: object - postgres: + backups: default: - replicas: 1 + enable: false + endpoint: '' + key_id_key: s3-id + restic_key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 30 3 * * * + check: 30 5 * * 1 + db: 30 3 * * * + prune: 30 1 * * 0 + secret_key: s3-secret + secret_name: backup-settings + use_barman: false examples: - - replicas: 1 + - enable: false + endpoint: '' + key_id_key: s3-id + restic_key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 30 3 * * * + check: 30 5 * * 1 + db: 30 3 * * * + prune: 30 1 * * 0 + secret_key: s3-secret + secret_name: backup-settings + use_barman: false properties: - replicas: - default: 1 - type: integer - type: object - storage: - default: - postgres: - size: 5Gi - redis: - size: 2Gi - volume: - accessMode: ReadWriteOnce - class: '' - size: 10Gi - type: Filesystem - description: Configure this app storage - examples: - - postgres: - size: 5Gi - redis: - size: 2Gi - volume: - accessMode: ReadWriteOnce - class: '' - 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 - class: '' - size: 10Gi - type: Filesystem - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - class: - default: '' - type: string - size: - default: 10Gi - type: string - type: - default: Filesystem - type: string - type: object - type: object - admin: - default: - name: nextcloud_admin - examples: - - name: nextcloud_admin - properties: - name: - default: nextcloud_admin + enable: + default: false + type: boolean + endpoint: + default: '' type: string + key_id_key: + default: s3-id + type: string + restic_key: + default: bck-password + type: string + retention: + default: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + properties: + db: + default: 30d + type: string + keepDaily: + default: 14 + type: integer + keepMonthly: + default: 12 + type: integer + keepWeekly: + default: 6 + type: integer + keepYearly: + default: 12 + type: integer + type: object + schedule: + default: + backup: 30 3 * * * + check: 30 5 * * 1 + db: 30 3 * * * + prune: 30 1 * * 0 + properties: + backup: + default: 30 3 * * * + type: string + check: + default: 30 5 * * 1 + type: string + db: + default: 30 3 * * * + type: string + prune: + default: 30 1 * * 0 + type: string + type: object + secret_key: + default: s3-secret + type: string + secret_name: + default: backup-settings + type: string + use_barman: + default: false + type: boolean type: object + domain: + default: your-company + examples: + - your-company + type: string domain_name: default: your_company.com examples: - your_company.com type: string + hpa: + default: + avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 + 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 images: default: collabora: @@ -497,126 +502,118 @@ options: type: string type: object type: object - app_group: - default: '' + ingress_class: + default: traefik examples: - - '' + - traefik type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + openid-name: + default: vynil + examples: + - vynil + type: string + postgres: + default: + replicas: 1 + examples: + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object + redis: + default: + exporter: + enabled: true + examples: + - exporter: + enabled: true + properties: + exporter: + default: + enabled: true + properties: + enabled: + default: true + type: boolean + type: object + type: object + storage: + default: + postgres: + size: 5Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + class: '' + size: 10Gi + type: Filesystem + description: Configure this app storage + examples: + - postgres: + size: 5Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + class: '' + 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 + class: '' + size: 10Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + class: + default: '' + type: string + size: + default: 10Gi + type: string + type: + default: Filesystem + type: string + type: object + type: object sub_domain: default: files examples: - files type: string - backups: - default: - enable: false - endpoint: '' - key_id_key: s3-id - restic_key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 30 3 * * * - check: 30 5 * * 1 - db: 30 3 * * * - prune: 30 1 * * 0 - secret_key: s3-secret - secret_name: backup-settings - use_barman: false - examples: - - enable: false - endpoint: '' - key_id_key: s3-id - restic_key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 30 3 * * * - check: 30 5 * * 1 - db: 30 3 * * * - prune: 30 1 * * 0 - secret_key: s3-secret - secret_name: backup-settings - use_barman: false - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key_id_key: - default: s3-id - type: string - restic_key: - default: bck-password - type: string - retention: - default: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - properties: - db: - default: 30d - type: string - keepDaily: - default: 14 - type: integer - keepMonthly: - default: 12 - type: integer - keepWeekly: - default: 6 - type: integer - keepYearly: - default: 12 - type: integer - type: object - schedule: - default: - backup: 30 3 * * * - check: 30 5 * * 1 - db: 30 3 * * * - prune: 30 1 * * 0 - properties: - backup: - default: 30 3 * * * - type: string - check: - default: 30 5 * * 1 - type: string - db: - default: 30 3 * * * - type: string - prune: - default: 30 1 * * 0 - type: string - type: object - secret_key: - default: s3-secret - type: string - secret_name: - default: backup-settings - type: string - use_barman: - default: false - type: boolean - type: object dependencies: -- dist: null - category: share - component: authentik - dist: null category: core component: secret-generator diff --git a/apps/nextcloud/monitoring.coreos.com_v1_ServiceMonitor_nextcloud.yaml b/apps/nextcloud/monitoring.coreos.com_v1_ServiceMonitor_nextcloud.yaml index d23c011..da91681 100644 --- a/apps/nextcloud/monitoring.coreos.com_v1_ServiceMonitor_nextcloud.yaml +++ b/apps/nextcloud/monitoring.coreos.com_v1_ServiceMonitor_nextcloud.yaml @@ -6,7 +6,7 @@ metadata: namespace: "vynil-cloud" labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics diff --git a/apps/nextcloud/redis.tf b/apps/nextcloud/redis.tf index db81307..6316802 100644 --- a/apps/nextcloud/redis.tf +++ b/apps/nextcloud/redis.tf @@ -5,7 +5,7 @@ locals { } resource "kubectl_manifest" "prj_redis" { yaml_body = <<-EOF - apiVersion: "redis.redis.opstreelabs.in/v1beta2" + apiVersion: "redis.redis.opstreelabs.in/v1beta1" kind: "Redis" metadata: name: "${var.instance}-${var.component}-redis" @@ -25,7 +25,7 @@ resource "kubectl_manifest" "prj_redis" { redisExporter: enabled: ${var.redis.exporter.enabled} image: "${var.images.redis_exporter.registry}/${var.images.redis_exporter.repository}:${var.images.redis_exporter.tag}" - podSecurityContext: + securityContext: runAsUser: 1000 fsGroup: 1000 EOF diff --git a/apps/nextcloud/v1_ConfigMap_nextcloud-config.yaml b/apps/nextcloud/v1_ConfigMap_nextcloud-config.yaml index 26ec680..d941d80 100644 --- a/apps/nextcloud/v1_ConfigMap_nextcloud-config.yaml +++ b/apps/nextcloud/v1_ConfigMap_nextcloud-config.yaml @@ -5,7 +5,7 @@ metadata: name: nextcloud-config labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm data: diff --git a/apps/nextcloud/v1_ConfigMap_nextcloud-nginxconfig.yaml b/apps/nextcloud/v1_ConfigMap_nextcloud-nginxconfig.yaml index 4996a47..b372c68 100644 --- a/apps/nextcloud/v1_ConfigMap_nextcloud-nginxconfig.yaml +++ b/apps/nextcloud/v1_ConfigMap_nextcloud-nginxconfig.yaml @@ -5,7 +5,7 @@ metadata: name: nextcloud-nginxconfig labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm data: diff --git a/apps/nextcloud/v1_PersistentVolumeClaim_nextcloud-nextcloud.yaml b/apps/nextcloud/v1_PersistentVolumeClaim_nextcloud-nextcloud.yaml index ce884f3..8cfbce7 100644 --- a/apps/nextcloud/v1_PersistentVolumeClaim_nextcloud-nextcloud.yaml +++ b/apps/nextcloud/v1_PersistentVolumeClaim_nextcloud-nextcloud.yaml @@ -5,10 +5,12 @@ metadata: name: nextcloud-nextcloud labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: app + annotations: + helm.sh/resource-policy: keep spec: accessModes: - "ReadWriteOnce" diff --git a/apps/nextcloud/v1_Service_nextcloud-metrics.yaml b/apps/nextcloud/v1_Service_nextcloud-metrics.yaml index ac1be57..0c2d56e 100644 --- a/apps/nextcloud/v1_Service_nextcloud-metrics.yaml +++ b/apps/nextcloud/v1_Service_nextcloud-metrics.yaml @@ -5,7 +5,7 @@ metadata: name: nextcloud-metrics labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics diff --git a/apps/nextcloud/v1_Service_nextcloud.yaml b/apps/nextcloud/v1_Service_nextcloud.yaml index 6a3acfb..f9183fb 100644 --- a/apps/nextcloud/v1_Service_nextcloud.yaml +++ b/apps/nextcloud/v1_Service_nextcloud.yaml @@ -5,7 +5,7 @@ metadata: name: nextcloud labels: app.kubernetes.io/name: nextcloud - helm.sh/chart: nextcloud-4.6.4 + helm.sh/chart: nextcloud-4.6.8 app.kubernetes.io/instance: nextcloud app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: app diff --git a/apps/okd/deploy.tf b/apps/okd/deploy.tf index a28d9bb..5e6d24e 100644 --- a/apps/okd/deploy.tf +++ b/apps/okd/deploy.tf @@ -3,7 +3,7 @@ resource "kubectl_manifest" "deploy" { apiVersion: apps/v1 kind: Deployment metadata: - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} spec: @@ -53,7 +53,7 @@ resource "kubectl_manifest" "deploy" { successThreshold: 1 timeoutSeconds: 1 restartPolicy: Always - serviceAccount: "${var.component}-${var.instance}" - serviceAccountName: "${var.component}-${var.instance}" + serviceAccount: "${var.instance}-${var.component}" + serviceAccountName: "${var.instance}-${var.component}" EOF } diff --git a/apps/okd/index.yaml b/apps/okd/index.yaml index 0123999..d115036 100644 --- a/apps/okd/index.yaml +++ b/apps/okd/index.yaml @@ -6,36 +6,26 @@ metadata: name: okd description: The console is a more friendly kubectl in the form of a single page webapp. It also integrates with other services like monitoring, chargeback, and OLM. options: - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string app_group: default: infra examples: - infra type: string - issuer: - default: letsencrypt-prod + cluster-admin: + default: false examples: - - letsencrypt-prod - type: string - sub_domain: - default: okd - examples: - - okd - type: string + - false + type: boolean domain: default: your-company examples: - your-company type: string + domain_name: + default: your_company.com + examples: + - your_company.com + type: string images: default: okd: @@ -75,12 +65,17 @@ options: type: string type: object type: object - managed: - default: false + ingress_class: + default: traefik examples: - - false - type: boolean - cluster-admin: + - traefik + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + managed: default: false examples: - false @@ -90,10 +85,12 @@ options: items: type: string type: array + sub_domain: + default: okd + examples: + - okd + type: string dependencies: -- dist: null - category: share - component: authentik-forward - dist: null category: core component: secret-generator diff --git a/apps/okd/rbac.tf b/apps/okd/rbac.tf index 379cd1d..2203408 100644 --- a/apps/okd/rbac.tf +++ b/apps/okd/rbac.tf @@ -6,7 +6,7 @@ resource "kubectl_manifest" "okd_sa" { apiVersion: v1 kind: ServiceAccount metadata: - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} EOF @@ -18,7 +18,7 @@ resource "kubectl_manifest" "okd_crb_admin" { apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: "${var.namespace}-${var.component}-${var.instance}" + name: "${var.namespace}-${var.instance}-${var.component}" labels: ${jsonencode(local.common-labels)} roleRef: apiGroup: rbac.authorization.k8s.io @@ -26,7 +26,7 @@ resource "kubectl_manifest" "okd_crb_admin" { name: cluster-admin subjects: - kind: ServiceAccount - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" EOF } @@ -37,7 +37,7 @@ resource "kubectl_manifest" "okd_roles" { apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: - name: "${var.namespace}-${var.component}-${var.instance}" + name: "${var.namespace}-${var.instance}-${var.component}" namespace: "${local.sorted-namespaces[count.index]}" labels: ${jsonencode(local.common-labels)} rules: @@ -53,16 +53,16 @@ resource "kubectl_manifest" "okd_role_bindings" { apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: - name: "${var.namespace}-${var.component}-${var.instance}" + name: "${var.namespace}-${var.instance}-${var.component}" namespace: "${local.sorted-namespaces[count.index]}" labels: ${jsonencode(local.common-labels)} subjects: - kind: ServiceAccount - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" roleRef: kind: Role - name: "${var.namespace}-${var.component}-${var.instance}" + name: "${var.namespace}-${var.instance}-${var.component}" apiGroup: rbac.authorization.k8s.io EOF } @@ -73,7 +73,7 @@ resource "kubectl_manifest" "okd_clusterrole" { apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: "${var.namespace}-${var.component}-${var.instance}-list" + name: "${var.namespace}-${var.instance}-${var.component}-list" labels: ${jsonencode(local.common-labels)} rules: - apiGroups: [""] @@ -92,16 +92,16 @@ resource "kubectl_manifest" "okd_clusterrole_bindings" { apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: "${var.namespace}-${var.component}-${var.instance}-list" + name: "${var.namespace}-${var.instance}-${var.component}-list" namespace: "${local.sorted-namespaces[count.index]}" labels: ${jsonencode(local.common-labels)} subjects: - kind: ServiceAccount - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" roleRef: kind: ClusterRole - name: "${var.namespace}-${var.component}-${var.instance}-list" + name: "${var.namespace}-${var.instance}-${var.component}-list" apiGroup: rbac.authorization.k8s.io EOF } diff --git a/apps/traefik-ui/index.yaml b/apps/traefik-ui/index.yaml index 940d7fb..594ddfe 100644 --- a/apps/traefik-ui/index.yaml +++ b/apps/traefik-ui/index.yaml @@ -6,25 +6,15 @@ metadata: name: traefik-ui description: Access to the Traefik UI options: - sub_domain: - default: traefik - examples: - - traefik - type: string - domain: - default: your-company - examples: - - your-company - type: string app_group: default: infra examples: - infra type: string - issuer: - default: letsencrypt-prod + domain: + default: your-company examples: - - letsencrypt-prod + - your-company type: string domain_name: default: your_company.com @@ -36,6 +26,16 @@ options: examples: - traefik type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + sub_domain: + default: traefik + examples: + - traefik + type: string dependencies: - dist: null category: share @@ -45,6 +45,7 @@ providers: authentik: true kubectl: true postgresql: null + mysql: null restapi: true http: true gitea: null diff --git a/apps/traefik-ui/presentation.tf b/apps/traefik-ui/presentation.tf index 5be62dc..caa26e3 100644 --- a/apps/traefik-ui/presentation.tf +++ b/apps/traefik-ui/presentation.tf @@ -8,7 +8,7 @@ locals { Authorization = "Bearer ${data.kubernetes_secret_v1.authentik.data["AUTHENTIK_BOOTSTRAP_TOKEN"]}" } service = { - "name" = "${var.component}-${var.instance}" + "name" = "${var.instance}-${var.component}" "port" = { "number" = 80 } diff --git a/apps/traefik-ui/svc.tf b/apps/traefik-ui/svc.tf index ee76f69..6082a7e 100644 --- a/apps/traefik-ui/svc.tf +++ b/apps/traefik-ui/svc.tf @@ -3,7 +3,7 @@ resource "kubectl_manifest" "service" { apiVersion: v1 kind: Service metadata: - name: "${var.component}-${var.instance}" + name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} spec: diff --git a/apps/woodpecker/datas.tf b/apps/woodpecker/datas.tf index 2b4a176..a7f5000 100644 --- a/apps/woodpecker/datas.tf +++ b/apps/woodpecker/datas.tf @@ -186,7 +186,7 @@ data "kustomization_overlay" "data" { - secretRef: name: woodpecker-secret - secretRef: - name: "${var.component}-${var.instance}-gitea" + name: "${var.instance}-${var.component}-gitea" - configMapRef: name: "${var.instance}-${var.component}-server" volumeMounts: diff --git a/apps/woodpecker/gitea_token.tf b/apps/woodpecker/gitea_token.tf index 03654db..902cc14 100644 --- a/apps/woodpecker/gitea_token.tf +++ b/apps/woodpecker/gitea_token.tf @@ -28,7 +28,7 @@ resource "gitea_oauth2_app" "prj" { resource "kubernetes_secret_v1" "oauth2-client-gitea" { metadata { - name = "${var.component}-${var.instance}-gitea" + name = "${var.instance}-${var.component}-gitea" namespace = var.namespace } data = { diff --git a/apps/woodpecker/index.yaml b/apps/woodpecker/index.yaml index 1fe5447..5f2fcd6 100644 --- a/apps/woodpecker/index.yaml +++ b/apps/woodpecker/index.yaml @@ -6,85 +6,25 @@ metadata: name: woodpecker description: Woodpecker is a simple yet powerful CI/CD engine with great extensibility options: + admin-users: + default: woodpecker,admin + examples: + - woodpecker,admin + type: string + app_group: + default: dev + examples: + - dev + type: string domain: default: your-company examples: - your-company type: string - timeouts: - default: - default: '60' - max: '120' + domain_name: + default: your_company.com examples: - - default: '60' - max: '120' - properties: - default: - default: '60' - type: string - max: - default: '120' - type: string - type: object - storage: - default: - agent: - size: 10Gi - volume: - accessMode: ReadWriteOnce - class: '' - size: 10Gi - type: Filesystem - description: Configure this app storage - examples: - - agent: - size: 10Gi - volume: - accessMode: ReadWriteOnce - class: '' - size: 10Gi - type: Filesystem - properties: - agent: - default: - size: 10Gi - properties: - size: - default: 10Gi - type: string - type: object - volume: - default: - accessMode: ReadWriteOnce - class: '' - size: 10Gi - type: Filesystem - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - class: - default: '' - type: string - size: - default: 10Gi - type: string - type: - default: Filesystem - enum: - - Filesystem - - Block - type: string - type: object - type: object - app_group: - default: dev - examples: - - dev + - your_company.com type: string images: default: @@ -183,35 +123,92 @@ options: type: string type: object type: object - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - admin-users: - default: woodpecker,admin - examples: - - woodpecker,admin - type: string ingress_class: default: traefik examples: - traefik type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + storage: + default: + agent: + size: 10Gi + volume: + accessMode: ReadWriteOnce + class: '' + size: 10Gi + type: Filesystem + description: Configure this app storage + examples: + - agent: + size: 10Gi + volume: + accessMode: ReadWriteOnce + class: '' + size: 10Gi + type: Filesystem + properties: + agent: + default: + size: 10Gi + properties: + size: + default: 10Gi + type: string + type: object + volume: + default: + accessMode: ReadWriteOnce + class: '' + size: 10Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + class: + default: '' + type: string + size: + default: 10Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object sub_domain: default: ci examples: - ci type: string + timeouts: + default: + default: '60' + max: '120' + examples: + - default: '60' + max: '120' + properties: + default: + default: '60' + type: string + max: + default: '120' + type: string + type: object dependencies: -- dist: null - category: apps - component: gitea - dist: null category: core component: secret-generator