Skip to content

Revise KubeVirt platform for hypershift usage#3084

Merged
openshift-merge-robot merged 1 commit intoopenshift:masterfrom
davidvossel:update-kubevirt-platform
Apr 15, 2022
Merged

Revise KubeVirt platform for hypershift usage#3084
openshift-merge-robot merged 1 commit intoopenshift:masterfrom
davidvossel:update-kubevirt-platform

Conversation

@davidvossel
Copy link
Copy Markdown
Contributor

@davidvossel davidvossel commented Apr 13, 2022

Originally the KubeVirt platform was being developed as an ipi installed platform. It was being treated very similar to other on-prem provides. This KubeVirt ipi effort has been abandoned.

In its place, we are working on a KubeVirt Hypershift platform, which has different requirements than the IPI installation. To account for this, we need to strip out all the left over IPI configuration bits. We do however want to keep the KubeVirt platform as a separate infrastructure platform because we will begin leveraging this platform in unique ways in the future.

Signed-off-by: David Vossel <davidvossel@gmail.com>
@kikisdeliveryservice
Copy link
Copy Markdown
Contributor

@davidvossel is there someone from your team who can also review this?

@davidvossel
Copy link
Copy Markdown
Contributor Author

/retest

@cgwalters
Copy link
Copy Markdown
Member

we how are working on a KubeVirt Hypershift platform

Seems like this could use a hyperlink.

But anyways
/approve

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 13, 2022
@davidvossel
Copy link
Copy Markdown
Contributor Author

Seems like this could use a hyperlink.

I added a link to the kubevirt hypershift documentation in the PR description. That's about the best thing we have that's publicly accessible.

@kikisdeliveryservice
Copy link
Copy Markdown
Contributor

@davidvossel please assign a kubevirt/hypershift approver for the final lgtm

@davidvossel
Copy link
Copy Markdown
Contributor Author

@davidvossel please assign a kubevirt/hypershift approver for the final lgtm

@nirarg would you be able to do the final lgtm here?

What I've done is revert the majority of the logic in #2098 while leaving the KubevirtPlatformType api value. Functionally, the KubeVirt platform should now behave like the None platform. This KubeVirt platform type gives us the ability to detect that the infrastructure is running on top of KubeVirt which can help with decision making for other operators (like cso someday having the ability to intelligently lay down the kubevirt csi driver)

@nirarg
Copy link
Copy Markdown

nirarg commented Apr 14, 2022

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 14, 2022
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 14, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cgwalters, davidvossel, nirarg

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 15, 2022

@davidvossel: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions 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/test-infra repository. I understand the commands that are listed here.

@openshift-merge-robot openshift-merge-robot merged commit dd06278 into openshift:master Apr 15, 2022
wking added a commit to wking/cincinnati-graph-data that referenced this pull request May 3, 2023
Discussion in [1] has some details, but trying to unpack "all on-prem
IPI except baremetal IPI" into specifics, [2] is in an on-prem
directory configuring keepalived, and it switches on
onPremPlatformAPIServerInternalIP for enabled vs. disabled.
onPremPlatformAPIServerInternalIP is true (enabling the keepalived
configuration) for:

* BareMetal (4.10 [3] and 4.11 [4])
* oVirt (4.10 [3] and 4.11 [4])
* OpenStack (4.10 [3] and 4.11 [4])
* VSphere (4.10 [3] and 4.11 [4]),
* KubeVirt (4.10 [3], dropped in 4.11 [4,5])
* Nutanix (new in 4.11 [4,6,7]).

Before 4.11, ENABLE_UNICAST was conditional on
onPremPlatformKeepalivedEnableUnicast [8], but since 4.11, it has
always been 'yes' [9].  The platforms that were unicast on 4.10's
onPremPlatformKeepalivedEnableUnicast were BareMetal and KubeVirt
[10].

Putting this all together, AWS and other platforms that don't match
the onPremPlatformAPIServerInternalIP logic aren't impacted, because
they don't enable the keepalived configuration.  BareMetal is not
impacted by 4.10-to-4.11 updates, because any to-unicast transition
issues will already have been resolved by 4.10.  Remaining
onPremPlatformAPIServerInternalIP platforms which occur in both 4.10
and 4.11 are interested, and I match them here.

Generated by writing the 4.11.0 declaration by hand, and then copying
out to other 4.11 releases with:

  $ curl -s 'https://api.openshift.com/api/upgrades_info/graph?channel=candidate-4.11' | jq -r '.nodes[].version' | grep '^4[.]11[.]' | grep -v '^4[.]11[.]0$' | while read V; do sed "s/4[.]11[.]0/${V}/g" blocked-edges/4.11.0-KeepalivedMulticastSkew.yaml > "blocked-edges/${V}-KeepalivedMulticastSkew.yaml"; done
  $ git add blocked-edges/4.11.*KeepalivedMulticastSkew.yaml

