feature: create Flatcar OS Snapshot (OS Image) on Vultr cloud - #2021
feature: create Flatcar OS Snapshot (OS Image) on Vultr cloud#2021aviral-agarwal wants to merge 1 commit into
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Welcome @aviral-agarwal! |
|
Hi @aviral-agarwal. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
drew-viles
left a comment
There was a problem hiding this comment.
Hi, thanks!
It looks like this provider doesn't have any goss checks. Is there any reason to omit these or can you get them added in and make sure they pass?
a003494 to
dfd9e6e
Compare
|
/ok-to-test I think you may need to run |
ef12c51 to
d5bc9c8
Compare
|
Thanks for the direction @mboersma @drew-viles Can't say for sure why Vultr omitted the checks to begin with. However, this PR focuses on flatcar implementation for Vultr |
d5bc9c8 to
56c4321
Compare
|
@aviral-agarwal Yeah that's a fair comment. Can you resolve the issues around the checks and we can look at getting this merged |
56c4321 to
403d048
Compare
|
@aviral-agarwal: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/@drew-viles Sure Rebased the PR branch on latest I checked the failing check
Based on that evidence, the current The two failing targets in that job are
|
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Change Description
This PR adds a
vultr-flatcar-stabletarget to Image Builder so Flatcar-based snapshots/OS images can be built on Vultr for use with Cluster API.It keeps the Vultr Ubuntu flow unchanged while adding the Flatcar-specific pieces needed for communicator user selection, Ansible user selection, and build-time
userdatahandling.The Flatcar-on-Vultr flow closely follows the Flatcar AWS build path, with the Vultr-specific adjustments needed for
userdata, SSH, and Ansible.Is this change including a new Provider or a new OS? (y/n): y, new OS (Flatcar) for existing provider (Vultr cloud)
If yes, has the Provider/OS matrix been updated in the readme? (y/n): y
Changed Files
images/capi/Makefileflatcar-stableto the Vultr target list so Image Builder exposesbuild-vultr-flatcar-stableandvalidate-vultr-flatcar-stable.hack/ensure-jq.shtodeps-vultrbecause the Vultr build path now preprocessesuserdata.userdata_filefrom the target var file, check that the file exists, validate that it is JSON, base64-encode it, and pass it to Packer asuserdata_base64.userdatabe sent as base64 instead of raw JSON.flatcar-stableis intentional because Vultr exposes Flatcar channels through separateos_idvalues rather than one generic Flatcar image.images/capi/packer/vultr/packer.jsonssh_usernameconfigurable and kept the default asroot, so existing Ubuntu targets continue to work while Flatcar can override the communicator user tocore.ansible_user, kept its default aspacker, and switched the Ansible provisioner to use it so Flatcar can log in to Ansible ascorewithout changing Ubuntu behavior.bootstrap-flatcar.shand prepare the VM for the main playbook.userdatawiring touserdata_base64and declared bothuserdata_base64anduserdata_fileexplicitly so target files can keep readable input while the build passes the encoded form required by Vultr.ssh_usernameandansible_userare separate on purpose so the communicator user and the Ansible login user can be tuned independently if a provider needs that split.images/capi/packer/vultr/flatcar-stable.jsonos_id.ssh_usernameandansible_usertocore, following the existing Flatcar pattern used elsewhere in Image Builder.userdata_filepointing to the Flatcar Ignition bootstrap file so the Make-based Vultr build flow can convert it touserdata_base64at build time.packer/config/*.jsonfiles.README.mdvultr-flatcar-stabletarget added by this PR.docs/book/src/capi/providers/vultr.mdflatcar-stable.jsonto the Vultr provider configuration table.Validation
images/capi/packer/vultr/packer.json: the current template usestag, while newer plugin versions expecttags. This PR documents the issue but does not change plugin pinning or migrate the template schema.