Skip to content

Added feature-gates deprecation guidelines and policy as per discussi…#10294

Merged
k8s-ci-robot merged 8 commits intokubernetes:masterfrom
anlunas:feature-gates-deprecation-branch
Nov 8, 2018
Merged

Added feature-gates deprecation guidelines and policy as per discussi…#10294
k8s-ci-robot merged 8 commits intokubernetes:masterfrom
anlunas:feature-gates-deprecation-branch

Conversation

@anlunas
Copy link
Copy Markdown
Contributor

@anlunas anlunas commented Sep 13, 2018

Added feature-gates deprecation guidelines and policy as per discussion SIG-architecture meeting 6th Sept 2018.
https://docs.google.com/document/d/1BusX-ipd9QK58HugU5R-sQF_z4a36oPmkKihv3vTx6o/edit?usp=sharing

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 13, 2018
@k8sio-netlify-preview-bot
Copy link
Copy Markdown
Collaborator

k8sio-netlify-preview-bot commented Sep 13, 2018

Deploy preview for kubernetes-io-master-staging ready!

Built with commit 19132e4

https://deploy-preview-10294--kubernetes-io-master-staging.netlify.com

@anlunas
Copy link
Copy Markdown
Contributor Author

anlunas commented Sep 13, 2018

/assign @bradtopol
/sig architecture

@dims
Copy link
Copy Markdown
Member

dims commented Sep 13, 2018

/hold

cc @bgrant0607 @jdumars

@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 Sep 13, 2018
@neolit123
Copy link
Copy Markdown
Member

neolit123 commented Sep 13, 2018

thanks @dims and @anlunas :)

the preview and the definitions SGTM as per the google docs edits.

Alpha: 0 releases

with regard to alpha gates, something else i've remembered that kubeadm is currently doing is the following.
it deprecates a certain alpha gate not immediately but rather waits for 1 release.
this was due to the fact that the particular gate had a user base even if being alpha and kubeadm didn't want to phases it out without notification.

but we can consider this as an edge case.

WRT the above, a possible addition to the document can be that maintainers might decide to extend the deprecation period, if see fit.

@smarterclayton
Copy link
Copy Markdown
Contributor

Seems pretty close to what I expected

@anlunas
Copy link
Copy Markdown
Contributor Author

anlunas commented Sep 14, 2018

@neolit123 , Since enforcement was a topic during the discussion, I thought we should write a guideline that is/sounds less flexible, at the same time pointing out the fact that not all feature-gates (or their maintainers) respect this guideline. do you think we need a new sentence to add flexibility?
If not, I believe the Alpha case is covered by both rules: Rule #8a for the lower bound - Alpha must function for no less than 0 releases after their announced deprecation ~ equal to or more than 0 releases.
Rule #8b: for the upper bound - Alpha must function at most until the old behavior has been removed ~ no need for it anymore as there is nothing to toggle.
I believe we could make the "rules" part more readable but at the cost of breaking the syntax of the rest of the de document.
In any case I am open, let me know what you think.

@neolit123
Copy link
Copy Markdown
Member

@anlunas thinking about it a bit more i think this extra case that i pointed out it already covered. the lower and upper bounds provide sufficient detail for both developers and contributors.
thanks for the clarification!

Copy link
Copy Markdown
Member

@thockin thockin left a comment

Choose a reason for hiding this comment

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

Sorry to be picky.

Fixes and initial feedback incorporated.
Removed complicated sentence that is better phrased one sentence later.
@dims
Copy link
Copy Markdown
Member

dims commented Sep 19, 2018

/assign @thockin

Tim, please approve this for sig-arch ( @jdumars and @bgrant0607 tagged you as approver on sig-arch slack ) :)

-- Dims

Copy link
Copy Markdown
Member

@thockin thockin left a comment

Choose a reason for hiding this comment

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

Sorry for nit-picking. Trying to make it is aminimal and precise as possible.

Re-structured following key ideas from the feedback.
@lavalamp
Copy link
Copy Markdown
Contributor

Seems like this is a lot better than not being there and feedback has been incorporated.