[1]: https://issues.redhat.com/browse/OPNET-296
[2]: https://github.com/openshift/machine-config-operator/blame/8fa0b7e8903226b3cfb76e6c6f49409cfc0dd0e7/templates/common/on-prem/files/keepalived.yaml#L2
[3]: https://github.com/openshift/machine-config-operator/blob/afb47c916680dd5870e48e5c9cf819f59e12ff4d/pkg/operator/render.go#L282-L294
[4]: https://github.com/openshift/machine-config-operator/blob/8fa0b7e8903226b3cfb76e6c6f49409cfc0dd0e7/pkg/operator/render.go#L282-L294
[5]: openshift/machine-config-operator#3084
[6]: openshift/machine-config-operator#2942
[7]: https://docs.openshift.com/container-platform/4.11/release_notes/ocp-4-11-release-notes.html#ocp-4-11-nutanix
[8]: https://github.com/openshift/machine-config-operator/blob/afb47c916680dd5870e48e5c9cf819f59e12ff4d/templates/common/on-prem/files/keepalived.yaml#L155-L156
[9]: openshift/machine-config-operator@84d0bae#diff-c4a27bc4c14847dd581f495e992f67cf49b430644e8f113aabfa879de076564dL156
[10]: https://github.com/openshift/machine-config-operator/blob/afb47c916680dd5870e48e5c9cf819f59e12ff4d/pkg/operator/render.go#L249-L250
wking added a commit to wking/cincinnati-graph-data that referenced this pull request May 4, 2023
Discussion in [1] has some details, but trying to unpack "all on-prem
IPI except baremetal IPI" into specifics, [2] is in an on-prem
directory configuring keepalived, and it switches on
onPremPlatformAPIServerInternalIP for enabled vs. disabled.
onPremPlatformAPIServerInternalIP is true (enabling the keepalived
configuration) for:

* BareMetal (4.10 [3] and 4.11 [4])
* oVirt (4.10 [3] and 4.11 [4])
* OpenStack (4.10 [3] and 4.11 [4])
* VSphere (4.10 [3] and 4.11 [4]),
* KubeVirt (4.10 [3], dropped in 4.11 [4,5])
* Nutanix (new in 4.11 [4,6,7]).

Before 4.11, ENABLE_UNICAST was conditional on
onPremPlatformKeepalivedEnableUnicast [8], but since 4.11, it has
always been 'yes' [9].  The platforms that were unicast on 4.10's
onPremPlatformKeepalivedEnableUnicast were BareMetal and KubeVirt
[10].

Putting this all together, AWS and other platforms that don't match
the onPremPlatformAPIServerInternalIP logic aren't impacted, because
they don't enable the keepalived configuration.  BareMetal is not
impacted by 4.10-to-4.11 updates, because any to-unicast transition
issues will already have been resolved by 4.10.  Remaining
onPremPlatformAPIServerInternalIP platforms which occur in both 4.10
and 4.11 are interested, and I match them here.

Generated by writing the 4.11.0 declaration by hand, and then copying
out to other 4.11 releases with:

  $ curl -s 'https://api.openshift.com/api/upgrades_info/graph?channel=candidate-4.11' | jq -r '.nodes[].version' | grep '^4[.]11[.]' | grep -v '^4[.]11[.]0$' | while read V; do sed "s/4[.]11[.]0/${V}/g" blocked-edges/4.11.0-KeepalivedMulticastSkew.yaml > "blocked-edges/${V}-KeepalivedMulticastSkew.yaml"; done
  $ git add blocked-edges/4.11.*KeepalivedMulticastSkew.yaml

[1]: https://issues.redhat.com/browse/OPNET-296
[2]: https://github.com/openshift/machine-config-operator/blame/8fa0b7e8903226b3cfb76e6c6f49409cfc0dd0e7/templates/common/on-prem/files/keepalived.yaml#L2
[3]: https://github.com/openshift/machine-config-operator/blob/afb47c916680dd5870e48e5c9cf819f59e12ff4d/pkg/operator/render.go#L282-L294
[4]: https://github.com/openshift/machine-config-operator/blob/8fa0b7e8903226b3cfb76e6c6f49409cfc0dd0e7/pkg/operator/render.go#L282-L294
[5]: openshift/machine-config-operator#3084
[6]: openshift/machine-config-operator#2942
[7]: https://docs.openshift.com/container-platform/4.11/release_notes/ocp-4-11-release-notes.html#ocp-4-11-nutanix
[8]: https://github.com/openshift/machine-config-operator/blob/afb47c916680dd5870e48e5c9cf819f59e12ff4d/templates/common/on-prem/files/keepalived.yaml#L155-L156
[9]: openshift/machine-config-operator@84d0bae#diff-c4a27bc4c14847dd581f495e992f67cf49b430644e8f113aabfa879de076564dL156
[10]: https://github.com/openshift/machine-config-operator/blob/afb47c916680dd5870e48e5c9cf819f59e12ff4d/pkg/operator/render.go#L249-L250
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants