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

Feature gates reference documentation #6364

Merged
merged 4 commits into from
Jan 26, 2018

Conversation

tengqm
Copy link
Contributor

@tengqm tengqm commented Nov 17, 2017

This adds a reference document for feature-gates.


This change is Reviewable

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. 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 Nov 17, 2017
@k8sio-netlify-preview-bot
Copy link
Collaborator

k8sio-netlify-preview-bot commented Nov 17, 2017

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

Built with commit 4db0bcb

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

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Nov 17, 2017
@tengqm tengqm changed the title [WIP] Feature gates Feature gates reference documentation Nov 17, 2017
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 17, 2017
@tengqm tengqm force-pushed the feature-gates branch 2 times, most recently from 57cfe49 to 90e4691 Compare November 17, 2017 13:26
@chenopis
Copy link
Contributor

@tengqm This is great, but how do we keep this up-to-date for every release?

Copy link
Contributor

@chenopis chenopis left a comment

Choose a reason for hiding this comment

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

A couple minor issues.

| `TaintNodesByCondition` | `false` | Alpha | Y | Y | | Y | | | 1.8 | |
| `VolumeScheduling` | `false` | Alpha | Y | | | | | | 1.9 | |

## Using Feature
Copy link
Contributor

Choose a reason for hiding this comment

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

I would title this "Using a feature".

- The "Y" values in the cells indicate that a specific feature gate can be applied
to a specific component.

| Feature | Default | Stage | APIServer | KCM | Kubelet | Scheduler | CCM | Proxy | Since | Till |
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm seeing an issue w/ the CSS where it's clipping off the right end of the table (see below screenshot). Consider moving the Since and Till columns to the left, after Stage, because I think it's more important for them to be seen. Also, consider renaming "Till" to "Until" so that it is more clear, especially to non-native English speakers.

screen shot 2017-11-27 at 2 03 50 pm

@tengqm
Copy link
Contributor Author

tengqm commented Nov 28, 2017

@chenopis My understanding of this ... is about open source. When a doc/software is useful, it will be maintained by the community, otherwise it will be outdated anyway and someone will propose to remove it.

@chenopis
Copy link
Contributor

@tengqm Ok, I just want to make sure we don't have inaccurate information on the website. We may need to add this to the docs release process to make sure it has been checked and updated.

@chenopis
Copy link
Contributor

@steveperry-53 You have any thoughts on this?

@steveperry-53
Copy link
Contributor

@chenopis If we add a note about this to our release process, then I think it's fine to publish this.

@steveperry-53
Copy link
Contributor

@vishh @Random-Liu @tallclair Can one of you do a tech review, or suggest another person who would be the appropriate reviewer? Thanks.

@tengqm
Copy link
Contributor Author

tengqm commented Nov 30, 2017

@chenopis If we have a doc release process to ensure inaccurate contents are cleaned up, that would be great.

@msau42
Copy link
Member

msau42 commented Nov 30, 2017

Instead of setting the flag per component, can we just say to enable the feature gate on all components? It is much simpler to remember and maintain

@tengqm
Copy link
Contributor Author

tengqm commented Nov 30, 2017

@msau42 Well I'm seeing benefits from both ends. Turning on/off a feature-gate across all components could be a preferred option during initial set up; for most administrators, this saves a lot headache on remembering the exact mapping between features and components. However, starting from day 2, there will be needs to tune your cluster for behaviors. People will prefer knowing exactly which components need a change to turn something on, instead of changing the command lines and rolling out to all nodes. For example, if the feature to toggle only concerns with the scheduler, you will want to just tune that component instead of restarting all kubelets.

steveperry-53 pushed a commit that referenced this pull request Jan 8, 2018
For specifying mount propagation, changes to flags on apiserver and
kubelet are required. This PR fixes the problem.

For more comprehensive list of feature gate settings, please refer to
#6364.

Closes: #5766
@steveperry-53
Copy link
Contributor

It looks like we still need tech review/approval. @nikhita Can you approve this?

@steveperry-53
Copy link
Contributor

@chenopis @tengqm I added a note about this to our Release Playbook.

@tengqm
Copy link
Contributor Author

tengqm commented Jan 12, 2018

@steveperry-53 Thanks for including this into the playbook

@nikhita
Copy link
Member

nikhita commented Jan 18, 2018

It looks like we still need tech review/approval. @nikhita Can you approve this?

