resource "vault_kv_secret_v2" "minecraft" { mount = vault_mount.secret.path name = "minecraft/server" data_json_wo_version = 1 data_json_wo = jsonencode({ EULA = "PLACEHOLDER" FTB_MODPACK_ID = "PLACEHOLDER" FTB_MODPACK_VERSION_ID = "PLACEHOLDER" MEMORY = "PLACEHOLDER" JVM_OPTS = "PLACEHOLDER" }) } resource "vault_kv_secret_v2" "minecraft_files" { mount = vault_mount.secret.path name = "minecraft/files" data_json_wo_version = 1 data_json_wo = jsonencode({ "server.properties" = "PLACEHOLDER" }) } resource "vault_policy" "minecraft" { name = "minecraft" policy = <<-EOT path "secret/data/minecraft/server" { capabilities = ["read"] } path "secret/data/quay/oauth/project-delivery-reader" { capabilities = ["read"] } path "secret/data/minecraft/files" { capabilities = ["read"] } path "secret/data/minecraft/rcon" { capabilities = ["read"] } path "secret/data/versitygw/users/minecraft" { capabilities = ["read"] } path "secret/data/ca/internal" { capabilities = ["read"] } EOT } resource "vault_kv_secret_v2" "minecraft_s3" { mount = vault_mount.secret.path name = "versitygw/users/minecraft" data_json_wo_version = 1 data_json_wo = jsonencode({ secretAccessKey = "PLACEHOLDER" }) } resource "vault_kv_secret_v2" "minecraft_rcon" { mount = vault_mount.secret.path name = "minecraft/rcon" data_json_wo_version = 1 data_json_wo = jsonencode({ password = "PLACEHOLDER" }) } resource "vault_kubernetes_auth_backend_role" "minecraft" { backend = vault_auth_backend.kubernetes.path role_name = "minecraft" bound_service_account_names = ["minecraft-vso"] bound_service_account_namespaces = ["minecraft"] token_policies = [vault_policy.minecraft.name] token_ttl = 3600 token_max_ttl = 3600 }