diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a2e4fb33c9..10ae7a26fb 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,8 +2,6 @@ NOTE: this repository uses a "Merge Forward" strategy Changes should be made in the earliest applicable branch, and merged forward through subsequent branches. -1. Create a PR into the oldest branch (`ubuntu-`) -2. After this PR has been merged create a `merge-to-` branch -3. Merge `ubuntu-` into `merge-to-` -4. Create a PR to merge `merge-to-` into `ubuntu-` -5. Repeat as needed for subsequent branches +1. PR should be created against the oldest stemcell branch, ex: `ubuntu-` +2. After this PR has been merged create a PR to merge `ubuntu-` into `ubuntu-` +3. Repeat as needed for subsequent stemcell line branches diff --git a/bosh-stemcell/lib/bosh/stemcell/infrastructure.rb b/bosh-stemcell/lib/bosh/stemcell/infrastructure.rb index 88079bac24..c986870a74 100644 --- a/bosh-stemcell/lib/bosh/stemcell/infrastructure.rb +++ b/bosh-stemcell/lib/bosh/stemcell/infrastructure.rb @@ -141,7 +141,10 @@ def initialize end def additional_cloud_properties - {"root_device_name" => "/dev/vda1"} + { + "root_device_name" => "/dev/vda1", + "nvme_support" => "supported" + } end end diff --git a/bosh-stemcell/lib/shellout_types/service.rb b/bosh-stemcell/lib/shellout_types/service.rb index d417a0693f..476b7b4ada 100644 --- a/bosh-stemcell/lib/shellout_types/service.rb +++ b/bosh-stemcell/lib/shellout_types/service.rb @@ -27,7 +27,7 @@ def check_service_enabled(runlevel) stdout, stderr, status = @chroot.run("cat", "/etc/*release") raise stderr.to_s if status != 0 - raise "Cannot determine Linux distribution: #{stdout}" unless /Ubuntu/.match?(stdout) + raise "Cannot determine Linux distribution: #{stdout}" unless /Ubuntu|openSUSE/.match?(stdout) check_is_enabled_systemctl end diff --git a/bosh-stemcell/spec/bosh/stemcell/infrastructure_spec.rb b/bosh-stemcell/spec/bosh/stemcell/infrastructure_spec.rb index 3d38281bdf..9c5a709879 100644 --- a/bosh-stemcell/spec/bosh/stemcell/infrastructure_spec.rb +++ b/bosh-stemcell/spec/bosh/stemcell/infrastructure_spec.rb @@ -92,6 +92,24 @@ module Bosh::Stemcell end end + describe Infrastructure::Alicloud do + its(:name) { should eq("alicloud") } + its(:hypervisor) { should eq("kvm") } + its(:default_disk_size) { should eq(5120) } + its(:disk_formats) { should eq(["raw"]) } + its(:stemcell_formats) { should eq(["alicloud-raw"]) } + + it { should eq Infrastructure.for("alicloud") } + it { should_not eq Infrastructure.for("aws") } + + it "has alicloud specific additional cloud properties" do + expect(subject.additional_cloud_properties).to eq({ + "root_device_name" => "/dev/vda1", + "nvme_support" => "supported" + }) + end + end + describe Infrastructure::Google do its(:name) { should eq("google") } its(:hypervisor) { should eq("kvm") } diff --git a/bosh-stemcell/spec/stemcells/aws_spec.rb b/bosh-stemcell/spec/stemcells/aws_spec.rb index 8a9309fd5b..bf59f37cbc 100644 --- a/bosh-stemcell/spec/stemcells/aws_spec.rb +++ b/bosh-stemcell/spec/stemcells/aws_spec.rb @@ -24,6 +24,22 @@ end end + context "installed by bosh_aws_agent_settings" do + describe file("/var/vcap/bosh/agent.json") do + it { should be_valid_json_file } + + it "sets InstanceStorageDevicePattern for NVMe instance storage" do + config = JSON.parse(subject.content) + expect(config.dig("Platform", "Linux", "InstanceStorageDevicePattern")).to eq("/dev/nvme*n1") + end + + it "sets InstanceStorageManagedVolumePattern to exclude EBS volumes" do + config = JSON.parse(subject.content) + expect(config.dig("Platform", "Linux", "InstanceStorageManagedVolumePattern")).to eq("/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_*") + end + end + end + describe "nvme" do describe "nvme-id finder" do subject { file("/sbin/nvme-id") } diff --git a/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 b/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 index 785564b2ba..c8faadd4ab 100644 --- a/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 +++ b/image-metalinks/ubuntu-jammy/ubuntu-jammy.meta4 @@ -1,22 +1,22 @@ - fab1ec89357516ccedd49d3c1a2f9e8db258ce7e69bb158fdd3ea825b3e2556d89606f0bbb5f83117d3b437a955998a346cfda3b0ffdf7797e4941ad4187ed2a - 119afe900ff3339ae2f7edfd59b19582971f5d1de61e5bba3c269c8ea3233614 - d7e7142fc0486c0a3b8a5c3b317b47dbb2fd188d - 69c8530406c7669f7d99e5d8289a2b6f - 435214502 + b748ba44907447a03a8e161b370795221f94961f42d59684a5d3f5aef3d48aa523dca132825ce1abf983fca1fc96532c2db9bffbcf4d71714bcff63b5026d62f + a4fff818d92a51015e05337bc3085a06696122f2bff31cdd2053957d99b9ee25 + ab89630e24048ea311a4ee6a2964d3e1998177ed + 25d8f6bba0a5e43838922b5f704e580d + 435207580 https://storage.googleapis.com/bosh-os-images/ubuntu-jammy/ubuntu-jammy.tgz - 1083.0.0 + 1089.0.0 - be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09 - 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b - adc83b19e793491b1c6ea0fd8b46cd9f32e592fc - 68b329da9893e34099c7d8ad5cb9c940 - 1 + 04c6305dd88f1f0fdb8c052c3161682a0320751c96e6e5b6bc0b948bd3c0745d250ff57be25a11e69c1cbc1faf49d6e4dbd9f16163ccdc6ee61f6bdb89e13732 + 52256f7644d5e043f59cd3799675e5b76577fc57b7ccac248349ec4a382b2643 + 17fb83a8835fffe0fa223470bd10451554cf9ca9 + d6447fb301e142d191d4d2ce0a39ae2b + 8289 https://storage.googleapis.com/bosh-os-images/ubuntu-jammy/usn-log.json - 1083.0.0 + 1089.0.0 metalink-repository-resource/0.0.0 - 2026-06-10T03:34:35.655940604Z + 2026-06-12T19:44:25.082634332Z diff --git a/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 b/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 index e6ba419358..7fe006016b 100644 --- a/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 +++ b/image-metalinks/ubuntu-noble/ubuntu-noble.meta4 @@ -1,22 +1,22 @@ - 9e2eec4a06e70d85bba3c6134da63a078a08ef2dd92ddfcc0e4b1de2fb743ad29cf7f097849ef6f08d5fc1b58e36ab5523ed04445a444ee0a54911edc20dd55b - 76e7eb3051141e7d8f156bfd23e7a3d57190f71f8260a74c3bf78da75f80b13f - e6016ba1f74dc16ea0015343c7f62a2cb2b09ee3 - 98fdb5f012f691cbb012005390518d7f - 377522012 + abaf1e872ab5fae378ba869e97994d26b0c390296abf57f57e1ee32b55c113247174b31daa2e3ebddd7218013ef5e3fb90015ea4e2e253bf57e9104db527b4e7 + 235331e441d4594d54a8fa33120091414eef646b20518b8ecb697f84160b7d40 + af7b9a5f1b8a419061d8b48c7d2f63d7721ff542 + 59fd4f46b08051601c69976b106bf6fc + 377555609 https://storage.googleapis.com/bosh-os-images/ubuntu-noble/ubuntu-noble.tgz - 115.0.0 + 120.0.0 - be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09 - 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b - adc83b19e793491b1c6ea0fd8b46cd9f32e592fc - 68b329da9893e34099c7d8ad5cb9c940 - 1 + be253863f3ed36a79daa272c9f23f902422486f46fb84114da8dcb42ce48610048cafa8021e0122c8adf468f9f4c81472a1795db6290f8747a4c8cf5bcdeb18c + 6964ac8f84ef68d727fa7f98b7da660f45cdf98ee86d430140157b998e0fb40e + 5d380f950e833f8d143b49a3134a3384cb7354c1 + b1e24e5bb6d70a57b4d282b948136d67 + 8523 https://storage.googleapis.com/bosh-os-images/ubuntu-noble/usn-log.json - 115.0.0 + 120.0.0 metalink-repository-resource/0.0.0 - 2026-06-09T21:42:05.515125161Z + 2026-06-12T12:04:33.476081292Z diff --git a/stemcell_builder/stages/bosh_go_agent/assets/bosh-agent-version b/stemcell_builder/stages/bosh_go_agent/assets/bosh-agent-version index 477a5d6b1b..82763783dd 100644 --- a/stemcell_builder/stages/bosh_go_agent/assets/bosh-agent-version +++ b/stemcell_builder/stages/bosh_go_agent/assets/bosh-agent-version @@ -1 +1 @@ -2.852.0 \ No newline at end of file +2.854.0 \ No newline at end of file diff --git a/stemcell_builder/stages/bosh_go_agent/assets/metalink.meta4 b/stemcell_builder/stages/bosh_go_agent/assets/metalink.meta4 index 7d1835d328..966f89dd30 100644 --- a/stemcell_builder/stages/bosh_go_agent/assets/metalink.meta4 +++ b/stemcell_builder/stages/bosh_go_agent/assets/metalink.meta4 @@ -1,49 +1,49 @@ - - 332ee5a24befff9b9751abf531eb56824cdf915e009ba766ef14b50c165af23cdc649520aca492cac8db906e30111d8305bf77e348cb65c64f932593d6e4e498 - acc3f514ff57797abd873291d7b3397c7b5e20f8716390d52f137fd53bebbef7 - f9d13300fa816741e0553df1a4445b67961abb2d - 88820119036d0928875776ca8a4af1e4 - 22122821 - https://s3-external-1.amazonaws.com/bosh-agent-binaries/bosh-agent-2.852.0-linux-amd64 - 2.852.0 + + 60c32b3a0b02fdfe23d4954225b3f102934a1018f2314d567fd7fa5703f4d1357a39045e06866bf030476eb51d3c6b733c2104d149f963f6f791a2df1b19d62e + ac491b683c1c31cccdfddc0b38dc4c535f20646c1cc10bd4b009441be174e767 + 9619886e9d58a3067bb9f28d62692491561ada94 + 48debf1aa8e03b54142ce6812c1ce708 + 22082723 + https://s3-external-1.amazonaws.com/bosh-agent-binaries/bosh-agent-2.854.0-linux-amd64 + 2.854.0 - - fba4a14f78b798c3dcee072f7f9c6a08abf74f0fd5e2612f33dc087b3a21868e33e61ceb39a56c1eed350d6a3bb6a95bfb610de620961c2e3706adb0f36cba6b - eb9b5f26b9438ece5f4f24b70db46b8222e71b207ec12fca3261bbc24959fdc2 - 2ac9da1644c836ab7326a19e42af3586ae998b32 - 1e5d2a1648092cfb73737a2c5d31be30 - 21970944 - https://s3-external-1.amazonaws.com/bosh-agent-binaries/bosh-agent-2.852.0-windows-amd64.exe - 2.852.0 + + f89e68eb2e29d914534efaf4191c06c0200ce2d0614bfe154d9a9e7d2818a0ac2c9a9dc962fde80de15acaed55766ef8d2b726a460b3df0c4bca62c7c6f53e7b + 6251ba807a219fa87407f3739922fe5844e56bc8cf6f2b8159696995fe0233f9 + c202613fe2d93cd08d32387b45907abcd9664743 + 68ed8655d6e11d192652b08892aa8985 + 21927424 + https://s3-external-1.amazonaws.com/bosh-agent-binaries/bosh-agent-2.854.0-windows-amd64.exe + 2.854.0 - - 8d95cbcb1e23ab81cfb884cdcf9f6db2b604623776034a04459a4e0d4372227abb50e370b9fe1eff1c277dc34741e4af0ecb6f9c7d0061b5d08071726f9c8c97 - e87f467c5f0254437dd33aac392c29b5e4c68a78fdff522f10cf569491c263af - 89682658edec43c05b86b0b9fbdda5dc3d4d7b64 - d7768248330549d65c9b2ff3ea016277 + + 35e15074e659a8b4aee6ae63732e094e54cd817df948fc9e032791a633e349c9172c8823b681f2000b16601a06ad14ca8984d08685dd62427fef6a2396604a66 + deff8634b505021d7816adec2fdfddec1e7dff27566409f1188c8117a80d261f + 604007d3ae0b4bde21bf8f137e1a9aff1e64188a + 0554fbe400f74aacc4d3934a9bec853c 9023488 - https://s3-external-1.amazonaws.com/bosh-agent-binaries/bosh-agent-pipe-2.852.0-windows-amd64.exe - 2.852.0 + https://s3-external-1.amazonaws.com/bosh-agent-binaries/bosh-agent-pipe-2.854.0-windows-amd64.exe + 2.854.0 - - 9075fec0295e986aa95bfa9de8bb40e26e0932b05af5e8e666fe35f6c6e21944d5395b4efa047e91b2332d56e751563f13b7a68e7e9f2f8c9b28c82f7d15c7f4 - 7f7c0d8e0a7213855d75459be82aa25fea12de33a3539931a324e655fbeb5e69 - 6af2c57a4cc2437d26859f49c1c2a6f0672291c8 - 85872b0eae97abb6f174cebf373b4bda + + d39cf9145f19c00dccd07ed0b566661e6821edb137672220e86ecd502292831aed94ca101bb33c389e3e7c5c926a3d9c57e4dacfe08917e7c50974d74e4a6dd9 + 6c6958d30f3f5936fb0aca760e25aa086e2a5a92ef15d98892b46af207a43a9f + a30f0d58703a2e5296639b25d62af882fc7d7513 + 453d5cb300e14cc3ad8c71639a19123b 9 - https://s3-external-1.amazonaws.com/bosh-agent-binaries/git-sha-2.852.0 - 2.852.0 + https://s3-external-1.amazonaws.com/bosh-agent-binaries/git-sha-2.854.0 + 2.854.0 - + fe22cd6fd90ded459b08385497032f2de4022f712dc753dc026ffbc024d3cdd5007f68886f0d4dd8a7832ece138455c3320ce65b72eec054ed3717f6212a7567 a1f4729600504b0cc026ff5e826bb403b43a564780e091d01e0ab7bacb15906a a5a1e59f6bfaa23bffb85a6647bfbc3df1dbf594 c0e9e8c1a9510c750742534ba431530b 708 - https://s3-external-1.amazonaws.com/bosh-agent-binaries/service_wrapper-2.852.0.xml - 2.852.0 + https://s3-external-1.amazonaws.com/bosh-agent-binaries/service_wrapper-2.854.0.xml + 2.854.0 metalink-repository-resource/0.0.0 - 2026-06-02T20:37:38.94033158Z + 2026-06-11T23:25:36.524053958Z diff --git a/stemcell_builder/stages/image_install_grub/apply.sh b/stemcell_builder/stages/image_install_grub/apply.sh index f65b430295..815b78cee3 100755 --- a/stemcell_builder/stages/image_install_grub/apply.sh +++ b/stemcell_builder/stages/image_install_grub/apply.sh @@ -37,6 +37,17 @@ add_on_exit "umount ${image_mount_point}/boot/efi" # == Guide to variables in this script (all paths are defined relative to the real root dir, not the chroot) +# work: the base working directory outside the chroot +# eg: /mnt/stemcells/aws/xen/ubuntu/work/work +# disk_image: path to the stemcell disk image +# eg: /mnt/stemcells/aws/xen/ubuntu/work/work/aws-xen-ubuntu.raw +# device: path to the loopback device mapped to the entire disk image +# eg: /dev/loop0 +# loopback_root_dev: device node mapped to the main partition in disk_image +# eg: /dev/mapper/loop0p1 +# image_mount_point: place where loopback_root_dev is mounted as a filesystem +# eg: /mnt/stemcells/aws/xen/ubuntu/work/work/mnt + # Generate random password random_password=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 16)