Initial Kubevirt provider implementation #3416
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
This PR implements the initial and very minimal Kubevirt provider for KubeOne. The purposes of this implementation is to mitigate the issue outlined in #3366, i.e. to allow using machine-controller and operating-system-manager for Kubevirt clusters.
I initially though about reading supported environment variables and putting them in the secret if cloud provider is none, but it has two very big problems:
KUBEVIRT_KUBECONFIG
for the said cluster that uses cloud provider nonekubeone apply
without setting the needed environment variables, in which case the value would be removed from the cluster and machine-controller would start failingBecause of the given reasons, I thought that it's much safer to implement a very minimalistic provider for Kubevirt that doesn't have Terraform integration and support for CCM/CSI, but that can be used as a way to deploy machine-controller and operating-system-manager in a safe and reliable way.
Which issue(s) this PR fixes:
xref #3366
What type of PR is this?
/kind feature
Special notes for your reviewer:
This is very initial Kubevirt provider implementation, we'll consider and discuss about extending it in future KubeOne releases.
Does this PR introduce a user-facing change? Then add your Release Note here:
Documentation:
/assign @kron4eg @moadqassem
/hold for discussion and lazy consensus