5 Commits
Author SHA1 Message Date
pi-ux-ce 85026544e8 can create new entries with random password not erased after new excution 2025-05-26 23:35:23 +01:00
pi-ux-ce 810fa2951a Update module.tf 2025-05-26 22:07:55 +00:00
pi-ux-ce 9f83ec215b try some bitwarden function 2025-05-20 23:56:32 +01:00
pi-ux-ce cbf2a33440 adding 2025-05-20 23:22:26 +01:00
pi-ux-ce 3ff155e3e6 multiport + naming 2025-05-18 00:29:58 +01:00
2 changed files with 81 additions and 16 deletions
+52 -2
View File
@@ -1,11 +1,59 @@
terraform {
required_version = "> 0.8.0"
required_providers {
bitwarden = {
source = "maxlaverse/bitwarden"
version = ">= 0.13.6"
}
}
}
provider "kubernetes" {
config_path = "~/.kube/config"
}
provider "bitwarden" {
email = "pierre@geeraert.eu"
master_password = ""
server = "https://bitwarden.tryton.geeraert.eu"
experimental {
embedded_client = true
}
}
#https://stackoverflow.com/questions/66670949/how-to-tell-terraform-to-skip-the-secret-manager-resource-if-it-exists
#for the secret not overwritten (not tested)
data "bitwarden_item_login" "example" {
search = "bookstack.zeus.geeraert.eu"
}
data "bitwarden_item_secure_note" "vpn_preshared_key" {
search = "terraform testing"
}
output "pgpin" {
value = nonsensitive(coalesce(data.bitwarden_item_secure_note.vpn_preshared_key.field.1.hidden,1234))
sensitive = true
}
resource "random_password" "password" {
length = 16
special = true
override_special = "!#$%&*()-_=+[]{}<>:?"
}
resource "bitwarden_item_secure_note" "terraform_upload_testing" {
name = "terraform upload testing"
# notes = <<EOT
#[global]
#secret = "<something sensitive>"
#EOT
organization_id = "a6361589-badd-4bde-9cb4-af8901161c0d"
collection_ids = ["3fa902cd-8244-46bc-a4ea-af8901262d94"]
field {
name = "category"
hidden = random_password.password.result
}
}
variable "kubernetes" {
type = map(object({
@@ -118,7 +166,7 @@ locals {
])
}
resource "kubernetes_manifest" "service" {
resource "kubernetes_manifest" "manifest" {
for_each = { for item in local.kubernetes_manifests : item.key => item }
manifest = yamldecode(file(each.value.manifest))
@@ -210,6 +258,7 @@ resource "kubernetes_service" "automatic_service" {
content {
port = port.value
target_port = port.value
name = replace("${each.key}${port.value}", "/(.{0,15})(.*)/", "$1")
}
}
@@ -310,7 +359,8 @@ resource "kubernetes_deployment_v1" "automatic" {
for_each = each.value.service_port != null ? each.value.service_port : []
content {
container_port = port.value
name = "${each.key}-${port.value}"
# name = "${each.key}-${port.value}"
name = replace("${each.key}${port.value}", "/(.{0,15})(.*)/", "$1")
}
}
+27 -12
View File
@@ -6,18 +6,18 @@ kubernetes = {
extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml", "/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"]
#image = "linuxserver/bookstack:24.10.3"
image = "linuxserver/bookstack:latest"
service_port = [80,443]
service_port = [80, 443]
database = {
"image" = "lscr.io/linuxserver/mariadb"
"port" = 3306
"mountPath" = "/config"
}
# requirements = {
# limits-cpu = "18m"
# limits-memory = "100Mi"
# requests-cpu = "10m"
# requests-memory = "70Mi"
# }
# requirements = {
# limits-cpu = "18m"
# limits-memory = "100Mi"
# requests-cpu = "10m"
# requests-memory = "70Mi"
# }
secret_ref = ["bookstack-credentials"]
config_map_ref = ["config"]
@@ -198,7 +198,7 @@ kubernetes = {
dns_nameservers = "10.2.0.1"
replicas = 01
image = "qmcgaw/gluetun:latest"
service_port = 8888
service_port = [8888]
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/gluetun/gluetun-secret-netherland.yaml"]
security_context = true
# requirements = {
@@ -896,7 +896,7 @@ kubernetes = {
namespace = "servarr"
#replicas = 0
# dns_nameservers = "10.2.0.1"
service_port = 9696
service_port = [9696]
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/servarr/servarr-db.secret.yaml"]
database = {}
@@ -940,6 +940,21 @@ kubernetes = {
}
pvc = {
prowlarr-config = {
name = "prowlarr-config"
pvc_size = "10Mi"
pvc = true
mount_path = "/config"
}
servarr-data = {
name = "servarr-data"
pvc_size = "10Mi"
pvc = false
host_path = "/data"
mount_path = "/disk"
}
}
}
@@ -1032,7 +1047,7 @@ kubernetes = {
#enabled = false
image = "lscr.io/linuxserver/qbittorrent:latest"
connected_namespace = "servarr"
service_port = 8080
service_port = [8080]
environment = {
PUID = {
@@ -1110,7 +1125,7 @@ kubernetes = {
poste = {
enabled = false
image = "analogic/poste.io:latest"
service_port = [443]
service_port = [25,80,110,143,443,465,587,993,995,4190]
environment = {
PUID = {
@@ -1144,7 +1159,7 @@ kubernetes = {
wikijs = {
#enabled = false
image = "ghcr.io/requarks/wiki:2.5"
service_port = 3000
service_port = [3000]
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/wikijs/wikijs-db.secret.yaml"]
database = {}
environment = {