Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config/golden-image-container-integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ schema_version: 1

image:
type: container
alias: nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b17
alias: nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b18
current_alias: nddev-ubuntu-24.04-amd64-container-docker-current
previous_alias: nddev-ubuntu-24.04-amd64-container-docker-previous
source_alias: nddev-source-ubuntu-24.04-amd64-container-r20260801
Expand Down
2 changes: 1 addition & 1 deletion config/golden-image-container.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ schema_version: 1

image:
type: container
alias: nddev-ubuntu-24.04-amd64-container-runner-2.336.0-r20260801-b23
alias: nddev-ubuntu-24.04-amd64-container-runner-2.336.0-r20260801-b24
current_alias: nddev-ubuntu-24.04-amd64-container-current
previous_alias: nddev-ubuntu-24.04-amd64-container-previous
source_alias: nddev-source-ubuntu-24.04-amd64-container-r20260801
Expand Down
2 changes: 1 addition & 1 deletion config/golden-image-integration.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
schema_version: 1

image:
alias: nddev-ubuntu-24.04-amd64-docker-runner-2.336.0-r20260801-b18
alias: nddev-ubuntu-24.04-amd64-docker-runner-2.336.0-r20260801-b19
current_alias: nddev-ubuntu-24.04-amd64-docker-current
previous_alias: nddev-ubuntu-24.04-amd64-docker-previous
source_alias: nddev-source-ubuntu-24.04-amd64-r20260801
Expand Down
2 changes: 1 addition & 1 deletion config/golden-image.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
schema_version: 1

