feat: add ausyd1nxvm2062 as image host #4

Merged
unkinben merged 1 commits from benvin/add_incus_remote_node into master 2025-06-08 22:19:14 +10:00
7 changed files with 99 additions and 0 deletions

View File

@ -0,0 +1,3 @@
---
node_addr: 198.18.27.62
node_port: 8443

View File

@ -0,0 +1,8 @@
almalinux/8/cloud:
remote: images
aliases:
- almalinux8
almalinux/9/cloud:
remote: images
aliases:
- almalinux9

View File

@ -0,0 +1,8 @@
brcom1:
type: bridge
config:
bridge.mtu: 1500
ipv4.address: 10.255.255.1/24
ipv4.nat: true
dns.mode: none
dns.domain: main.unkin.net

View File

@ -0,0 +1,22 @@
# build profile
build:
description: "profile to use when building images"
project: null
config:
boot.autostart: true
limits.cpu: 1
limits.memory: 1024MB
limits.memory.enforce: hard
limits.memory.swap: true
devices:
- type: nic
name: eth0
properties:
parent: brcom1
nictype: bridged
- type: disk
name: root
properties:
pool: fastpool
size: 10GB
path: /

View File

@ -0,0 +1,5 @@
fastpool:
driver: dir
description: nvme backed pool
config:
source: /var/lib/incus/storage-pools/fastpool

View File

@ -0,0 +1,3 @@
imagestore:
pool: fastpool
description: location to store images

View File

@ -0,0 +1,50 @@
locals {
config = yamldecode(file("${get_terragrunt_dir()}/config.yaml"))
local_images = yamldecode(file("${get_terragrunt_dir()}/images.yaml"))
local_networks = yamldecode(file("${get_terragrunt_dir()}/networks.yaml"))
local_profiles = yamldecode(file("${get_terragrunt_dir()}/profiles.yaml"))
local_storage_pools = yamldecode(file("${get_terragrunt_dir()}/storage_pools.yaml"))
local_storage_volumes = yamldecode(file("${get_terragrunt_dir()}/storage_volumes.yaml"))
node_name = basename(get_terragrunt_dir())
}
# on the image server we want to use localised settings mostly, not all the globals
# dont deep merge
include "root" {
path = find_in_parent_folders("root.hcl")
}
terraform {
source = "${get_repo_root()}/modules/node"
}
inputs = {
images = local.local_images
networks = local.local_networks
profiles = local.local_profiles
storage_pools = local.local_storage_pools
storage_volumes = local.local_storage_volumes
node_name = local.node_name
node_addr = local.config.node_addr
node_port = local.config.node_port
}
generate "provider" {
path = "provider.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 = "${local.config.node_addr}"
port = "${local.config.node_port}"
token = "${get_env("INCUS_TOKEN_${upper(local.node_name)}")}"
default = true
}
}
EOF
}