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

kubeadm: add KEP for customization with patches #1742

Conversation

neolit123
Copy link
Member

@neolit123 neolit123 commented May 4, 2020

this KEP comes with a proposal that replaces the existing Alpha feature for patching using Kustomize.
note that the new KEP template format is used.

xref:
kubernetes/kubeadm#2046
#1739

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label May 4, 2020
@k8s-ci-robot k8s-ci-robot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label May 4, 2020
@neolit123 neolit123 added sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels May 4, 2020
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: neolit123

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

@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. labels May 4, 2020
@neolit123 neolit123 added kind/feature Categorizes issue or PR as related to a new feature. kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory and removed approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. kind/feature Categorizes issue or PR as related to a new feature. labels May 4, 2020
@neolit123
Copy link
Member Author

@kubernetes/sig-cluster-lifecycle-pr-reviews

@k8s-ci-robot k8s-ci-robot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label May 4, 2020
Copy link
Member

@fabriziopandini fabriziopandini left a comment

Choose a reason for hiding this comment

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

@neolit123 I'm wondering if/how we can get feedback from users around this change, because this introduce a discuntinuity hard to manage for users and higher level tools relying on this feature

@neolit123
Copy link
Member Author

I'm wondering if/how we can get feedback from users around this change, because this introduce a discuntinuity hard to manage for users and higher level tools relying on this feature

for reference, core k8s removes Alpha features without a deprecation period. in kubeadm we are nicer and usually allow users to transition for at least one release (as in this KEP).

i disagreed that there will be discontinuity given there will be a replacement, all that users need to do is:

  • rename the patch files to match the new patch name format.
  • pass the new flag.

not editing the patch files and leaving kustomization.yaml is not really breaking.

i do agree however that there will be discontinuity if we remove something and don't provide an alternative or an easy workaround.

Copy link
Contributor

@rosti rosti left a comment

Choose a reason for hiding this comment

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

Thanks @neolit123 !
I like the idea, but the UX is a bit strange to me in the following aspects:

  • It's not a good practice to encode machine readable information in file names. Something better should be employed.
  • It's not a good idea to dump a directory full of stuff and expect kubeadm to consume everything inside that meets certain patterns.

I would advise on having an --experimental-patch-strategic, --experimental-patch-json, and --experimental-patch-merge options. Each can take one file and multiple options can be used in the command line. The patches would be applied in the order of appearance.

That said, patches are local node customizations. As such, they are a big candidate for being included in the NodeRegistrationOptions or as separate kinds in the config. Possibly, coming up with a solution for this should be a requirement to get this feature to beta.

@neolit123 neolit123 force-pushed the 1.19-kubeadm-customization-with-patches branch from a7e0ace to e71b91b Compare May 14, 2020 02:41
@k8s-ci-robot k8s-ci-robot added sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels May 14, 2020
@neolit123 neolit123 force-pushed the 1.19-kubeadm-customization-with-patches branch from e71b91b to 028a1e4 Compare May 14, 2020 03:01
Copy link
Contributor

@rosti rosti left a comment

Choose a reason for hiding this comment

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

Thanks @neolit123 !
/lgtm
/hold
for @fabriziopandini 's review.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 14, 2020
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 14, 2020
@fabriziopandini
Copy link
Member

fabriziopandini commented May 17, 2020

/lgtm
I agree with @rosti that long term we should move patches from flags to config, but considering we are still alpha and that Kustomize is not doing progress in k/k and kubectl, I'm +1 to explore this alternative and gather user feedback on this solution

@fabriziopandini
Copy link
Member

/lgtm

@rosti
Copy link
Contributor

rosti commented May 18, 2020

I think that we have reached an agreement here. We can always reiterate if needed.

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 18, 2020
@neolit123 neolit123 force-pushed the 1.19-kubeadm-customization-with-patches branch from 028a1e4 to fbb8340 Compare May 18, 2020 14:35
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 18, 2020
@neolit123 neolit123 force-pushed the 1.19-kubeadm-customization-with-patches branch from fbb8340 to 0b4105d Compare May 18, 2020 14:36
@rosti
Copy link
Contributor

rosti commented May 18, 2020

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 18, 2020
@k8s-ci-robot k8s-ci-robot merged commit 9c679fe into kubernetes:master May 18, 2020
@k8s-ci-robot k8s-ci-robot added this to the v1.19 milestone May 18, 2020
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. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. 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.

4 participants