feat: update incus build process
All checks were successful
Build / build (pull_request) Successful in 20m34s

- ensure unkin-ca-certificates are installed
- find the default incus remote and use that for images
- dont set publish_remote_name
- build incus images for the base image
- build puppet-base image for incus only
- ensure builds are made with the `build` profile
- only build 9.5+ for incus
- prevent the build system from building images twice
This commit is contained in:
Ben Vincent 2025-04-23 22:42:26 +10:00
parent afceaa8618
commit be28558cff
9 changed files with 32 additions and 9 deletions

View File

@ -50,11 +50,11 @@ build {
post-processor "shell-local" { post-processor "shell-local" {
inline = [ inline = [
"incus image alias delete local:${local.incus_base_name}/latest || true", "incus image alias delete $(incus remote get-default):${local.incus_base_name}/latest || true",
"incus image alias delete local:${local.incus_base_name}/${var.date} || true", "incus image alias delete $(incus remote get-default):${local.incus_base_name}/${var.date} || true",
"incus image info local:${local.incus_output_image} | grep Fingerprint | awk '{print $2}'", "incus image info $(incus remote get-default):${local.incus_output_image} | grep Fingerprint | awk '{print $2}'",
"incus image alias create local:${local.incus_base_name}/latest $(incus image info local:${local.incus_output_image} | grep Fingerprint | awk '{print $2}')", "incus image alias create $(incus remote get-default):${local.incus_base_name}/latest $(incus image info $(incus remote get-default):${local.incus_output_image} | grep Fingerprint | awk '{print $2}')",
"incus image alias create local:${local.incus_base_name}/${var.date} $(incus image info local:${local.incus_output_image} | grep Fingerprint | awk '{print $2}')" "incus image alias create $(incus remote get-default):${local.incus_base_name}/${var.date} $(incus image info $(incus remote get-default):${local.incus_output_image} | grep Fingerprint | awk '{print $2}')"
] ]
} }
} }

View File

@ -12,7 +12,7 @@ fi
# Run `make all` if there are changes in builds/ # Run `make all` if there are changes in builds/
if [ -n "$builds_changes" ]; then if [ -n "$builds_changes" ]; then
echo "Changes detected in builds/. Running 'make all'..." echo "Changes detected in builds/. Running 'make all'..."
make all make all && exit 0 || exit 1
fi fi
# Run specific `make` commands for each changed file in images/ # Run specific `make` commands for each changed file in images/

View File

@ -1,7 +1,6 @@
# almalinux/8.10/base # almalinux/8.10/base
deploy_files_from_image = true deploy_files_from_image = true
deploy_files_from_common = true deploy_files_from_common = true
use_incus = false
packages = [ packages = [
"git", "git",
"jq", "jq",
@ -10,6 +9,7 @@ packages = [
"python3.11-pip", "python3.11-pip",
"python3.12", "python3.12",
"python3.12-pip", "python3.12-pip",
"unkin-ca-certificates",
"uv", "uv",
"wget", "wget",
] ]

View File

@ -1 +1,2 @@
docker docker
incus

View File

@ -1,7 +1,7 @@
# almalinux/9.5/base # almalinux/9.5/base
deploy_files_from_image = true deploy_files_from_image = true
deploy_files_from_common = true deploy_files_from_common = true
use_incus = false use_incus = true
packages = [ packages = [
"git", "git",
"jq", "jq",
@ -10,6 +10,7 @@ packages = [
"python3.11-pip", "python3.11-pip",
"python3.12", "python3.12",
"python3.12-pip", "python3.12-pip",
"unkin-ca-certificates",
"uv", "uv",
"wget", "wget",
] ]

View File

@ -0,0 +1 @@
incus

View File

@ -0,0 +1,4 @@
[puppet]
name=puppet repository
baseurl=https://packagerepo.service.consul/puppet7/el/9-daily/x86_64/os/
gpgkey=https://packagerepo.service.consul/puppet7/el/9-daily/x86_64/os/RPM-GPG-KEY-puppet-20250406

View File

@ -0,0 +1,16 @@
# almalinux/9.5/puppet-base
incus_source = "almalinux9/base/latest"
deploy_files_from_image = true
use_incus = true
packages = [
"puppet-agent",
"puppet-initial"
]
scripts_pre_packages = [
"dnf makecache",
"dnf update -y",
]
scripts_final = [
"dnf clean all",
"rm -rf /var/cache/dnf"
]

View File

@ -7,5 +7,5 @@ source "docker" "os" {
source "incus" "os" { source "incus" "os" {
image = var.incus_source image = var.incus_source
output_image = local.incus_output_image output_image = local.incus_output_image
publish_remote_name = "incus-images" profile = "build"
} }