Skip to content

gzamboni/zhome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZHOME Terraform automation

This repository contains the new terraform modules to configure my personal K8s cluster and all its applications installed.

TL;DR

  1. install asdf
    1. Install the following asdf plugins:
      • Python 3.11.3
      • golang 1.19.5
      • terraform 1.4.6
  2. install pre-commit
  3. configure pre-commit: pre-commit install
  4. install required tools

Module Documentation

Do not manually update README.md. README.md is automatically generated by pulling in content from other files.

Requirements

Name Version
terraform >=0.13
helm 2.10.1
kubectl 1.14.0
kubernetes 2.20.0
postgresql 1.20.0

Providers

No providers.

Modules

Name Source Version
dyndns ./dyndns n/a
helms ./helm n/a
n8n ./n8n n/a
postgresql ./postgresql n/a
qdrant ./qdrant_db n/a
zcluster ./zcluster n/a
zvault ./vaultwarden n/a

Resources

No resources.

Inputs

Name Description Type Default Required
cifs_backup_target value of the cifs backup server any n/a yes
default_smtp_config Object containing default SMTP configuration
object({
server = object({
host = string
port = string
security = string
timeout = string
helo_name = string
})
auth = object({
username = string
password = string
})
email_config = object({
from = string
from_name = string
embed_images = bool
})
})
n/a yes
google_dynamic_dns_fqdn The FQDN of the dynamic DNS record to update string n/a yes
google_dynamic_dns_password The password to use for dynamic DNS updates string n/a yes
google_dynamic_dns_username The username to use for dynamic DNS updates string n/a yes
k3s_config Object containing k3s configuration
object({
cluster_name = string
local_domain = string
context = string
nodes = map(object({
ip = string
type = string
}))
users = map(object({
username = string
password = string
}))
})
n/a yes
metallb_address_pool Defines the MetalLB address pool, a map of name and addresses (ip ranges or ip/mask)
object({
name = string
addresses = list(string)
})
n/a yes
vaultwarden_config Object containing vaultwarden configuration
object({
timezone = string
default_vault_domain = string
ingress_hosts = list(string)
allow_signups = bool
domain_white_list = list(string)
org_creation_users = list(string)
})
n/a yes
cifs_backup_password value of the cifs backup password string "backup" no
cifs_backup_user value of the cifs backup user string "backup" no
flowise_config Object containing flowise configuration
object({
enabled = bool
auth = object({
username = string
password = string
passphrase = string
})
ingress = object({
enabled = bool
hosts = object({
internal_hostname = string
external_hostname = string
})
})
database = object({
enabled = bool
port = number
username = string
password = string
database = string
})
})
{
"auth": {
"passphrase": "",
"password": "",
"username": "admin"
},
"database": {
"database": "flowise",
"enabled": false,
"password": "",
"port": 5432,
"username": ""
},
"enabled": false,
"ingress": {
"enabled": true,
"hosts": {
"external_hostname": "",
"internal_hostname": ""
}
}
}
no
kubeconfig Path to kubeconfig file string "~/.kube/config" no
postgresql_config values to pass to the postgresql chart
object({
enabled = bool
auth = object({
postgresPassword = string
})
})
{
"auth": {
"postgresPassword": ""
},
"enabled": false
}
no

Outputs

Name Description
postgresql_external_ip n/a
postgresql_service_host n/a

About

Just terraformed all my digital home services...

Resources

License

Stars

Watchers

Forks

Contributors

Languages