Deferring to @liggitt since he worked on alpha fields/feature gates docs in the past.

@liggitt
Copy link
Member

liggitt commented Jan 18, 2018

I'm skeptical this table will ever be up to date. It's fine to have the list of feature gates and associated descriptions (tag feature gate owners as identified in https://github.com/kubernetes/kubernetes/blob/master/pkg/features/kube_features.go#L28 for summaries in this doc)

I also think it is misadvised to try to document the matrix of which components make use of which gates. The cluster should have a consistent view of which features are enabled, so I'd expect cluster administrators to decide what features they want, and pass the same --feature-gates value to all components.

@tengqm
Copy link
Contributor Author

tengqm commented Jan 19, 2018

@liggitt
Regarding whether the same --feature-gates should be applied to all components, I have posted my thoughts here: #6364 (comment)

Regarding how to keep this up to date, Steve has added this to the release playbook so team will check if the table is up to date before doing new releases.

@liggitt
Copy link
Member

liggitt commented Jan 19, 2018

Regarding how to keep this up to date, Steve has added this to the release playbook so team will check if the table is up to date before doing new releases.

That can catch if a new feature gate was added, but if there's no automated process for sweeping the whole code base for every use of every feature gate, and tracking the call trees for those to determine which components are affected by it, the table that indicates which components use which gates will be inaccurate.

@liggitt
Copy link
Member

liggitt commented Jan 19, 2018

To be clear, I'm in favor of the list of gates and associated descriptions, just not maintaining the matrix of all gates and all components

@tengqm
Copy link
Contributor Author

tengqm commented Jan 19, 2018

@liggitt Based on the efforts made to compile the table, I have to admit that keeping the maps to components would be difficult, if possible at all. The initial table cost my several days. Given that there is no easy way to automatically produce such a matrix, I'm removing the component columns in the PR. Hopefully, someday we can have a better solution.

@zacharysarah
Copy link
Contributor

@liggitt 👋 Given the discussion and follow-up, does this PR look good to you?

@tengqm 👋 If @liggitt gives an /lgtm, are you ready for this PR to merge?

@liggitt
Copy link
Member

liggitt commented Jan 25, 2018

the amount of information lgtm. I didn't review for accuracy.

@tengqm
Copy link
Contributor Author

tengqm commented Jan 26, 2018

@zacharysarah yes.

@zacharysarah
Copy link
Contributor

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 26, 2018
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

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

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

Needs approval from an approver in each of these OWNERS Files:

You can indicate your approval by writing /approve in a comment
You can cancel your 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 Jan 26, 2018
@k8s-ci-robot k8s-ci-robot merged commit 5ef7d3a into kubernetes:master Jan 26, 2018
chenopis added a commit that referenced this pull request Jan 29, 2018
…henopis-user-journeys

* 'master' of https://github.com/kubernetes/website: (102 commits)
  Change deployment group (#7112)
  fix typos in extending doc (#7110)
  added installation via Powershell Gallery (#6086)
  Update StatefulSet API version to 1.9 for the Cassandra example (#7096)
  Modify the terms by document style (#7026)
  now that phase out in k8s/cluster/ directory, so remove relative docs (#6951)
  Update mysql-wordpress-persistent-volume.md (#7080)
  Update high-availability.md (#7086)
  Feature gates reference documentation (#6364)
  Add link to autoscaler FAQ (#7045)
  Replace regular characters with HTML entities. (#7038)
  Remove unnecessary manual node object creation (#6765)
  upper case restriction doesn't exist (#7003)
  Add an API concepts document and describe terminology and API chunking (#6540)
  Add kube-apiserver, kube-controller-manager, kube-scheduler and etcd to glossary. (#6600)
  Update what-is-kubernetes.md (#6971)
  Fixed the interacting with cluster section for the ubuntu installation (#6905)
  Update weave-network-policy.md (#6960)
  Added AWS eks (#6568)
  Update eviction strategy to include priority (#6949)
  ...

# Conflicts:
#	_data/setup.yml
#	_data/tutorials.yml
#	docs/imported/release/notes.md
bitfield pushed a commit to bitfield/website that referenced this pull request Feb 19, 2018
* Feature gates references

* Add three new gates since v1.9

* Table revised based on comments

* Fix feature gates doc based on review comments
@tengqm tengqm deleted the feature-gates branch July 18, 2018 03:20
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. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants