diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 7763981d1e..5fd2315a11 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - - uses: actions/setup-go@v6 + - uses: actions/setup-go@v7 with: go-version-file: acceptance-tests/go.mod - uses: golangci/golangci-lint-action@v9 diff --git a/acceptance-tests/go.mod b/acceptance-tests/go.mod index 26e7fae7a4..5ec64d35a5 100644 --- a/acceptance-tests/go.mod +++ b/acceptance-tests/go.mod @@ -3,7 +3,7 @@ module github.com/cloudfoundry/bosh-linux-stemcell-builder/acceptance-tests go 1.25.0 require ( - github.com/cloudfoundry/bosh-utils v0.0.628 + github.com/cloudfoundry/bosh-utils v0.0.629 github.com/onsi/ginkgo/v2 v2.32.0 github.com/onsi/gomega v1.42.1 gopkg.in/yaml.v2 v2.4.0 diff --git a/acceptance-tests/go.sum b/acceptance-tests/go.sum index ff4104833b..eed6ccf94a 100644 --- a/acceptance-tests/go.sum +++ b/acceptance-tests/go.sum @@ -2,8 +2,8 @@ github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAw github.com/Masterminds/semver/v3 v3.5.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0= github.com/bmatcuk/doublestar v1.3.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= -github.com/cloudfoundry/bosh-utils v0.0.628 h1:mBkEytkq1aUx1Dq31utvchtVLeUngsIcV9QHgxjMttk= -github.com/cloudfoundry/bosh-utils v0.0.628/go.mod h1:Oi1Or7wk6TljEEfyomf6xdKhkuvTpkrnEvdDd04/2Tc= +github.com/cloudfoundry/bosh-utils v0.0.629 h1:6wubE+dKZ7Poo0OwEjXtidDY73rMBT/3mzNMyMaqSuY= +github.com/cloudfoundry/bosh-utils v0.0.629/go.mod h1:Xn5ynPVGqJX/mKQSqcAYCVF6XlCEpcWu2rkC/kGxq+4= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs= diff --git a/acceptance-tests/vendor/modules.txt b/acceptance-tests/vendor/modules.txt index 9b9f2e6ab3..e9bc5afbd1 100644 --- a/acceptance-tests/vendor/modules.txt +++ b/acceptance-tests/vendor/modules.txt @@ -4,7 +4,7 @@ github.com/Masterminds/semver/v3 # github.com/bmatcuk/doublestar v1.3.4 ## explicit; go 1.12 github.com/bmatcuk/doublestar -# github.com/cloudfoundry/bosh-utils v0.0.628 +# github.com/cloudfoundry/bosh-utils v0.0.629 ## explicit; go 1.25.0 github.com/cloudfoundry/bosh-utils/errors github.com/cloudfoundry/bosh-utils/logger diff --git a/ci/pipeline-template.yml b/ci/pipeline-template.yml index c10d088aa8..dd481601df 100644 --- a/ci/pipeline-template.yml +++ b/ci/pipeline-template.yml @@ -1453,6 +1453,8 @@ resources: vars: gce_credentials_json: ((gcp_json_key)) gce_project_id: ((gcp_project_id)) + gce_region: europe-north2 + gce_zone: europe-north2-a type: terraform_type - name: base-oss-google-ubuntu-stemcell diff --git a/ci/tasks/light-aws/cleanup-ami.sh b/ci/tasks/light-aws/cleanup-ami.sh index 9d21e2f041..0286c3a9d5 100755 --- a/ci/tasks/light-aws/cleanup-ami.sh +++ b/ci/tasks/light-aws/cleanup-ami.sh @@ -30,6 +30,28 @@ if [ -n "${ami_role_arn:-}" ]; then export AWS_PROFILE=resource_account fi +# Every stemcell pipeline runs the published sweep against the same account, so two +# pipelines can select the same AMI before either has deleted it. This handles +# expected potential errors that could occur on a collision. +run_tolerating_missing() { + local output + if output="$("$@" 2>&1)"; then + [ -n "${output}" ] && printf "%s\n" "${output}" + return 0 + fi + + case "${output}" in + *InvalidAMIID.Unavailable*|*InvalidAMIID.NotFound*|*InvalidSnapshot.NotFound*|*InvalidSnapshot.InUse*) + echo " already deleted by another run, skipping" + return 0 + ;; + *) + printf "%s\n" "${output}" >&2 + return 1 + ;; + esac +} + past_due=$(date --date="${ami_older_than_days} days ago" +"%Y-%m-%d") # shellcheck disable=SC2016 past_due_query='sort_by(Images,&CreationDate)[?CreationDate<`'"${past_due}"'`].{ImageId: ImageId, date:CreationDate, SnapshotId: BlockDeviceMappings[0].Ebs.SnapshotId,Version: Tags[?Key==`name`]|[0].Value}' @@ -59,16 +81,6 @@ for region in ${ami_destinations}; do ami_list=$(jq -s '.[0] + .[1]' <(echo "${ami_list}") <(echo "${results}")) fi - if [ -n "${snapshot_id:-}" ]; then - results=$(aws ec2 describe-images \ - --owners self \ - --output json \ - --region "${region}" \ - --filters "Name=block-device-mapping.snapshot-id,Values=${snapshot_id}" \ - --query "${past_due_query}" | jq 'reverse | del(.[range(env.ami_keep_latest|tonumber)])') - ami_list=$(jq -s '.[0] + .[1]' <(echo "${ami_list}") <(echo "${results}")) - fi - # 'ami_list' is a json array of objects, each object is an ami and its snapshot for row in $(echo "${ami_list}" | jq -r '.[] | @base64'); do _jq() { @@ -83,14 +95,12 @@ for region in ${ami_destinations}; do Snapshot id: $(_jq '.SnapshotId') " - aws ec2 deregister-image \ + run_tolerating_missing aws ec2 deregister-image \ --image-id "$(_jq '.ImageId')" \ --region "${region}" - if [ "${snapshot_id:-}" != "$(_jq '.SnapshotId')" ]; then - aws ec2 delete-snapshot \ - --snapshot-id "$(_jq '.SnapshotId')" \ - --region "${region}" - fi + run_tolerating_missing aws ec2 delete-snapshot \ + --snapshot-id "$(_jq '.SnapshotId')" \ + --region "${region}" done done diff --git a/ci/tasks/light-aws/cleanup-ami.yml b/ci/tasks/light-aws/cleanup-ami.yml index e30236167c..ff0cbde1c4 100644 --- a/ci/tasks/light-aws/cleanup-ami.yml +++ b/ci/tasks/light-aws/cleanup-ami.yml @@ -14,5 +14,4 @@ params: ami_older_than_days: "60" # Number of days AMI to keep excluding those currently being running ami_keep_latest: "5" # Number of previous AMI to keep excluding those currently being running os_name: "" # e.g ubuntu-jammy - snapshot_id: "" # Snapshot id to delete remove_public_images: "false" diff --git a/ci/tasks/light-google/skeletal-deployment.yml b/ci/tasks/light-google/skeletal-deployment.yml index a59420aea6..20939feb0c 100644 --- a/ci/tasks/light-google/skeletal-deployment.yml +++ b/ci/tasks/light-google/skeletal-deployment.yml @@ -19,7 +19,7 @@ resource_pools: stemcell: url: file://assets/stemcell.tgz cloud_properties: - machine_type: n1-standard-2 + machine_type: e2-standard-2 root_disk_type: pd-standard zone: ((gce_zone)) tags: diff --git a/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 b/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 index 267f0893e2..1ee058b311 100644 --- a/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 +++ b/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 @@ -1,22 +1,22 @@ - 951011bb01835a4ac40d63fe13538ff6243f6b8d7c8bff98f1a8e62ada0300e79b84555c4190bad29d99f7394ca233f69e3bae404c26240e5e07fe6efa973b48 - 9f3b56e8de841095f5dd09a92ef5c1c7f4ce4d16c5da0e95cdd0affd437eb745 - d823cd967b22449c556913b8932d89f3b7419ded - c7578439290a5bd18fb3255deb7c5ada - 435388237 + fc540c5bfb1273925a6a1531386e38171ec56788ff92f428948ca928b051c26d1a0904ebe7d27eb7b0aa5b07dedd38a08f671462162b511e388108e0b3d31c7e + 6584f2bdb264fd6bd515df3d42733fcee167f56c5586dd47bd3d17aa56df7429 + 79b3a508e86c2ba3c93a2ec1e4660db1a9a56a22 + dd274eb02ba069d3e17588b51df72be7 + 437750690 https://storage.googleapis.com/bosh-os-images/ubuntu-jammy/ubuntu-jammy.tgz - 1126.0.0 + 1151.0.0 - 55d505cb22a62c4636b9d2912b3bd8f7683d5b68ac17ec22c0a2b5d71775113edfc0a4041de49dd78fc2251260f850404d43533e5f8a7ae614e1a3d869ea0239 - 70100cafaa448fc3c4c9a7e47574325e2eb79b0e4d0ae5d4b7cc10b57eeb9ea6 - 68d551392fb8407b6cca61445fa9cdad289a4c42 - 428bf554042b2610eb2e5bbe0ea92865 - 52717 + cae949878e6edcc1dcf9933ccf0e3cb3fa720b325f78f1e0d1b8fb7139401b25204b5c3fea731d99a233cd85e9f2f32a115e858b3da1234bb7316fb4e42c4c6f + 3d3767c9c22fdb909908e24d147e4fd950e2182e440dd14837a9e0f5ad49cd22 + 8b3ae300f323b9df29a97bc23720267fbb127e1f + 2ddbcaf20cac862372c7ea7e122eeb6b + 7421 https://storage.googleapis.com/bosh-os-images/ubuntu-jammy/usn-log.json - 1126.0.0 + 1151.0.0 metalink-repository-resource/0.0.0 - 2026-07-10T22:40:36.805978443Z + 2026-07-30T08:22:16.074064248Z diff --git a/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 b/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 index 4e129822d9..3cf16eefca 100644 --- a/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 +++ b/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 @@ -1,12 +1,12 @@ - a7ab0d00508d2fb74d16c78ead5e67be34979372373c4d822ce5f5149daf30d659959301e4dc9911f6dcd451b7d681647254b63462098df38ec0c5f6f806f19c - d123de2ca4a08279abfd7d15ca7f3a6aba6976a56de2cd4a9470ea40a65389c9 - ba4a5cca7b05b289814dba4e917173f30bf6220e - 0cd2853795808e3db74afc20094e381d - 376920548 + 60d798769ff7b26c2cdccd919a1bb9fa30dfa1a82723a11ba2377ab4d9c3c45a68ca5aff3dccd89bbe2cccf0397e26665da71928df9f1475e63e1ceb9f5697fd + 5e852fb3dc0d24aae6801802f2be518e5d0cf5ab5f2172d7edf412c34ddcc498 + 14c6a917fc4200d1cc1cd2ecd8cd65f0e820f7b7 + 526d2f7acc41bf4a48d29416fe6a7c6b + 377014189 https://storage.googleapis.com/bosh-os-images/ubuntu-noble/ubuntu-noble.tgz - 183.0.0 + 191.0.0 894a1a9a4b8c2aa7519d63d2986206d3d81e6ba75384231ade8a43c2b1a9eeb6974588270186e2420780eccbfa831eedfd7232dc3fba0bb434c821945135406f @@ -15,8 +15,8 @@ eaf6da3f1a78a7f5cec3809adbc652aa 68528 https://storage.googleapis.com/bosh-os-images/ubuntu-noble/usn-log.json - 183.0.0 + 191.0.0 metalink-repository-resource/0.0.0 - 2026-07-23T14:57:50.107392277Z + 2026-07-30T16:42:02.240365569Z diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum index bd7b8b77aa..573dbb7888 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.sha256sum @@ -1 +1 @@ -42f3618c873af372212be3e839bb18d828153bcf75ab36f4a3c4e79f7fa27922 +1e842139ef6eee303c5a30486f352fc510fe732f2dc5446c5d2403ca47cbf88a diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url index e263054035..59af87491c 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.url @@ -1 +1 @@ -https://bosh-azure-storage-cli-artifacts.s3.us-east-1.amazonaws.com/azure-storage-cli-0.0.247-linux-amd64 +https://bosh-azure-storage-cli-artifacts.s3.us-east-1.amazonaws.com/azure-storage-cli-0.0.248-linux-amd64 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version index 6aa687e148..764cb07239 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-azure-storage.version @@ -1 +1 @@ -0.0.247 +0.0.248 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum index 4fc266273f..7a51e4b7aa 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.sha256sum @@ -1 +1 @@ -368ec6c088228d10447cf50cb79843d1cae32f2e7955dea50306902a722217ea +2b1b3ff893bee47d61b456128b42d667d797a4ed978b0b7d22687cbd6ee2ab8e diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url index f6bf01276f..e4bcb6bfc0 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.url @@ -1 +1 @@ -https://bosh-davcli-artifacts.s3.us-east-1.amazonaws.com/davcli-0.0.491-linux-amd64 +https://bosh-davcli-artifacts.s3.us-east-1.amazonaws.com/davcli-0.0.492-linux-amd64 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version index 2cb2e13642..adcd67ce7e 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-dav.version @@ -1 +1 @@ -0.0.491 +0.0.492 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum index 6628655c22..d621d043e3 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.sha256sum @@ -1 +1 @@ -9b51524789ac9964d83c45dfbb1fc5ae3cf242f7406367be0b86b2b00df121df +d4a0848cb12770dd4689365d68a931f4ace95c31e7029cc521f3cffe1454b368 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url index 9a4f4acc08..df1f420391 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.url @@ -1 +1 @@ -https://bosh-gcscli-artifacts.s3.us-east-1.amazonaws.com/bosh-gcscli-0.0.397-linux-amd64 +https://bosh-gcscli-artifacts.s3.us-east-1.amazonaws.com/bosh-gcscli-0.0.398-linux-amd64 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version index 6b771b3aa5..4558040cb4 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-gcs.version @@ -1 +1 @@ -0.0.397 +0.0.398 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum index c8d1f6a25e..69258b0c18 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.sha256sum @@ -1 +1 @@ -eaf3d1d2834e67e8dc012e19224dcc159de521316cf5f6fdb5eb597c23d5bc8f +acecf97845c65fee0bd20cf7e4bc8e89ce35e85f1833bed4d87ba192daa5e240 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url index 10e8f38e40..e4d157c286 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.url @@ -1 +1 @@ -https://bosh-s3cli-artifacts.s3.us-east-1.amazonaws.com/s3cli-0.0.420-linux-amd64 +https://bosh-s3cli-artifacts.s3.us-east-1.amazonaws.com/s3cli-0.0.422-linux-amd64 diff --git a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version index 4a9f69fe4b..a55f0dd2bc 100644 --- a/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version +++ b/stemcell_builder/stages/blobstore_clis/assets/bosh-blobstore-s3.version @@ -1 +1 @@ -0.0.420 +0.0.422