image:
alias: nddev-ubuntu-24.04-amd64-runner-2.336.0-r20260801-b19
alias: nddev-ubuntu-24.04-amd64-runner-2.336.0-r20260801-b20
current_alias: nddev-ubuntu-24.04-amd64-current
previous_alias: nddev-ubuntu-24.04-amd64-previous
source_alias: nddev-source-ubuntu-24.04-amd64-r20260801
Expand Down
10 changes: 5 additions & 5 deletions internal/garmbootstrap/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,17 @@ const (
DefaultPoolBalancerType = "roundrobin"
DefaultProviderName = "nddev-incus"
DefaultImage = "nddev-ubuntu-24.04-amd64-container-current"
IntegrationImage = "nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b17"
PriorityStandardImage = "nddev-ubuntu-24.04-amd64-container-runner-2.336.0-r20260801-b23"
PriorityIntegrationImage = "nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b17"
IntegrationImage = "nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b18"
PriorityStandardImage = "nddev-ubuntu-24.04-amd64-container-runner-2.336.0-r20260801-b24"
PriorityIntegrationImage = "nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b18"
// Every Linux class is an ephemeral Incus container. Docker-capable classes
// use their nested-runtime image; release uses a separately stage-smoked
// standard image so OIDC authority does not inherit Docker/nesting.
FastImage = ContainerCanaryImage
UntrustedImage = IntegrationImage
ReleaseImage = "nddev-ubuntu-24.04-amd64-container-runner-2.336.0-r20260801-b23"
ReleaseImage = "nddev-ubuntu-24.04-amd64-container-runner-2.336.0-r20260801-b24"
ContainerCanaryImage = "nddev-ubuntu-24.04-amd64-container-current"
DockerContainerCanaryImage = "nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b17"
DockerContainerCanaryImage = "nddev-u24-amd64-ctr-docker-runner-2.336.0-r20260801-b18"
DefaultFlavor = "nddev-linux-standard"
IntegrationFlavor = "nddev-linux-integration"
FastFlavor = "nddev-linux-fast"
Expand Down
7 changes: 4 additions & 3 deletions internal/imagebuild/assets/provision.sh
Original file line number Diff line number Diff line change
Expand Up @@ -422,14 +422,15 @@ for toolchain_name in "${toolchain_names[@]}"; do
"/opt/hostedtoolcache/Python/${toolchain_version}/x64.complete"
ln -sfn "/opt/hostedtoolcache/Python/${toolchain_version}" "${python_runner_root}"
chown -h runner:runner "${python_runner_root}"
for executable in python python3 pip pip3; do
# Keep python3/pip3 on Ubuntu's interpreter. Host automation imports
# apt-owned modules from it; replacing that command with the project
# interpreter makes a fully provisioned image less compatible, not more.
for executable in python pip; do
target="${python_hosted_root}/bin/${executable}"
if [[ ! -e "${target}" ]]; then
case "${executable}" in
python) target="${python_hosted_root}/bin/python3.14" ;;
python3) target="${python_hosted_root}/bin/python3.14" ;;
pip) target="${python_hosted_root}/bin/pip3.14" ;;
pip3) target="${python_hosted_root}/bin/pip3.14" ;;
esac
fi
ln -sfn "${target}" "/usr/local/bin/${executable}"
Expand Down
2 changes: 2 additions & 0 deletions internal/imagebuild/assets/smoke-integration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,8 @@ for smoke_toolchain in "${smoke_toolchain_names[@]}"; do
[[ "$(runuser -u runner -- env HOME=/home/runner "${python_hosted_root}/bin/python3.14" --version)" == "Python ${expected_version}" ]]
runuser -u runner -- env HOME=/home/runner "${python_hosted_root}/bin/python3.14" -m pip --version >/dev/null
[[ "$(python --version)" == "Python ${expected_version}" ]]
[[ "$(python3 --version)" == "Python 3.12."* ]]
python3 -m pip --version >/dev/null
;;
pnpm) [[ "$(pnpm --version)" == "${expected_version}" ]] ;;
rustup)
Expand Down
2 changes: 2 additions & 0 deletions internal/imagebuild/assets/smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,8 @@ for smoke_toolchain in "${smoke_toolchain_names[@]}"; do
[[ "$(runuser -u runner -- env HOME=/home/runner "${python_hosted_root}/bin/python3.14" --version)" == "Python ${expected_version}" ]]
runuser -u runner -- env HOME=/home/runner "${python_hosted_root}/bin/python3.14" -m pip --version >/dev/null
[[ "$(python --version)" == "Python ${expected_version}" ]]
[[ "$(python3 --version)" == "Python 3.12."* ]]
python3 -m pip --version >/dev/null
;;
pnpm) [[ "$(pnpm --version)" == "${expected_version}" ]] ;;
rustup)
Expand Down
2 changes: 1 addition & 1 deletion internal/imagebuild/orchestrator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ func TestRecipeFingerprintIsDeterministic(t *testing.T) {
// coupling is the point: the alias is part of the recipe, so a manifest
// whose contents changed under an unchanged alias would otherwise ask the
// builder to produce different bytes for a name that is already promoted.
if first != "sha256:6595cdc1795927be79055c6bc5d7a834cd1bb63c1eaa13233b51973067515e22" {
if first != "sha256:1398675d254c1a054a25e88d7a0fe50271fb48191adcf1ed8e39a73c24c58e22" {
t.Fatalf("deployed standard recipe fingerprint drifted: %q", first)
}
smoke, err := SmokeFingerprint(plan)
Expand Down
2 changes: 1 addition & 1 deletion internal/imagemanifest/manifest_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func TestRepositoryManifestIsValidAndPinned(t *testing.T) {
if !strings.HasPrefix(fingerprint, "sha256:") || len(fingerprint) != len("sha256:")+64 {
t.Fatalf("unexpected fingerprint %q", fingerprint)
}
if fingerprint != "sha256:3ab8bc1630fe32db7b8e5943045e238c60b1f5ef129e4ac60aa69e9ae11c2f6c" {
if fingerprint != "sha256:155753285612c6a7ae6525cd8875ca22031c4f7b7e4f067837b07f77ea9beadf" {
t.Fatalf("standard manifest fingerprint drifted: %q", fingerprint)
}
}
Expand Down