working on terraform with bitwarden with success
This commit is contained in:
@@ -1,5 +1,12 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = "> 0.8.0"
|
required_version = "> 0.8.0"
|
||||||
|
required_providers {
|
||||||
|
bitwarden-secrets = {
|
||||||
|
source = "bitwarden/bitwarden-secrets"
|
||||||
|
version = "0.5.4-pre"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "kubernetes" {
|
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" {
|
variable "kubernetes" {
|
||||||
type = map(object({
|
type = map(object({
|
||||||
name = optional(string)
|
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)
|
namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key)
|
||||||
labels = {
|
labels = {
|
||||||
deployment_method = "Terraform"
|
deployment_method = "Terraform"
|
||||||
|
#username = "${resource.bitwarden-secrets_secret.automatic_bitwarden_secret_password[each.key].key}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spec {
|
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
|
||||||
|
#}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user