Restructure and variablize config

This commit is contained in:
Ian Keane 2026-08-18 10:00:53 -04:00
parent 419bb286d4
commit c6eed359e1
14 changed files with 122 additions and 28 deletions

View file

@ -5,10 +5,10 @@ resource "random_password" "argocd_admin" {
override_special = "!#$%&*()-_=+[]{}?"
}
# Single secrets manager secret for all dumpnet secrets
# Single secrets manager secret for all cluster secrets
resource "aws_secretsmanager_secret" "dumpnet" {
name = "dumpnet"
description = "All dumpnet secrets"
name = var.cluster_name
description = "All ${var.cluster_name} secrets"
}
resource "aws_secretsmanager_secret_version" "dumpnet" {

View file

@ -1,6 +1,6 @@
# S3 bucket for logs
resource "aws_s3_bucket" "logs" {
bucket = "dumpnet-logs"
bucket = "${var.cluster_name}-logs"
}
resource "aws_s3_bucket_lifecycle_configuration" "logs" {
@ -10,7 +10,9 @@ resource "aws_s3_bucket_lifecycle_configuration" "logs" {
id = "expire-old-logs"
status = "Enabled"
filter {}
filter {
prefix = ""
}
transition {
days = 30
@ -34,16 +36,16 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "logs" {
# Athena database + workgroup
resource "aws_athena_database" "logs" {
name = "dumpnet_logs"
name = "${replace(var.cluster_name, "-", "_")}_logs"
bucket = aws_s3_bucket.athena_results.bucket
}
resource "aws_s3_bucket" "athena_results" {
bucket = "dumpnet-athena-results"
bucket = "${var.cluster_name}-athena-results"
}
resource "aws_athena_workgroup" "logs" {
name = "dumpnet-logs"
name = "${var.cluster_name}-logs"
configuration {
result_configuration {
@ -58,7 +60,7 @@ resource "aws_athena_workgroup" "logs" {
# IAM user for fluent-bit to write to S3
resource "aws_iam_user" "fluentbit" {
name = "dumpnet-fluentbit"
name = "${var.cluster_name}-fluentbit"
}
resource "aws_iam_access_key" "fluentbit" {

View file

@ -3,5 +3,5 @@ output "public_ip" {
}
output "argocd_password_secret" {
value = "aws secretsmanager get-secret-value --secret-id dumpnet/cluster --query SecretString --output text | python3 -m json.tool"
value = "aws secretsmanager get-secret-value --secret-id ${var.cluster_name} --query SecretString --output text | python3 -m json.tool"
}

View file

@ -3,7 +3,8 @@ variable "talos_version" {
}
variable "cluster_name" {
default = "dumpnet"
description = "Name used for cluster resources, S3 buckets, secrets, etc."
default = "dumpnet"
}
variable "instance_type" {
@ -19,8 +20,13 @@ variable "ami_id" {
default = "ami-000f1b0ad9d8ceafd"
}
variable "aws_region" {
description = "AWS region"
default = "us-east-1"
}
variable "hosted_zone_id" {
description = "Route53 hosted zone ID for dumpnet.chat"
description = "Route53 hosted zone ID"
}
variable "domain" {
@ -33,3 +39,13 @@ variable "dns_records" {
type = list(string)
default = ["argocd"]
}
variable "cert_manager_email" {
description = "Email for Let's Encrypt certificate notifications"
default = "dumpnetcerts@keane.sh"
}
variable "state_bucket" {
description = "S3 bucket for Terraform remote state (set in backend config, documented here for reference)"
default = "iankeane-tfstate"
}