diff --git a/.github/scripts/prepare-vagrant-box-masters.sh b/.github/scripts/prepare-vagrant-box-masters.sh index 355405e..ce65ce4 100755 --- a/.github/scripts/prepare-vagrant-box-masters.sh +++ b/.github/scripts/prepare-vagrant-box-masters.sh @@ -70,9 +70,19 @@ write_prewarm_vagrantfile() { printf '%s\n' "Vagrant.configure('2') do |config|" printf ' config.vm.box = "%s"\n' "$box" printf ' config.vm.box_version = "%s"\n' "$version" + # generic/ubuntu2204 does not accept Vagrant's bundled insecure key. + # Match the repository's Molecule connection settings for the short-lived + # prewarm clone so Vagrant can record its linked-clone master. + if [[ "$box" == 'generic/ubuntu2204' ]]; then + printf '%s\n' \ + ' config.ssh.username = "vagrant"' \ + ' config.ssh.password = "vagrant"' \ + ' config.ssh.insert_key = false' + fi printf '%s\n' \ ' config.vm.synced_folder ".", "/vagrant", disabled: true' \ ' config.vm.hostname = "k3s-ansible-box-prewarm"' \ + ' config.vm.boot_timeout = 600' \ ' config.vm.provider "virtualbox" do |virtualbox|' \ ' virtualbox.linked_clone = true' \ ' virtualbox.memory = 512' \ diff --git a/.github/scripts/test-fixtures/mock-vagrant b/.github/scripts/test-fixtures/mock-vagrant index c9a11c7..5b08bab 100755 --- a/.github/scripts/test-fixtures/mock-vagrant +++ b/.github/scripts/test-fixtures/mock-vagrant @@ -5,6 +5,9 @@ set -Eeuo pipefail printf '%s\n' "$*" >> "$MOCK_VAGRANT_LOG" case "${1:-}" in up) + if [[ -n "${MOCK_VAGRANTFILE_CAPTURE:-}" ]]; then + cp -- "$VAGRANT_CWD/Vagrantfile" "$MOCK_VAGRANTFILE_CAPTURE" + fi counter_file="$MOCK_VBOX_STATE/counter" counter=0 [[ ! -r "$counter_file" ]] || counter="$(cat "$counter_file")" diff --git a/.github/scripts/test-prepare-vagrant-box-masters.sh b/.github/scripts/test-prepare-vagrant-box-masters.sh index 2aaa04d..a3b857e 100755 --- a/.github/scripts/test-prepare-vagrant-box-masters.sh +++ b/.github/scripts/test-prepare-vagrant-box-masters.sh @@ -32,6 +32,7 @@ export MOCK_VBOX_ROOT="$mock_vbox_root" export MOCK_BOX_DIR="$mock_box_dir" export MOCK_VBOX_LOG="$fixture/vbox.log" export MOCK_VAGRANT_LOG="$fixture/vagrant.log" +export MOCK_VAGRANTFILE_CAPTURE="$fixture/prewarm-Vagrantfile" : > "$MOCK_VBOX_LOG" : > "$MOCK_VAGRANT_LOG" @@ -44,6 +45,10 @@ second_output="$fixture/second-output" third_output="$fixture/third-output" "$script" > "$first_output" +grep -Fq 'config.ssh.username = "vagrant"' "$MOCK_VAGRANTFILE_CAPTURE" +grep -Fq 'config.ssh.password = "vagrant"' "$MOCK_VAGRANTFILE_CAPTURE" +grep -Fq 'config.ssh.insert_key = false' "$MOCK_VAGRANTFILE_CAPTURE" +grep -Fq 'config.vm.boot_timeout = 600' "$MOCK_VAGRANTFILE_CAPTURE" mapping_file="$mock_master_root/generic_ubuntu2204-4.3.12-amd64.uuid" test -s "$mapping_file" cmp -s "$mapping_file" "$mock_box_dir/master_id"