2026-08-17 10:22:06 -04:00
|
|
|
# Generate ArgoCD admin password
|
|
|
|
|
resource "random_password" "argocd_admin" {
|
|
|
|
|
length = 24
|
|
|
|
|
special = true
|
|
|
|
|
override_special = "!#$%&*()-_=+[]{}?"
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-19 09:25:43 -04:00
|
|
|
resource "random_password" "postgres" {
|
|
|
|
|
length = 32
|
|
|
|
|
special = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "random_password" "kan_auth" {
|
|
|
|
|
length = 32
|
|
|
|
|
special = false
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-18 10:00:53 -04:00
|
|
|
# Single secrets manager secret for all cluster secrets
|
2026-08-17 10:22:06 -04:00
|
|
|
resource "aws_secretsmanager_secret" "dumpnet" {
|
2026-08-18 10:00:53 -04:00
|
|
|
name = var.cluster_name
|
|
|
|
|
description = "All ${var.cluster_name} secrets"
|
2026-08-17 10:22:06 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "aws_secretsmanager_secret_version" "dumpnet" {
|
|
|
|
|
secret_id = aws_secretsmanager_secret.dumpnet.id
|
|
|
|
|
secret_string = jsonencode({
|
2026-08-17 13:05:22 -04:00
|
|
|
cluster = {
|
|
|
|
|
argocd_admin_password = random_password.argocd_admin.result
|
|
|
|
|
talosconfig = data.talos_client_configuration.this.talos_config
|
|
|
|
|
kubeconfig = talos_cluster_kubeconfig.this.kubeconfig_raw
|
|
|
|
|
}
|
2026-08-19 09:25:43 -04:00
|
|
|
postgres = {
|
|
|
|
|
password = random_password.postgres.result
|
|
|
|
|
}
|
|
|
|
|
kan = {
|
|
|
|
|
better_auth_secret = random_password.kan_auth.result
|
|
|
|
|
}
|
2026-08-17 10:22:06 -04:00
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Install ArgoCD via Helm
|
|
|
|
|
resource "helm_release" "argocd" {
|
|
|
|
|
name = "argocd"
|
|
|
|
|
repository = "https://argoproj.github.io/argo-helm"
|
|
|
|
|
chart = "argo-cd"
|
|
|
|
|
namespace = "argocd"
|
|
|
|
|
create_namespace = true
|
|
|
|
|
|
|
|
|
|
set {
|
|
|
|
|
name = "configs.secret.argocdServerAdminPassword"
|
|
|
|
|
value = bcrypt(random_password.argocd_admin.result)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
depends_on = [talos_cluster_kubeconfig.this]
|
|
|
|
|
}
|