feat: initial commit

- have been working on this for some time now
This commit is contained in:
2025-05-30 22:36:55 +10:00
commit cb67816eee
188 changed files with 6145 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
almalinux/8/cloud:
remote: images
aliases:
- almalinux8
almalinux/9/cloud:
remote: images
aliases:
- almalinux9
+21
View File
@@ -0,0 +1,21 @@
brwan1:
type: bridge
config:
bridge.mtu: 1500
ipv4.nat: false
dns.mode: none
dns.domain: main.unkin.net
brcom1:
type: bridge
config:
bridge.mtu: 1500
ipv4.nat: false
dns.mode: none
dns.domain: main.unkin.net
brdmz1:
type: bridge
config:
bridge.mtu: 1500
ipv4.nat: false
dns.mode: none
dns.domain: main.unkin.net
+321
View File
@@ -0,0 +1,321 @@
# special devices
gpu:
description: "Pass-through Intel GPU"
project: null
config: {}
devices:
- type: gpu
name: intel_gpu
properties:
gputype: physical
vendorid: "8086"
uid: "0"
gid: "39"
mode: "0660"
gpu-render-only:
description: "Pass /dev/dri/renderD128 for headless VAAPI workloads"
project: null
config: {}
devices:
- type: unix-char
name: renderD128
properties:
source: /dev/dri/renderD128
path: /dev/dri/renderD128
uid: "0"
gid: "39"
mode: "0660"
kvm:
description: "Pass-through /dev/kvm to container"
project: null
config: {}
devices:
- type: unix-char
name: kvm
properties:
path: /dev/kvm
mode: "0666"
fuse:
description: "Pass-through /dev/fuse to container"
project: null
config: {}
devices:
- type: unix-char
name: fuse
properties:
path: /dev/fuse
mode: "0666"
kmsg:
description: "Pass-through /dev/kmsg to container"
project: null
config: {}
devices:
- type: unix-char
name: kmsg
properties:
path: /dev/kmsg
mode: "0660"
tun:
description: "Pass-through /dev/net/tun to container"
project: null
config: {}
devices:
- type: unix-char
name: tun
properties:
path: /dev/net/tun
mode: "0666"
sys_fs_rw:
description: "Enable read-write mount of the /sys filesystem"
project: null
config:
raw.lxc: |
lxc.mount.auto=sys:rw
devices: []
docker:
description: "Enable Docker inside unprivileged container"
project: null
config:
security.nesting: true
security.syscalls.intercept.mknod: true
security.syscalls.intercept.setxattr: true
linux.kernel_modules: overlay,ip_tables,br_netfilter,nf_nat,xt_conntrack
devices: []
# cephfs
shared_media_all:
description: "Mount /shared/media directly into the container"
project: null
config: {}
devices:
- type: disk
name: media-all
properties:
source: /shared/media
path: /shared/media
shared_media_movies:
description: "Mount /shared/media/movies directly into the container"
project: null
config: {}
devices:
- type: disk
name: media-movies
properties:
source: /shared/media/movies
path: /shared/media/movies
shared_media_tvseries:
description: "Mount /shared/media/tvseries directly into the container"
project: null
config: {}
devices:
- type: disk
name: media-tvseries
properties:
source: /shared/media/tvseries
path: /shared/media/tvseries
shared_apps_gitea:
description: "Mount /shared/apps/gitea directly into the container"
project: null
config: {}
devices:
- type: disk
name: gitea-shared
properties:
source: /shared/apps/gitea
path: /shared/apps/gitea
shared_apps_nomad:
description: "Mount /shared/apps/nomad directly into the container"
project: null
config: {}
devices:
- type: disk
name: nomad-shared
properties:
source: /shared/apps/nomad
path: /shared/apps/nomad
shared_apps_packagerepo:
description: "Mount /shared/apps/packagerepo directly into the container"
project: null
config: {}
devices:
- type: disk
name: packagerepo-shared
properties:
source: /shared/apps/packagerepo
path: /shared/apps/packagerepo
shared_apps_jellyfin:
description: "Mount /shared/apps/jellyfin directly into the container"
project: null
config: {}
devices:
- type: disk
name: jellyfin-shared
properties:
source: /shared/apps/jellyfin
path: /shared/apps/jellyfin
# storage
disk10:
description: "Add 10GB root disk"
project: null
config: {}
devices:
- type: disk
name: root
properties:
pool: fastpool
size: 10GB
path: /
disk20:
description: "Add 20GB root disk"
project: null
config: {}
devices:
- type: disk
name: root
properties:
pool: fastpool
size: 20GB
path: /
disk30:
description: "Add 30GB root disk"
project: null
config: {}
devices:
- type: disk
name: root
properties:
pool: fastpool
size: 30GB
path: /
# networking
net_wan1_eth0:
description: "Add eth0 on wan1 bridge"
project: null
config: {}
devices:
- type: nic
name: eth0
properties:
parent: brwan1
nictype: bridged
net_com1_eth0:
description: "Add eth0 on com1 bridge"
project: null
config: {}
devices:
- type: nic
name: eth0
properties:
parent: brcom1
nictype: bridged
net_com1_eth1:
description: "Add eth1 on com1 bridge"
project: null
config: {}
devices:
- type: nic
name: eth1
properties:
parent: brcom1
nictype: bridged
net_dmz1_eth0:
description: "Add eth0 on dmz1 bridge"
project: null
config: {}
devices:
- type: nic
name: eth0
properties:
parent: brdmz1
nictype: bridged
net_dmz1_eth1:
description: "Add eth1 on dmz1 bridge"
project: null
config: {}
devices:
- type: nic
name: eth1
properties:
parent: brdmz1
nictype: bridged
# cpu/memory
1core256:
description: "1 core, 256MB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 1
limits.memory: 256MB
limits.memory.enforce: hard
limits.memory.swap: false
devices: []
1core512:
description: "1 core, 512MB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 1
limits.memory: 512MB
limits.memory.enforce: hard
limits.memory.swap: false
1core1024:
description: "1 core, 1GB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 1
limits.memory: 1024MB
limits.memory.enforce: hard
limits.memory.swap: false
devices: []
2core1024:
description: "2 cores, 1GB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 2
limits.memory: 1024MB
limits.memory.enforce: hard
limits.memory.swap: false
devices: []
2core2048:
description: "2 cores, 2GB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 2
limits.memory: 2048MB
limits.memory.enforce: hard
limits.memory.swap: false
devices: []
2core4096:
description: "2 cores, 4GB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 2
limits.memory: 4096MB
limits.memory.enforce: hard
limits.memory.swap: false
devices: []
4core4096:
description: "4 cores, 4GB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 4
limits.memory: 4096MB
limits.memory.enforce: hard
limits.memory.swap: false
devices: []
4core8192:
description: "4 cores, 8GB RAM"
project: null
config:
boot.autostart: true
limits.cpu: 4
limits.memory: 8192MB
limits.memory.enforce: hard
limits.memory.swap: false
devices: []
+5
View File
@@ -0,0 +1,5 @@
fastpool:
driver: zfs
description: nvme backed zfs store
config:
source: fastpool/data/incus
+8
View File
@@ -0,0 +1,8 @@
imagestore:
pool: fastpool
description: location to store images
hashicorp-vault:
pool: fastpool
description: store passed to vault servers
config:
size: 20GB
+21
View File
@@ -0,0 +1,21 @@
locals {
puppet_cert_ca = get_env("PUPPET_CERT_CA")
puppet_cert_pub = get_env("PUPPET_CERT_PUB")
puppet_cert_priv = get_env("PUPPET_CERT_PRIV")
puppetdb_url = get_env("PUPPETDB_URL")
puppetca_url = get_env("PUPPETCA_URL")
cobbler_url = get_env("COBBLER_URL")
cobbler_password = get_env("COBBLER_PASSWORD")
cobbler_username = get_env("COBBLER_USERNAME")
}
inputs = {
puppet_cert_ca = local.puppet_cert_ca
puppet_cert_pub = local.puppet_cert_pub
puppet_cert_priv = local.puppet_cert_priv
puppetdb_url = local.puppetdb_url
puppetca_url = local.puppetca_url
cobbler_url = local.cobbler_url
cobbler_username = local.cobbler_username
cobbler_password = local.cobbler_password
}
@@ -0,0 +1,14 @@
description: Hashicorp Vault Server
cobbler_mgmt_classes:
- roles::infra::storage::vault
profiles:
- disk10
- net_com1_eth0
- 2core2048
disk_devices:
- name: hashicorp-vault
type: disk
properties:
path: /data
source: hashicorp-vault
pool: fastpool
@@ -0,0 +1,56 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
#before_hook "load_node_Venv" {
# commands = ["apply", "plan", "destroy", "init"]
# execute = ["bash", "-c", "../../../../../../ci/set_node_env.sh"]
#}
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,14 @@
description: Hashicorp Vault Server
cobbler_mgmt_classes:
- roles::infra::storage::vault
profiles:
- disk10
- net_com1_eth0
- 2core2048
disk_devices:
- name: hashicorp-vault
type: disk
properties:
path: /data
source: hashicorp-vault
pool: fastpool
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,14 @@
description: Hashicorp Vault Server
cobbler_mgmt_classes:
- roles::infra::storage::vault
profiles:
- disk10
- net_com1_eth0
- 2core2048
disk_devices:
- name: hashicorp-vault
type: disk
properties:
path: /data
source: hashicorp-vault
pool: fastpool
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,14 @@
description: Hashicorp Vault Server
cobbler_mgmt_classes:
- roles::infra::storage::vault
profiles:
- disk10
- net_com1_eth0
- 2core2048
disk_devices:
- name: hashicorp-vault
type: disk
properties:
path: /data
source: hashicorp-vault
pool: fastpool
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,14 @@
description: Hashicorp Vault Server
cobbler_mgmt_classes:
- roles::infra::storage::vault
profiles:
- disk10
- net_com1_eth0
- 2core2048
disk_devices:
- name: hashicorp-vault
type: disk
properties:
path: /data
source: hashicorp-vault
pool: fastpool
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Hashicorp Consul Server
cobbler_mgmt_classes:
- roles::infra::storage::consul
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
consul:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Hashicorp Consul Server
cobbler_mgmt_classes:
- roles::infra::storage::consul
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
consul:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Hashicorp Consul Server
cobbler_mgmt_classes:
- roles::infra::storage::consul
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
consul:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Hashicorp Consul Server
cobbler_mgmt_classes:
- roles::infra::storage::consul
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
consul:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Hashicorp Consul Server
cobbler_mgmt_classes:
- roles::infra::storage::consul
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
consul:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: PuppetDB API
cobbler_mgmt_classes:
- roles::infra::puppetdb::api
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: PuppetDB API
cobbler_mgmt_classes:
- roles::infra::puppetdb::api
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: PuppetDB API
cobbler_mgmt_classes:
- roles::infra::puppetdb::api
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: Puppetboard
cobbler_mgmt_classes:
- roles::infra::puppetboard::server
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: Puppetboard
cobbler_mgmt_classes:
- roles::infra::puppetboard::server
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: Grafana
cobbler_mgmt_classes:
- roles::infra::metrics::grafana
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: Grafana
cobbler_mgmt_classes:
- roles::infra::metrics::grafana
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: LDAP Server
cobbler_mgmt_classes:
- roles::infra::auth::glauth
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: LDAP Server
cobbler_mgmt_classes:
- roles::infra::auth::glauth
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: LDAP Server
cobbler_mgmt_classes:
- roles::infra::auth::glauth
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: SSH Jumphost
cobbler_mgmt_classes:
- roles::infra::proxy::jumphost
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: SSH Jumphost
cobbler_mgmt_classes:
- roles::infra::proxy::jumphost
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,7 @@
description: SSH Jumphost
cobbler_mgmt_classes:
- roles::infra::proxy::jumphost
profiles:
- disk10
- net_com1_eth0
- 2core2048
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,17 @@
description: Gitea Runner
cobbler_mgmt_classes:
- roles::infra::git::runner
profiles:
- disk10
- net_com1_eth0
- 4core8192
- fuse
- kmsg
- tun
- docker
storage_volumes:
gitea_runner:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,17 @@
description: Gitea Runner
cobbler_mgmt_classes:
- roles::infra::git::runner
profiles:
- disk10
- net_com1_eth0
- 4core8192
- fuse
- kmsg
- tun
- docker
storage_volumes:
gitea_runner:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,17 @@
description: Gitea Runner
cobbler_mgmt_classes:
- roles::infra::git::runner
profiles:
- disk10
- net_com1_eth0
- 4core8192
- fuse
- kmsg
- tun
- docker
storage_volumes:
gitea_runner:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Nomad Server
cobbler_mgmt_classes:
- roles::infra::nomad::server
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
nomad_server:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Nomad Server
cobbler_mgmt_classes:
- roles::infra::nomad::server
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
nomad_server:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Nomad Server
cobbler_mgmt_classes:
- roles::infra::nomad::server
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
nomad_server:
pool: fastpool
path: /data
config:
size: 20GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Bind Authoritative Server
cobbler_mgmt_classes:
- roles::infra::dns::master
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Bind Authoritative Server
cobbler_mgmt_classes:
- roles::infra::dns::master
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Bind Authoritative Server
cobbler_mgmt_classes:
- roles::infra::dns::master
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Bind Open-Resolver Server
cobbler_mgmt_classes:
- roles::infra::dns::resolver
profiles:
- disk10
- net_dmz1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Bind Open-Resolver Server
cobbler_mgmt_classes:
- roles::infra::dns::resolver
profiles:
- disk10
- net_dmz1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Bind Open-Resolver Server
cobbler_mgmt_classes:
- roles::infra::dns::resolver
profiles:
- disk10
- net_dmz1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Gonic Music Server
cobbler_mgmt_classes:
- roles::apps::music::gonic
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Gonic Music Server
cobbler_mgmt_classes:
- roles::apps::music::gonic
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,8 @@
description: Gonic Music Server
cobbler_mgmt_classes:
- roles::apps::music::gonic
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes: {}
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Prometheus
cobbler_mgmt_classes:
- roles::infra::metrics::prometheus
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
prometheus:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,13 @@
description: Prometheus
cobbler_mgmt_classes:
- roles::infra::metrics::prometheus
profiles:
- disk10
- net_com1_eth0
- 2core2048
storage_volumes:
prometheus:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,19 @@
description: Nomad Agent
cobbler_mgmt_classes:
- roles::infra::nomad::agentv2
profiles:
- disk20
- net_com1_eth0
- 4core4096
- fuse
- kmsg
- tun
- docker
- shared_apps_nomad
- shared_media_all
storage_volumes:
nomad-local:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,19 @@
description: Nomad Agent
cobbler_mgmt_classes:
- roles::infra::nomad::agentv2
profiles:
- disk20
- net_com1_eth0
- 4core4096
- fuse
- kmsg
- tun
- docker
- shared_apps_nomad
- shared_media_all
storage_volumes:
nomad-local:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,19 @@
description: Nomad Agent
cobbler_mgmt_classes:
- roles::infra::nomad::agentv2
profiles:
- disk20
- net_com1_eth0
- 4core4096
- fuse
- kmsg
- tun
- docker
- shared_apps_nomad
- shared_media_all
storage_volumes:
nomad-local:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0011"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,19 @@
description: Nomad Agent
cobbler_mgmt_classes:
- roles::infra::nomad::agentv2
profiles:
- disk20
- net_com1_eth0
- 4core4096
- fuse
- kmsg
- tun
- docker
- shared_apps_nomad
- shared_media_all
storage_volumes:
nomad-local:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0012"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,19 @@
description: Nomad Agent
cobbler_mgmt_classes:
- roles::infra::nomad::agentv2
profiles:
- disk20
- net_com1_eth0
- 4core4096
- fuse
- kmsg
- tun
- docker
- shared_apps_nomad
- shared_media_all
storage_volumes:
nomad-local:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0013"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,14 @@
description: NZBGet
cobbler_mgmt_classes:
- roles::apps::media::nzbget
profiles:
- disk20
- net_com1_eth0
- 4core4096
- shared_media_all
storage_volumes:
data:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0009"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}
@@ -0,0 +1,14 @@
description: Sonarr
cobbler_mgmt_classes:
- roles::apps::media::sonarr
profiles:
- disk20
- net_com1_eth0
- 2core4096
- shared_media_all
storage_volumes:
data:
pool: fastpool
path: /data
config:
size: 50GB
@@ -0,0 +1,52 @@
locals {
node_name = "prodnxsr0010"
config_common = yamldecode(file("${get_terragrunt_dir()}/../config_common.yaml"))
config_specific = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
config = merge(local.config_common, local.config_specific)
instance_name = basename(get_terragrunt_dir())
}
inputs = merge(
{
name = local.instance_name
},
local.config
)
include "root" {
path = find_in_parent_folders("root.hcl")
}
include "instances" {
path = find_in_parent_folders("instances.hcl")
expose = true
merge_strategy = "deep"
}
dependencies {
paths = ["${get_repo_root()}/config/nodes/${local.node_name}"]
}
terraform {
source = "${get_repo_root()}/modules/instance"
}
generate "incus" {
path = "incus.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
name = "${basename(get_terragrunt_dir())}"
scheme = "https"
address = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_addr}"
port = "${yamldecode(file("${get_repo_root()}/config/nodes/${local.node_name}/config.yaml")).node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}

Some files were not shown because too many files have changed in this diff Show More