This commit is contained in:
2024-01-26 10:19:34 +01:00
parent e8ad81c3db
commit 94e78fa7e9
187 changed files with 3355 additions and 2857 deletions

View File

@@ -9,7 +9,7 @@ resource "kubectl_manifest" "deploy" {
spec: spec:
replicas: 1 replicas: 1
hostname: "${var.component}-${var.instance}" hostname: "${var.component}-${var.instance}"
subdomain: "${var.domain_name}" subdomain: "${var.domain-name}"
selector: selector:
matchLabels: ${jsonencode(local.common-labels)} matchLabels: ${jsonencode(local.common-labels)}
template: template:
@@ -46,7 +46,7 @@ resource "kubectl_manifest" "deploy" {
- name: DOCKER_USER - name: DOCKER_USER
value: coder value: coder
- name: IS_CONSOLE - name: IS_CONSOLE
value: "${var.no_editor?"shellinabox":"code-server"}" value: "${var.no-editor?"shellinabox":"code-server"}"
- name: TZ - name: TZ
value: "${var.timezone}" value: "${var.timezone}"
- name: ENTRYPOINTD - name: ENTRYPOINTD

View File

@@ -6,11 +6,83 @@ metadata:
name: code-server name: code-server
description: null description: null
options: options:
app_group: sub-domain:
default: code
examples:
- code
type: string
domain:
default: your-company
examples:
- your-company
type: string
timezone:
default: Europe/Paris
examples:
- Europe/Paris
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:
accessMode: ReadWriteOnce
size: 20Gi
type: Filesystem
description: Configure this app storage
examples:
- volume:
accessMode: ReadWriteOnce
size: 20Gi
type: Filesystem
properties:
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
app-group:
default: dev default: dev
examples: examples:
- dev - dev
type: string type: string
no-editor:
default: false
examples:
- false
type: boolean
images: images:
default: default:
codeserver: codeserver:
@@ -50,93 +122,21 @@ options:
type: number type: number
type: object type: object
type: object type: object
domain: ingress-class:
default: your-company
examples:
- your-company
type: string
domain_name:
default: your-company.com
examples:
- your-company.com
type: string
ingress_class:
default: traefik default: traefik
examples: examples:
- traefik - traefik
type: string type: string
storage: domain-name:
default: default: your-company.com
volume:
accessMode: ReadWriteOnce
size: 20Gi
type: Filesystem
description: Configure this app storage
examples: examples:
- volume: - your-company.com
accessMode: ReadWriteOnce type: string
size: 20Gi
type: Filesystem
properties:
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
issuer: issuer:
default: letsencrypt-prod default: letsencrypt-prod
examples: examples:
- letsencrypt-prod - letsencrypt-prod
type: string type: string
sub_domain:
default: code
examples:
- code
type: string
timezone:
default: Europe/Paris
examples:
- Europe/Paris
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
no_editor:
default: false
examples:
- false
type: boolean
dependencies: dependencies:
- dist: null - dist: null
category: share category: share

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.instance}.${var.sub_domain}.${var.domain_name}" dns_name = "${var.instance}.${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "_static/src/browser/media/favicon-dark-support.svg" icon = "_static/src/browser/media/favicon-dark-support.svg"
@@ -34,7 +34,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = ["forward-${local.app_name}"] middlewares = ["forward-${local.app_name}"]
@@ -48,7 +48,7 @@ module "application" {
source = "/dist/modules/application" source = "/dist/modules/application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.forward.provider-id protocol_provider = module.forward.provider-id
@@ -73,7 +73,7 @@ module "forward" {
instance = var.instance instance = var.instance
domain = var.domain domain = var.domain
namespace = var.namespace namespace = var.namespace
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
service = local.service service = local.service

View File

@@ -6,94 +6,6 @@ metadata:
name: dbgate name: dbgate
description: null description: null
options: options:
sub_domain:
default: dbgate
examples:
- 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
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
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
mongo: mongo:
default: [] default: []
examples: examples:
@@ -123,59 +35,6 @@ options:
type: string type: string
type: object type: object
type: array type: array
images:
default:
dbgate:
pullPolicy: IfNotPresent
registry: docker.io
repository: dbgate/dbgate
tag: 5.2.7-alpine
examples:
- dbgate:
pullPolicy: IfNotPresent
registry: docker.io
repository: dbgate/dbgate
tag: 5.2.7-alpine
properties:
dbgate:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: dbgate/dbgate
tag: 5.2.7-alpine
properties:
pullPolicy:
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
redis:
default: []
examples:
- []
items:
properties:
name:
default: ''
type: string
namespace:
default: ''
type: string
type: object
type: array
storage: storage:
default: default:
volume: volume:
@@ -213,6 +72,147 @@ options:
type: string type: string
type: object type: object
type: object type: object
images:
default:
dbgate:
pullPolicy: IfNotPresent
registry: docker.io
repository: dbgate/dbgate
tag: 5.2.7-alpine
examples:
- dbgate:
pullPolicy: IfNotPresent
registry: docker.io
repository: dbgate/dbgate
tag: 5.2.7-alpine
properties:
dbgate:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: dbgate/dbgate
tag: 5.2.7-alpine
properties:
pullPolicy:
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
app-group:
default: dev
examples:
- dev
type: string
sub-domain:
default: dbgate
examples:
- dbgate
type: string
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
domain-name:
default: your_company.com
examples:
- your_company.com
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
domain:
default: your-company
examples:
- your-company
type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
redis:
default: []
examples:
- []
items:
properties:
name:
default: ''
type: string
namespace:
default: ''
type: string
type: object
type: array
dependencies: dependencies:
- dist: null - dist: null
category: core category: core

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "logo192.png" icon = "logo192.png"
@@ -34,7 +34,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = [] middlewares = []
@@ -48,7 +48,7 @@ module "application" {
source = "/dist/modules/application" source = "/dist/modules/application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.oauth2.provider-id protocol_provider = module.oauth2.provider-id

View File

@@ -61,10 +61,10 @@ resource "authentik_policy_binding" "dolibarr_ldap_access_vynil" {
resource "authentik_application" "dolibarr_application_saml" { resource "authentik_application" "dolibarr_application_saml" {
name = "${var.instance}" name = "${var.instance}"
slug = "${var.component}-${var.instance}" slug = "${var.component}-${var.instance}"
group = var.app_group group = var.app-group
protocol_provider = authentik_provider_saml.dolibarr.id protocol_provider = authentik_provider_saml.dolibarr.id
meta_launch_url = format("https://%s.%s", var.sub_domain, var.domain_name) meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
meta_icon = format("https://%s.%s/%s", var.sub_domain, var.domain_name, "theme/dolibarr_256x256_color.png") meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "theme/dolibarr_256x256_color.png")
} }
resource "authentik_policy_binding" "dolibarr_saml_access_users" { resource "authentik_policy_binding" "dolibarr_saml_access_users" {

View File

@@ -167,7 +167,7 @@ resource "kubectl_manifest" "config" {
DOLI_ADMIN_LOGIN: "admin_${var.instance}" DOLI_ADMIN_LOGIN: "admin_${var.instance}"
DOLI_MODULES: "modSociete,modBlockedLog,modSamlConnector,modLdap" DOLI_MODULES: "modSociete,modBlockedLog,modSamlConnector,modLdap"
DOLI_AUTH: "dolibarr" DOLI_AUTH: "dolibarr"
DOLI_URL_ROOT: "https://${var.sub_domain}.${var.domain_name}" DOLI_URL_ROOT: "https://${var.sub-domain}.${var.domain-name}"
DOLI_LDAP_PORT: "389" DOLI_LDAP_PORT: "389"
DOLI_LDAP_VERSION: "3" DOLI_LDAP_VERSION: "3"
DOLI_LDAP_SERVERTYPE: "openldap" DOLI_LDAP_SERVERTYPE: "openldap"

View File

@@ -6,203 +6,23 @@ metadata:
name: dolibarr name: dolibarr
description: null description: null
options: options:
parameters:
default:
MAIN_LANG_DEFAULT: auto
examples:
- MAIN_LANG_DEFAULT: auto
properties:
MAIN_LANG_DEFAULT:
default: auto
type: string
type: object
modules:
default:
- societe
examples:
- - societe
items:
type: string
type: array
images:
default:
dolibarr:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/dolibarr
tag: 18.0.2
nginx:
pullPolicy: IfNotPresent
registry: docker.io
repository: nginx
tag: alpine
examples:
- dolibarr:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/dolibarr
tag: 18.0.2
nginx:
pullPolicy: IfNotPresent
registry: docker.io
repository: nginx
tag: alpine
properties:
dolibarr:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/dolibarr
tag: 18.0.2
properties:
pullPolicy:
default: IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: sebt3/dolibarr
type: string
tag:
default: 18.0.2
type: string
type: object
nginx:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: nginx
tag: alpine
properties:
pullPolicy:
default: IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: nginx
type: string
tag:
default: alpine
type: string
type: object
type: object
sub_domain:
default: erp
examples:
- erp
type: string
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
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
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
redis: redis:
default: default:
exporter: exporter:
enabled: true enabled: true
image: quay.io/opstree/redis-exporter:v1.44.0
image: quay.io/opstree/redis:v7.0.12
storage: 2Gi
examples: examples:
- exporter: - exporter:
enabled: true enabled: true
image: quay.io/opstree/redis-exporter:v1.44.0
image: quay.io/opstree/redis:v7.0.12
storage: 2Gi
properties: properties:
exporter: exporter:
default: default:
enabled: true enabled: true
image: quay.io/opstree/redis-exporter:v1.44.0
properties: properties:
enabled: enabled:
default: true default: true
type: boolean type: boolean
image:
default: quay.io/opstree/redis-exporter:v1.44.0
type: string
type: object type: object
image:
default: quay.io/opstree/redis:v7.0.12
type: string
storage:
default: 2Gi
type: string
type: object type: object
app_group:
default: ''
examples:
- ''
type: string
backups: backups:
default: default:
enable: false enable: false
@@ -309,63 +129,6 @@ options:
default: false default: false
type: boolean type: boolean
type: object type: object
domain:
default: your-company
examples:
- your-company
type: string
storage:
default:
accessMode: ReadWriteOnce
size: 10Gi
type: Filesystem
examples:
- 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
ingress_class:
default: traefik
examples:
- traefik
type: string
log-level:
default: 5
examples:
- 5
type: integer
user-groups:
default:
- admin: true
name: dolibarr-admin
examples:
- - admin: true
name: dolibarr-admin
items:
properties:
admin:
type: boolean
name:
type: string
type: object
type: array
hpa: hpa:
default: default:
avg-cpu: 50 avg-cpu: 50
@@ -386,6 +149,335 @@ options:
default: 1 default: 1
type: integer type: integer
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
app-group:
default: ''
examples:
- ''
type: string
storage:
default:
postgres:
size: 5Gi
redis:
size: 2Gi
volume:
accessMode: ReadWriteOnce
size: 1Gi
type: Filesystem
description: Configure this app storage
examples:
- postgres:
size: 5Gi
redis:
size: 2Gi
volume:
accessMode: ReadWriteOnce
size: 1Gi
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: 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
ingress-class:
default: traefik
examples:
- traefik
type: string
postgres:
default:
replicas: 1
examples:
- replicas: 1
properties:
replicas:
default: 1
type: integer
type: object
log-level:
default: 5
examples:
- 5
type: integer
user-groups:
default:
- admin: true
name: dolibarr-admin
examples:
- - admin: true
name: dolibarr-admin
items:
properties:
admin:
type: boolean
name:
type: string
type: object
type: array
parameters:
default:
MAIN_LANG_DEFAULT: auto
examples:
- MAIN_LANG_DEFAULT: auto
properties:
MAIN_LANG_DEFAULT:
default: auto
type: string
type: object
images:
default:
dolibarr:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/dolibarr
tag: 18.0.2
nginx:
pullPolicy: IfNotPresent
registry: docker.io
repository: nginx
tag: alpine
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:
- dolibarr:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/dolibarr
tag: 18.0.2
nginx:
pullPolicy: IfNotPresent
registry: docker.io
repository: nginx
tag: alpine
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:
dolibarr:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/dolibarr
tag: 18.0.2
properties:
pullPolicy:
default: IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: sebt3/dolibarr
type: string
tag:
default: 18.0.2
type: string
type: object
nginx:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: nginx
tag: alpine
properties:
pullPolicy:
default: IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: nginx
type: string
tag:
default: alpine
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
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
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
domain:
default: your-company
examples:
- your-company
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
sub-domain:
default: erp
examples:
- erp
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
modules:
default:
- societe
examples:
- - societe
items:
type: string
type: array
dependencies: dependencies:
- dist: null - dist: null
category: share category: share

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_names = ["${var.sub_domain}.${var.domain_name}"] dns_names = ["${var.sub-domain}.${var.domain-name}"]
middlewares = ["${var.instance}-https"] middlewares = ["${var.instance}-https"]
service = { service = {
"name" = "${var.instance}" "name" = "${var.instance}"
@@ -66,7 +66,7 @@ resource "kubectl_manifest" "prj_ingress" {
annotations: annotations:
"traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in local.middlewares : format("%s-%s@kubernetescrd", var.namespace, m)])}" "traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in local.middlewares : format("%s-%s@kubernetescrd", var.namespace, m)])}"
spec: spec:
ingressClassName: "${var.ingress_class}" ingressClassName: "${var.ingress-class}"
rules: ${jsonencode(local.rules)} rules: ${jsonencode(local.rules)}
tls: tls:
- hosts: ${jsonencode(local.dns_names)} - hosts: ${jsonencode(local.dns_names)}

View File

@@ -5,7 +5,7 @@ data "kubernetes_secret_v1" "authentik" {
} }
} }
locals { locals {
base-dn = format("dc=%s", join(",dc=", split(".", format("%s.%s", var.sub_domain, var.domain_name)))) base-dn = format("dc=%s", join(",dc=", split(".", format("%s.%s", var.sub-domain, var.domain-name))))
base-group-dn = format("ou=groups,%s", local.base-dn) base-group-dn = format("ou=groups,%s", local.base-dn)
base-user-dn = format("ou=users,%s", local.base-dn) base-user-dn = format("ou=users,%s", local.base-dn)
authentik_url = "http://authentik.${var.domain}-auth.svc" authentik_url = "http://authentik.${var.domain}-auth.svc"

View File

@@ -17,8 +17,9 @@ resource "kubectl_manifest" "prj_pg" {
"k8up.io/file-extension": ".sql" "k8up.io/file-extension": ".sql"
spec: spec:
instances: ${var.postgres.replicas} instances: ${var.postgres.replicas}
imageName: "${var.images.postgresql.registry}/${var.images.postgresql.repository}:${var.images.postgresql.tag}"
storage: storage:
size: "${var.postgres.storage}" size: "${var.storage.postgres.size}"
bootstrap: bootstrap:
initdb: initdb:
database: "${var.component}" database: "${var.component}"

View File

@@ -14,7 +14,7 @@ resource "kubectl_manifest" "dolibarr_redis" {
spec: spec:
kubernetesConfig: kubernetesConfig:
image: "${var.images.redis.registry}/${var.images.redis.repository}:${var.images.redis.tag}" image: "${var.images.redis.registry}/${var.images.redis.repository}:${var.images.redis.tag}"
imagePullPolicy: "IfNotPresent" imagePullPolicy: "${var.images.redis.pullPolicy}"
storage: storage:
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:

View File

@@ -47,7 +47,7 @@ resource "authentik_provider_saml" "dolibarr" {
name = "dolibarr-${var.instance}-saml" name = "dolibarr-${var.instance}-saml"
authentication_flow = data.authentik_flow.default-authentication-flow.id authentication_flow = data.authentik_flow.default-authentication-flow.id
authorization_flow = data.authentik_flow.default-authorization-flow.id authorization_flow = data.authentik_flow.default-authorization-flow.id
acs_url = "https://${var.sub_domain}.${var.domain_name}/custom/samlconnector/acs.php?entity=1&fk_idp=0" acs_url = "https://${var.sub-domain}.${var.domain-name}/custom/samlconnector/acs.php?entity=1&fk_idp=0"
property_mappings = data.authentik_property_mapping_saml.saml_maps.ids property_mappings = data.authentik_property_mapping_saml.saml_maps.ids
name_id_mapping = data.authentik_property_mapping_saml.saml_name.id name_id_mapping = data.authentik_property_mapping_saml.saml_name.id
signing_kp = data.authentik_certificate_key_pair.generated.id signing_kp = data.authentik_certificate_key_pair.generated.id

View File

@@ -9,31 +9,16 @@ metadata:
A painless self-hosted Git service. 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. Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.
options: options:
disable-registration: postgres:
default: true default:
replicas: 1
examples: examples:
- true - replicas: 1
type: boolean properties:
theme: replicas:
default: gitea-modern default: 1
examples: type: integer
- gitea-modern type: object
type: string
replicas:
default: 1
examples:
- 1
type: integer
timezone:
default: Europe/Paris
examples:
- Europe/Paris
type: string
ssh-port:
default: 2222
examples:
- 2222
type: integer
storage: storage:
default: default:
postgres: postgres:
@@ -95,222 +80,6 @@ options:
type: string type: string
type: object type: object
type: object type: object
domain:
default: your-company
examples:
- your-company
type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
ingress_class:
default: traefik
examples:
- traefik
type: string
load-balancer:
default:
ip: ''
examples:
- ip: ''
properties:
ip:
default: ''
type: string
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: 10 3 * * *
check: 10 5 * * 1
db: 10 3 * * *
prune: 10 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: 10 3 * * *
check: 10 5 * * 1
db: 10 3 * * *
prune: 10 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: 10 3 * * *
check: 10 5 * * 1
db: 10 3 * * *
prune: 10 1 * * 0
properties:
backup:
default: 10 3 * * *
type: string
check:
default: 10 5 * * 1
type: string
db:
default: 10 3 * * *
type: string
prune:
default: 10 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
sub_domain:
default: git
examples:
- git
type: string
default-branch:
default: main
examples:
- main
type: string
app_group:
default: dev
examples:
- dev
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
release:
default: 8.3.0
examples:
- 8.3.0
type: string
push-create:
default:
org: 'true'
private: 'false'
user: 'true'
examples:
- org: 'true'
private: 'false'
user: 'true'
properties:
org:
default: 'true'
type: string
private:
default: 'false'
type: string
user:
default: 'true'
type: string
type: object
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
examples:
- replicas: 1
properties:
replicas:
default: 1
type: integer
type: object
webhook:
default:
allowed-hosts: private
skip-tls-verify: false
examples:
- allowed-hosts: private
skip-tls-verify: false
properties:
allowed-hosts:
default: private
type: string
skip-tls-verify:
default: false
type: boolean
type: object
redis: redis:
default: default:
exporter: exporter:
@@ -328,6 +97,16 @@ options:
type: boolean type: boolean
type: object type: object
type: object type: object
replicas:
default: 1
examples:
- 1
type: integer
theme:
default: gitea-modern
examples:
- gitea-modern
type: string
images: images:
default: default:
gitea: gitea:
@@ -459,11 +238,232 @@ options:
type: string type: string
type: object type: object
type: object type: object
ssh-sub_domain: ssh-sub-domain:
default: git default: git
examples: examples:
- git - git
type: string type: string
app-group:
default: dev
examples:
- dev
type: string
load-balancer:
default:
ip: ''
examples:
- ip: ''
properties:
ip:
default: ''
type: string
type: object
disable-registration:
default: true
examples:
- true
type: boolean
ssh-port:
default: 2222
examples:
- 2222
type: integer
sub-domain:
default: git
examples:
- git
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
release:
default: 8.3.0
examples:
- 8.3.0
type: string
default-branch:
default: main
examples:
- main
type: string
push-create:
default:
org: 'true'
private: 'false'
user: 'true'
examples:
- org: 'true'
private: 'false'
user: 'true'
properties:
org:
default: 'true'
type: string
private:
default: 'false'
type: string
user:
default: 'true'
type: string
type: object
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
webhook:
default:
allowed-hosts: private
skip-tls-verify: false
examples:
- allowed-hosts: private
skip-tls-verify: false
properties:
allowed-hosts:
default: private
type: string
skip-tls-verify:
default: false
type: boolean
type: object
timezone:
default: Europe/Paris
examples:
- Europe/Paris
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: 10 3 * * *
check: 10 5 * * 1
db: 10 3 * * *
prune: 10 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: 10 3 * * *
check: 10 5 * * 1
db: 10 3 * * *
prune: 10 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: 10 3 * * *
check: 10 5 * * 1
db: 10 3 * * *
prune: 10 1 * * 0
properties:
backup:
default: 10 3 * * *
type: string
check:
default: 10 5 * * 1
type: string
db:
default: 10 3 * * *
type: string
prune:
default: 10 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
ingress-class:
default: traefik
examples:
- traefik
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
domain:
default: your-company
examples:
- your-company
type: string
dependencies: dependencies:
- dist: null - dist: null
category: share category: share

View File

@@ -43,15 +43,15 @@ ROOT=/data/git/gitea-repositories
EOF EOF
server = <<-EOF server = <<-EOF
APP_DATA_PATH=/data APP_DATA_PATH=/data
DOMAIN=${var.sub_domain}.${var.domain_name} DOMAIN=${var.sub-domain}.${var.domain-name}
ENABLE_PPROF=false ENABLE_PPROF=false
HTTP_PORT=3000 HTTP_PORT=3000
PROTOCOL=http PROTOCOL=http
ROOT_URL=https://${var.sub_domain}.${var.domain_name} ROOT_URL=https://${var.sub-domain}.${var.domain-name}
SSH_DOMAIN=${var.sub_domain}.${var.domain_name} SSH_DOMAIN=${var.sub-domain}.${var.domain-name}
SSH_LISTEN_PORT=2222 SSH_LISTEN_PORT=2222
SSH_PORT=${var.ssh-port} SSH_PORT=${var.ssh-port}
SSH_DOMAIN=${var.ssh-sub_domain}.${var.domain_name} SSH_DOMAIN=${var.ssh-sub-domain}.${var.domain-name}
START_SSH_SERVER=true START_SSH_SERVER=true
EOF EOF
ui = <<-EOF ui = <<-EOF

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "assets/img/logo.svg" icon = "assets/img/logo.svg"
@@ -34,7 +34,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = [] middlewares = []
@@ -48,7 +48,7 @@ module "application" {
source = "/dist/modules/application" source = "/dist/modules/application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.oauth2.provider-id protocol_provider = module.oauth2.provider-id

View File

@@ -6,26 +6,31 @@ metadata:
name: gramo name: gramo
description: null description: null
options: options:
domain: issuer:
default: your-company default: letsencrypt-prod
examples: examples:
- your-company - letsencrypt-prod
type: string type: string
ingress_class: sub-domain:
default: traefik
examples:
- traefik
type: string
sub_domain:
default: gramo default: gramo
examples: examples:
- gramo - gramo
type: string type: string
cluster-admin: managed:
default: false default: false
examples: examples:
- false - false
type: boolean type: boolean
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
namespaces:
default: []
items:
type: string
type: array
images: images:
default: default:
gramo: gramo:
@@ -65,31 +70,26 @@ options:
type: string type: string
type: object type: object
type: object type: object
managed: cluster-admin:
default: false default: false
examples: examples:
- false - false
type: boolean type: boolean
domain_name: app-group:
default: your_company.com
examples:
- your_company.com
type: string
namespaces:
default: []
items:
type: string
type: array
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
app_group:
default: infra default: infra
examples: examples:
- infra - infra
type: string type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
domain:
default: your-company
examples:
- your-company
type: string
dependencies: dependencies:
- dist: null - dist: null
category: share category: share

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "icon.svg" icon = "icon.svg"
@@ -34,7 +34,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = ["forward-${local.app_name}"] middlewares = ["forward-${local.app_name}"]
@@ -48,7 +48,7 @@ module "application" {
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application" source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.forward.provider-id protocol_provider = module.forward.provider-id
@@ -73,7 +73,7 @@ module "forward" {
instance = var.instance instance = var.instance
domain = var.domain domain = var.domain
namespace = var.namespace namespace = var.namespace
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
service = local.service service = local.service

View File

@@ -6,30 +6,30 @@ metadata:
name: k8s-api name: k8s-api
description: Access to the kubernetes api description: Access to the kubernetes api
options: options:
ingress_class: domain-name:
default: traefik default: your_company.com
examples: examples:
- traefik - your_company.com
type: string type: string
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
sub-domain:
default: api
examples:
- api
type: string
issuer: issuer:
default: letsencrypt-prod default: letsencrypt-prod
examples: examples:
- letsencrypt-prod - letsencrypt-prod
type: string type: string
domain_name: ingress-class:
default: your_company.com default: traefik
examples: examples:
- your_company.com - traefik
type: string
sub_domain:
default: api
examples:
- api
type: string type: string
dependencies: dependencies:
- dist: null - dist: null

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_names = ["${var.sub_domain}.${var.domain_name}"] dns_names = ["${var.sub-domain}.${var.domain-name}"]
middlewares = [] middlewares = []
services = [{ services = [{
"kind" = "Service" "kind" = "Service"

View File

@@ -6,6 +6,36 @@ metadata:
name: nextcloud name: nextcloud
description: null description: null
options: options:
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
sub-domain:
default: files
examples:
- files
type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
postgres: postgres:
default: default:
replicas: 1 replicas: 1
@@ -16,22 +46,25 @@ options:
default: 1 default: 1
type: integer type: integer
type: object type: object
redis: openid-name:
default: default: vynil
exporter:
enabled: true
examples: examples:
- exporter: - vynil
enabled: true type: string
domain:
default: your-company
examples:
- your-company
type: string
admin:
default:
name: nextcloud_admin
examples:
- name: nextcloud_admin
properties: properties:
exporter: name:
default: default: nextcloud_admin
enabled: true type: string
properties:
enabled:
default: true
type: boolean
type: object
type: object type: object
apps: apps:
default: default:
@@ -123,167 +156,6 @@ options:
default: true default: true
type: boolean type: boolean
type: object 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: 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
openid-name:
default: vynil
examples:
- vynil
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
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
admin:
default:
name: nextcloud_admin
examples:
- name: nextcloud_admin
properties:
name:
default: nextcloud_admin
type: string
type: object
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
sub_domain:
default: files
examples:
- files
type: string
domain:
default: your-company
examples:
- your-company
type: string
images: images:
default: default:
collabora: collabora:
@@ -539,11 +411,139 @@ options:
type: string type: string
type: object type: object
type: object type: object
ingress_class: backups:
default: traefik 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: examples:
- traefik - 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
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string type: string
domain-name:
default: your_company.com
examples:
- your_company.com
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
storage: storage:
default: default:
postgres: postgres:
@@ -605,7 +605,7 @@ options:
type: string type: string
type: object type: object
type: object type: object
app_group: app-group:
default: '' default: ''
examples: examples:
- '' - ''

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns-collabora = "collabora.${local.dns_name}" dns-collabora = "collabora.${local.dns_name}"
dns-onlyoffice = "onlyoffice.${local.dns_name}" dns-onlyoffice = "onlyoffice.${local.dns_name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
@@ -31,7 +31,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = ["${var.instance}-sslenforce", "${var.instance}-redirectdav", "${var.instance}-redirectindex"] middlewares = ["${var.instance}-sslenforce", "${var.instance}-redirectdav", "${var.instance}-redirectindex"]
@@ -45,7 +45,7 @@ module "application" {
source = "/dist/modules/application" source = "/dist/modules/application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.oauth2.provider-id protocol_provider = module.oauth2.provider-id
@@ -90,7 +90,7 @@ module "collabora-ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.collabora-labels labels = local.collabora-labels
dns_names = [local.dns-collabora] dns_names = [local.dns-collabora]
middlewares = [] middlewares = []
@@ -121,7 +121,7 @@ module "onlyoffice-ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.onlyoffice-labels labels = local.onlyoffice-labels
dns_names = [local.dns-onlyoffice] dns_names = [local.dns-onlyoffice]
middlewares = [] middlewares = []

View File

@@ -6,21 +6,16 @@ metadata:
name: okd name: okd
description: null description: null
options: options:
domain_name: namespaces:
default: []
items:
type: string
type: array
domain-name:
default: your_company.com default: your_company.com
examples: examples:
- your_company.com - your_company.com
type: string type: string
sub_domain:
default: okd
examples:
- okd
type: string
domain:
default: your-company
examples:
- your-company
type: string
images: images:
default: default:
okd: okd:
@@ -60,36 +55,41 @@ options:
type: string type: string
type: object type: object
type: object type: object
issuer: ingress-class:
default: letsencrypt-prod default: traefik
examples: examples:
- letsencrypt-prod - traefik
type: string type: string
app_group: app-group:
default: infra default: infra
examples: examples:
- infra - infra
type: string type: string
sub-domain:
default: okd
examples:
- okd
type: string
domain:
default: your-company
examples:
- your-company
type: string
managed: managed:
default: false default: false
examples: examples:
- false - false
type: boolean type: boolean
ingress_class: issuer:
default: traefik default: letsencrypt-prod
examples: examples:
- traefik - letsencrypt-prod
type: string type: string
cluster-admin: cluster-admin:
default: false default: false
examples: examples:
- false - false
type: boolean type: boolean
namespaces:
default: []
items:
type: string
type: array
dependencies: dependencies:
- dist: null - dist: null
category: share category: share

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "static/assets/okd-logo.svg" icon = "static/assets/okd-logo.svg"
@@ -34,7 +34,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = ["forward-${local.app_name}"] middlewares = ["forward-${local.app_name}"]
@@ -48,7 +48,7 @@ module "application" {
source = "/dist/modules/application" source = "/dist/modules/application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.forward.provider-id protocol_provider = module.forward.provider-id
@@ -73,7 +73,7 @@ module "forward" {
instance = var.instance instance = var.instance
domain = var.domain domain = var.domain
namespace = var.namespace namespace = var.namespace
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
service = local.service service = local.service

View File

@@ -6,12 +6,12 @@ metadata:
name: sonar name: sonar
description: null description: null
options: options:
ingress_class: ingress-class:
default: traefik default: traefik
examples: examples:
- traefik - traefik
type: string type: string
sub_domain: sub-domain:
default: sonar default: sonar
examples: examples:
- sonar - sonar
@@ -78,7 +78,7 @@ options:
examples: examples:
- your-company - your-company
type: string type: string
domain_name: domain-name:
default: your_company.com default: your_company.com
examples: examples:
- your_company.com - your_company.com

View File

@@ -6,35 +6,35 @@ metadata:
name: traefik-ui name: traefik-ui
description: Access to the Traefik UI description: Access to the Traefik UI
options: options:
issuer: domain-name:
default: letsencrypt-prod default: your_company.com
examples: examples:
- letsencrypt-prod - your_company.com
type: string
app_group:
default: infra
examples:
- infra
type: string type: string
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
ingress_class: sub-domain:
default: traefik default: traefik
examples: examples:
- traefik - traefik
type: string type: string
sub_domain: app-group:
default: infra
examples:
- infra
type: string
ingress-class:
default: traefik default: traefik
examples: examples:
- traefik - traefik
type: string type: string
domain_name: issuer:
default: your_company.com default: letsencrypt-prod
examples: examples:
- your_company.com - letsencrypt-prod
type: string type: string
dependencies: dependencies:
- dist: null - dist: null

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "dashboard/statics/icons/favicon-96x96.png" icon = "dashboard/statics/icons/favicon-96x96.png"
@@ -21,7 +21,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = ["forward-${local.app_name}"] middlewares = ["forward-${local.app_name}"]
@@ -35,7 +35,7 @@ module "application" {
source = "/dist/modules/application" source = "/dist/modules/application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.forward.provider-id protocol_provider = module.forward.provider-id
@@ -60,7 +60,7 @@ module "forward" {
instance = var.instance instance = var.instance
domain = var.domain domain = var.domain
namespace = var.namespace namespace = var.namespace
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
service = local.service service = local.service

View File

@@ -150,9 +150,9 @@ data "kustomization_overlay" "data" {
- name: WOODPECKER_ADMIN - name: WOODPECKER_ADMIN
value: "${var.admin-users}" value: "${var.admin-users}"
- name: WOODPECKER_HOST - name: WOODPECKER_HOST
value: "https://${var.sub_domain}.${var.domain_name}" value: "https://${var.sub-domain}.${var.domain-name}"
- name: WOODPECKER_HOST - name: WOODPECKER_HOST
value: "https://${var.sub_domain}.${var.domain_name}" value: "https://${var.sub-domain}.${var.domain-name}"
envFrom: envFrom:
- secretRef: - secretRef:
name: woodpecker-secret name: woodpecker-secret

View File

@@ -22,7 +22,7 @@ resource "gitea_oauth2_app" "prj" {
name = var.component name = var.component
confidential_client = true confidential_client = true
redirect_uris = [ redirect_uris = [
"https://${var.sub_domain}.${var.domain_name}/authorize" "https://${var.sub-domain}.${var.domain-name}/authorize"
] ]
} }

View File

@@ -6,6 +6,11 @@ metadata:
name: woodpecker name: woodpecker
description: null description: null
options: options:
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
storage-agent: storage-agent:
default: default:
size: 10Gi size: 10Gi
@@ -26,26 +31,21 @@ options:
default: 'false' default: 'false'
type: string type: string
type: object type: object
admin-users: timeouts:
default: woodpecker,admin default:
default: '60'
max: '120'
examples: examples:
- woodpecker,admin - default: '60'
type: string max: '120'
domain: properties:
default: your-company default:
examples: default: '60'
- your-company type: string
type: string max:
domain_name: default: '120'
default: your_company.com type: string
examples: type: object
- your_company.com
type: string
app_group:
default: dev
examples:
- dev
type: string
images: images:
default: default:
agent: agent:
@@ -143,6 +143,26 @@ options:
type: string type: string
type: object type: object
type: object type: object
sub-domain:
default: ci
examples:
- ci
type: string
domain:
default: your-company
examples:
- your-company
type: string
admin-users:
default: woodpecker,admin
examples:
- woodpecker,admin
type: string
app-group:
default: dev
examples:
- dev
type: string
storage-server: storage-server:
default: default:
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
@@ -162,35 +182,15 @@ options:
default: 10Gi default: 10Gi
type: string type: string
type: object type: object
ingress_class: ingress-class:
default: traefik default: traefik
examples: examples:
- traefik - traefik
type: string type: string
issuer: domain-name:
default: letsencrypt-prod default: your_company.com
examples: examples:
- letsencrypt-prod - your_company.com
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
sub_domain:
default: ci
examples:
- ci
type: string type: string
dependencies: dependencies:
- dist: null - dist: null

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
icon = "favicons/favicon-light-default.png" icon = "favicons/favicon-light-default.png"
service = { service = {
@@ -16,7 +16,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = [] middlewares = []
@@ -30,7 +30,7 @@ module "application" {
source = "/dist/modules/application" source = "/dist/modules/application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
providers = { providers = {

View File

@@ -2,15 +2,15 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/meta" = var.component
"vynil.solidite.fr/name" = "${var.namespace}-auth" "vynil.solidite.fr/name" = "${var.namespace}-auth"
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = var.domain_name "domain-name" = var.domain-name
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
} }
default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce" default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce"

View File

@@ -6,6 +6,38 @@ metadata:
name: domain-apps name: domain-apps
description: null description: null
options: options:
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
nextcloud:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: nextcloud
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
backups: backups:
default: default:
enable: false enable: false
@@ -36,48 +68,16 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
ingress-class:
default: traefik
examples:
- traefik
type: string
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
nextcloud:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: nextcloud
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
storage-classes: storage-classes:
default: default:
BlockReadWriteMany: '' BlockReadWriteMany: ''
@@ -103,10 +103,10 @@ options:
default: '' default: ''
type: string type: string
type: object type: object
ingress_class: issuer:
default: traefik default: letsencrypt-prod
examples: examples:
- traefik - letsencrypt-prod
type: string type: string
dependencies: [] dependencies: []
providers: providers:

View File

@@ -2,15 +2,15 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/meta" = var.component
"vynil.solidite.fr/name" = "${var.namespace}-auth" "vynil.solidite.fr/name" = "${var.namespace}-auth"
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = var.domain_name "domain-name" = var.domain-name
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
} }
authentik = { for k, v in var.authentik : k => v if k!="enable" } authentik = { for k, v in var.authentik : k => v if k!="enable" }

View File

@@ -6,121 +6,6 @@ metadata:
name: domain-auth name: domain-auth
description: null description: null
options: options:
employes:
default:
apps: []
divisions: []
enable: true
examples:
- apps: []
divisions: []
enable: true
properties:
apps:
default: []
items:
type: string
type: array
divisions:
default: []
items:
properties:
apps:
items:
type: string
type: array
name:
type: string
teams:
items:
type: object
type: array
type: object
type: array
enable:
default: true
type: boolean
type: object
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
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
ingress_class:
default: traefik
examples:
- traefik
type: string
authentik-ldap:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
fournisseurs: fournisseurs:
default: default:
apps: [] apps: []
@@ -156,6 +41,36 @@ options:
default: false default: false
type: boolean type: boolean
type: object type: object
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
ingress-class:
default: traefik
examples:
- traefik
type: string
authentik: authentik:
default: default:
enable: true enable: true
@@ -166,36 +81,11 @@ options:
default: true default: true
type: boolean type: boolean
type: object type: object
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
authentik-forward:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
clients: clients:
default: default:
apps: [] apps: []
@@ -231,6 +121,116 @@ options:
default: false default: false
type: boolean type: boolean
type: object type: object
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
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
authentik-forward:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
authentik-ldap:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
employes:
default:
apps: []
divisions: []
enable: true
examples:
- apps: []
divisions: []
enable: true
properties:
apps:
default: []
items:
type: string
type: array
divisions:
default: []
items:
properties:
apps:
items:
type: string
type: array
name:
type: string
teams:
items:
type: object
type: array
type: object
type: array
enable:
default: true
type: boolean
type: object
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -2,15 +2,15 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/meta" = var.component
"vynil.solidite.fr/name" = var.namespace "vynil.solidite.fr/name" = var.namespace
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = var.domain_name "domain-name" = var.domain-name
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
} }
default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce" default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce"

View File

@@ -6,6 +6,32 @@ metadata:
name: domain-ci name: domain-ci
description: null description: null
options: options:
domain:
default: your-company
examples:
- your-company
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
x-vynil-enum-source: issuer
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
backups: backups:
default: default:
enable: false enable: false
@@ -36,21 +62,40 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
domain: gitea:
default: your-company default:
enable: true
examples: examples:
- your-company - enable: true
type: string properties:
ingress_class: enable:
default: traefik default: true
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: gitea
woodpecker:
default:
enable: false
examples: examples:
- traefik - enable: false
type: string properties:
domain_name: enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: woodpecker
domain-name:
default: your_company.com default: your_company.com
examples: examples:
- your_company.com - your_company.com
type: string type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
storage-classes: storage-classes:
default: default:
BlockReadWriteMany: '' BlockReadWriteMany: ''
@@ -76,51 +121,6 @@ options:
default: '' default: ''
type: string type: string
type: object type: object
gitea:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: gitea
woodpecker:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: woodpecker
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
x-vynil-enum-source: issuer
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -2,21 +2,21 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/meta" = var.component
"vynil.solidite.fr/name" = "${var.domain}-devspaces" "vynil.solidite.fr/name" = "${var.domain}-devspaces"
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
global = { global = {
"domain" = var.domain "domain" = var.domain
"domain_name" = var.domain_name "domain-name" = var.domain-name
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
"app_group" = var.app_group "app-group" = var.app-group
} }
global-apps = merge(local.global, { global-apps = merge(local.global, {
"domain_name" = "devtools.${var.domain_name}" "domain-name" = "devtools.${var.domain-name}"
"app_group" = "dev" "app-group" = "dev"
}) })
okd = merge({ okd = merge({
"namespaces" = concat([ "namespaces" = concat([

View File

@@ -6,21 +6,57 @@ metadata:
name: domain-devspaces name: domain-devspaces
description: null description: null
options: options:
distributions: domain:
default: default: your-company
core: core
domain: domain
examples: examples:
- core: core - your-company
domain: domain type: string
properties: issuer:
core: default: letsencrypt-prod
default: core examples:
type: string - letsencrypt-prod
domain: type: string
default: domain organisations:
type: string default: []
type: object examples:
- []
items:
properties:
datasets:
default: []
items:
properties:
databases:
default: []
items:
properties:
name:
default: db
type: string
type: object
type: array
engine:
default: pg
type: string
name:
default: ''
type: string
type: object
type: array
name:
default: ''
type: string
stages:
default: []
items:
properties:
name:
default: prod
type: string
type: object
type: array
type: object
type: array
backups: backups:
default: default:
enable: false enable: false
@@ -51,7 +87,17 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
external-redis: ingress-class:
default: traefik
examples:
- traefik
type: string
stations-sub-domain:
default: code
examples:
- code
type: string
external-marias:
default: [] default: []
examples: examples:
- [] - []
@@ -63,24 +109,45 @@ options:
namespace: namespace:
default: '' default: ''
type: string type: string
type: object secret:
type: array properties:
stations: key:
default: [] default: ''
examples: type: string
- [] name:
items: default: ''
properties: type: string
name: type: object
username:
default: '' default: ''
type: string type: string
organisations:
default: []
items:
type: string
type: array
type: object type: object
type: array type: array
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
app-group:
default: dev
examples:
- dev
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
external-pgs: external-pgs:
default: [] default: []
examples: examples:
@@ -110,16 +177,129 @@ options:
type: string type: string
type: object type: object
type: array type: array
app_group: external-redis:
default: dev default: []
examples: examples:
- dev - []
type: string items:
haveGitea: properties:
default: false name:
default: ''
type: string
namespace:
default: ''
type: string
type: object
type: array
external-mongos:
default: []
examples: examples:
- false - []
type: boolean 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-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
images:
default:
codeserver:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/code-server
tag: 4.18
examples:
- codeserver:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/code-server
tag: 4.18
properties:
codeserver:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/code-server
tag: 4.18
properties:
pullPolicy:
default: IfNotPresent
enum:
- Always
- Never
- IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: sebt3/code-server
type: string
tag:
default: 4.18
type: number
type: object
type: object
stations:
default: []
examples:
- []
items:
properties:
name:
default: ''
type: string
organisations:
default: []
items:
type: string
type: array
type: object
type: array
apps: apps:
default: default:
dbgate: dbgate:
@@ -191,191 +371,11 @@ options:
type: boolean type: boolean
type: object type: object
type: object type: object
external-mongos: haveGitea:
default: [] default: false
examples: examples:
- [] - false
items: type: boolean
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
stations-sub_domain:
default: code
examples:
- code
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
ingress_class:
default: traefik
examples:
- traefik
type: string
organisations:
default: []
examples:
- []
items:
properties:
datasets:
default: []
items:
properties:
databases:
default: []
items:
properties:
name:
default: db
type: string
type: object
type: array
engine:
default: pg
type: string
name:
default: ''
type: string
type: object
type: array
name:
default: ''
type: string
stages:
default: []
items:
properties:
name:
default: prod
type: string
type: object
type: array
type: object
type: array
images:
default:
codeserver:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/code-server
tag: 4.18
examples:
- codeserver:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/code-server
tag: 4.18
properties:
codeserver:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: sebt3/code-server
tag: 4.18
properties:
pullPolicy:
default: IfNotPresent
enum:
- Always
- Never
- IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: sebt3/code-server
type: string
tag:
default: 4.18
type: number
type: object
type: object
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
external-marias:
default: []
examples:
- []
items:
properties:
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
domain:
default: your-company
examples:
- your-company
type: string
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -21,7 +21,7 @@ locals {
"organisation" = org "organisation" = org
"usage" = "station" "usage" = "station"
"station" = station "station" = station
"sub_domain" = "${station.name}.stations" "sub-domain" = "${station.name}.stations"
}) if ds.name == dsname }) if ds.name == dsname
] ]
]) if org.name == name ]) if org.name == name

View File

@@ -2,19 +2,18 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/meta" = var.component
"vynil.solidite.fr/name" = var.namespace "vynil.solidite.fr/name" = var.namespace
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
annotations_default = { annotations_default = {
"vynil.solidite.fr/default/domain_name" = var.domain_name "vynil.solidite.fr/default/domain-name" = var.domain-name
"vynil.solidite.fr/default/*" = var.domain_name
} }
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = var.domain_name "domain-name" = var.domain-name
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
} }
default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce" default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce"

View File

@@ -6,6 +6,63 @@ metadata:
name: domain-erp name: domain-erp
description: null description: null
options: options:
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
dolibarr:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: dolibarr
ingress-class:
default: traefik
examples:
- traefik
type: string
backups: backups:
default: default:
enable: false enable: false
@@ -36,78 +93,21 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
ingress_class: domain-name:
default: traefik default: your_company.com
examples: examples:
- traefik - your_company.com
type: string type: string
issuer: issuer:
default: letsencrypt-prod default: letsencrypt-prod
examples: examples:
- letsencrypt-prod - letsencrypt-prod
type: string type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
dolibarr:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: dolibarr
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -2,17 +2,17 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = "domain-ci" "vynil.solidite.fr/meta" = "domain-ci"
"vynil.solidite.fr/name" = var.namespace "vynil.solidite.fr/name" = var.namespace
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = "admin.${var.domain_name}" "domain-name" = "admin.${var.domain-name}"
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
"app_group" = var.app_group "app-group" = var.app-group
} }
traefik = { for k, v in var.traefik : k => v if k!="enable" } traefik = { for k, v in var.traefik : k => v if k!="enable" }
dns = { for k, v in var.dns : k => v if k!="enable" } dns = { for k, v in var.dns : k => v if k!="enable" }

View File

@@ -6,6 +6,129 @@ metadata:
name: domain-infra name: domain-infra
description: null description: null
options: options:
dns:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: share
x-vynil-package: dns
api:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
traefik:
default:
enable: false
namespace: traefik
examples:
- enable: false
namespace: traefik
properties:
enable:
default: false
type: boolean
namespace:
default: traefik
type: string
type: object
x-vynil-category: apps
x-vynil-package: traefix-ui
app-group:
default: infra
examples:
- infra
type: string
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
okd:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: okd
gramo:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: gramo
domain:
default: your-company
examples:
- your-company
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
backups: backups:
default: default:
enable: false enable: false
@@ -36,134 +159,11 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
api: ingress-class:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
app_group:
default: infra
examples:
- infra
type: string
gramo:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: gramo
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
domain:
default: your-company
examples:
- your-company
type: string
okd:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: okd
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
ingress_class:
default: traefik default: traefik
examples: examples:
- traefik - traefik
type: string type: string
traefik:
default:
enable: false
namespace: traefik
examples:
- enable: false
namespace: traefik
properties:
enable:
default: false
type: boolean
namespace:
default: traefik
type: string
type: object
x-vynil-category: apps
x-vynil-package: traefix-ui
dns:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: share
x-vynil-package: dns
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -2,15 +2,15 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/meta" = var.component
"vynil.solidite.fr/name" = var.namespace "vynil.solidite.fr/name" = var.namespace
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = var.domain_name "domain-name" = var.domain-name
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
} }
wildduck = { for k, v in var.wildduck : k => v if k!="enable" } wildduck = { for k, v in var.wildduck : k => v if k!="enable" }

View File

@@ -6,11 +6,76 @@ metadata:
name: domain-mail name: domain-mail
description: null description: null
options: options:
ingress_class: storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
wildduck:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
ingress-class:
default: traefik default: traefik
examples: examples:
- traefik - traefik
type: string type: string
domain:
default: your-company
examples:
- your-company
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
backups: backups:
default: default:
enable: false enable: false
@@ -41,46 +106,6 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
wildduck:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
domain:
default: your-company
examples:
- your-company
type: string
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true
@@ -89,4 +114,5 @@ providers:
postgresql: null postgresql: null
restapi: null restapi: null
http: null http: null
gitea: null
tfaddtype: null tfaddtype: null

View File

@@ -2,17 +2,17 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = "domain-monitor" "vynil.solidite.fr/meta" = "domain-monitor"
"vynil.solidite.fr/name" = var.namespace "vynil.solidite.fr/name" = var.namespace
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = "monitor.${var.domain_name}" "domain-name" = "monitor.${var.domain-name}"
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"backups" = var.backups "backups" = var.backups
"app_group" = var.app_group "app-group" = var.app-group
} }
grafana = { for k, v in var.grafana : k => v if k!="enable" } grafana = { for k, v in var.grafana : k => v if k!="enable" }
prometheus = { for k, v in var.prometheus : k => v if k!="enable" } prometheus = { for k, v in var.prometheus : k => v if k!="enable" }

View File

@@ -6,6 +6,83 @@ metadata:
name: domain-monitor name: domain-monitor
description: null description: null
options: options:
dashboards-workload:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: dashboards-workload
loki:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: loki
dashboards-minimal:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: dashboards-minimal
app-group:
default: monitor
examples:
- monitor
type: string
node-exporter:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: node-exporter
grafana:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: grafana
dashboards-cluster:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: dashboards-cluster
domain: domain:
default: your-company default: your-company
examples: examples:
@@ -23,7 +100,7 @@ options:
type: object type: object
x-vynil-category: monitor x-vynil-category: monitor
x-vynil-package: alerts-containers x-vynil-package: alerts-containers
loki: prometheus:
default: default:
enable: true enable: true
examples: examples:
@@ -34,7 +111,19 @@ options:
type: boolean type: boolean
type: object type: object
x-vynil-category: monitor x-vynil-category: monitor
x-vynil-package: loki x-vynil-package: prometheus
alertmanager:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: alertmanager
promtail: promtail:
default: default:
enable: true enable: true
@@ -47,7 +136,32 @@ options:
type: object type: object
x-vynil-category: monitor x-vynil-category: monitor
x-vynil-package: promtail x-vynil-package: promtail
kube-state-metrics: storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
alerts-core:
default: default:
enable: true enable: true
examples: examples:
@@ -58,46 +172,7 @@ options:
type: boolean type: boolean
type: object type: object
x-vynil-category: monitor x-vynil-category: monitor
x-vynil-package: kube-state-metrics x-vynil-package: alerts-core
dashboards-cluster:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: dashboards-cluster
ingress_class:
default: traefik
examples:
- traefik
type: string
app_group:
default: monitor
examples:
- monitor
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
grafana:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: grafana
monitor-control-plan: monitor-control-plan:
default: default:
enable: false enable: false
@@ -110,18 +185,6 @@ options:
type: object type: object
x-vynil-category: monitor x-vynil-category: monitor
x-vynil-package: monitor-control-plan x-vynil-package: monitor-control-plan
dashboards-workload:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: dashboards-workload
backups: backups:
default: default:
enable: false enable: false
@@ -152,18 +215,11 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
alerts-core: issuer:
default: default: letsencrypt-prod
enable: true
examples: examples:
- enable: true - letsencrypt-prod
properties: type: string
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: alerts-core
dashboards-namespace: dashboards-namespace:
default: default:
enable: true enable: true
@@ -176,23 +232,6 @@ options:
type: object type: object
x-vynil-category: monitor x-vynil-category: monitor
x-vynil-package: dashboards-namespace x-vynil-package: dashboards-namespace
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
dashboards-minimal:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: dashboards-minimal
distributions: distributions:
default: default:
core: core core: core
@@ -208,32 +247,12 @@ options:
default: domain default: domain
type: string type: string
type: object type: object
storage-classes: ingress-class:
default: default: traefik
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples: examples:
- BlockReadWriteMany: '' - traefik
BlockReadWriteOnce: '' type: string
FilesystemReadWriteMany: '' kube-state-metrics:
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
prometheus:
default: default:
enable: true enable: true
examples: examples:
@@ -244,31 +263,12 @@ options:
type: boolean type: boolean
type: object type: object
x-vynil-category: monitor x-vynil-category: monitor
x-vynil-package: prometheus x-vynil-package: kube-state-metrics
alertmanager: domain-name:
default: default: your_company.com
enable: true
examples: examples:
- enable: true - your_company.com
properties: type: string
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: alertmanager
node-exporter:
default:
enable: true
examples:
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: monitor
x-vynil-package: node-exporter
dependencies: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -6,140 +6,11 @@ metadata:
name: domain name: domain
description: null description: null
options: options:
storage-classes: domain-name:
default: default: your_company.com
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples: examples:
- BlockReadWriteMany: '' - your_company.com
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
ci:
default:
enable: false
gitea:
enable: true
examples:
- enable: false
gitea:
enable: true
properties:
enable:
default: false
type: boolean
gitea:
default:
enable: true
properties:
enable:
default: true
type: boolean
type: object
type: object
x-vynil-category: meta
x-vynil-package: domain-ci
monitor:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: meta
x-vynil-package: domain-monitor
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
infra:
default:
enable: false
traefik:
enable: false
examples:
- enable: false
traefik:
enable: false
properties:
enable:
default: false
type: boolean
traefik:
default:
enable: false
properties:
enable:
default: false
type: boolean
type: object
type: object
x-vynil-category: meta
x-vynil-package: domain-infra
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string type: string
ingress_class:
default: traefik
examples:
- traefik
type: string
erp:
default:
dolibarr:
enable: true
enable: false
examples:
- dolibarr:
enable: true
enable: false
properties:
dolibarr:
default:
enable: true
properties:
enable:
default: true
type: boolean
type: object
enable:
default: false
type: boolean
type: object
x-vynil-category: meta
x-vynil-package: domain-erp
apps: apps:
default: default:
enable: false enable: false
@@ -186,6 +57,104 @@ options:
type: boolean type: boolean
type: object type: object
type: object type: object
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
examples:
- BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
properties:
BlockReadWriteMany:
default: ''
type: string
BlockReadWriteOnce:
default: ''
type: string
FilesystemReadWriteMany:
default: ''
type: string
FilesystemReadWriteOnce:
default: ''
type: string
type: object
auth:
default:
authentik:
enable: true
enable: true
examples:
- authentik:
enable: true
enable: true
properties:
authentik:
default:
enable: true
properties:
enable:
default: true
type: boolean
type: object
enable:
default: true
type: boolean
type: object
x-vynil-category: meta
x-vynil-package: domain-auth
distributions:
default:
core: core
domain: domain
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
infra:
default:
enable: false
traefik:
enable: false
examples:
- enable: false
traefik:
enable: false
properties:
enable:
default: false
type: boolean
traefik:
default:
enable: false
properties:
enable:
default: false
type: boolean
type: object
type: object
x-vynil-category: meta
x-vynil-package: domain-infra
ingress-class:
default: traefik
examples:
- traefik
type: string
devspaces: devspaces:
default: default:
enable: false enable: false
@@ -198,6 +167,66 @@ options:
type: object type: object
x-vynil-category: meta x-vynil-category: meta
x-vynil-package: domain-devspaces x-vynil-package: domain-devspaces
ci:
default:
enable: false
gitea:
enable: true
examples:
- enable: false
gitea:
enable: true
properties:
enable:
default: false
type: boolean
gitea:
default:
enable: true
properties:
enable:
default: true
type: boolean
type: object
type: object
x-vynil-category: meta
x-vynil-package: domain-ci
erp:
default:
dolibarr:
enable: true
enable: false
examples:
- dolibarr:
enable: true
enable: false
properties:
dolibarr:
default:
enable: true
properties:
enable:
default: true
type: boolean
type: object
enable:
default: false
type: boolean
type: object
x-vynil-category: meta
x-vynil-package: domain-erp
monitor:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: meta
x-vynil-package: domain-monitor
backups: backups:
default: default:
enable: false enable: false
@@ -228,35 +257,6 @@ options:
default: backup-settings default: backup-settings
type: string type: string
type: object type: object
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
auth:
default:
authentik:
enable: true
enable: true
examples:
- authentik:
enable: true
enable: true
properties:
authentik:
default:
enable: true
properties:
enable:
default: true
type: boolean
type: object
enable:
default: true
type: boolean
type: object
x-vynil-category: meta
x-vynil-package: domain-auth
dependencies: [] dependencies: []
providers: providers:
kubernetes: null kubernetes: null

View File

@@ -1,9 +1,9 @@
locals { locals {
global = { global = {
"domain" = var.namespace "domain" = var.namespace
"domain_name" = var.domain_name "domain-name" = var.domain-name
"issuer" = var.issuer "issuer" = var.issuer
"ingress_class" = var.ingress_class "ingress-class" = var.ingress-class
"distributions" = var.distributions "distributions" = var.distributions
"backups" = var.backups "backups" = var.backups
"storage-classes"= var.storage-classes "storage-classes"= var.storage-classes
@@ -11,9 +11,9 @@ locals {
annotations = { annotations = {
"vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/meta" = var.component
"vynil.solidite.fr/name" = var.namespace "vynil.solidite.fr/name" = var.namespace
"vynil.solidite.fr/domain" = var.domain_name "vynil.solidite.fr/domain" = var.domain-name
"vynil.solidite.fr/issuer" = var.issuer "vynil.solidite.fr/issuer" = var.issuer
"vynil.solidite.fr/ingress" = var.ingress_class "vynil.solidite.fr/ingress" = var.ingress-class
} }
auth = { for k, v in var.auth : k => v if k!="enable" } auth = { for k, v in var.auth : k => v if k!="enable" }
infra = { for k, v in var.infra : k => v if k!="enable" } infra = { for k, v in var.infra : k => v if k!="enable" }

View File

@@ -19,7 +19,7 @@ resource "authentik_group" "subgroup" {
resource "authentik_application" "prj_app" { resource "authentik_application" "prj_app" {
name = "${var.instance}" name = "${var.instance}"
slug = "${var.component}-${var.instance}" slug = "${var.component}-${var.instance}"
group = var.app_group group = var.app-group
protocol_provider = var.protocol_provider protocol_provider = var.protocol_provider
backchannel_providers = var.backchannel_providers backchannel_providers = var.backchannel_providers
meta_launch_url = format("https://%s", var.dns_name) meta_launch_url = format("https://%s", var.dns_name)

View File

@@ -7,7 +7,7 @@ variable "instance" {
variable "icon" { variable "icon" {
type = string type = string
} }
variable "app_group" { variable "app-group" {
type = string type = string
} }
variable "protocol_provider" { variable "protocol_provider" {

View File

@@ -28,7 +28,7 @@ resource "kubectl_manifest" "prj_ingress_icon" {
namespace: "${var.namespace}" namespace: "${var.namespace}"
labels: ${jsonencode(var.labels)} labels: ${jsonencode(var.labels)}
spec: spec:
ingressClassName: "${var.ingress_class}" ingressClassName: "${var.ingress-class}"
rules: ${jsonencode(local.rules-icons)} rules: ${jsonencode(local.rules-icons)}
tls: tls:
- hosts: ${jsonencode(var.dns_names)} - hosts: ${jsonencode(var.dns_names)}

View File

@@ -13,7 +13,7 @@ variable "domain" {
variable "namespace" { variable "namespace" {
type = string type = string
} }
variable "ingress_class" { variable "ingress-class" {
type = string type = string
} }
variable "labels" { variable "labels" {

View File

@@ -61,7 +61,7 @@ resource "kubectl_manifest" "prj_ingress" {
annotations: annotations:
"traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in concat(["${var.instance}-https"],var.middlewares) : format("%s-%s@kubernetescrd", var.namespace, m)])}" "traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in concat(["${var.instance}-https"],var.middlewares) : format("%s-%s@kubernetescrd", var.namespace, m)])}"
spec: spec:
ingressClassName: "${var.ingress_class}" ingressClassName: "${var.ingress-class}"
rules: ${jsonencode(local.rules)} rules: ${jsonencode(local.rules)}
tls: tls:
- hosts: ${jsonencode(var.dns_names)} - hosts: ${jsonencode(var.dns_names)}

View File

@@ -10,7 +10,7 @@ variable "namespace" {
variable "issuer" { variable "issuer" {
type = string type = string
} }
variable "ingress_class" { variable "ingress-class" {
type = string type = string
} }

View File

@@ -6,21 +6,56 @@ metadata:
name: alertmanager name: alertmanager
description: null description: null
options: options:
sub_domain:
default: alertmanager
examples:
- alertmanager
type: string
issuer: issuer:
default: letsencrypt-prod default: letsencrypt-prod
examples: examples:
- letsencrypt-prod - letsencrypt-prod
type: string type: string
app_group: logLevel:
default: info
examples:
- info
type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
retention:
default: 120h
examples:
- 120h
type: string
app-group:
default: monitor default: monitor
examples: examples:
- monitor - monitor
type: string type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
domain:
default: your-company
examples:
- your-company
type: string
replicas:
default: 1
examples:
- 1
type: integer
listenLocal:
default: false
examples:
- false
type: boolean
sub-domain:
default: alertmanager
examples:
- alertmanager
type: string
images: images:
default: default:
alertmanager: alertmanager:
@@ -60,41 +95,6 @@ options:
type: string type: string
type: object type: object
type: object type: object
logLevel:
default: info
examples:
- info
type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
retention:
default: 120h
examples:
- 120h
type: string
ingress_class:
default: traefik
examples:
- traefik
type: string
listenLocal:
default: false
examples:
- false
type: boolean
domain:
default: your-company
examples:
- your-company
type: string
replicas:
default: 1
examples:
- 1
type: integer
dependencies: dependencies:
- dist: null - dist: null
category: share category: share

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: alertmanager app.kubernetes.io/instance: alertmanager
app.kubernetes.io/version: "56.0.4" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.4 chart: kube-prometheus-stack-56.1.0
release: "alertmanager" release: "alertmanager"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: alertmanager app.kubernetes.io/instance: alertmanager
app.kubernetes.io/version: "56.0.4" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.4 chart: kube-prometheus-stack-56.1.0
release: "alertmanager" release: "alertmanager"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: alertmanager app.kubernetes.io/instance: alertmanager
app.kubernetes.io/version: "56.0.4" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.4 chart: kube-prometheus-stack-56.1.0
release: "alertmanager" release: "alertmanager"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "favicon.ico" icon = "favicon.ico"
@@ -21,7 +21,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = ["forward-${local.app_name}"] middlewares = ["forward-${local.app_name}"]
@@ -35,7 +35,7 @@ module "application" {
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application" source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
protocol_provider = module.forward.provider-id protocol_provider = module.forward.provider-id
@@ -60,7 +60,7 @@ module "forward" {
instance = var.instance instance = var.instance
domain = var.domain domain = var.domain
namespace = var.namespace namespace = var.namespace
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
service = local.service service = local.service

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: alertmanager app.kubernetes.io/instance: alertmanager
app.kubernetes.io/version: "56.0.4" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.4 chart: kube-prometheus-stack-56.1.0
release: "alertmanager" release: "alertmanager"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: alertmanager app.kubernetes.io/instance: alertmanager
app.kubernetes.io/version: "56.0.4" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.4 chart: kube-prometheus-stack-56.1.0
release: "alertmanager" release: "alertmanager"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: alertmanager app.kubernetes.io/instance: alertmanager
app.kubernetes.io/version: "56.0.4" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.4 chart: kube-prometheus-stack-56.1.0
release: "alertmanager" release: "alertmanager"
heritage: "Helm" heritage: "Helm"
automountServiceAccountToken: true automountServiceAccountToken: true

View File

@@ -10,9 +10,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -10,9 +10,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: prometheus-community app.kubernetes.io/instance: prometheus-community
app.kubernetes.io/version: "56.0.3" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.3 chart: kube-prometheus-stack-56.1.0
release: "prometheus-community" release: "prometheus-community"
heritage: "Helm" heritage: "Helm"
data: data:

View File

@@ -6,21 +6,6 @@ metadata:
name: grafana name: grafana
description: null description: null
options: options:
domain:
default: your-company
examples:
- your-company
type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
app_group:
default: monitor
examples:
- monitor
type: string
images: images:
default: default:
busybox: busybox:
@@ -118,45 +103,78 @@ options:
type: string type: string
type: object type: object
type: object type: object
sub_domain: sub-domain:
default: grafana default: grafana
examples: examples:
- grafana - grafana
type: string type: string
volume: domain-name:
default: default: your_company.com
accessMode: ReadWriteOnce
size: 10Gi
examples: examples:
- accessMode: ReadWriteOnce - your_company.com
size: 10Gi
properties:
accessMode:
default: ReadWriteOnce
enum:
- ReadWriteOnce
- ReadOnlyMany
- ReadWriteMany
type: string
size:
default: 10Gi
type: string
type: object
admin_name:
default: grafana_admin
examples:
- grafana_admin
type: string type: string
ingress_class: app-group:
default: traefik default: monitor
examples: examples:
- traefik - monitor
type: string
domain:
default: your-company
examples:
- your-company
type: string type: string
issuer: issuer:
default: letsencrypt-prod default: letsencrypt-prod
examples: examples:
- letsencrypt-prod - letsencrypt-prod
type: string type: string
admin_name:
default: grafana_admin
examples:
- grafana_admin
type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
storage:
default:
volume:
accessMode: ReadWriteOnce
size: 1Gi
type: Filesystem
description: Configure this app storage
examples:
- 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: [] dependencies: []
providers: providers:
kubernetes: true kubernetes: true

View File

@@ -1,5 +1,5 @@
locals { locals {
dns_name = "${var.sub_domain}.${var.domain_name}" dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name] dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "public/img/grafana_icon.svg" icon = "public/img/grafana_icon.svg"
@@ -21,7 +21,7 @@ module "ingress" {
instance = var.instance instance = var.instance
namespace = var.namespace namespace = var.namespace
issuer = var.issuer issuer = var.issuer
ingress_class = var.ingress_class ingress-class = var.ingress-class
labels = local.common-labels labels = local.common-labels
dns_names = local.dns_names dns_names = local.dns_names
middlewares = [] middlewares = []
@@ -35,7 +35,7 @@ module "ingress" {
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application" source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application"
component = var.component component = var.component
instance = var.instance instance = var.instance
app_group = var.app_group app-group = var.app-group
dns_name = local.dns_name dns_name = local.dns_name
icon = local.icon icon = local.icon
sub_groups = ["admin"] sub_groups = ["admin"]

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: kube-state-metrics app.kubernetes.io/instance: kube-state-metrics
app.kubernetes.io/version: "56.0.4" app.kubernetes.io/version: "56.1.0"
app.kubernetes.io/part-of: kube-prometheus-stack app.kubernetes.io/part-of: kube-prometheus-stack
chart: kube-prometheus-stack-56.0.4 chart: kube-prometheus-stack-56.1.0
release: "kube-state-metrics" release: "kube-state-metrics"
heritage: "Helm" heritage: "Helm"
spec: spec:

View File

@@ -0,0 +1,82 @@
---
apiVersion: vinyl.solidite.fr/v1beta1
kind: Component
category: monitor
metadata:
name: loki-dashboard
description: null
options:
ingress-class:
default: traefik
examples:
- traefik
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
domain:
default: your-company
examples:
- your-company
type: string
images:
default:
operator:
pullPolicy: IfNotPresent
registry: docker.io
repository: to-be/defined
tag: v1.0.0
examples:
- operator:
pullPolicy: IfNotPresent
registry: docker.io
repository: to-be/defined
tag: v1.0.0
properties:
operator:
default:
pullPolicy: IfNotPresent
registry: docker.io
repository: to-be/defined
tag: v1.0.0
properties:
pullPolicy:
default: IfNotPresent
enum:
- Always
- Never
- IfNotPresent
type: string
registry:
default: docker.io
type: string
repository:
default: to-be/defined
type: string
tag:
default: v1.0.0
type: string
type: object
type: object
sub-domain:
default: to-be-set
examples:
- to-be-set
type: string
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
dependencies: []
providers:
kubernetes: true
authentik: true
kubectl: true
postgresql: null
restapi: null
http: null
gitea: null
tfaddtype: null

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More