Phase 1 infrastructure-as-code setup: - Core providers (kubernetes, helm, null) - 15 Helm repositories (grafana, minio, prometheus, etc.) - Namespace scaffolding (15 namespaces with pod-security labels) - Storage classes (longhorn, longhorn-kafka with prevent_destroy) - TLS certificate bootstrap (selfsigned, CA, wildcard cert) - Remote state backend config (local for now, S3/GCS TODO) - Variable definitions for all secrets/OIDC clients Tested: terraform plan passes with no changes (bootstrap infrastructure ready) Next: Create 25 helm_release resources (Phase 2-4) Kept helmfile intact; network/Cilium managed via helmfile (no config risk) Co-Authored-By: Claude Haiku 4.5 <[email protected]>
121 lines
2.6 KiB
Terraform
121 lines
2.6 KiB
Terraform
variable "kubeconfig_path" {
|
|
description = "Path to kubeconfig file"
|
|
type = string
|
|
default = "cluster-config/kubeconfig"
|
|
}
|
|
|
|
variable "cluster_domain" {
|
|
description = "Cluster domain (e.g., riotpiao.homelab.com)"
|
|
type = string
|
|
default = "riotpiao.homelab.com"
|
|
}
|
|
|
|
# Cluster secrets (load from .env.tfvars or vault)
|
|
variable "authentik_secret_key" {
|
|
description = "Authentik secret key"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_bootstrap_password" {
|
|
description = "Authentik bootstrap password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_bootstrap_token" {
|
|
description = "Authentik bootstrap token"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_pg_password" {
|
|
description = "Authentik PostgreSQL password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "postgres_password" {
|
|
description = "PostgreSQL app user password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "minio_root_user" {
|
|
description = "MinIO root user"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "minio_root_password" {
|
|
description = "MinIO root password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "minio_oidc_client_secret" {
|
|
description = "MinIO OIDC client secret"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "grafana_admin_password" {
|
|
description = "Grafana admin password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "grafana_oidc_client_secret" {
|
|
description = "Grafana OIDC client secret"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "forgejo_admin_password" {
|
|
description = "Forgejo admin password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_forgejo_client_secret" {
|
|
description = "Authentik Forgejo OIDC client secret"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_argocd_client_id" {
|
|
description = "Authentik ArgoCD OIDC client ID"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_argocd_client_secret" {
|
|
description = "Authentik ArgoCD OIDC client secret"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_temporal_client_id" {
|
|
description = "Authentik Temporal OIDC client ID"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "authentik_temporal_client_secret" {
|
|
description = "Authentik Temporal OIDC client secret"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "argocd_admin_password" {
|
|
description = "ArgoCD admin password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "argocd_oidc_client_secret" {
|
|
description = "ArgoCD OIDC client secret"
|
|
type = string
|
|
sensitive = true
|
|
}
|