-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement Hyper-V support #1424
Comments
Following new platform support checklist for Hyperv coreos/fedora-coreos-tracker#1424
Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
buildextend --compress supports gzip as an alternate compression over xz using a key called "gzip" where the value is a bool. This is now refactored to a key called "compression" with a value of "gzip", "skip", or "zip" (see below). The "skip-compression" key is no longer applicable. HyperV images which are used on Windows need to be compressed with zip because xz and gzip are not supported natively. Added zip support to buildextend and set the hyperv platform compression to "zip". Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
Updates for the checklist template:
Applied in #1439. |
This PR adds initial support for the Microsoft HyperV platform. It uses HyperV and MS WMI to read key/value pairs as provided by the Windows host. Because the size allocation of the value is quite small, the ignition values will likely be split into at least 2 and more like more parts which must be read and reassembled in ignition. Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
Add example metadata for new platform support of hyperv. This supports: * coreos#1411 * coreos#1424
the fedora-web PR can be found -> https://pagure.io/fedora-web/websites/pull-request/282 |
We never decided in #1411 whether serial console is needed. I've added a checklist step to enable that, and we can skip the checkbox if we decide to just stick with graphical console. |
buildextend --compress supports gzip as an alternate compression over xz using a key called "gzip" where the value is a bool. This is now refactored to a key called "compression" with a value of "gzip", "skip", or "zip" (see below). The "skip-compression" key is no longer applicable. HyperV images which are used on Windows need to be compressed with zip because xz and gzip are not supported natively. Added zip support to buildextend and set the hyperv platform compression to "zip". Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
buildextend --compress supports gzip as an alternate compression over xz using a key called "gzip" where the value is a bool. This is now refactored to a key called "compression" with a value of "gzip", "skip", or "zip" (see below). The "skip-compression" key is no longer applicable. HyperV images which are used on Windows need to be compressed with zip because xz and gzip are not supported natively. Added zip support to buildextend and set the hyperv platform compression to "zip". Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
This PR adds initial support for the Microsoft HyperV platform. It uses HyperV and MS WMI to read key/value pairs as provided by the Windows host. Because the size allocation of the value is quite small, the ignition values will likely be split into at least 2 and more like more parts which must be read and reassembled in ignition. Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
buildextend --compress supports gzip as an alternate compression over xz using a key called "gzip" where the value is a bool. This is now refactored to a key called "compression" with a value of "gzip", "skip", or "zip" (see below). The "skip-compression" key is no longer applicable. HyperV images which are used on Windows need to be compressed with zip because xz and gzip are not supported natively. Added zip support to buildextend and set the hyperv platform compression to "zip". Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
This PR adds initial support for the Microsoft HyperV platform. It uses HyperV and MS WMI to read key/value pairs as provided by the Windows host. Because the size allocation of the value is quite small, the ignition values will likely be split into at least 2 and more like more parts which must be read and reassembled in ignition. Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
This PR adds initial support for the Microsoft HyperV platform. It uses HyperV and MS WMI to read key/value pairs as provided by the Windows host. Because the size allocation of the value is quite small, the ignition values will likely be split into at least 2 and more like more parts which must be read and reassembled in ignition. Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
This PR adds initial support for the Microsoft HyperV platform. It uses HyperV and MS WMI to read key/value pairs as provided by the Windows host. Because the size allocation of the value is quite small, the ignition values will likely be split into at least 2 and more like more parts which must be read and reassembled in ignition. Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
buildextend --compress supports gzip as an alternate compression over xz using a key called "gzip" where the value is a bool. This is now refactored to a key called "compression" with a value of "gzip", "skip", or "zip" (see below). The "skip-compression" key is no longer applicable. HyperV images which are used on Windows need to be compressed with zip because xz and gzip are not supported natively. Added zip support to buildextend and set the hyperv platform compression to "zip". Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
buildextend --compress supports gzip as an alternate compression over xz using a key called "gzip" where the value is a bool. This is now refactored to a key called "compression" with a value of "gzip", "skip", or "zip" (see below). The "skip-compression" key is no longer applicable. HyperV images which are used on Windows need to be compressed with zip because xz and gzip are not supported natively. Added zip support to buildextend and set the hyperv platform compression to "zip". Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
buildextend --compress supports gzip as an alternate compression over xz using a key called "gzip" where the value is a bool. This is now refactored to a key called "compression" with a value of "gzip", "skip", or "zip" (see below). The "skip-compression" key is no longer applicable. HyperV images which are used on Windows need to be compressed with zip because xz and gzip are not supported natively. Added zip support to buildextend and set the hyperv platform compression to "zip". Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
This PR adds initial support for the Microsoft HyperV platform. It uses HyperV and MS WMI to read key/value pairs as provided by the Windows host. Because the size allocation of the value is quite small, the ignition values will likely be split into at least 2 and more like more parts which must be read and reassembled in ignition. Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft HyperV hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. This is in support of coreos/fedora-coreos-tracker#1424 Note: I cannot provide a link to HDX images in this documentation because they are not being made yet. This will need to be updated. Signed-off-by: Brent Baude <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft HyperV hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. This is in support of coreos/fedora-coreos-tracker#1424 Note: I cannot provide a link to HDX images in this documentation because they are not being made yet. This will need to be updated. Signed-off-by: Brent Baude <[email protected]>
Note: serial console is not needed |
This PR adds initial support for the Microsoft HyperV platform. It uses HyperV and MS WMI to read key/value pairs as provided by the Windows host. Because the size allocation of the value is quite small, the ignition values will likely be split into at least 2 and more like more parts which must be read and reassembled in ignition. Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Signed-off-by: Brent Baude <[email protected]>
Read the Ignition config from the Hyper-V Data Exchange Service ("KVP"), which can be configured on the host via WMI. KVP on Linux is normally handled by a combination of a kernel module (hv_utils) and a daemon shipped with the kernel source (hv_kvp_daemon). The latter writes world-readable files to /var/lib/hyperv; these contain an array of binary structs. The host-guest protocol has the guest OS as the passive peer; hv_kvp_daemon connects and is sent all the host's key-value pairs. We don't want to require hv_kvp_daemon as a dependency, so we use a pure Go reimplementation (libhvee) that supports just enough of the protocol to receive the KVPs. However, if we disconnect and then hv_kvp_daemon reconnects later, the host won't re-send the KVPs, so we also need to save them to /var/lib/hyperv in the same format used by the daemon. Unlike the daemon, we set the files to mode 600, since the Ignition config is potentially sensitive; the daemon does not change the permissions of existing files. Small configs can be stored in the `ignition.config` KVP. However, individual values have severe length limitations (~1 KiB of UTF-8), so we also support concatenating `ignition.config.0`, `ignition.config.1`, etc. to form a larger config. See also: coreos/fedora-coreos-tracker#1411 coreos/fedora-coreos-tracker#1424 Almost all of this work was done by Brent Baude; I just added the final polish. Thanks Brent! Co-authored-by: Brent Baude <[email protected]>
Following new platform support checklist for Hyperv coreos/fedora-coreos-tracker#1424
coreos/fedora-coreos-tracker#1424 Co-authored-by: Brent Baude <[email protected]>
Supports: * coreos/fedora-coreos-tracker#1411 * coreos/fedora-coreos-tracker#1424 Co-authored-by: Brent Baude <[email protected]>
Read the Ignition config from the Hyper-V Data Exchange Service ("KVP"), which can be configured on the host via WMI. KVP on Linux is normally handled by a combination of a kernel module (hv_utils) and a daemon shipped with the kernel source (hv_kvp_daemon). The latter writes world-readable files to /var/lib/hyperv; these contain an array of binary structs. The host-guest protocol has the guest OS as the passive peer; hv_kvp_daemon connects and is sent all the host's key-value pairs. We don't want to require hv_kvp_daemon as a dependency, so we use a pure Go reimplementation (libhvee) that supports just enough of the protocol to receive the KVPs. However, if we disconnect and then hv_kvp_daemon reconnects later, the host won't re-send the KVPs, so we also need to save them to /var/lib/hyperv in the same format used by the daemon. Unlike the daemon, we set the files to mode 600, since the Ignition config is potentially sensitive; the daemon does not change the permissions of existing files. Small configs can be stored in the `ignition.config` KVP. However, individual values have severe length limitations (~1 KiB of UTF-8), so we also support concatenating `ignition.config.0`, `ignition.config.1`, etc. to form a larger config. See also: coreos/fedora-coreos-tracker#1411 coreos/fedora-coreos-tracker#1424 Almost all of this work was done by Brent Baude; I just added the final polish. Thanks Brent! Co-authored-by: Brent Baude <[email protected]>
Add example metadata for new platform support of hyperv. This supports: * coreos#1411 * coreos#1424
Add example metadata for hyperv platform. This supports: * coreos#1411 * coreos#1424 Co-authored-by: Brent Baude <[email protected]>
Read the Ignition config from the Hyper-V Data Exchange Service ("KVP"), which can be configured on the host via WMI. KVP on Linux is normally handled by a combination of a kernel module (hv_utils) and a daemon shipped with the kernel source (hv_kvp_daemon). The latter writes world-readable files to /var/lib/hyperv; these contain an array of binary structs. The host-guest protocol has the guest OS as the passive peer; hv_kvp_daemon connects and is sent all the host's key-value pairs. We don't want to require hv_kvp_daemon as a dependency, so we use a pure Go reimplementation (libhvee) that supports just enough of the protocol to receive the KVPs. However, if we disconnect and then hv_kvp_daemon reconnects later, the host won't re-send the KVPs, so we also need to save them to /var/lib/hyperv in the same format used by the daemon. Unlike the daemon, we set the files to mode 600, since the Ignition config is potentially sensitive; the daemon does not change the permissions of existing files. Small configs can be stored in the `ignition.config` KVP. However, individual values have severe length limitations (~1 KiB of UTF-8), so we also support concatenating `ignition.config.0`, `ignition.config.1`, etc. to form a larger config. See also: coreos/fedora-coreos-tracker#1411 coreos/fedora-coreos-tracker#1424 Almost all of this work was done by Brent Baude; I just added the final polish. Thanks Brent! Co-authored-by: Brent Baude <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft HyperV hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. This is in support of coreos/fedora-coreos-tracker#1424 Note: I cannot provide a link to HDX images in this documentation because they are not being made yet. This will need to be updated. Co-authored-by: Nikolas Grottendieck <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft Hyper-V hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. See: coreos/fedora-coreos-tracker#1424 Co-authored-by: Nikolas Grottendieck <[email protected]> Co-authored-by: Benjamin Gilbert <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft Hyper-V hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. See coreos/fedora-coreos-tracker#1424. Co-authored-by: Brent Baude <[email protected]> Co-authored-by: Nikolas Grottendieck <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft Hyper-V hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. See coreos/fedora-coreos-tracker#1424. Co-authored-by: Brent Baude <[email protected]> Co-authored-by: Nikolas Grottendieck <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft Hyper-V hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. See coreos/fedora-coreos-tracker#1424. Co-authored-by: Brent Baude <[email protected]> Co-authored-by: Nikolas Grottendieck <[email protected]>
Add instructions on how to boot Fedora CoreOS using the Microsoft Hyper-V hypervisor. The instructions cover a basic how-to for setting up the VM as well as specific information needed for Ignition to work properly. See coreos/fedora-coreos-tracker#1424. Co-authored-by: Brent Baude <[email protected]> Co-authored-by: Nikolas Grottendieck <[email protected]>
Hyper-V images will be available in the next set of FCOS releases. I've gone ahead and merged the docs PR in advance. |
Thanks a lot work all the work here @baude @bgilbert @dustymabe |
Looks like we missed adding |
Implementing a new supported platform
During Development
Create PR's addressing the following:
stream-metadata-go - Add Hyper-V artifact stream-metadata-go#55
Media
struct inrelease/release.go
toStreamArch
func inrelease/translate.go
fedora-coreos-tracker - Add Hyper-V metadata #1425
coreos-assembler
fedora-web
sites/static/js/coreos-download.js
fedora-coreos-browser - HyperV added to browser list fedora-coreos-browser#45
browser/index.html
build pipeline - Add hyperv to default artifacts fedora-coreos-pipeline#815
jobs/build.Jenkinsfile
for building the new artifactfedora-coreos-docs - Add documentation for Microsoft Hyper-V fedora-coreos-docs#545
provisioning-<platform>.adoc
that walks through how to setup the new platformmodules/ROOT/nav.adoc
that points to new documentationAt Release
Merge metadata changes:
Create and push signed tags with appropriate versions
Tag stream-metadata-go following the above steps. After tagging, ensure that dependabot has picked up latest version, and merged it into fedora-coreos-stream-generator && coreos-assembler.
Tag fedora-coreos-stream-generator following the above steps.
Merge the following changes:
Wait for updates made to coreos-assembler to be propagated to latest container
Merge changes for:
Wait for new images to reach stable then merge documentation.
The text was updated successfully, but these errors were encountered: