This commit is contained in:
2024-01-26 13:38:22 +01:00
parent 02cfcad589
commit cdb12acc2a
2 changed files with 143 additions and 95 deletions

View File

@@ -6,104 +6,16 @@ metadata:
name: dataset-pg name: dataset-pg
description: null description: null
options: options:
issuer:
default: letsencrypt-prod
examples:
- letsencrypt-prod
type: string
postgres:
default:
replicas: 1
examples:
- replicas: 1
properties:
replicas:
default: 1
type: integer
type: object
sub-domain:
default: dataset-pg
examples:
- dataset-pg
type: string
ingress_class:
default: traefik
examples:
- traefik
type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
app_group: app_group:
default: api default: api
examples: examples:
- api - api
type: string type: string
backups: domain:
default: default: your-company
enable: false
endpoint: ''
key-id-key: s3-id
retention:
db: 30d
schedule:
db: 0 3 * * *
secret-key: s3-secret
secret-name: backup-settings
examples: examples:
- enable: false - your-company
endpoint: '' type: string
key-id-key: s3-id
retention:
db: 30d
schedule:
db: 0 3 * * *
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
retention:
default:
db: 30d
properties:
db:
default: 30d
type: string
type: object
schedule:
default:
db: 0 3 * * *
properties:
db:
default: 0 3 * * *
type: string
type: object
secret-key:
default: s3-secret
type: string
secret-name:
default: backup-settings
type: string
type: object
roles:
default: []
items:
properties:
name:
default: alt-account
type: string
type: object
type: array
storage: storage:
default: default:
postgres: postgres:
@@ -121,6 +33,16 @@ options:
type: string type: string
type: object type: object
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
extentions: extentions:
default: default:
directus: directus:
@@ -302,6 +224,79 @@ options:
type: object type: object
type: object type: object
type: object type: object
roles:
default: []
items:
properties:
name:
default: alt-account
type: string
type: object
type: array
postgres:
default:
replicas: 1
examples:
- replicas: 1
properties:
replicas:
default: 1
type: integer
type: object
backups:
default:
enable: false
endpoint: ''
key-id-key: s3-id
retention:
db: 30d
schedule:
db: 0 3 * * *
secret-key: s3-secret
secret-name: backup-settings
examples:
- enable: false
endpoint: ''
key-id-key: s3-id
retention:
db: 30d
schedule:
db: 0 3 * * *
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
retention:
default:
db: 30d
properties:
db:
default: 30d
type: string
type: object
schedule:
default:
db: 0 3 * * *
properties:
db:
default: 0 3 * * *
type: string
type: object
secret-key:
default: s3-secret
type: string
secret-name:
default: backup-settings
type: string
type: object
images: images:
default: default:
postgresql: postgresql:
@@ -331,10 +326,10 @@ options:
type: number type: number
type: object type: object
type: object type: object
domain: sub-domain:
default: your-company default: dataset-pg
examples: examples:
- your-company - dataset-pg
type: string type: string
databases: databases:
default: [] default: []
@@ -345,6 +340,11 @@ options:
type: string type: string
type: object type: object
type: array type: array
ingress_class:
default: traefik
examples:
- traefik
type: string
dependencies: dependencies:
- dist: null - dist: null
category: dbo category: dbo

View File

@@ -0,0 +1,48 @@
terraform {
required_providers {
kustomization = {
source = "kbst/kustomization"
version = "~> 0.9.2"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.20.0"
}
kubectl = {
source = "gavinbunney/kubectl"
version = "~> 1.14.0"
}
authentik = {
source = "goauthentik/authentik"
version = "~> 2023.5.0"
}
postgresql = {
source = "cyrilgdn/postgresql"
version = "~> 1.19.0"
}
}
}
provider "kustomization" {
kubeconfig_incluster = true
}
provider "kubernetes" {
host = "https://kubernetes.default.svc"
token = "${file("/run/secrets/kubernetes.io/serviceaccount/token")}"
cluster_ca_certificate = "${file("/run/secrets/kubernetes.io/serviceaccount/ca.crt")}"
}
provider "kubectl" {
host = "https://kubernetes.default.svc"
token = "${file("/run/secrets/kubernetes.io/serviceaccount/token")}"
cluster_ca_certificate = "${file("/run/secrets/kubernetes.io/serviceaccount/ca.crt")}"
load_config_file = false
}
provider "authentik" {
url = "http://authentik.${var.domain}-auth.svc"
token = data.kubernetes_secret_v1.authentik.data["AUTHENTIK_BOOTSTRAP_TOKEN"]
}
provider "postgresql" {
host = "${var.instance}-${var.component}-rw.${var.namespace}.svc"
username = data.kubernetes_secret_v1.postgresql_password.data["username"]
password = data.kubernetes_secret_v1.postgresql_password.data["password"]
}