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

View File

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

View File

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

View File

@@ -6,94 +6,6 @@ metadata:
name: dbgate
description: null
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:
default: []
examples:
@@ -123,59 +35,6 @@ options:
type: string
type: object
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:
default:
volume:
@@ -213,6 +72,147 @@ options:
type: string
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:
- dist: null
category: core

View File

@@ -1,5 +1,5 @@
locals {
dns_name = "${var.sub_domain}.${var.domain_name}"
dns_name = "${var.sub-domain}.${var.domain-name}"
dns_names = [local.dns_name]
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
icon = "logo192.png"
@@ -34,7 +34,7 @@ module "ingress" {
instance = var.instance
namespace = var.namespace
issuer = var.issuer
ingress_class = var.ingress_class
ingress-class = var.ingress-class
labels = local.common-labels
dns_names = local.dns_names
middlewares = []
@@ -48,7 +48,7 @@ module "application" {
source = "/dist/modules/application"
component = var.component
instance = var.instance
app_group = var.app_group
app-group = var.app-group
dns_name = local.dns_name
icon = local.icon
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" {
name = "${var.instance}"
slug = "${var.component}-${var.instance}"
group = var.app_group
group = var.app-group
protocol_provider = authentik_provider_saml.dolibarr.id
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_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")
}
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_MODULES: "modSociete,modBlockedLog,modSamlConnector,modLdap"
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_VERSION: "3"
DOLI_LDAP_SERVERTYPE: "openldap"

View File

@@ -6,203 +6,23 @@ metadata:
name: dolibarr
description: null
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:
default:
exporter:
enabled: true
image: quay.io/opstree/redis-exporter:v1.44.0
image: quay.io/opstree/redis:v7.0.12
storage: 2Gi
examples:
- exporter:
enabled: true
image: quay.io/opstree/redis-exporter:v1.44.0
image: quay.io/opstree/redis:v7.0.12
storage: 2Gi
properties:
exporter:
default:
enabled: true
image: quay.io/opstree/redis-exporter:v1.44.0
properties:
enabled:
default: true
type: boolean
image:
default: quay.io/opstree/redis-exporter:v1.44.0
type: string
type: object
image:
default: quay.io/opstree/redis:v7.0.12
type: string
storage:
default: 2Gi
type: string
type: object
app_group:
default: ''
examples:
- ''
type: string
backups:
default:
enable: false
@@ -309,63 +129,6 @@ options:
default: false
type: boolean
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:
default:
avg-cpu: 50
@@ -386,6 +149,335 @@ options:
default: 1
type: integer
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:
- dist: null
category: share

View File

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

View File

@@ -5,7 +5,7 @@ data "kubernetes_secret_v1" "authentik" {
}
}
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-user-dn = format("ou=users,%s", local.base-dn)
authentik_url = "http://authentik.${var.domain}-auth.svc"

View File

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

View File

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

View File

@@ -47,7 +47,7 @@ resource "authentik_provider_saml" "dolibarr" {
name = "dolibarr-${var.instance}-saml"
authentication_flow = data.authentik_flow.default-authentication-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
name_id_mapping = data.authentik_property_mapping_saml.saml_name.id
signing_kp = data.authentik_certificate_key_pair.generated.id

View File

@@ -9,31 +9,16 @@ metadata:
A painless self-hosted Git service.
Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.
options:
disable-registration:
default: true
postgres:
default:
replicas: 1
examples:
- true
type: boolean
theme:
default: gitea-modern
examples:
- gitea-modern
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
- replicas: 1
properties:
replicas:
default: 1
type: integer
type: object
storage:
default:
postgres:
@@ -95,222 +80,6 @@ options:
type: string
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:
default:
exporter:
@@ -328,6 +97,16 @@ options:
type: boolean
type: object
type: object
replicas:
default: 1
examples:
- 1
type: integer
theme:
default: gitea-modern
examples:
- gitea-modern
type: string
images:
default:
gitea:
@@ -459,11 +238,232 @@ options:
type: string
type: object
type: object
ssh-sub_domain:
ssh-sub-domain:
default: git
examples:
- git
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:
- dist: null
category: share

View File

@@ -43,15 +43,15 @@ ROOT=/data/git/gitea-repositories
EOF
server = <<-EOF
APP_DATA_PATH=/data
DOMAIN=${var.sub_domain}.${var.domain_name}
DOMAIN=${var.sub-domain}.${var.domain-name}
ENABLE_PPROF=false
HTTP_PORT=3000
PROTOCOL=http
ROOT_URL=https://${var.sub_domain}.${var.domain_name}
SSH_DOMAIN=${var.sub_domain}.${var.domain_name}
ROOT_URL=https://${var.sub-domain}.${var.domain-name}
SSH_DOMAIN=${var.sub-domain}.${var.domain-name}
SSH_LISTEN_PORT=2222
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
EOF
ui = <<-EOF

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -22,7 +22,7 @@ resource "gitea_oauth2_app" "prj" {
name = var.component
confidential_client = true
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
description: null
options:
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
storage-agent:
default:
size: 10Gi
@@ -26,26 +31,21 @@ options:
default: 'false'
type: string
type: object
admin-users:
default: woodpecker,admin
timeouts:
default:
default: '60'
max: '120'
examples:
- woodpecker,admin
type: string
domain:
default: your-company
examples:
- your-company
type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
app_group:
default: dev
examples:
- dev
type: string
- default: '60'
max: '120'
properties:
default:
default: '60'
type: string
max:
default: '120'
type: string
type: object
images:
default:
agent:
@@ -143,6 +143,26 @@ options:
type: string
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:
default:
accessMode: ReadWriteOnce
@@ -162,35 +182,15 @@ options:
default: 10Gi
type: string
type: object
ingress_class:
ingress-class:
default: traefik
examples:
- traefik
type: string
issuer:
default: letsencrypt-prod
domain-name:
default: your_company.com
examples:
- letsencrypt-prod
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
- your_company.com
type: string
dependencies:
- dist: null

View File

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

View File

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

View File

@@ -6,6 +6,38 @@ metadata:
name: domain-apps
description: null
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:
default:
enable: false
@@ -36,48 +68,16 @@ options:
default: backup-settings
type: string
type: object
ingress-class:
default: traefik
examples:
- traefik
type: string
domain:
default: your-company
examples:
- your-company
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:
default:
BlockReadWriteMany: ''
@@ -103,10 +103,10 @@ options:
default: ''
type: string
type: object
ingress_class:
default: traefik
issuer:
default: letsencrypt-prod
examples:
- traefik
- letsencrypt-prod
type: string
dependencies: []
providers:

View File

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

View File

@@ -6,121 +6,6 @@ metadata:
name: domain-auth
description: null
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:
default:
apps: []
@@ -156,6 +41,36 @@ options:
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
ingress-class:
default: traefik
examples:
- traefik
type: string
authentik:
default:
enable: true
@@ -166,36 +81,11 @@ options:
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
domain:
default: your-company
examples:
- your-company
type: string
authentik-forward:
default:
enable: false
examples:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
clients:
default:
apps: []
@@ -231,6 +121,116 @@ options:
default: false
type: boolean
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: []
providers:
kubernetes: true

View File

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

View File

@@ -6,6 +6,32 @@ metadata:
name: domain-ci
description: null
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:
default:
enable: false
@@ -36,21 +62,40 @@ options:
default: backup-settings
type: string
type: object
domain:
default: your-company
gitea:
default:
enable: true
examples:
- your-company
type: string
ingress_class:
default: traefik
- enable: true
properties:
enable:
default: true
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: gitea
woodpecker:
default:
enable: false
examples:
- traefik
type: string
domain_name:
- enable: false
properties:
enable:
default: false
type: boolean
type: object
x-vynil-category: apps
x-vynil-package: woodpecker
domain-name:
default: your_company.com
examples:
- your_company.com
type: string
ingress-class:
default: traefik
examples:
- traefik
type: string
storage-classes:
default:
BlockReadWriteMany: ''
@@ -76,51 +121,6 @@ options:
default: ''
type: string
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: []
providers:
kubernetes: true

View File

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

View File

@@ -6,21 +6,57 @@ metadata:
name: domain-devspaces
description: null
options:
distributions:
default:
core: core
domain: domain
domain:
default: your-company
examples:
- core: core
domain: domain
properties:
core:
default: core
type: string
domain:
default: domain
type: string
type: object
- your-company
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
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
backups:
default:
enable: false
@@ -51,7 +87,17 @@ options:
default: backup-settings
type: string
type: object
external-redis:
ingress-class:
default: traefik
examples:
- traefik
type: string
stations-sub-domain:
default: code
examples:
- code
type: string
external-marias:
default: []
examples:
- []
@@ -63,24 +109,45 @@ options:
namespace:
default: ''
type: string
type: object
type: array
stations:
default: []
examples:
- []
items:
properties:
name:
secret:
properties:
key:
default: ''
type: string
name:
default: ''
type: string
type: object
username:
default: ''
type: string
organisations:
default: []
items:
type: string
type: array
type: object
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:
default: []
examples:
@@ -110,16 +177,129 @@ options:
type: string
type: object
type: array
app_group:
default: dev
external-redis:
default: []
examples:
- dev
type: string
haveGitea:
default: false
- []
items:
properties:
name:
default: ''
type: string
namespace:
default: ''
type: string
type: object
type: array
external-mongos:
default: []
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:
default:
dbgate:
@@ -191,191 +371,11 @@ options:
type: boolean
type: object
type: object
external-mongos:
default: []
haveGitea:
default: false
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
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
- false
type: boolean
dependencies: []
providers:
kubernetes: true

View File

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

View File

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

View File

@@ -6,6 +6,63 @@ metadata:
name: domain-erp
description: null
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:
default:
enable: false
@@ -36,78 +93,21 @@ options:
default: backup-settings
type: string
type: object
ingress_class:
default: traefik
domain-name:
default: your_company.com
examples:
- traefik
- your_company.com
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
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:
default: your-company
examples:
- your-company
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: []
providers:
kubernetes: true

View File

@@ -2,17 +2,17 @@ locals {
annotations = {
"vynil.solidite.fr/meta" = "domain-ci"
"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/ingress" = var.ingress_class
"vynil.solidite.fr/ingress" = var.ingress-class
}
global = {
"domain" = var.namespace
"domain_name" = "admin.${var.domain_name}"
"domain-name" = "admin.${var.domain-name}"
"issuer" = var.issuer
"ingress_class" = var.ingress_class
"ingress-class" = var.ingress-class
"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" }
dns = { for k, v in var.dns : k => v if k!="enable" }

View File

@@ -6,6 +6,129 @@ metadata:
name: domain-infra
description: null
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:
default:
enable: false
@@ -36,134 +159,11 @@ options:
default: backup-settings
type: string
type: object
api:
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:
ingress-class:
default: traefik
examples:
- traefik
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: []
providers:
kubernetes: true

View File

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

View File

@@ -6,11 +6,76 @@ metadata:
name: domain-mail
description: null
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
examples:
- traefik
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:
default:
enable: false
@@ -41,46 +106,6 @@ options:
default: backup-settings
type: string
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: []
providers:
kubernetes: true
@@ -89,4 +114,5 @@ providers:
postgresql: null
restapi: null
http: null
gitea: null
tfaddtype: null

View File

@@ -2,17 +2,17 @@ locals {
annotations = {
"vynil.solidite.fr/meta" = "domain-monitor"
"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/ingress" = var.ingress_class
"vynil.solidite.fr/ingress" = var.ingress-class
}
global = {
"domain" = var.namespace
"domain_name" = "monitor.${var.domain_name}"
"domain-name" = "monitor.${var.domain-name}"
"issuer" = var.issuer
"ingress_class" = var.ingress_class
"ingress-class" = var.ingress-class
"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" }
prometheus = { for k, v in var.prometheus : k => v if k!="enable" }

View File

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

View File

@@ -6,140 +6,11 @@ metadata:
name: domain
description: null
options:
storage-classes:
default:
BlockReadWriteMany: ''
BlockReadWriteOnce: ''
FilesystemReadWriteMany: ''
FilesystemReadWriteOnce: ''
domain-name:
default: your_company.com
examples:
- BlockReadWriteMany: ''
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
- your_company.com
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:
default:
enable: false
@@ -186,6 +57,104 @@ options:
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
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:
default:
enable: false
@@ -198,6 +167,66 @@ options:
type: object
x-vynil-category: meta
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:
default:
enable: false
@@ -228,35 +257,6 @@ options:
default: backup-settings
type: string
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: []
providers:
kubernetes: null

View File

@@ -1,9 +1,9 @@
locals {
global = {
"domain" = var.namespace
"domain_name" = var.domain_name
"domain-name" = var.domain-name
"issuer" = var.issuer
"ingress_class" = var.ingress_class
"ingress-class" = var.ingress-class
"distributions" = var.distributions
"backups" = var.backups
"storage-classes"= var.storage-classes
@@ -11,9 +11,9 @@ locals {
annotations = {
"vynil.solidite.fr/meta" = var.component
"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/ingress" = var.ingress_class
"vynil.solidite.fr/ingress" = var.ingress-class
}
auth = { for k, v in var.auth : 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" {
name = "${var.instance}"
slug = "${var.component}-${var.instance}"
group = var.app_group
group = var.app-group
protocol_provider = var.protocol_provider
backchannel_providers = var.backchannel_providers
meta_launch_url = format("https://%s", var.dns_name)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -6,21 +6,56 @@ metadata:
name: alertmanager
description: null
options:
sub_domain:
default: alertmanager
examples:
- alertmanager
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
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
examples:
- monitor
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:
default:
alertmanager:
@@ -60,41 +95,6 @@ options:
type: string
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:
- dist: null
category: share

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.4
chart: kube-prometheus-stack-56.1.0
release: "alertmanager"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.4
chart: kube-prometheus-stack-56.1.0
release: "alertmanager"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.4
chart: kube-prometheus-stack-56.1.0
release: "alertmanager"
heritage: "Helm"
spec:

View File

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

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.4
chart: kube-prometheus-stack-56.1.0
release: "alertmanager"
heritage: "Helm"
data:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.4
chart: kube-prometheus-stack-56.1.0
release: "alertmanager"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.4
chart: kube-prometheus-stack-56.1.0
release: "alertmanager"
heritage: "Helm"
automountServiceAccountToken: true

View File

@@ -10,9 +10,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -10,9 +10,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
spec:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -12,9 +12,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.3
chart: kube-prometheus-stack-56.1.0
release: "prometheus-community"
heritage: "Helm"
data:

View File

@@ -6,21 +6,6 @@ metadata:
name: grafana
description: null
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:
default:
busybox:
@@ -118,45 +103,78 @@ options:
type: string
type: object
type: object
sub_domain:
sub-domain:
default: grafana
examples:
- grafana
type: string
volume:
default:
accessMode: ReadWriteOnce
size: 10Gi
domain-name:
default: your_company.com
examples:
- accessMode: ReadWriteOnce
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
- your_company.com
type: string
ingress_class:
default: traefik
app-group:
default: monitor
examples:
- traefik
- monitor
type: string
domain:
default: your-company
examples:
- your-company
type: string
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
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: []
providers:
kubernetes: true

View File

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

View File

@@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/managed-by: Helm
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
chart: kube-prometheus-stack-56.0.4
chart: kube-prometheus-stack-56.1.0
release: "kube-state-metrics"
heritage: "Helm"
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