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

Remove option to disable OSM #13381

Merged
merged 3 commits into from May 21, 2024

Conversation

ahmedwaleedmalik
Copy link
Member

@ahmedwaleedmalik ahmedwaleedmalik commented May 7, 2024

What this PR does / why we need it:
The user-data plugins from the machine-controller have been removed. OSM is mandatory now to create a functional cluster since we can't fall back on user data generated by the machine-controller anymore.

Which issue(s) this PR fixes:

Fixes #

What type of PR is this?

/kind cleanup

Special notes for your reviewer:
A follow-up PR for this will add guardrails in the installer to prevent upgrades if OSM has been explicitly disabled for a cluster. Users will have to update their clusters before the KKP upgrade. We can maybe add a flag to automate this as well but it's TBD.

Does this PR introduce a user-facing change? Then add your Release Note here:

Operating System Manager is now mandatory to create a functional cluster since machine-controller user-data plugins have been removed(https://github.com/kubermatic/machine-controller/pull/1789). Thus, the Operating System Manager is now always enabled for the user clusters.

Documentation:

NONE

Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com>
@kubermatic-bot kubermatic-bot added docs/none Denotes a PR that doesn't need documentation (changes). release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. dco-signoff: yes Denotes that all commits in the pull request have the valid DCO signoff message. sig/app-management Denotes a PR or issue as being assigned to SIG App Management. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels May 7, 2024
@ahmedwaleedmalik ahmedwaleedmalik changed the title Remove option to disable OSM WIP: Remove option to disable OSM May 7, 2024
@kubermatic-bot kubermatic-bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 7, 2024
@ahmedwaleedmalik
Copy link
Member Author

/kind api-change
/label needs-release-testing

@kubermatic-bot kubermatic-bot added the kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API label May 7, 2024
@kubermatic-bot
Copy link
Contributor

@ahmedwaleedmalik: The label(s) /label needs-release-testing cannot be applied. These labels are supported: blocked by backend, merge-type/merge, merge-type/rebase, needs details, service accounts, Epic, MVP, customer-request, design, feature, proposal, ready-to-challenge, redesign, sig/api, sig/app-management, sig/cluster-management, sig/community, sig/infra, sig/networking, sig/ui, sig/virtualization, sprint, team/marketing, team/ps, lifecycle/frozen, backport-needed, backport-complete, ee, test/require-vsphere, test/require-kubevirt, test/require-vmwareclouddirector, test/require-nutanix. Is this label configured under labels -> additional_labels or labels -> restricted_labels in plugin.yaml?

In response to this:

/kind api-change
/label needs-release-testing

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.

Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com>
@ahmedwaleedmalik
Copy link
Member Author

/label needs-release-testing

@kubermatic-bot
Copy link
Contributor

@ahmedwaleedmalik: The label(s) /label needs-release-testing cannot be applied. These labels are supported: blocked by backend, merge-type/merge, merge-type/rebase, needs details, service accounts, Epic, MVP, customer-request, design, feature, proposal, ready-to-challenge, redesign, sig/api, sig/app-management, sig/cluster-management, sig/community, sig/infra, sig/networking, sig/ui, sig/virtualization, sprint, team/marketing, team/ps, lifecycle/frozen, backport-needed, backport-complete, ee, test/require-vsphere, test/require-kubevirt, test/require-vmwareclouddirector, test/require-nutanix. Is this label configured under labels -> additional_labels or labels -> restricted_labels in plugin.yaml?

In response to this:

/label needs-release-testing

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.

@ahmedwaleedmalik
Copy link
Member Author

/label needs-release-testing

@kubermatic-bot kubermatic-bot added the needs-release-testing Denotes a PR or issue that needs to be tested before release. label May 7, 2024
@ahmedwaleedmalik
Copy link
Member Author

/retest

1 similar comment
@ahmedwaleedmalik
Copy link
Member Author

/retest

Signed-off-by: Waleed Malik <ahmedwaleedmalik@gmail.com>
@ahmedwaleedmalik ahmedwaleedmalik changed the title WIP: Remove option to disable OSM Remove option to disable OSM May 7, 2024
@kubermatic-bot kubermatic-bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 7, 2024
@ahmedwaleedmalik
Copy link
Member Author

/assign @xrstf

Copy link
Member

@embik embik left a comment

Choose a reason for hiding this comment

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

I had a similar deprecation/removal in #13316, so here's a question I had to ask myself: Is KKP going to be capable of differentiating between "this *bool field is unset because the cluster is old and still using MC user-data" and "this *bool is unset because the cluster is new and uses OSM by default"? Is there any migration code required that KKP will fail to run when it's confused about which type of cluster it is processing?

Maybe it makes sense to talk about this in SIG Cluster Management so we have a consistent way forward to deprecating fields in this release. As it stands, my PR will default the deprecated field to true, while this PR will go the opposite direction, and I think it would be nice if we adjusted behaviour.

@ahmedwaleedmalik
Copy link
Member Author

Is KKP going to be capable of differentiating between "this *bool field is unset because the cluster is old and still using MC user-data" and "this *bool is unset because the cluster is new and uses OSM by default"? Is there any migration code required that KKP will fail to run when it's confused about which type of cluster it is processing?

Yeah, it should. As explained in the "reviewer notes," we'll have pre-flight checks in the installer to block users who have not enabled OSM. Migration, not sure, if we'll build it in the installer or just leave it up to the user.

@embik
Copy link
Member

embik commented May 14, 2024

Gotcha, I misunderstood the reviewer notes for some reason saying we will only reject if the field is set to false explicitly. Makes sense though. For Konnectivity, I've opted for just rejecting upgrades when a cluster hasn't been migrated yet, so that operators can run upgrades in their own time (and not experience a force-upgrade/migration when installing the latest KKP).

Copy link
Member

@embik embik left a comment

Choose a reason for hiding this comment

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

/approve

@kubermatic-bot kubermatic-bot added the lgtm Indicates that a PR is ready to be merged. label May 21, 2024
@kubermatic-bot
Copy link
Contributor

LGTM label has been added.

Git tree hash: eb6eef185c1293efeb32bb56a0c01b8f698e83a4

@kubermatic-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: embik

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

The pull request process is described 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

@kubermatic-bot kubermatic-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 21, 2024
@kubermatic-bot kubermatic-bot merged commit 972ac74 into kubermatic:main May 21, 2024
23 checks passed
@kubermatic-bot kubermatic-bot added this to the KKP 2.26 milestone May 21, 2024
@ahmedwaleedmalik ahmedwaleedmalik deleted the osm-cleanup branch May 21, 2024 12:00
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. dco-signoff: yes Denotes that all commits in the pull request have the valid DCO signoff message. docs/none Denotes a PR that doesn't need documentation (changes). kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm Indicates that a PR is ready to be merged. needs-release-testing Denotes a PR or issue that needs to be tested before release. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/app-management Denotes a PR or issue as being assigned to SIG App Management. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants