90a01563dc
Manages Rancher's Keycloak(OIDC) auth provider via the rancher2 provider, pointed at Authentik. Mirrors the terraform-authentik layout (terragrunt + Vault-sourced secrets + Woodpecker plan/apply/pre-commit pipelines). - modules/rancher: rancher2_auth_config_keycloak_oidc, client_secret read from Vault (kv/kubernetes/namespace/cattle-system/default/oauth-credentials); access_mode unrestricted to avoid admin lockout on enable. - config/keycloakoidc.yaml: issuer/auth_endpoint at identity.unkin.net, client_id rancher, /verify-auth redirect, openid/profile/email scopes. - environments/rancher.k8s.syd1.au.unkin.net: consul state at infra/terraform/rancher/, rancher2 provider api_url from the env name. - rancher2 admin token read from kv/service/terraform/rancher (Makefile); to migrate to a dedicated Vault Rancher secrets engine (90-day token cap). Validated with `tofu validate` (config valid against the rancher2 provider). A live `plan` needs the Rancher admin API token seeded in Vault first.
36 lines
924 B
HCL
36 lines
924 B
HCL
generate "backend" {
|
|
path = "backend.tf"
|
|
if_exists = "overwrite"
|
|
contents = <<EOF
|
|
provider "rancher2" {
|
|
api_url = "https://${path_relative_to_include()}"
|
|
token_key = var.rancher_token
|
|
}
|
|
|
|
# Reads the OAuth client secret seeded in Vault (kv-v2). Auth via VAULT_ADDR +
|
|
# VAULT_TOKEN from the environment (set by the Makefile vault_env helper).
|
|
# skip_child_token is required because the short-lived CI token cannot create
|
|
# child tokens.
|
|
provider "vault" {
|
|
skip_child_token = true
|
|
}
|
|
|
|
variable "rancher_token" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
terraform {
|
|
backend "consul" {
|
|
address = "https://consul.service.consul"
|
|
path = "infra/terraform/rancher/${path_relative_to_include()}/state"
|
|
scheme = "https"
|
|
lock = true
|
|
ca_file = "/etc/pki/tls/certs/ca-bundle.crt"
|
|
}
|
|
required_version = ">= 1.10"
|
|
# required_providers are declared in the module's versions.tf.
|
|
}
|
|
EOF
|
|
}
|