Skip to content
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

Add a proposal to remove rootful VMs feature #248

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

orelmisan
Copy link
Member

@orelmisan orelmisan commented Oct 25, 2023

Currently, KubeVirt supports both rootful and non-root VMs.
Since kubevirt/kubevirt#8563 was merged, non-root VMs are the default implementation.

Rootful VMs are less secure, pose a maintenance burden and are not tested when PRs are submitted
since kubevirt/project-infra#2646.

@kubevirt-bot kubevirt-bot added the dco-signoff: yes Indicates the PR's author has DCO signed all their commits. label Oct 25, 2023
@kubevirt-bot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign rmohr for approval. For more information see the Kubernetes Code Review Process.

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

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

@orelmisan
Copy link
Member Author

/cc @acardace @xpivarc @enp0s3

Copy link
Member

@xpivarc xpivarc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM
Let`s state the timeline that we would like to achieve but is subject to change if any regression is found.

# Overview

Currently, KubeVirt supports both rootful and non-root VMs.
Since [kubevirt/kubevirt#8563](https://github.com/kubevirt/kubevirt/pull/8563) was merged, non-root VMs are the default
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe mention version 0.59

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

## Motivation

Rootful VMs are less secure, pose a maintenance burden and are not tested when PRs are submitted
since [kubevirt/project-infra#2646](https://github.com/kubevirt/project-infra/pull/2646).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, mention a Kubevirt version

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


# Design

1. Remove the `NonRootExperimental` feature gate.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would expect "deprecation" phase

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@dhiller
Copy link
Contributor

dhiller commented Nov 1, 2023

@mjudeikis FYI, we think you mentioned issues on your side with deprecation of the feature. Please chime in here.

@alaypatel07 FYI too

@mjudeikis
Copy link

As mentioned during the community call, we just started looking to adopt Kubevirt. The main concern would be the ability to run legacy workloads (lift and shift). And for us it's too early to tell definitively if this will be a concern or not. And to be honest. Im wondering how my ex-team within your organization dealing with "hyper-converged infrastructure customers and migrations will take this one? Did you manage to get any feedback internally from field teams using this?

Considering the timeline of how this is being proposed (1.1.0 rc already cut) and not blocking something on "what ifs" as of yet, would it be feasible to push this into the 1.3 release for depreciation and 1.4 for code removal? We might be able to get more feedback once the dust from Kubecon settles down and people get back to normal working hours.

This would give the community (including us) more time to provide feedback on this and understand the impact.

Signed-off-by: Orel Misan <omisan@redhat.com>
@orelmisan
Copy link
Member Author

Change: Update deprecation version to 1.3.0, removal version to 1.4.0.

@orelmisan
Copy link
Member Author

/cc @rmohr

@kubevirt-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@kubevirt-bot kubevirt-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 31, 2024
@orelmisan
Copy link
Member Author

/remove-lifecycle stale

@kubevirt-bot kubevirt-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 31, 2024
@aburdenthehand
Copy link
Contributor

@jean-edouard @xpivarc @rmohr @fabiand
It looks like there's nothing outstanding for this proposal. Are we okay to merge?

@alaypatel07
Copy link

@aburdenthehand hey I am considering the implications of what will break with removal of this feature. The usecase being considered is a KubeVirt stack installed with gpu-device plugins. The device plugins require the pods to mount certain node level devices/files which needs rootful feature. It is on my plate to experiment what will break when using the device plugins with non-root VMIs. Will updates this proposal with the experiments, but need some more time before merging this proposal

@orelmisan
Copy link
Member Author

As mentioned during the community call, we just started looking to adopt Kubevirt. The main concern would be the ability to run legacy workloads (lift and shift). And for us it's too early to tell definitively if this will be a concern or not. And to be honest. Im wondering how my ex-team within your organization dealing with "hyper-converged infrastructure customers and migrations will take this one? Did you manage to get any feedback internally from field teams using this?

Considering the timeline of how this is being proposed (1.1.0 rc already cut) and not blocking something on "what ifs" as of yet, would it be feasible to push this into the 1.3 release for depreciation and 1.4 for code removal? We might be able to get more feedback once the dust from Kubecon settles down and people get back to normal working hours.

This would give the community (including us) more time to provide feedback on this and understand the impact.

Hello @mjudeikis, I wanted to check in with you regarding your previous concerns about the proposal.
Have they been resolved?

@rthallisey
Copy link
Contributor

Can this wait until DRA (Dynamic Resource Allocation) reaches Beta? Root support allows end-users to work around the current device-plugin limitations that will go away with DRA, and I don't think Beta is too far away... kubernetes/enhancements#3063.

@kubevirt-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@kubevirt-bot kubevirt-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 25, 2024
@orelmisan
Copy link
Member Author

/remove-lifecycle stale

@kubevirt-bot kubevirt-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dco-signoff: yes Indicates the PR's author has DCO signed all their commits. size/M
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants