Skip to content

Add KEP-5999 for HTTP/2 cleartext (h2c) container probes#6000

Draft
amritansh1502 wants to merge 1 commit intokubernetes:masterfrom
amritansh1502:kep-h2c-probes
Draft

Add KEP-5999 for HTTP/2 cleartext (h2c) container probes#6000
amritansh1502 wants to merge 1 commit intokubernetes:masterfrom
amritansh1502:kep-h2c-probes

Conversation

@amritansh1502
Copy link
Copy Markdown

  • One-line PR description: Add support for HTTP/2 cleartext (h2c) on container httpGet probes.
  • Other comments:

@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. labels Apr 7, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: amritansh1502
Once this PR has been reviewed and has the lgtm label, please assign derekwaynecarr for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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
Copy link
Copy Markdown
Contributor

Welcome @amritansh1502!

It looks like this is your first PR to kubernetes/enhancements 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/enhancements has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Apr 7, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Hi @amritansh1502. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

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-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory sig/node Categorizes an issue or PR as relevant to SIG Node. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Apr 7, 2026
participating-sigs: []
status: provisional
creation-date: 2026-04-07
reviewers: []
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

put me here for sig node

for sig network, @bowei @aojea can either of you help?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

added you for sig node , waiting for sig network reviewers to reply.

status: provisional
creation-date: 2026-04-07
reviewers: []
approvers: []
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

done, added mrunal


# Provisional gate name — rename to match implementation after SIG/API agreement.
feature-gates:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

add a feature gate that will be used

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

thanks, added feature gate

Comment on lines +181 to +184
HTTP/2” setup. The KEP defines an opt-in API and kubelet behavior and resolves
up front whether to extend httpGet or add a new probe type, including the
option to apply gRPC-style constraints (numeric port only, no host override) to
avoid known pitfalls with httpGet today.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this section is not needed in summary. It is for alternative options or to the implementation details section.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

this comment is specifically for this sentence:

and resolves
up front whether to extend httpGet or add a new probe type, including the
option to apply gRPC-style constraints (numeric port only, no host override) to
avoid known pitfalls with httpGet today.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

modifed the summary according to your review

[kubernetes/kubernetes]: https://git.k8s.io/kubernetes
[kubernetes/website]: https://git.k8s.io/website

## Summary
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

add some notes in summary on adoption of h2c and maturity of specs

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

addressed

exposed through Ingress and does not return sensitive data. Where that is too
heavy, teams sometimes use tcpSocket, which does not assert a valid HTTP
response. A declarative, opt-in h2c probe removes that tax and aligns probes
with how the app actually speaks HTTP on the wire. The API shape (extend httpGet
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

same comment. Motivation should cover the popularity and stability of a protocol, not the fact that API shape needs to be designed early. Part of API design will be based on adoption and other protocols we may want to support

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

modified the motivation section also

option to apply gRPC-style constraints (numeric port only, no host override) to
avoid known pitfalls with httpGet today.

## Motivation
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

in case of gRPC, one of the selling factors was that gRPC dependency is already in kubelet and will never disappear.

This KEP will introduce a new dependency. If we see any other components adopting h2c or any other motivations why kubelet should have this dependency, it will help with this KEP motivation.

(basically in motivation we need to answer the question on why h2c is so special that it needs to be built-in instead of just relying on exec probes)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

addressed

relying on a second HTTP/1.1-only listener or a tcpSocket probe for that case.


1. **Option A: Extend httpGet** with an explicit way to request h2c while
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

list pros and cons for both options as well as the shape of API in both cases

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

i have added api shape in both cases and also pros and cons for both cases.

@k8s-ci-robot k8s-ci-robot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. sig/node Categorizes an issue or PR as relevant to SIG Node. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants