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

Deprecate user data plugins #1642

Merged
merged 2 commits into from
May 12, 2023

Conversation

ahmedwaleedmalik
Copy link
Member

@ahmedwaleedmalik ahmedwaleedmalik commented May 12, 2023

User data plugins from machine-controller have been deprecated and will soon be removed in favor of OSM.

What this PR does / why we need it:

Historically, machine-controller relied on user data plugins to generate configurations(cloud-config) for worker machines. Each operating system requires its own user-data plugin. These configs are then injected into the worker nodes using provisioning utilities such as cloud-init or ignition. Eventually, the nodes are bootstrapped.

Over time, it has been observed that this workflow has certain limitations.

  • Machine Controller expects ALL the supported user-data plugins to exist and be ready. User might only be interested in a subset of the available operating systems. For example, user might only want to work with ubuntu.
  • The user-data plugins have templates defined in-code. Which is not ideal since code changes are required to update those templates. Then those code changes need to become a part of the subsequent releases for machine-controller and KubeOne. So we need a complete release cycle to ship those changes to customers.
  • Managing configs for multiple cloud providers, OS flavors and OS versions, adds a lot of complexity and redundancy in machine-controller.
  • Since the templates are defined in-code, there is no way for an end user to customize them to suit their use-cases.
  • Each cloud provider sets some sort of limits for the size of user-data, machine won't be created in case of non-compliance. For example, at the time of writing this, AWS has set a hard limit of 16KB.
  • Better support for air-gapped environments is required.

To overcome these limitations; Kubermatic built Operating System Manager. Please refer to Operating System Manager for more details.

User data plugins from machine-controller have thus been deprecated and will soon be removed in favor of OSM.

Which issue(s) this PR fixes:

Fixes #1544

What type of PR is this?

/kind deprecation

Special notes for your reviewer:

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

[ACTION REQUIRED] User data plugins for machine-controller are deprecated and will soon be removed. [Operating System Manager](https://github.com/kubermatic/operating-system-manager) is the successor of user data plugins. It's responsible for creating and managing the required configurations for worker nodes in a Kubernetes cluster with better modularity and extensibility. Please refer to [Operating System Manager](https://github.com/kubermatic/operating-system-manager#kubermatic-operating-system-manager) for more details.

Documentation:

https://docs.kubermatic.com/operatingsystemmanager/

@ahmedwaleedmalik ahmedwaleedmalik self-assigned this May 12, 2023
@kubermatic-bot kubermatic-bot added docs/tbd Denotes a PR that needs documentation (change) that will be done later. kind/deprecation Categorizes issue or PR as related to a feature/enhancement marked for deprecation. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. dco-signoff: yes Denotes that all commits in the pull request have the valid DCO signoff message. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. approved Indicates a PR has been approved by an approver from all required OWNERS files. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels May 12, 2023
Signed-off-by: Waleed Malik <[email protected]>
@kubermatic-bot kubermatic-bot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels May 12, 2023
Signed-off-by: Waleed Malik <[email protected]>
@xrstf
Copy link
Contributor

xrstf commented May 12, 2023

/lgtm

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

LGTM label has been added.

Git tree hash: 54af6e282bb61515d1983c059eee85762bcabb80

@kron4eg
Copy link
Member

kron4eg commented May 12, 2023

/approve
/lgtm

@kubermatic-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ahmedwaleedmalik, kron4eg

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:
  • OWNERS [ahmedwaleedmalik,kron4eg]

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

@ahmedwaleedmalik
Copy link
Member Author

/retest

1 similar comment
@ahmedwaleedmalik
Copy link
Member Author

/retest

@kubermatic-bot kubermatic-bot merged commit d0f4672 into kubermatic:main May 12, 2023
@ahmedwaleedmalik ahmedwaleedmalik deleted the deprecate-user-data branch May 12, 2023 16:15
@kubermatic-bot kubermatic-bot added docs/provided Denotes a PR that has a valid documentation reference. and removed docs/tbd Denotes a PR that needs documentation (change) that will be done later. labels Jun 22, 2023
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/provided Denotes a PR that has a valid documentation reference. kind/deprecation Categorizes issue or PR as related to a feature/enhancement marked for deprecation. lgtm Indicates that a PR is ready to be merged. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. sig/cluster-management Denotes a PR or issue as being assigned to SIG Cluster Management. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deprecate userdata
4 participants