Skip to content

[Terraform] Templatize Vault paths in vault-config module #12

Description

@colek42

Problem

The vault-config Terraform module has hardcoded Vault paths for RDS and application secrets, making it impossible to deploy across different environments.

Current State

# Lines 102, 114 in modules/vault-config/main.tf
resource "vault_kv_secret_v2" "rds_secrets" {
  mount = vault_mount.kv.path
  name  = "demo/kubernetes/rds/testifysec-judge"  # HARDCODED
  ...
}

resource "vault_kv_secret_v2" "app_secrets" {
  mount = vault_mount.kv.path
  name  = "demo/kubernetes/app/testifysec-judge"  # HARDCODED
  ...
}

Also hardcoded in Vault policies (lines 139-178).

Desired State

Make paths configurable:

variable "vault_env" {
  default = "demo"  # Override for staging/prod
}

variable "vault_project" {
  default = "testifysec-judge"
}

resource "vault_kv_secret_v2" "rds_secrets" {
  mount = vault_mount.kv.path
  name  = "${var.vault_env}/kubernetes/rds/${var.vault_project}"
  ...
}

Files to Update

  • modules/vault-config/main.tf - Add variables for vault_env and vault_project
  • modules/vault-config/variables.tf - Define variables
  • All hardcoded paths in vault policies

Impact

  • High Priority: Required for multi-environment deployments
  • Matches Helm chart templating requirements

Labels

  • enhancement
  • terraform
  • vault

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions