[gRPC/http2 auto-detect] Support auto-detection (or upgrade) in Activator
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 6.1k
- Forks
- 1.2k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 2
Description
Describe the feature
This is part of #4283.
As part of supporting http2 auto-detect, we need to make changes in health probes, queue proxy, and activator. Below are some notes created by @igorbelianski on the work that needs to be done specifically in activator.
Data Path Notes
Activator always listens on both 8012 an 8013 constructs 2 distinct servers:
[cmd/activator/main.go](https://github.com/knative/serving/tree/master/cmd/activator/main.go)
servers := map[string]*http.Server{
"http1": pkgnet.NewServer(":"+strconv.Itoa(networking.BackendHTTPPort), ah),
"h2c": pkgnet.NewServer(":"+strconv.Itoa(networking.BackendHTTP2Port), ah),
"profile": profiling.NewServer(profilingHandler),
}
Queue proxy container construction
While construction queue proxy container we make a static choice on the port 8012/8013
pkg/reconciler/revision/resources/queue.go
func makeQueueContainer(rev *v1.Revision, cfg *config.Config) (*corev1.Container, error) {
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with cmd/activator/main.go to understand the separate HTTP/1 and h2c servers, then inspect pkg/reconciler/revision/resources/queue.go and makeQueueContainer for the static port choice. Trace how these components participate in HTTP/2 auto-detection, and confirm that activator and queue proxy no longer require the static selection described in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100