Merge pull request 'benvin/packagerepo' (#3) from benvin/packagerepo into master

Reviewed-on: https://git.query.consul/unkin/terraform-incus/pulls/3
This commit is contained in:
Ben Vincent 2025-06-01 13:40:34 +10:00
commit 9be707c638
10 changed files with 268 additions and 3 deletions

View File

@ -0,0 +1,14 @@
description: reposync syncer
cobbler_mgmt_classes:
- roles::infra::reposync::syncer
profiles:
- disk10
- net_com1_eth0
- 2core4096
- shared_apps_packagerepo
storage_volumes:
data:
pool: fastpool
path: /data
config:
size: 50GB

View File

@ -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
}

View File

@ -0,0 +1,14 @@
description: reposync repo
cobbler_mgmt_classes:
- roles::infra::reposync::repo
profiles:
- disk10
- net_com1_eth0
- 2core2048
- shared_apps_packagerepo
storage_volumes:
data:
pool: fastpool
path: /data
config:
size: 50GB

View File

@ -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
}

View File

@ -0,0 +1,14 @@
description: reposync repo
cobbler_mgmt_classes:
- roles::infra::reposync::repo
profiles:
- disk10
- net_com1_eth0
- 2core2048
- shared_apps_packagerepo
storage_volumes:
data:
pool: fastpool
path: /data
config:
size: 50GB

View File

@ -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
}

View File

@ -0,0 +1,14 @@
description: reposync repo
cobbler_mgmt_classes:
- roles::infra::reposync::repo
profiles:
- disk10
- net_com1_eth0
- 2core2048
- shared_apps_packagerepo
storage_volumes:
data:
pool: fastpool
path: /data
config:
size: 50GB

View File

@ -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
}

View File

@ -7,6 +7,6 @@
# }
#}
output "hostname" {
value = "${var.name}.${var.cobbler_domain}"
}
#output "hostname" {
# value = "${var.name}.${var.cobbler_domain}"
#}

View File

@ -73,6 +73,7 @@ variables:
- roles::infra::puppetboard::server
- roles::infra::puppetdb::api
- roles::infra::puppetdb::sql
- roles::infra::reposync::repo
- roles::infra::reposync::syncer
- roles::infra::sql::galera
- roles::infra::sql::patroni