Adding initial kubevirt support
This commit is contained in:
@@ -18,10 +18,46 @@ locals {
|
||||
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" }
|
||||
crd-kubevirt = { for k, v in var.crds.kubevirt : k => v if k!="enable" }
|
||||
crd-cdi = { for k, v in var.crds.cdi : k => v if k!="enable" }
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-kubevirt" {
|
||||
count = (var.crds.kubevirt.enable || var.virt.enable && var.virt.kubevirt.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-kubevirt"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "kubevirt"
|
||||
options: ${jsonencode(local.crd-kubevirt)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-cdi" {
|
||||
count = (var.crds.cdi.enable || var.virt.enable && var.virt.cdi.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "crd-cdi"
|
||||
namespace: "${var.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "crd"
|
||||
component: "cdi"
|
||||
options: ${jsonencode(local.crd-cdi)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-tekton_pipelines" {
|
||||
count = (var.crds.tekton_pipelines.enable || var.tekton.tekton_pipelines.enable) ? 1 : 0
|
||||
count = (var.crds.tekton_pipelines.enable || var.tekton.enable && var.tekton.tekton_pipelines.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
@@ -38,7 +74,7 @@ resource "kubectl_manifest" "crd-tekton_pipelines" {
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "crd-tekton_triggers" {
|
||||
count = (var.crds.tekton_triggers.enable || var.tekton.tekton_triggers.enable) ? 1 : 0
|
||||
count = (var.crds.tekton_triggers.enable || var.tekton.enable && var.tekton.tekton_triggers.enable) ? 1 : 0
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
|
||||
@@ -6,20 +6,214 @@ metadata:
|
||||
name: addons
|
||||
description: addons meta-component installing all the addons components
|
||||
options:
|
||||
olm:
|
||||
crds:
|
||||
default:
|
||||
enable: false
|
||||
namespace: olm
|
||||
argo-cd:
|
||||
enable: false
|
||||
argo-events:
|
||||
enable: false
|
||||
argo-workflows:
|
||||
enable: false
|
||||
cdi:
|
||||
enable: false
|
||||
fission:
|
||||
enable: false
|
||||
flux:
|
||||
enable: false
|
||||
jaeger:
|
||||
enable: false
|
||||
keda:
|
||||
enable: false
|
||||
kubevirt:
|
||||
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:
|
||||
- enable: false
|
||||
namespace: olm
|
||||
- argo-cd:
|
||||
enable: false
|
||||
argo-events:
|
||||
enable: false
|
||||
argo-workflows:
|
||||
enable: false
|
||||
cdi:
|
||||
enable: false
|
||||
fission:
|
||||
enable: false
|
||||
flux:
|
||||
enable: false
|
||||
jaeger:
|
||||
enable: false
|
||||
keda:
|
||||
enable: false
|
||||
kubevirt:
|
||||
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:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
namespace:
|
||||
default: olm
|
||||
type: string
|
||||
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
|
||||
cdi:
|
||||
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
|
||||
kubevirt:
|
||||
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:
|
||||
@@ -36,40 +230,6 @@ options:
|
||||
default: flux
|
||||
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
|
||||
monitor:
|
||||
default:
|
||||
jaeger:
|
||||
@@ -116,24 +276,75 @@ options:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
olm:
|
||||
default:
|
||||
enable: false
|
||||
namespace: olm
|
||||
examples:
|
||||
- enable: false
|
||||
namespace: olm
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
namespace:
|
||||
default: olm
|
||||
type: string
|
||||
type: object
|
||||
tekton:
|
||||
default:
|
||||
enable: false
|
||||
namespace: tekton
|
||||
tekton_pipelines:
|
||||
enable: false
|
||||
enable: true
|
||||
tekton_triggers:
|
||||
enable: false
|
||||
enable: true
|
||||
examples:
|
||||
- namespace: tekton
|
||||
- enable: false
|
||||
namespace: tekton
|
||||
tekton_pipelines:
|
||||
enable: false
|
||||
enable: true
|
||||
tekton_triggers:
|
||||
enable: false
|
||||
enable: true
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
namespace:
|
||||
default: tekton
|
||||
type: string
|
||||
tekton_pipelines:
|
||||
default:
|
||||
enable: true
|
||||
properties:
|
||||
enable:
|
||||
default: true
|
||||
type: boolean
|
||||
type: object
|
||||
tekton_triggers:
|
||||
default:
|
||||
enable: true
|
||||
properties:
|
||||
enable:
|
||||
default: true
|
||||
type: boolean
|
||||
type: object
|
||||
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:
|
||||
@@ -141,7 +352,10 @@ options:
|
||||
default: false
|
||||
type: boolean
|
||||
type: object
|
||||
tekton_triggers:
|
||||
namespace:
|
||||
default: vynil-addons
|
||||
type: string
|
||||
node_problem_detector:
|
||||
default:
|
||||
enable: false
|
||||
properties:
|
||||
@@ -150,190 +364,44 @@ options:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
crds:
|
||||
virt:
|
||||
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
|
||||
cdi:
|
||||
enable: true
|
||||
enable: false
|
||||
kubevirt:
|
||||
enable: true
|
||||
namespace: vynil-virt
|
||||
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
|
||||
- cdi:
|
||||
enable: true
|
||||
enable: false
|
||||
kubevirt:
|
||||
enable: true
|
||||
namespace: vynil-virt
|
||||
properties:
|
||||
argo-cd:
|
||||
cdi:
|
||||
default:
|
||||
enable: false
|
||||
enable: true
|
||||
properties:
|
||||
enable:
|
||||
default: false
|
||||
default: true
|
||||
type: boolean
|
||||
type: object
|
||||
argo-events:
|
||||
enable:
|
||||
default: false
|
||||
type: boolean
|
||||
kubevirt:
|
||||
default:
|
||||
enable: false
|
||||
enable: true
|
||||
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
|
||||
default: true
|
||||
type: boolean
|
||||
type: object
|
||||
namespace:
|
||||
default: vynil-virt
|
||||
type: string
|
||||
type: object
|
||||
dependencies: []
|
||||
providers:
|
||||
|
||||
@@ -4,7 +4,7 @@ locals {
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace_v1" "tekton-ns" {
|
||||
count = ( var.tekton.tekton_pipelines.enable || var.tekton.tekton_triggers.enable)? 1 : 0
|
||||
count = var.tekton.enable && ( var.tekton.tekton_pipelines.enable || var.tekton.tekton_triggers.enable)? 1 : 0
|
||||
metadata {
|
||||
annotations = local.annotations
|
||||
labels = local.common-labels
|
||||
@@ -13,7 +13,7 @@ resource "kubernetes_namespace_v1" "tekton-ns" {
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "tekton_pipelines" {
|
||||
count = var.tekton.tekton_pipelines.enable ? 1 : 0
|
||||
count = var.tekton.enable && var.tekton.tekton_pipelines.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.tekton-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
@@ -31,7 +31,7 @@ resource "kubectl_manifest" "tekton_pipelines" {
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "tekton_triggers" {
|
||||
count = var.tekton.tekton_triggers.enable ? 1 : 0
|
||||
count = var.tekton.enable && var.tekton.tekton_triggers.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.tekton-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
|
||||
49
meta/addons/virt.tf
Normal file
49
meta/addons/virt.tf
Normal file
@@ -0,0 +1,49 @@
|
||||
locals {
|
||||
cdi = { for k, v in var.virt.cdi : k => v if k!="enable" }
|
||||
kubevirt = { for k, v in var.virt.kubevirt : k => v if k!="enable" }
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace_v1" "virt-ns" {
|
||||
count = var.virt.enable && ( var.virt.cdi.enable || var.virt.kubevirt.enable)? 1 : 0
|
||||
metadata {
|
||||
annotations = local.annotations
|
||||
labels = local.common-labels
|
||||
name = var.virt.namespace
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "cdi" {
|
||||
count = var.virt.enable && var.virt.cdi.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.virt-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "cdi"
|
||||
namespace: "${var.virt.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "virt"
|
||||
component: "cdi"
|
||||
options: ${jsonencode(local.cdi)}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "kubevirt" {
|
||||
count = var.virt.enable && var.virt.kubevirt.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.virt-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "kubevirt"
|
||||
namespace: "${var.virt.namespace}"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.component}"
|
||||
category: "virt"
|
||||
component: "kubevirt"
|
||||
options: ${jsonencode(local.kubevirt)}
|
||||
EOF
|
||||
}
|
||||
Reference in New Issue
Block a user