diff --git a/module.tf b/module.tf index 6636f61..1b405b9 100644 --- a/module.tf +++ b/module.tf @@ -1,5 +1,12 @@ terraform { required_version = "> 0.8.0" + required_providers { + bitwarden-secrets = { + source = "bitwarden/bitwarden-secrets" + version = "0.5.4-pre" + } + } + } provider "kubernetes" { @@ -7,6 +14,13 @@ provider "kubernetes" { } +provider "bitwarden-secrets" { + api_url = "https://bitwarden.tryton.geeraert.eu/api" + identity_url = "https://bitwarden.tryton.geeraert.eu/identity" + access_token = "0.716253cf-61a8-4d60-9116-b3ec00bf67b1.yRfbBN649M3DwG0TVQJO0w9m89mN1l:69GrWDDy6awetvPwQe/V8A==" + organization_id = "a6361589-badd-4bde-9cb4-af8901161c0d" +} + variable "kubernetes" { type = map(object({ name = optional(string) @@ -262,6 +276,7 @@ resource "kubernetes_service_v1" "automatic_service_database" { namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key) labels = { deployment_method = "Terraform" + #username = "${resource.bitwarden-secrets_secret.automatic_bitwarden_secret_password[each.key].key}" } } spec { @@ -790,3 +805,69 @@ resource "kubernetes_config_map_v1" "automatic-configmap" { } } + +data "bitwarden-secrets_secret" "secret" { + id = "fee7431a-9f6d-478e-8ee0-b3e800c394b5" +} + +output "example" { + value = { + id = data.bitwarden-secrets_secret.secret.id + key = data.bitwarden-secrets_secret.secret.key + value = data.bitwarden-secrets_secret.secret.value #The actual secret value is marked sensitive and will not be printed to stdout + note = data.bitwarden-secrets_secret.secret.note + project_id = data.bitwarden-secrets_secret.secret.project_id + organization_id = data.bitwarden-secrets_secret.secret.organization_id + creation_date = data.bitwarden-secrets_secret.secret.creation_date + revision_date = data.bitwarden-secrets_secret.secret.revision_date + } + sensitive = true +} + + + +resource "kubernetes_config_map_v1_data" "tf-bw-configmap" { + metadata { + name = "bitwarden-terraform" + namespace = "echo-server" + } + + data = yamldecode(data.bitwarden-secrets_secret.secret.value) + #data = data.bitwarden-secrets_secret.secret.value + +} + +resource "bitwarden-secrets_secret" "automatic_bitwarden_secret_username" { + for_each = { for key, value in var.kubernetes : key => value if value.database != null && value.enabled == true } + key = "${each.key}__db__username" + value = each.key + project_id = "b5fc4c48-e951-442f-97ca-b3e800c143cd" + length = 32 + special = true + min_special = 5 + avoid_ambiguous = true +} + +resource "bitwarden-secrets_secret" "automatic_bitwarden_secret_password" { + for_each = { for key, value in var.kubernetes : key => value if value.database != null && value.enabled == true } + key = "${each.key}__db__password" + project_id = "b5fc4c48-e951-442f-97ca-b3e800c143cd" + length = 32 + special = true + min_special = 5 + avoid_ambiguous = true +} + +#output "fromressource" { +# #for_each = { for key, value in var.kubernetes : key => value if value.database != null && value.enabled == true } +# value = { + +# #id = resource.bitwarden-secrets_secret.automatic_bitwarden_secret_password.{each.key}.id +# key = resource.bitwarden-secrets_secret.automatic_bitwarden_secret_password."[each.key]".id +# #value = resource.bitwarden-secrets_secret.automatic_bitwarden_secret_password.{each.key}.value #The actual secret value is marked sensitive and will not be printed to stdout +# } +# sensitive = true +#} + + +