terraform { required_providers { helm = { source = "hashicorp/helm" version = "~> 2.11.0" } kubernetes = { source = "hashicorp/kubernetes" version = "~> 2.23.0" } keycloak = { source = "mrparkers/keycloak" version = "~> 4.3.1" } proxmox = { source = "telmate/proxmox" version = "~> 2.9.8" } guacamole = { source = "techBeck03/guacamole" version = "~> 1.4.1" } freeipa = { source = "rework-space-com/freeipa" version = "4.0.0" } # ldap = { # source = "l-with/ldap" # version = ">= 0.4" # } } backend "kubernetes" { secret_suffix = "tfstate" config_path = "~/.kube/config" namespace = "dan-terraform" } } provider "kubernetes" { config_path = "~/.kube/config" } provider "helm" { kubernetes { config_path = "~/.kube/config" } } provider "keycloak" { client_id = "terraform" client_secret = var.keycloak_client_secret url = "https://keycloak.${var.domain_suffix}" } provider "guacamole" { url = "https://guac.${var.domain_suffix}/" # token = var.guacamole_token # data_source = var.guacamole_datasource username = "guacadmin" password = "guacadmin" } provider "proxmox" { pm_api_url = var.proxmox_api_url pm_api_token_id = var.proxmox_token_id pm_api_token_secret = var.proxmox_token pm_tls_insecure = true } provider "freeipa" { host = "${helm_release.freeipa.name}.${var.domain_suffix}" username = "admin" password = var.freeipa_admin_password insecure = true } #provider "ldap" { # alias = "ldap_provisioner" # host = "${helm_release.freeipa.name}.${var.domain_suffix}" # bind_user = "admin" # bind_password = "${var.freeipa_ds_password}" # port = 636 # tls = true #} resource "helm_release" "nginx_ingress" { name = "nginx-ingress" namespace = "kube-system" repository = "https://kubernetes.github.io/ingress-nginx" chart = "ingress-nginx" create_namespace = true values = [ < x } name = each.value.name parent_identifier = guacamole_connection_group.routers.identifier parameters { hostname = each.value.default_ipv4_address username = "vyos" private_key = var.ssh_private_key } }