Files
homelab/terraform/variables.tf
T
Story Crater Bot 7835ac2932 feat: Terraform foundation for cluster & app bootstrap
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]>
2026-08-18 15:08:00 -07:00

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
}