Initial release
This commit is contained in:
276
meta/addons/crds.tf
Normal file
276
meta/addons/crds.tf
Normal file
@@ -0,0 +1,276 @@
|
||||
locals {
|
||||
annotations = {
|
||||
"vynil.solidite.fr/meta" = "core"
|
||||
"vynil.solidite.fr/name" = var.namespace
|
||||
}
|
||||
crd-argo-cd = { for k, v in var.crds.argo-cd : k => v if k!="enable" }
|
||||
crd-argo-events = { for k, v in var.crds.argo-events : k => v if k!="enable" }
|
||||
crd-argo-workflows = { for k, v in var.crds.argo-workflows : k => v if k!="enable" }
|
||||
crd-fission = { for k, v in var.crds.fission : k => v if k!="enable" }
|
||||
crd-keda = { for k, v in var.crds.keda : k => v if k!="enable" }
|
||||
crd-minio = { for k, v in var.crds.minio : k => v if k!="enable" }
|
||||
crd-olm = { for k, v in var.crds.olm : k => v if k!="enable" }
|
||||
crd-whereabouts = { for k, v in var.crds.whereabouts : k => v if k!="enable" }
|
||||
crd-volumesnapshot = { for k, v in var.crds.volumesnapshot : k => v if k!="enable" }
|
||||
crd-opentelemetry = { for k, v in var.crds.opentelemetry : k => v if k!="enable" }
|
||||
crd-jaeger = { for k, v in var.crds.jaeger : k => v if k!="enable" }
|
||||
crd-prometheus = { for k, v in var.crds.prometheus : k => v if k!="enable" }
|
||||
crd-flux = { for k, v in var.crds.flux : k => v if k!="enable" }
|
||||
crd-tekton_pipelines = { for k, v in var.crds.tekton_pipelines : k => v if k!="enable" }
|
||||
crd-tekton_triggers = { for k, v in var.crds.tekton_triggers : k => v if k!="enable" }
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-tekton_pipelines" {
|
||||
count = (var.crds.tekton_pipelines.enable || var.tekton.tekton_pipelines.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-tekton-pipelines"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "tekton-pipelines"
|
||||
options: ${jsonencode(local.crd-tekton_pipelines)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-tekton_triggers" {
|
||||
count = (var.crds.tekton_triggers.enable || var.tekton.tekton_triggers.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-tekton-triggers"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "tekton-triggers"
|
||||
options: ${jsonencode(local.crd-tekton_triggers)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-jaeger" {
|
||||
count = (var.crds.jaeger.enable || var.monitor.jaeger.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-jaeger"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "jaeger"
|
||||
options: ${jsonencode(local.crd-jaeger)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-opentelemetry" {
|
||||
count = (var.crds.opentelemetry.enable || var.monitor.opentelemetry.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-opentelemetry"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "opentelemetry"
|
||||
options: ${jsonencode(local.crd-opentelemetry)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-prometheus" {
|
||||
count = (var.crds.prometheus.enable || var.monitor.prometheus.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-prometheus"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "prometheus"
|
||||
options: ${jsonencode(local.crd-prometheus)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-flux" {
|
||||
count = (var.crds.flux.enable || var.flux.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-flux"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "flux"
|
||||
options: ${jsonencode(local.crd-flux)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-olm" {
|
||||
count = (var.crds.olm.enable || var.olm.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-olm"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "olm"
|
||||
options: ${jsonencode(local.crd-olm)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-keda" {
|
||||
count = (var.crds.keda.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-keda"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "keda"
|
||||
options: ${jsonencode(local.crd-keda)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-fission" {
|
||||
count = (var.crds.fission.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-fission"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "fission"
|
||||
options: ${jsonencode(local.crd-fission)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-minio" {
|
||||
count = (var.crds.minio.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-minio"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "minio"
|
||||
options: ${jsonencode(local.crd-minio)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-argo-cd" {
|
||||
count = (var.crds.argo-cd.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-argo-cd"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "argo-cd"
|
||||
options: ${jsonencode(local.crd-argo-cd)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-argo-events" {
|
||||
count = (var.crds.argo-events.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-argo-events"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "argo-events"
|
||||
options: ${jsonencode(local.crd-argo-events)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-argo-workflows" {
|
||||
count = (var.crds.argo-workflows.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-argo-workflows"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "argo-workflows"
|
||||
options: ${jsonencode(local.crd-argo-workflows)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-whereabouts" {
|
||||
count = (var.crds.whereabouts.enable ) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-whereabouts"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "whereabouts"
|
||||
options: ${jsonencode(local.crd-whereabouts)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-volumesnapshot" {
|
||||
count = (var.crds.volumesnapshot.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-volumesnapshot"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "volumesnapshot"
|
||||
options: ${jsonencode(local.crd-volumesnapshot)}
|
||||
EOF
|
||||
}
|
||||
30
meta/addons/flux.tf
Normal file
30
meta/addons/flux.tf
Normal file
@@ -0,0 +1,30 @@
|
||||
locals {
|
||||
flux = { for k, v in var.flux : k => v if k!="enable" && k!="namespace" }
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace_v1" "flux-ns" {
|
||||
count = var.flux.enable? 1 : 0
|
||||
metadata {
|
||||
annotations = local.annotations
|
||||
labels = local.common-labels
|
||||
name = var.flux.namespace
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "flux" {
|
||||
count = var.flux.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.flux-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "flux"
|
||||
namespace: "${var.flux.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "workflow"
|
||||
component: "flux"
|
||||
options: ${jsonencode(local.flux)}
|
||||
EOF
|
||||
}
|
||||
348
meta/addons/index.yaml
Normal file
348
meta/addons/index.yaml
Normal file
@@ -0,0 +1,348 @@
|
||||
---
|
||||
apiVersion: vinyl.solidite.fr/v1beta1
|
||||
kind: Component
|
||||
category: meta
|
||||
metadata:
|
||||
name: addons
|
||||
description: addons meta-component installing all the addons components
|
||||
options:
|
||||
monitor:
|
||||
default:
|
||||
jaeger:
|
||||
enable: false
|
||||
namespace: vynil-monitor
|
||||
opentelemetry:
|
||||
enable: false
|
||||
prometheus:
|
||||
enable: true
|
||||
examples:
|
||||
- jaeger:
|
||||
enable: false
|
||||
namespace: vynil-monitor
|
||||
opentelemetry:
|
||||
enable: false
|
||||
prometheus:
|
||||
enable: true
|
||||
properties:
|
||||
jaeger:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
namespace:
|
||||
default: vynil-monitor
|
||||
type: string
|
||||
opentelemetry:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
prometheus:
|
||||
default:
|
||||
enable: true
|
||||
properties:
|
||||
enable:
|
||||
default: true
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
tekton:
|
||||
default:
|
||||
namespace: tekton
|
||||
tekton_pipelines:
|
||||
enable: false
|
||||
tekton_triggers:
|
||||
enable: false
|
||||
examples:
|
||||
- namespace: tekton
|
||||
tekton_pipelines:
|
||||
enable: false
|
||||
tekton_triggers:
|
||||
enable: false
|
||||
properties:
|
||||
namespace:
|
||||
default: tekton
|
||||
type: string
|
||||
tekton_pipelines:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
tekton_triggers:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
olm:
|
||||
default:
|
||||
enable: true
|
||||
namespace: olm
|
||||
examples:
|
||||
- enable: true
|
||||
namespace: olm
|
||||
properties:
|
||||
enable:
|
||||
default: true
|
||||
type: boolean
|
||||
namespace:
|
||||
default: olm
|
||||
type: string
|
||||
type: object
|
||||
tools:
|
||||
default:
|
||||
keda:
|
||||
enable: false
|
||||
namespace: vynil-addons
|
||||
node_problem_detector:
|
||||
enable: false
|
||||
examples:
|
||||
- keda:
|
||||
enable: false
|
||||
namespace: vynil-addons
|
||||
node_problem_detector:
|
||||
enable: false
|
||||
properties:
|
||||
keda:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
namespace:
|
||||
default: vynil-addons
|
||||
type: string
|
||||
node_problem_detector:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
crds:
|
||||
default:
|
||||
argo-cd:
|
||||
enable: false
|
||||
argo-events:
|
||||
enable: false
|
||||
argo-workflows:
|
||||
enable: false
|
||||
fission:
|
||||
enable: false
|
||||
flux:
|
||||
enable: false
|
||||
jaeger:
|
||||
enable: false
|
||||
keda:
|
||||
enable: false
|
||||
minio:
|
||||
enable: false
|
||||
olm:
|
||||
enable: false
|
||||
opentelemetry:
|
||||
enable: false
|
||||
prometheus:
|
||||
enable: false
|
||||
tekton_pipelines:
|
||||
enable: false
|
||||
tekton_triggers:
|
||||
enable: false
|
||||
volumesnapshot:
|
||||
enable: false
|
||||
whereabouts:
|
||||
enable: false
|
||||
examples:
|
||||
- argo-cd:
|
||||
enable: false
|
||||
argo-events:
|
||||
enable: false
|
||||
argo-workflows:
|
||||
enable: false
|
||||
fission:
|
||||
enable: false
|
||||
flux:
|
||||
enable: false
|
||||
jaeger:
|
||||
enable: false
|
||||
keda:
|
||||
enable: false
|
||||
minio:
|
||||
enable: false
|
||||
olm:
|
||||
enable: false
|
||||
opentelemetry:
|
||||
enable: false
|
||||
prometheus:
|
||||
enable: false
|
||||
tekton_pipelines:
|
||||
enable: false
|
||||
tekton_triggers:
|
||||
enable: false
|
||||
volumesnapshot:
|
||||
enable: false
|
||||
whereabouts:
|
||||
enable: false
|
||||
properties:
|
||||
argo-cd:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
argo-events:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
argo-workflows:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
fission:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
flux:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
jaeger:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
keda:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
minio:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
olm:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
opentelemetry:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
prometheus:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
tekton_pipelines:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
tekton_triggers:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
volumesnapshot:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
whereabouts:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
flux:
|
||||
default:
|
||||
enable: true
|
||||
namespace: flux
|
||||
examples:
|
||||
- enable: true
|
||||
namespace: flux
|
||||
properties:
|
||||
enable:
|
||||
default: true
|
||||
type: boolean
|
||||
namespace:
|
||||
default: flux
|
||||
type: string
|
||||
type: object
|
||||
dependencies: []
|
||||
providers:
|
||||
kubernetes: true
|
||||
authentik: null
|
||||
kubectl: true
|
||||
postgresql: null
|
||||
mysql: null
|
||||
restapi: null
|
||||
http: null
|
||||
gitea: null
|
||||
tfaddtype: null
|
||||
68
meta/addons/monitor.tf
Normal file
68
meta/addons/monitor.tf
Normal file
@@ -0,0 +1,68 @@
|
||||
locals {
|
||||
prometheus = { for k, v in var.monitor.prometheus : k => v if k!="enable" }
|
||||
opentelemetry = { for k, v in var.monitor.opentelemetry : k => v if k!="enable" }
|
||||
jaeger = { for k, v in var.monitor.jaeger : k => v if k!="enable" }
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace_v1" "monitor-ns" {
|
||||
count = ( var.monitor.prometheus.enable || var.monitor.jaeger.enable || var.monitor.opentelemetry.enable )? 1 : 0
|
||||
metadata {
|
||||
annotations = local.annotations
|
||||
labels = local.common-labels
|
||||
name = var.monitor.namespace
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "prometheus" {
|
||||
count = var.monitor.prometheus.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.monitor-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "prometheus"
|
||||
namespace: "${var.monitor.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "monitor"
|
||||
component: "prometheus"
|
||||
options: ${jsonencode(local.prometheus)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "opentelemetry" {
|
||||
count = var.monitor.opentelemetry.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.monitor-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "opentelemetry"
|
||||
namespace: "${var.monitor.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "monitor"
|
||||
component: "opentelemetry"
|
||||
options: ${jsonencode(local.opentelemetry)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "jaeger" {
|
||||
count = var.monitor.jaeger.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.monitor-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "jaeger"
|
||||
namespace: "${var.monitor.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "monitor"
|
||||
component: "jaeger"
|
||||
options: ${jsonencode(local.jaeger)}
|
||||
EOF
|
||||
}
|
||||
30
meta/addons/olm.tf
Normal file
30
meta/addons/olm.tf
Normal file
@@ -0,0 +1,30 @@
|
||||
locals {
|
||||
olm = { for k, v in var.olm : k => v if k!="enable" && k!="namespace" }
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace_v1" "olm-ns" {
|
||||
count = var.olm.enable? 1 : 0
|
||||
metadata {
|
||||
annotations = local.annotations
|
||||
labels = local.common-labels
|
||||
name = var.olm.namespace
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "olm" {
|
||||
count = var.olm.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.olm-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "olm"
|
||||
namespace: "${var.olm.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "core"
|
||||
component: "olm"
|
||||
options: ${jsonencode(local.olm)}
|
||||
EOF
|
||||
}
|
||||
49
meta/addons/tekton.tf
Normal file
49
meta/addons/tekton.tf
Normal file
@@ -0,0 +1,49 @@
|
||||
locals {
|
||||
tekton_pipelines = { for k, v in var.tekton.tekton_pipelines : k => v if k!="enable" }
|
||||
tekton_triggers = { for k, v in var.tekton.tekton_triggers : k => v if k!="enable" }
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace_v1" "tekton-ns" {
|
||||
count = ( var.tekton.tekton_pipelines.enable || var.tekton.tekton_triggers.enable)? 1 : 0
|
||||
metadata {
|
||||
annotations = local.annotations
|
||||
labels = local.common-labels
|
||||
name = var.tekton.namespace
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "tekton_pipelines" {
|
||||
count = var.tekton.tekton_pipelines.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.tekton-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "tekton-pipelines"
|
||||
namespace: "${var.tekton.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "workflow"
|
||||
component: "tekton-pipelines"
|
||||
options: ${jsonencode(local.tekton_pipelines)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "tekton_triggers" {
|
||||
count = var.tekton.tekton_triggers.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.tekton-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "tekton-triggers"
|
||||
namespace: "${var.tekton.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "workflow"
|
||||
component: "tekton-triggers"
|
||||
options: ${jsonencode(local.tekton_triggers)}
|
||||
EOF
|
||||
}
|
||||
30
meta/addons/tools.tf
Normal file
30
meta/addons/tools.tf
Normal file
@@ -0,0 +1,30 @@
|
||||
locals {
|
||||
node_problem_detector = { for k, v in var.tools.node_problem_detector : k => v if k!="enable" }
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace_v1" "tools-ns" {
|
||||
count = ( var.tools.node_problem_detector.enable )? 1 : 0
|
||||
metadata {
|
||||
annotations = local.annotations
|
||||
labels = local.common-labels
|
||||
name = var.tools.namespace
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "node_problem_detector" {
|
||||
count = var.tools.node_problem_detector.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.tools-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "node-problem-detector"
|
||||
namespace: "${var.tools.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "monitor"
|
||||
component: "node-problem-detector"
|
||||
options: ${jsonencode(local.node_problem_detector)}
|
||||
EOF
|
||||
}
|
||||
Reference in New Issue
Block a user