linkerd / linkerd/linkerd2

Bump `sigs.k8s.io/gateway-api`

Open
#15,619 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
11.5k
Forks
1.4k
Avg merge
3d 22h
Merged PRs (30d)
53

Description

## Summary

`go.mod` pins:

```
sigs.k8s.io/gateway-api v0.8.1
```

That is Gateway API v0.8.1 (August 2023), released before the `v1` (GA) API surface
existed. The rest of the project is ahead of it.

The pin has stuck because our generated policy CRD types embed gateway-api types
directly (`controller/gen/apis/policy/v1alpha1`, `controller/gen/apis/policy/v1beta3`),
and some of those types have moved or been removed upstream, so a naive bump does not
compile.

This issue is to scope the bump. The research below should be done and written up
before any code change.

## Research needed

**1. Which symbols do we actually consume, and what happened to each?**
Enumerate the gateway-api symbols referenced from `controller/gen/apis/policy/*` and,
for each, determine whether the current release still provides it, provides it under a
new name, or dropped it.

**2. What is the blast radius in our tree?**
Run the bump on a scratch copy and collect the full list of compile errors. Confirm
whether breakage is confined to the generated policy types or reaches hand-written
packages (`pkg/`, `cli/`, `controller/api`, `controller/k8s`, `controller/webhook`).

**3. Which binaries are affected?**
Establish which `main` packages link gateway-api today and via which import paths, and
whether any of them use it at runtime.

**4. Codegen**
Confirm `bin/update-codegen.sh` (or the `justfile` target) regenerates cleanly against
the new version.

## Why it matters

Blocks using typed gateway-api clients anywhere in the Go tree; see the
companion issue https://github.com/linkerd/linkerd2/issues/15618

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with go.mod and the generated policy types under controller/gen/apis/policy/*, then compare their referenced gateway-api symbols with the target release. Run the dependency bump in a scratch copy and record compile errors, affected main packages, and runtime imports. Confirm bin/update-codegen.sh or the justfile target regenerates cleanly; done means this scope and impact write-up is complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend-api-design, build-system, infrastructure
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.