/lgtm

@thockin
Copy link
Copy Markdown
Member

thockin commented Oct 16, 2018

Thanks for persevering :)

@dims
Copy link
Copy Markdown
Member

dims commented Oct 23, 2018

@anlunas please incorporate the last bits from @liggitt above and we can take it to the arch meeting for final approval

Incorporated 'invocation triggers warning' and what to do when disabling a no-op.
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 25, 2018
Announced for completed
@anlunas
Copy link
Copy Markdown
Contributor Author

anlunas commented Oct 25, 2018

/assign @thockin
and thank you for persevering :)

@tallclair
Copy link
Copy Markdown
Member

A related question was raised on kubernetes/kubernetes#68230 (comment) that isn't covered by the policy:

From @liggitt:

allowing people to specify command-line options we then do the opposite of doesn't seem like a good idea for feature gates... presumably they had a reason for explicitly disabling the feature... our options in this situation are:

  • continue allowing the feature to be disabled (which we don't want to do)
  • do the opposite of what they commanded (which I think is a bad idea)
  • refuse to start

Should we extend the policy to cover this case?

@liggitt
Copy link
Copy Markdown
Member

liggitt commented Nov 1, 2018

From @liggitt:

allowing people to specify command-line options we then do the opposite of doesn't seem like a good idea for feature gates... presumably they had a reason for explicitly disabling the feature... our options in this situation are:

  • continue allowing the feature to be disabled (which we don't want to do)
  • do the opposite of what they commanded (which I think is a bad idea)
  • refuse to start

Should we extend the policy to cover this case?

This line was intended to address it:

When an invocation tries to disable a no-op GA gate, the call will fail in order to
avoid unsupported scenarios that might run silently.

@tallclair
Copy link
Copy Markdown
Member

Oh, got it, I missed that. Thanks!

@dims
Copy link
Copy Markdown
Member

dims commented Nov 6, 2018

/hold cancel
/lgtm

@k8s-ci-robot k8s-ci-robot added lgtm "Looks good to me", indicates that a PR is ready to be merged. and removed do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Nov 6, 2018
@dims
Copy link
Copy Markdown
Member

dims commented Nov 6, 2018

@kubernetes/sig-docs-en-owners @kubernetes/sig-docs-en-reviews Can one of you please /approve this?

@zacharysarah
Copy link
Copy Markdown
Contributor

@dims Reviewing now 👀

Copy link
Copy Markdown
Contributor

@zacharysarah zacharysarah left a comment

Choose a reason for hiding this comment

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

Looks good! ✨ Here's some feedback for cleaner copy. I'm requesting changes, but also approving and holding--I'd like to see the changes prior to merge, but I understand if these changes are time sensitive. 👍

If you decide to make changes, the approval will stay--any org member can /lgtm and /hold cancel when you're ready for subsequent review.

correctness of applications running on Kubernetes or that impact the
administration of Kubernetes clusters, and which are being removed entirely.

An exception to the above rule is **feature-gates**. Feature gates are key=value
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

"Feature gates" and "feature-gates" seem to be used interchangeably.

Let's standardize on "feature gates".

Also, nit: this should be italics, not bold.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@zacharysarah Thanks a lot for your feedback! I will address them asap.
One question on this comment : should I use italics for all instances of feature gates? or only for the first time? thanks!!

@zacharysarah
Copy link
Copy Markdown
Contributor

/approve
/hold

@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 Nov 6, 2018
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: thockin, zacharysarah

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

The pull request process is described here

Details 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 the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 6, 2018
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Nov 7, 2018
@dims
Copy link
Copy Markdown
Member

dims commented Nov 8, 2018

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Nov 8, 2018
@dims
Copy link
Copy Markdown
Member

dims commented Nov 8, 2018

/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 Nov 8, 2018
@k8s-ci-robot k8s-ci-robot merged commit 0347d23 into kubernetes:master Nov 8, 2018
@anlunas anlunas deleted the feature-gates-deprecation-branch branch November 8, 2018 11:25
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. language/en Issues or PRs related to English language 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. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.