fix
This commit is contained in:
@@ -61,6 +61,7 @@ resource "authentik_provider_proxy" "prj_forward" {
|
|||||||
resource "authentik_application" "prj_application" {
|
resource "authentik_application" "prj_application" {
|
||||||
name = local.app-name
|
name = local.app-name
|
||||||
slug = "${var.component}-${var.instance}"
|
slug = "${var.component}-${var.instance}"
|
||||||
|
group = var.app-group
|
||||||
protocol_provider = authentik_provider_proxy.prj_forward.id
|
protocol_provider = authentik_provider_proxy.prj_forward.id
|
||||||
meta_launch_url = local.external-url
|
meta_launch_url = local.external-url
|
||||||
meta_icon = format("%s/%s", local.external-url, local.app-icon)
|
meta_icon = format("%s/%s", local.external-url, local.app-icon)
|
||||||
|
|||||||
@@ -6,31 +6,21 @@ metadata:
|
|||||||
name: code-server
|
name: code-server
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
sub-domain:
|
app-group:
|
||||||
default: code
|
default: dev
|
||||||
examples:
|
examples:
|
||||||
- code
|
- dev
|
||||||
type: string
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
type: string
|
||||||
timezone:
|
timezone:
|
||||||
default: Europe/Paris
|
default: Europe/Paris
|
||||||
examples:
|
examples:
|
||||||
- Europe/Paris
|
- Europe/Paris
|
||||||
type: string
|
type: string
|
||||||
domain-name:
|
no-editor:
|
||||||
default: your_company.com
|
default: false
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- false
|
||||||
type: string
|
type: boolean
|
||||||
domain:
|
|
||||||
default: your-company
|
|
||||||
examples:
|
|
||||||
- your-company
|
|
||||||
type: string
|
|
||||||
admin:
|
admin:
|
||||||
default:
|
default:
|
||||||
cluster: false
|
cluster: false
|
||||||
@@ -46,11 +36,48 @@ options:
|
|||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
no-editor:
|
domain-name:
|
||||||
default: false
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
- false
|
- your_company.com
|
||||||
type: boolean
|
type: string
|
||||||
|
storage:
|
||||||
|
default:
|
||||||
|
accessMode: ReadWriteOnce
|
||||||
|
size: 20Gi
|
||||||
|
type: Filesystem
|
||||||
|
examples:
|
||||||
|
- 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
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
|
type: string
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
images:
|
images:
|
||||||
default:
|
default:
|
||||||
codeserver:
|
codeserver:
|
||||||
@@ -90,38 +117,16 @@ options:
|
|||||||
type: number
|
type: number
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
storage:
|
|
||||||
default:
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 20Gi
|
|
||||||
type: Filesystem
|
|
||||||
examples:
|
|
||||||
- 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
|
|
||||||
issuer:
|
issuer:
|
||||||
default: letsencrypt-prod
|
default: letsencrypt-prod
|
||||||
examples:
|
examples:
|
||||||
- letsencrypt-prod
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
|
sub-domain:
|
||||||
|
default: code
|
||||||
|
examples:
|
||||||
|
- code
|
||||||
|
type: string
|
||||||
dependencies:
|
dependencies:
|
||||||
- dist: null
|
- dist: null
|
||||||
category: share
|
category: share
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
locals {
|
locals {
|
||||||
|
app-name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
|
||||||
|
main-group = format("app-%s", local.app-name)
|
||||||
sorted-group-names = reverse(distinct(sort([
|
sorted-group-names = reverse(distinct(sort([
|
||||||
for grp in var.user-groups: grp.name
|
for grp in var.user-groups: grp.name
|
||||||
])))
|
])))
|
||||||
@@ -17,6 +19,7 @@ data "authentik_group" "vynil-admin" {
|
|||||||
resource "authentik_group" "groups" {
|
resource "authentik_group" "groups" {
|
||||||
count = length(local.sorted-groups)
|
count = length(local.sorted-groups)
|
||||||
name = local.sorted-groups[count.index].name
|
name = local.sorted-groups[count.index].name
|
||||||
|
attributes = jsonencode({"${local.app-name}" = true})
|
||||||
}
|
}
|
||||||
data "authentik_group" "readed_groups" {
|
data "authentik_group" "readed_groups" {
|
||||||
depends_on = [ authentik_group.groups ]
|
depends_on = [ authentik_group.groups ]
|
||||||
@@ -32,25 +35,25 @@ resource "authentik_application" "dolibarr_application_ldap" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
resource "authentik_policy_binding" "dolibarr_ldap_access_users" {
|
resource "authentik_policy_binding" "dolibarr_ldap_access_users" {
|
||||||
count = length(local.sorted-groups)
|
|
||||||
target = authentik_application.dolibarr_application_ldap.uuid
|
target = authentik_application.dolibarr_application_ldap.uuid
|
||||||
group = authentik_group.groups[count.index].id
|
policy = authentik_policy_expression.policy.id
|
||||||
order = count.index
|
order = 0
|
||||||
}
|
}
|
||||||
resource "authentik_policy_binding" "dolibarr_ldap_access_ldap" {
|
resource "authentik_policy_binding" "dolibarr_ldap_access_ldap" {
|
||||||
target = authentik_application.dolibarr_application_ldap.uuid
|
target = authentik_application.dolibarr_application_ldap.uuid
|
||||||
group = authentik_group.dolibarr_ldapsearch.id
|
group = authentik_group.dolibarr_ldapsearch.id
|
||||||
order = length(local.sorted-groups)+1
|
order = 1
|
||||||
}
|
}
|
||||||
resource "authentik_policy_binding" "dolibarr_ldap_access_vynil" {
|
resource "authentik_policy_binding" "dolibarr_ldap_access_vynil" {
|
||||||
target = authentik_application.dolibarr_application_ldap.uuid
|
target = authentik_application.dolibarr_application_ldap.uuid
|
||||||
group = data.authentik_group.vynil-admin.id
|
group = data.authentik_group.vynil-admin.id
|
||||||
order = length(local.sorted-groups)+2
|
order = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "authentik_application" "dolibarr_application_saml" {
|
resource "authentik_application" "dolibarr_application_saml" {
|
||||||
name = "${var.instance}"
|
name = "${var.instance}"
|
||||||
slug = "${var.component}-${var.instance}"
|
slug = "${var.component}-${var.instance}"
|
||||||
|
group = var.app-group
|
||||||
protocol_provider = authentik_provider_saml.dolibarr.id
|
protocol_provider = authentik_provider_saml.dolibarr.id
|
||||||
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
||||||
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "theme/dolibarr_256x256_color.png")
|
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "theme/dolibarr_256x256_color.png")
|
||||||
|
|||||||
@@ -6,33 +6,6 @@ metadata:
|
|||||||
name: dolibarr
|
name: dolibarr
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
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
|
|
||||||
parameters:
|
parameters:
|
||||||
default:
|
default:
|
||||||
MAIN_LANG_DEFAULT: auto
|
MAIN_LANG_DEFAULT: auto
|
||||||
@@ -43,89 +16,10 @@ options:
|
|||||||
default: auto
|
default: auto
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
domain-name:
|
app-group:
|
||||||
default: your_company.com
|
default: ''
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- ''
|
||||||
type: string
|
|
||||||
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
|
|
||||||
modules:
|
|
||||||
default:
|
|
||||||
- societe
|
|
||||||
examples:
|
|
||||||
- - societe
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
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
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
type: string
|
||||||
backups:
|
backups:
|
||||||
default:
|
default:
|
||||||
@@ -233,6 +127,36 @@ options:
|
|||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
|
sub-domain:
|
||||||
|
default: erp
|
||||||
|
examples:
|
||||||
|
- erp
|
||||||
|
type: string
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
|
type: string
|
||||||
|
hpa:
|
||||||
|
default:
|
||||||
|
avg-cpu: 50
|
||||||
|
max-replicas: 5
|
||||||
|
min-replicas: 1
|
||||||
|
examples:
|
||||||
|
- avg-cpu: 50
|
||||||
|
max-replicas: 5
|
||||||
|
min-replicas: 1
|
||||||
|
properties:
|
||||||
|
avg-cpu:
|
||||||
|
default: 50
|
||||||
|
type: integer
|
||||||
|
max-replicas:
|
||||||
|
default: 5
|
||||||
|
type: integer
|
||||||
|
min-replicas:
|
||||||
|
default: 1
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
log-level:
|
log-level:
|
||||||
default: 5
|
default: 5
|
||||||
examples:
|
examples:
|
||||||
@@ -271,25 +195,46 @@ options:
|
|||||||
default: 2Gi
|
default: 2Gi
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
hpa:
|
resources:
|
||||||
default:
|
default:
|
||||||
avg-cpu: 50
|
limits:
|
||||||
max-replicas: 5
|
cpu: 200m
|
||||||
min-replicas: 1
|
memory: 256Mi
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 100Mi
|
||||||
examples:
|
examples:
|
||||||
- avg-cpu: 50
|
- limits:
|
||||||
max-replicas: 5
|
cpu: 200m
|
||||||
min-replicas: 1
|
memory: 256Mi
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 100Mi
|
||||||
properties:
|
properties:
|
||||||
avg-cpu:
|
limits:
|
||||||
default: 50
|
default:
|
||||||
type: integer
|
cpu: 200m
|
||||||
max-replicas:
|
memory: 256Mi
|
||||||
default: 5
|
properties:
|
||||||
type: integer
|
cpu:
|
||||||
min-replicas:
|
default: 200m
|
||||||
default: 1
|
type: string
|
||||||
type: integer
|
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
|
type: object
|
||||||
postgres:
|
postgres:
|
||||||
default:
|
default:
|
||||||
@@ -311,6 +256,46 @@ options:
|
|||||||
default: '14'
|
default: '14'
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
modules:
|
||||||
|
default:
|
||||||
|
- societe
|
||||||
|
examples:
|
||||||
|
- - societe
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
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
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
|
type: string
|
||||||
images:
|
images:
|
||||||
default:
|
default:
|
||||||
dolibarr:
|
dolibarr:
|
||||||
@@ -376,11 +361,31 @@ options:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
domain:
|
issuer:
|
||||||
default: your-company
|
default: letsencrypt-prod
|
||||||
examples:
|
examples:
|
||||||
- your-company
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
|
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
|
||||||
dependencies:
|
dependencies:
|
||||||
- dist: null
|
- dist: null
|
||||||
category: share
|
category: share
|
||||||
|
|||||||
@@ -9,21 +9,21 @@ metadata:
|
|||||||
A painless self-hosted Git service.
|
A painless self-hosted Git service.
|
||||||
Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.
|
Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.
|
||||||
options:
|
options:
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
domain-name:
|
domain-name:
|
||||||
default: your_company.com
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- your_company.com
|
||||||
type: string
|
type: string
|
||||||
release:
|
ingress-class:
|
||||||
default: 8.3.0
|
default: traefik
|
||||||
examples:
|
examples:
|
||||||
- 8.3.0
|
- traefik
|
||||||
type: string
|
type: string
|
||||||
|
ssh-port:
|
||||||
|
default: 2222
|
||||||
|
examples:
|
||||||
|
- 2222
|
||||||
|
type: integer
|
||||||
webhook:
|
webhook:
|
||||||
default:
|
default:
|
||||||
allowed-hosts: private
|
allowed-hosts: private
|
||||||
@@ -59,60 +59,25 @@ options:
|
|||||||
default: '14'
|
default: '14'
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
sub-domain:
|
issuer:
|
||||||
default: git
|
default: letsencrypt-prod
|
||||||
examples:
|
examples:
|
||||||
- git
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
replicas:
|
|
||||||
default: 1
|
|
||||||
examples:
|
|
||||||
- 1
|
|
||||||
type: integer
|
|
||||||
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
|
|
||||||
timezone:
|
timezone:
|
||||||
default: Europe/Paris
|
default: Europe/Paris
|
||||||
examples:
|
examples:
|
||||||
- Europe/Paris
|
- Europe/Paris
|
||||||
type: string
|
type: string
|
||||||
ssh-port:
|
|
||||||
default: 2222
|
|
||||||
examples:
|
|
||||||
- 2222
|
|
||||||
type: integer
|
|
||||||
domain:
|
domain:
|
||||||
default: your-company
|
default: your-company
|
||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
default-branch:
|
sub-domain:
|
||||||
default: main
|
default: git
|
||||||
examples:
|
examples:
|
||||||
- main
|
- git
|
||||||
type: string
|
|
||||||
theme:
|
|
||||||
default: gitea-modern
|
|
||||||
examples:
|
|
||||||
- gitea-modern
|
|
||||||
type: string
|
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
type: string
|
||||||
push-create:
|
push-create:
|
||||||
default:
|
default:
|
||||||
@@ -134,14 +99,19 @@ options:
|
|||||||
default: 'true'
|
default: 'true'
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
volume:
|
admin:
|
||||||
default:
|
default:
|
||||||
size: 10Gi
|
email: git-admin@git.your_company.com
|
||||||
|
name: gitea_admin
|
||||||
examples:
|
examples:
|
||||||
- size: 10Gi
|
- email: git-admin@git.your_company.com
|
||||||
|
name: gitea_admin
|
||||||
properties:
|
properties:
|
||||||
size:
|
email:
|
||||||
default: 10Gi
|
default: git-admin@git.your_company.com
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
default: gitea_admin
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
images:
|
images:
|
||||||
@@ -207,11 +177,31 @@ options:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
disable-registration:
|
app-group:
|
||||||
default: true
|
default: dev
|
||||||
examples:
|
examples:
|
||||||
- true
|
- dev
|
||||||
type: boolean
|
type: string
|
||||||
|
theme:
|
||||||
|
default: gitea-modern
|
||||||
|
examples:
|
||||||
|
- gitea-modern
|
||||||
|
type: string
|
||||||
|
volume:
|
||||||
|
default:
|
||||||
|
size: 10Gi
|
||||||
|
examples:
|
||||||
|
- size: 10Gi
|
||||||
|
properties:
|
||||||
|
size:
|
||||||
|
default: 10Gi
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
release:
|
||||||
|
default: 8.3.0
|
||||||
|
examples:
|
||||||
|
- 8.3.0
|
||||||
|
type: string
|
||||||
load-balancer:
|
load-balancer:
|
||||||
default:
|
default:
|
||||||
ip: ''
|
ip: ''
|
||||||
@@ -222,6 +212,16 @@ options:
|
|||||||
default: ''
|
default: ''
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
disable-registration:
|
||||||
|
default: true
|
||||||
|
examples:
|
||||||
|
- true
|
||||||
|
type: boolean
|
||||||
|
default-branch:
|
||||||
|
default: main
|
||||||
|
examples:
|
||||||
|
- main
|
||||||
|
type: string
|
||||||
backups:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -328,6 +328,11 @@ options:
|
|||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
|
replicas:
|
||||||
|
default: 1
|
||||||
|
examples:
|
||||||
|
- 1
|
||||||
|
type: integer
|
||||||
dependencies:
|
dependencies:
|
||||||
- dist: null
|
- dist: null
|
||||||
category: share
|
category: share
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ resource "authentik_provider_ldap" "gitea_provider_ldap" {
|
|||||||
resource "authentik_application" "gitea_application" {
|
resource "authentik_application" "gitea_application" {
|
||||||
name = "${var.instance}"
|
name = "${var.instance}"
|
||||||
slug = "${var.component}-${var.instance}-ldap"
|
slug = "${var.component}-${var.instance}-ldap"
|
||||||
|
group = var.app-group
|
||||||
protocol_provider = authentik_provider_ldap.gitea_provider_ldap.id
|
protocol_provider = authentik_provider_ldap.gitea_provider_ldap.id
|
||||||
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
||||||
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "assets/img/logo.svg")
|
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "assets/img/logo.svg")
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ resource "authentik_group" "groups" {
|
|||||||
resource "authentik_application" "prj_app" {
|
resource "authentik_application" "prj_app" {
|
||||||
name = "${var.instance}"
|
name = "${var.instance}"
|
||||||
slug = "${var.component}-${var.instance}"
|
slug = "${var.component}-${var.instance}"
|
||||||
|
group = var.app-group
|
||||||
protocol_provider = authentik_provider_oauth2.oauth2.id
|
protocol_provider = authentik_provider_oauth2.oauth2.id
|
||||||
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
||||||
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "apps/theming/favicon")
|
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "apps/theming/favicon")
|
||||||
|
|||||||
@@ -96,117 +96,21 @@ options:
|
|||||||
default: true
|
default: true
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
openid-name:
|
domain-name:
|
||||||
default: vynil
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
- vynil
|
- your_company.com
|
||||||
type: string
|
type: string
|
||||||
backups:
|
domain:
|
||||||
default:
|
default: your-company
|
||||||
enable: false
|
|
||||||
endpoint: ''
|
|
||||||
key-id-key: s3-id
|
|
||||||
restic-key: bck-password
|
|
||||||
retention:
|
|
||||||
db: 30d
|
|
||||||
keepDaily: 14
|
|
||||||
keepMonthly: 12
|
|
||||||
keepWeekly: 6
|
|
||||||
keepYearly: 12
|
|
||||||
schedule:
|
|
||||||
backup: 30 3 * * *
|
|
||||||
check: 30 5 * * 1
|
|
||||||
db: 30 3 * * *
|
|
||||||
prune: 30 1 * * 0
|
|
||||||
secret-key: s3-secret
|
|
||||||
secret-name: backup-settings
|
|
||||||
use-barman: false
|
|
||||||
examples:
|
examples:
|
||||||
- enable: false
|
- your-company
|
||||||
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
|
type: string
|
||||||
key-id-key:
|
sub-domain:
|
||||||
default: s3-id
|
default: files
|
||||||
|
examples:
|
||||||
|
- files
|
||||||
type: string
|
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
|
|
||||||
images:
|
images:
|
||||||
default:
|
default:
|
||||||
collabora:
|
collabora:
|
||||||
@@ -370,30 +274,140 @@ options:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
hpa:
|
storage:
|
||||||
default:
|
default:
|
||||||
avg-cpu: 50
|
accessMode: ReadWriteOnce
|
||||||
max-replicas: 5
|
size: 10Gi
|
||||||
min-replicas: 1
|
|
||||||
examples:
|
examples:
|
||||||
- avg-cpu: 50
|
- accessMode: ReadWriteOnce
|
||||||
max-replicas: 5
|
size: 10Gi
|
||||||
min-replicas: 1
|
|
||||||
properties:
|
properties:
|
||||||
avg-cpu:
|
accessMode:
|
||||||
default: 50
|
default: ReadWriteOnce
|
||||||
|
enum:
|
||||||
|
- ReadWriteOnce
|
||||||
|
- ReadOnlyMany
|
||||||
|
- ReadWriteMany
|
||||||
|
type: string
|
||||||
|
size:
|
||||||
|
default: 10Gi
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
app-group:
|
||||||
|
default: ''
|
||||||
|
examples:
|
||||||
|
- ''
|
||||||
|
type: string
|
||||||
|
backups:
|
||||||
|
default:
|
||||||
|
enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
restic-key: bck-password
|
||||||
|
retention:
|
||||||
|
db: 30d
|
||||||
|
keepDaily: 14
|
||||||
|
keepMonthly: 12
|
||||||
|
keepWeekly: 6
|
||||||
|
keepYearly: 12
|
||||||
|
schedule:
|
||||||
|
backup: 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
|
type: integer
|
||||||
max-replicas:
|
keepMonthly:
|
||||||
default: 5
|
default: 12
|
||||||
type: integer
|
type: integer
|
||||||
min-replicas:
|
keepWeekly:
|
||||||
default: 1
|
default: 6
|
||||||
|
type: integer
|
||||||
|
keepYearly:
|
||||||
|
default: 12
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
domain-name:
|
schedule:
|
||||||
default: your_company.com
|
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:
|
examples:
|
||||||
- your_company.com
|
- vynil
|
||||||
type: string
|
type: string
|
||||||
redis:
|
redis:
|
||||||
default:
|
default:
|
||||||
@@ -433,21 +447,36 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- traefik
|
- traefik
|
||||||
type: string
|
type: string
|
||||||
sub-domain:
|
hpa:
|
||||||
default: files
|
default:
|
||||||
|
avg-cpu: 50
|
||||||
|
max-replicas: 5
|
||||||
|
min-replicas: 1
|
||||||
examples:
|
examples:
|
||||||
- files
|
- avg-cpu: 50
|
||||||
type: string
|
max-replicas: 5
|
||||||
domain:
|
min-replicas: 1
|
||||||
default: your-company
|
properties:
|
||||||
|
avg-cpu:
|
||||||
|
default: 50
|
||||||
|
type: integer
|
||||||
|
max-replicas:
|
||||||
|
default: 5
|
||||||
|
type: integer
|
||||||
|
min-replicas:
|
||||||
|
default: 1
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
|
admin:
|
||||||
|
default:
|
||||||
|
name: nextcloud_admin
|
||||||
examples:
|
examples:
|
||||||
- your-company
|
- name: nextcloud_admin
|
||||||
type: string
|
properties:
|
||||||
issuer:
|
name:
|
||||||
default: letsencrypt-prod
|
default: nextcloud_admin
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
type: string
|
||||||
|
type: object
|
||||||
postgres:
|
postgres:
|
||||||
default:
|
default:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
@@ -468,35 +497,11 @@ options:
|
|||||||
default: '14'
|
default: '14'
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
storage:
|
issuer:
|
||||||
default:
|
default: letsencrypt-prod
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 10Gi
|
|
||||||
examples:
|
examples:
|
||||||
- accessMode: ReadWriteOnce
|
- letsencrypt-prod
|
||||||
size: 10Gi
|
|
||||||
properties:
|
|
||||||
accessMode:
|
|
||||||
default: ReadWriteOnce
|
|
||||||
enum:
|
|
||||||
- ReadWriteOnce
|
|
||||||
- ReadOnlyMany
|
|
||||||
- ReadWriteMany
|
|
||||||
type: string
|
type: string
|
||||||
size:
|
|
||||||
default: 10Gi
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
admin:
|
|
||||||
default:
|
|
||||||
name: nextcloud_admin
|
|
||||||
examples:
|
|
||||||
- name: nextcloud_admin
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
default: nextcloud_admin
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- dist: null
|
- dist: null
|
||||||
category: share
|
category: share
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ resource "authentik_provider_proxy" "prj_forward" {
|
|||||||
resource "authentik_application" "prj_application" {
|
resource "authentik_application" "prj_application" {
|
||||||
name = "${var.component}"
|
name = "${var.component}"
|
||||||
slug = "${var.component}-${var.instance}"
|
slug = "${var.component}-${var.instance}"
|
||||||
|
group = var.app-group
|
||||||
protocol_provider = authentik_provider_proxy.prj_forward.id
|
protocol_provider = authentik_provider_proxy.prj_forward.id
|
||||||
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
||||||
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, local.app-icon)
|
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, local.app-icon)
|
||||||
|
|||||||
@@ -6,11 +6,6 @@ metadata:
|
|||||||
name: traefik-ui
|
name: traefik-ui
|
||||||
description: Access to the Traefik UI
|
description: Access to the Traefik UI
|
||||||
options:
|
options:
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
ingress-class:
|
ingress-class:
|
||||||
default: traefik
|
default: traefik
|
||||||
examples:
|
examples:
|
||||||
@@ -31,6 +26,16 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
|
app-group:
|
||||||
|
default: infra
|
||||||
|
examples:
|
||||||
|
- infra
|
||||||
|
type: string
|
||||||
|
issuer:
|
||||||
|
default: letsencrypt-prod
|
||||||
|
examples:
|
||||||
|
- letsencrypt-prod
|
||||||
|
type: string
|
||||||
dependencies:
|
dependencies:
|
||||||
- dist: null
|
- dist: null
|
||||||
category: share
|
category: share
|
||||||
|
|||||||
@@ -13,7 +13,13 @@ locals {
|
|||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
"backups" = var.backups
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
nextcloud = { for k, v in var.nextcloud : k => v if k!="enable" }
|
nextcloud = { for k, v in var.nextcloud : k => v if contains(["enable","storage"],k) }
|
||||||
|
nextcloud-storage = merge({
|
||||||
|
"storage" = {
|
||||||
|
"size" = "10Gi"
|
||||||
|
"accessMode" = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce"
|
||||||
|
}
|
||||||
|
}, { for k, v in var.nextcloud : k => v if k=="storage" })
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "kubernetes_namespace_v1" "files-ns" {
|
resource "kubernetes_namespace_v1" "files-ns" {
|
||||||
@@ -39,6 +45,6 @@ resource "kubectl_manifest" "nextcloud" {
|
|||||||
distrib: "${var.distributions.domain}"
|
distrib: "${var.distributions.domain}"
|
||||||
category: "apps"
|
category: "apps"
|
||||||
component: "nextcloud"
|
component: "nextcloud"
|
||||||
options: ${jsonencode(merge(local.global, local.nextcloud))}
|
options: ${jsonencode(merge(local.global, local.nextcloud-storage, local.nextcloud))}
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,51 +6,11 @@ metadata:
|
|||||||
name: domain-apps
|
name: domain-apps
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
nextcloud:
|
|
||||||
default:
|
|
||||||
enable: false
|
|
||||||
examples:
|
|
||||||
- enable: false
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
domain-name:
|
|
||||||
default: your_company.com
|
|
||||||
examples:
|
|
||||||
- your_company.com
|
|
||||||
type: string
|
|
||||||
domain:
|
domain:
|
||||||
default: your-company
|
default: your-company
|
||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
distributions:
|
|
||||||
default:
|
|
||||||
core: core
|
|
||||||
domain: domain
|
|
||||||
examples:
|
|
||||||
- core: core
|
|
||||||
domain: domain
|
|
||||||
properties:
|
|
||||||
core:
|
|
||||||
default: core
|
|
||||||
type: string
|
|
||||||
domain:
|
|
||||||
default: domain
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
backups:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -81,6 +41,71 @@ options:
|
|||||||
default: backup-settings
|
default: backup-settings
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
distributions:
|
||||||
|
default:
|
||||||
|
core: core
|
||||||
|
domain: domain
|
||||||
|
examples:
|
||||||
|
- core: core
|
||||||
|
domain: domain
|
||||||
|
properties:
|
||||||
|
core:
|
||||||
|
default: core
|
||||||
|
type: string
|
||||||
|
domain:
|
||||||
|
default: domain
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
issuer:
|
||||||
|
default: letsencrypt-prod
|
||||||
|
examples:
|
||||||
|
- letsencrypt-prod
|
||||||
|
type: string
|
||||||
|
nextcloud:
|
||||||
|
default:
|
||||||
|
enable: false
|
||||||
|
examples:
|
||||||
|
- enable: false
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
|
type: string
|
||||||
|
storage-classes:
|
||||||
|
default:
|
||||||
|
BlockReadWriteMany: ''
|
||||||
|
BlockReadWriteOnce: ''
|
||||||
|
FilesystemReadWriteMany: ''
|
||||||
|
FilesystemReadWriteOnce: ''
|
||||||
|
examples:
|
||||||
|
- BlockReadWriteMany: ''
|
||||||
|
BlockReadWriteOnce: ''
|
||||||
|
FilesystemReadWriteMany: ''
|
||||||
|
FilesystemReadWriteOnce: ''
|
||||||
|
properties:
|
||||||
|
BlockReadWriteMany:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
BlockReadWriteOnce:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
FilesystemReadWriteMany:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
FilesystemReadWriteOnce:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: true
|
kubernetes: true
|
||||||
|
|||||||
@@ -6,71 +6,6 @@ metadata:
|
|||||||
name: domain-auth
|
name: domain-auth
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
authentik:
|
|
||||||
default:
|
|
||||||
enable: true
|
|
||||||
examples:
|
|
||||||
- enable: true
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
domain:
|
|
||||||
default: your-company
|
|
||||||
examples:
|
|
||||||
- your-company
|
|
||||||
type: string
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
authentik-ldap:
|
|
||||||
default:
|
|
||||||
enable: false
|
|
||||||
examples:
|
|
||||||
- enable: false
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
domain-name:
|
|
||||||
default: your_company.com
|
|
||||||
examples:
|
|
||||||
- your_company.com
|
|
||||||
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
|
|
||||||
distributions:
|
distributions:
|
||||||
default:
|
default:
|
||||||
core: core
|
core: core
|
||||||
@@ -101,6 +36,96 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- letsencrypt-prod
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
|
authentik:
|
||||||
|
default:
|
||||||
|
enable: true
|
||||||
|
examples:
|
||||||
|
- enable: true
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
|
type: string
|
||||||
|
authentik-ldap:
|
||||||
|
default:
|
||||||
|
enable: false
|
||||||
|
examples:
|
||||||
|
- enable: false
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
backups:
|
||||||
|
default:
|
||||||
|
enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
secret-key: s3-secret
|
||||||
|
secret-name: backup-settings
|
||||||
|
examples:
|
||||||
|
- enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
secret-key: s3-secret
|
||||||
|
secret-name: backup-settings
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
endpoint:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
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
|
||||||
|
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
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
|
type: string
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: true
|
kubernetes: true
|
||||||
|
|||||||
@@ -13,8 +13,19 @@ locals {
|
|||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
"backups" = var.backups
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
gitea = { for k, v in var.gitea : k => v if k!="enable" }
|
gitea = { for k, v in var.gitea : k => v if contains(["enable","storage-server","storage-agent"],k) }
|
||||||
woodpecker = { for k, v in var.woodpecker : k => v if k!="enable" }
|
woodpecker = { for k, v in var.woodpecker : k => v if k!="enable" }
|
||||||
|
woodpecker-storage = merge({
|
||||||
|
"storage-server" = {
|
||||||
|
"size" = "10Gi"
|
||||||
|
"accessMode" = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce"
|
||||||
|
}
|
||||||
|
"storage-agent" = {
|
||||||
|
"size" = "10Gi"
|
||||||
|
"writeMany" = var.storage-classes.FilesystemReadWriteMany!=""?"true":"false"
|
||||||
|
"storageClass" = var.storage-classes.FilesystemReadWriteMany!=""?var.storage-classes.FilesystemReadWriteMany:var.storage-classes.FilesystemReadWriteOnce
|
||||||
|
}
|
||||||
|
}, { for k, v in var.dolibarr : k => v if contains(["storage-server","storage-agent"],k) })
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "kubernetes_namespace_v1" "ci-ns" {
|
resource "kubernetes_namespace_v1" "ci-ns" {
|
||||||
@@ -58,6 +69,6 @@ resource "kubectl_manifest" "woodpecker" {
|
|||||||
distrib: "${var.distributions.domain}"
|
distrib: "${var.distributions.domain}"
|
||||||
category: "apps"
|
category: "apps"
|
||||||
component: "woodpecker"
|
component: "woodpecker"
|
||||||
options: ${jsonencode(merge(local.global, local.woodpecker))}
|
options: ${jsonencode(merge(local.global, local.woodpecker-storage, local.woodpecker))}
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,51 +6,6 @@ metadata:
|
|||||||
name: domain-ci
|
name: domain-ci
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
gitea:
|
|
||||||
default:
|
|
||||||
enable: true
|
|
||||||
examples:
|
|
||||||
- enable: true
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
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
|
|
||||||
woodpecker:
|
|
||||||
default:
|
|
||||||
enable: false
|
|
||||||
examples:
|
|
||||||
- enable: false
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
domain:
|
|
||||||
default: your-company
|
|
||||||
examples:
|
|
||||||
- your-company
|
|
||||||
type: string
|
|
||||||
backups:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -81,15 +36,85 @@ options:
|
|||||||
default: backup-settings
|
default: backup-settings
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
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
|
||||||
domain-name:
|
domain-name:
|
||||||
default: your_company.com
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- your_company.com
|
||||||
type: string
|
type: string
|
||||||
issuer:
|
woodpecker:
|
||||||
default: letsencrypt-prod
|
default:
|
||||||
|
enable: false
|
||||||
examples:
|
examples:
|
||||||
- letsencrypt-prod
|
- 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
|
||||||
|
gitea:
|
||||||
|
default:
|
||||||
|
enable: true
|
||||||
|
examples:
|
||||||
|
- enable: true
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
|
type: string
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
type: string
|
type: string
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
|
|||||||
@@ -13,7 +13,14 @@ locals {
|
|||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
"backups" = var.backups
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
dolibarr = { for k, v in var.dolibarr : k => v if k!="enable" }
|
dolibarr = { for k, v in var.dolibarr : k => v if contains(["enable","storage"],k) }
|
||||||
|
doli-storage = merge({
|
||||||
|
"storage" = {
|
||||||
|
"size" = "10Gi"
|
||||||
|
"accessMode" = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce"
|
||||||
|
"type" = "Filesystem"
|
||||||
|
}
|
||||||
|
}, { for k, v in var.dolibarr : k => v if k=="storage" })
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "kubernetes_namespace_v1" "erp-ns" {
|
resource "kubernetes_namespace_v1" "erp-ns" {
|
||||||
@@ -39,6 +46,6 @@ resource "kubectl_manifest" "dolibarr" {
|
|||||||
distrib: "${var.distributions.domain}"
|
distrib: "${var.distributions.domain}"
|
||||||
category: "apps"
|
category: "apps"
|
||||||
component: "dolibarr"
|
component: "dolibarr"
|
||||||
options: ${jsonencode(merge(local.global, local.dolibarr))}
|
options: ${jsonencode(merge(local.global, local.doli-storage, local.dolibarr))}
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,21 +11,6 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
domain-name:
|
|
||||||
default: your_company.com
|
|
||||||
examples:
|
|
||||||
- your_company.com
|
|
||||||
type: string
|
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
distributions:
|
distributions:
|
||||||
default:
|
default:
|
||||||
core: core
|
core: core
|
||||||
@@ -71,6 +56,36 @@ options:
|
|||||||
default: backup-settings
|
default: backup-settings
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
|
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
|
||||||
dolibarr:
|
dolibarr:
|
||||||
default:
|
default:
|
||||||
enable: true
|
enable: true
|
||||||
@@ -81,6 +96,16 @@ options:
|
|||||||
default: true
|
default: true
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
|
type: string
|
||||||
|
issuer:
|
||||||
|
default: letsencrypt-prod
|
||||||
|
examples:
|
||||||
|
- letsencrypt-prod
|
||||||
|
type: string
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: true
|
kubernetes: true
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ locals {
|
|||||||
"issuer" = var.issuer
|
"issuer" = var.issuer
|
||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
"backups" = var.backups
|
"backups" = var.backups
|
||||||
|
"app-group" = var.app-group
|
||||||
}
|
}
|
||||||
traefik = { for k, v in var.traefik : k => v if k!="enable" }
|
traefik = { for k, v in var.traefik : k => v if k!="enable" }
|
||||||
dns = { for k, v in var.dns : k => v if k!="enable" }
|
dns = { for k, v in var.dns : k => v if k!="enable" }
|
||||||
@@ -52,7 +53,7 @@ resource "kubectl_manifest" "traefik" {
|
|||||||
apiVersion: "vynil.solidite.fr/v1"
|
apiVersion: "vynil.solidite.fr/v1"
|
||||||
kind: "Install"
|
kind: "Install"
|
||||||
metadata:
|
metadata:
|
||||||
name: "traefik-ui-${var.namespace}"
|
name: "${var.namespace}"
|
||||||
namespace: "${var.traefik.namespace}"
|
namespace: "${var.traefik.namespace}"
|
||||||
labels: ${jsonencode(local.common-labels)}
|
labels: ${jsonencode(local.common-labels)}
|
||||||
spec:
|
spec:
|
||||||
|
|||||||
@@ -6,71 +6,6 @@ metadata:
|
|||||||
name: domain-infra
|
name: domain-infra
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
dns:
|
|
||||||
default:
|
|
||||||
enable: false
|
|
||||||
examples:
|
|
||||||
- enable: false
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
traefik:
|
|
||||||
default:
|
|
||||||
enable: false
|
|
||||||
namespace: traefik
|
|
||||||
examples:
|
|
||||||
- enable: false
|
|
||||||
namespace: traefik
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
namespace:
|
|
||||||
default: traefik
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
api:
|
|
||||||
default:
|
|
||||||
enable: false
|
|
||||||
examples:
|
|
||||||
- enable: false
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: false
|
|
||||||
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
|
|
||||||
backups:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -101,11 +36,106 @@ options:
|
|||||||
default: backup-settings
|
default: backup-settings
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
app-group:
|
||||||
|
default: infra
|
||||||
|
examples:
|
||||||
|
- infra
|
||||||
|
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
|
||||||
|
dns:
|
||||||
|
default:
|
||||||
|
enable: false
|
||||||
|
examples:
|
||||||
|
- enable: false
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
api:
|
||||||
|
default:
|
||||||
|
enable: false
|
||||||
|
examples:
|
||||||
|
- enable: false
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: false
|
||||||
|
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-name:
|
domain-name:
|
||||||
default: your_company.com
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- your_company.com
|
||||||
type: string
|
type: string
|
||||||
|
issuer:
|
||||||
|
default: letsencrypt-prod
|
||||||
|
examples:
|
||||||
|
- letsencrypt-prod
|
||||||
|
type: string
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
|
type: string
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
|
storage-classes:
|
||||||
|
default:
|
||||||
|
BlockReadWriteMany: ''
|
||||||
|
BlockReadWriteOnce: ''
|
||||||
|
FilesystemReadWriteMany: ''
|
||||||
|
FilesystemReadWriteOnce: ''
|
||||||
|
examples:
|
||||||
|
- BlockReadWriteMany: ''
|
||||||
|
BlockReadWriteOnce: ''
|
||||||
|
FilesystemReadWriteMany: ''
|
||||||
|
FilesystemReadWriteOnce: ''
|
||||||
|
properties:
|
||||||
|
BlockReadWriteMany:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
BlockReadWriteOnce:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
FilesystemReadWriteMany:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
FilesystemReadWriteOnce:
|
||||||
|
default: ''
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: true
|
kubernetes: true
|
||||||
|
|||||||
@@ -6,11 +6,78 @@ metadata:
|
|||||||
name: domain
|
name: domain
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
ingress-class:
|
distributions:
|
||||||
default: traefik
|
default:
|
||||||
|
core: core
|
||||||
|
domain: domain
|
||||||
examples:
|
examples:
|
||||||
- traefik
|
- core: core
|
||||||
|
domain: domain
|
||||||
|
properties:
|
||||||
|
core:
|
||||||
|
default: core
|
||||||
type: string
|
type: string
|
||||||
|
domain:
|
||||||
|
default: domain
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
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
|
||||||
|
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:
|
||||||
|
enable: true
|
||||||
|
examples:
|
||||||
|
- enable: true
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
backups:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -41,85 +108,38 @@ options:
|
|||||||
default: backup-settings
|
default: backup-settings
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
domain-name:
|
domain-name:
|
||||||
default: your_company.com
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- your_company.com
|
||||||
type: string
|
type: string
|
||||||
distributions:
|
issuer:
|
||||||
default:
|
default: letsencrypt-prod
|
||||||
core: core
|
|
||||||
domain: domain
|
|
||||||
examples:
|
examples:
|
||||||
- core: core
|
- letsencrypt-prod
|
||||||
domain: domain
|
|
||||||
properties:
|
|
||||||
core:
|
|
||||||
default: core
|
|
||||||
type: string
|
type: string
|
||||||
domain:
|
infra:
|
||||||
default: domain
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
auth:
|
|
||||||
default:
|
|
||||||
enable: true
|
|
||||||
examples:
|
|
||||||
- enable: true
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
ci:
|
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
gitea:
|
traefik:
|
||||||
enable: true
|
enable: false
|
||||||
examples:
|
examples:
|
||||||
- enable: false
|
- enable: false
|
||||||
gitea:
|
traefik:
|
||||||
enable: true
|
enable: false
|
||||||
properties:
|
properties:
|
||||||
enable:
|
enable:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
gitea:
|
traefik:
|
||||||
default:
|
default:
|
||||||
enable: true
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
erp:
|
|
||||||
default:
|
|
||||||
dolibarr:
|
|
||||||
enable: true
|
|
||||||
enable: false
|
|
||||||
examples:
|
|
||||||
- dolibarr:
|
|
||||||
enable: true
|
|
||||||
enable: false
|
enable: false
|
||||||
properties:
|
properties:
|
||||||
dolibarr:
|
|
||||||
default:
|
|
||||||
enable: true
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
enable:
|
enable:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
|
type: object
|
||||||
apps:
|
apps:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -142,29 +162,44 @@ options:
|
|||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
infra:
|
mail:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
traefik:
|
|
||||||
enable: false
|
|
||||||
examples:
|
examples:
|
||||||
- enable: false
|
- enable: false
|
||||||
traefik:
|
|
||||||
enable: false
|
|
||||||
properties:
|
properties:
|
||||||
enable:
|
enable:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
traefik:
|
type: object
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
|
ci:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
|
gitea:
|
||||||
|
enable: true
|
||||||
|
examples:
|
||||||
|
- enable: false
|
||||||
|
gitea:
|
||||||
|
enable: true
|
||||||
properties:
|
properties:
|
||||||
enable:
|
enable:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
gitea:
|
||||||
|
default:
|
||||||
|
enable: true
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
mail:
|
devspaces:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
examples:
|
examples:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ locals {
|
|||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
"distributions" = var.distributions
|
"distributions" = var.distributions
|
||||||
"backups" = var.backups
|
"backups" = var.backups
|
||||||
|
"storage-classes"= var.storage-classes
|
||||||
}
|
}
|
||||||
annotations = {
|
annotations = {
|
||||||
"vynil.solidite.fr/meta" = var.component
|
"vynil.solidite.fr/meta" = var.component
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ resource "authentik_application" "prj_app" {
|
|||||||
name = "${var.instance}"
|
name = "${var.instance}"
|
||||||
slug = "${var.component}-${var.instance}"
|
slug = "${var.component}-${var.instance}"
|
||||||
#protocol_provider = authentik_provider_oauth2.oauth2.id
|
#protocol_provider = authentik_provider_oauth2.oauth2.id
|
||||||
|
group = var.app-group
|
||||||
backchannel_providers = [authentik_provider_scim.scim.id]
|
backchannel_providers = [authentik_provider_scim.scim.id]
|
||||||
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name)
|
||||||
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "favicon-32x32.png")
|
meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "favicon-32x32.png")
|
||||||
|
|||||||
@@ -6,54 +6,11 @@ metadata:
|
|||||||
name: wildduck
|
name: wildduck
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
domain-name:
|
ingress-class:
|
||||||
default: your_company.com
|
default: traefik
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- traefik
|
||||||
type: string
|
type: string
|
||||||
domain:
|
|
||||||
default: your-company
|
|
||||||
examples:
|
|
||||||
- your-company
|
|
||||||
type: string
|
|
||||||
redis:
|
|
||||||
default:
|
|
||||||
exporter:
|
|
||||||
enabled: true
|
|
||||||
image: quay.io/opstree/redis-exporter:v1.44.0
|
|
||||||
image: quay.io/opstree/redis:v7.0.5
|
|
||||||
storage: 2Gi
|
|
||||||
examples:
|
|
||||||
- exporter:
|
|
||||||
enabled: true
|
|
||||||
image: quay.io/opstree/redis-exporter:v1.44.0
|
|
||||||
image: quay.io/opstree/redis:v7.0.5
|
|
||||||
storage: 2Gi
|
|
||||||
properties:
|
|
||||||
exporter:
|
|
||||||
default:
|
|
||||||
enabled: true
|
|
||||||
image: quay.io/opstree/redis-exporter:v1.44.0
|
|
||||||
properties:
|
|
||||||
enabled:
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
image:
|
|
||||||
default: quay.io/opstree/redis-exporter:v1.44.0
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
image:
|
|
||||||
default: quay.io/opstree/redis:v7.0.5
|
|
||||||
type: string
|
|
||||||
storage:
|
|
||||||
default: 2Gi
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
additional-domains:
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
backups:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -293,21 +250,69 @@ options:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
sub-domain:
|
domain:
|
||||||
default: mail
|
default: your-company
|
||||||
examples:
|
examples:
|
||||||
- mail
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
ingress-class:
|
app-group:
|
||||||
default: traefik
|
default: ''
|
||||||
examples:
|
examples:
|
||||||
- traefik
|
- ''
|
||||||
|
type: string
|
||||||
|
additional-domains:
|
||||||
|
default: []
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
redis:
|
||||||
|
default:
|
||||||
|
exporter:
|
||||||
|
enabled: true
|
||||||
|
image: quay.io/opstree/redis-exporter:v1.44.0
|
||||||
|
image: quay.io/opstree/redis:v7.0.5
|
||||||
|
storage: 2Gi
|
||||||
|
examples:
|
||||||
|
- exporter:
|
||||||
|
enabled: true
|
||||||
|
image: quay.io/opstree/redis-exporter:v1.44.0
|
||||||
|
image: quay.io/opstree/redis:v7.0.5
|
||||||
|
storage: 2Gi
|
||||||
|
properties:
|
||||||
|
exporter:
|
||||||
|
default:
|
||||||
|
enabled: true
|
||||||
|
image: quay.io/opstree/redis-exporter:v1.44.0
|
||||||
|
properties:
|
||||||
|
enabled:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
image:
|
||||||
|
default: quay.io/opstree/redis-exporter:v1.44.0
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
image:
|
||||||
|
default: quay.io/opstree/redis:v7.0.5
|
||||||
|
type: string
|
||||||
|
storage:
|
||||||
|
default: 2Gi
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
type: string
|
type: string
|
||||||
issuer:
|
issuer:
|
||||||
default: letsencrypt-prod
|
default: letsencrypt-prod
|
||||||
examples:
|
examples:
|
||||||
- letsencrypt-prod
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
|
sub-domain:
|
||||||
|
default: mail
|
||||||
|
examples:
|
||||||
|
- mail
|
||||||
|
type: string
|
||||||
dependencies:
|
dependencies:
|
||||||
- dist: null
|
- dist: null
|
||||||
category: dbo
|
category: dbo
|
||||||
|
|||||||
Reference in New Issue
Block a user