Skip to content

Commit e01e10e

Browse files
committed
Merge remote-tracking branch 'upstream/main' into release-1.4
2 parents b77cb37 + c7508f7 commit e01e10e

16 files changed

+579
-69
lines changed

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,13 @@ release-staging: image.multiarch.setup
166166

167167
# Docs
168168

169+
DOCS_BUILD_CONTAINER_NAME ?= gateway-api-mkdocs
170+
169171
.PHONY: build-docs
170172
build-docs:
171173
docker build --pull -t gaie/mkdocs hack/mkdocs/image
172-
docker run --rm -v ${PWD}:/docs gaie/mkdocs build
174+
docker rm -f $(DOCS_BUILD_CONTAINER_NAME) || true
175+
docker run --name $(DOCS_BUILD_CONTAINER_NAME) --rm -v ${PWD}:/docs gaie/mkdocs build
173176

174177
.PHONY: build-docs-netlify
175178
build-docs-netlify:

RELEASE_MANAGEMENT.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,18 @@ this are based on the Kubernetes process:
125125
* Extensions can be granted on a per-GEP basis
126126
* The owners of the GEP have to ask and provide a timeline (measured in
127127
days) as to when they believe the GEP will be ready for merge.
128-
* The request and approval for a GEP extension needs to be in public.
128+
* The request and approval for a GEP extension must be on the original GEP issue.
129+
* An extension can only be granted for a time period up to the distance from
130+
the deadline when the extension is requested. So, an extension of a week
131+
must be asked for at least a week out from a deadline, while an extension of
132+
day must be asked for at least a day out from the deadline. Extension requests
133+
not meeting this timing criteria will be denied.
129134
* Extensions can only be granted with a majority agreement by maintainers
130-
/ release-managers
135+
/ release-managers.
131136

132-
For our purposes we use GitHub discussions as the public place for
133-
requesting/approving extensions. Contributors should use an existing
134-
discussion for the release when feasible, otherwise create a discussion.
137+
For our purposes we use GitHub issues, specifically the related GEP issue,
138+
as the public place for requesting/approving extensions.
139+
140+
This extension policy also affects reviews.
141+
If feedback is submitted sufficiently late that it is impossible to address within these guidelines,
142+
the feedback (not necessarily the GEP) may be deferred to a future release.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Cloud Provider KIND
2+
3+
## Table of Contents
4+
5+
|API channel|Implementation version|Mode|Report|
6+
|-----------|----------------------|----|------|
7+
|standard|[v0.8.0-alpha.1]|default|[report](./standard-v0.8.0-alpha.1-default-report.yaml)|
8+
9+
## Reproduce
10+
11+
1. `[Install `cloud-provider-kind`](https://github.com/kubernetes-sigs/cloud-provider-kind/tree/v0.8.0-alpha.1?tab=readme-ov-file#install)
12+
13+
2. [Run a `KIND` cluster](https://kind.sigs.k8s.io/docs/user/quick-start/)
14+
15+
3. [Start the `cloud-provider-kind`](https://github.com/kubernetes-sigs/cloud-provider-kind/tree/v0.8.0-alpha.1?tab=readme-ov-file#gateway-api-support-alpha)
16+
17+
4. Run the conformance tests:
18+
19+
```sh
20+
go test ./conformance -run TestConformance \
21+
--report-output /tmp/report.yaml \
22+
--organization=sigs.k8s.io \
23+
--project=cloud-provider-kind \
24+
--url=https://github.com/kubernetes-sigs/cloud-provider-kind \
25+
--version=v0.8.0-alpha.1 \
26+
--contact=https://github.com/kubernetes-sigs/cloud-provider-kind/issues/new \
27+
--gateway-class=cloud-provider-kind \
28+
--conformance-profiles=GATEWAY-HTTP \
29+
--supported-features=Gateway,HTTPRoute,ReferenceGrant
30+
```
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: gateway.networking.k8s.io/v1
2+
date: "2025-09-07T12:44:41Z"
3+
gatewayAPIChannel: standard
4+
gatewayAPIVersion: v1.3.0
5+
implementation:
6+
contact:
7+
- https://github.com/kubernetes-sigs/cloud-provider-kind/issues/new
8+
organization: sigs.k8s.io
9+
project: cloud-provider-kind
10+
url: https://github.com/kubernetes-sigs/cloud-provider-kind
11+
version: v0.8.0-alpha.1
12+
kind: ConformanceReport
13+
mode: default
14+
profiles:
15+
- core:
16+
result: success
17+
statistics:
18+
Failed: 0
19+
Passed: 33
20+
Skipped: 0
21+
name: GATEWAY-HTTP
22+
summary: Core tests succeeded.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Traefik Proxy
2+
3+
## Table of Contents
4+
5+
| API channel | Implementation version | Mode | Report |
6+
|--------------|------------------------------------------------------------------|---------|------------------------------------------------------------|
7+
| experimental | [v3.5.0](https://github.com/traefik/traefik/releases/tag/v3.5.0) | default | [v3.5.0 report](./experimental-v3.5.0-default-report.yaml) |
8+
9+
## Reproduce
10+
11+
To reproduce the results, clone the Traefik Proxy repository:
12+
13+
```shell
14+
git clone https://github.com/traefik/traefik.git && cd traefik
15+
```
16+
17+
Check out the desired version:
18+
19+
```shell
20+
git checkout vX.Y
21+
```
22+
23+
Run the conformance tests with:
24+
25+
```shell
26+
make test-gateway-api-conformance
27+
```
28+
29+
Check the produced report in the `./integration/conformance-reports` folder.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
apiVersion: gateway.networking.k8s.io/v1
2+
date: '-'
3+
gatewayAPIChannel: experimental
4+
gatewayAPIVersion: v1.3.0
5+
implementation:
6+
contact:
7+
- '@traefik/maintainers'
8+
organization: traefik
9+
project: traefik
10+
url: https://traefik.io/
11+
version: v3.5
12+
kind: ConformanceReport
13+
mode: default
14+
profiles:
15+
- core:
16+
result: success
17+
statistics:
18+
Failed: 0
19+
Passed: 12
20+
Skipped: 0
21+
name: GATEWAY-GRPC
22+
summary: Core tests succeeded.
23+
- core:
24+
result: success
25+
statistics:
26+
Failed: 0
27+
Passed: 33
28+
Skipped: 0
29+
extended:
30+
result: success
31+
statistics:
32+
Failed: 0
33+
Passed: 13
34+
Skipped: 0
35+
supportedFeatures:
36+
- GatewayPort8080
37+
- HTTPRouteBackendProtocolH2C
38+
- HTTPRouteBackendProtocolWebSocket
39+
- HTTPRouteDestinationPortMatching
40+
- HTTPRouteHostRewrite
41+
- HTTPRouteMethodMatching
42+
- HTTPRoutePathRedirect
43+
- HTTPRoutePathRewrite
44+
- HTTPRoutePortRedirect
45+
- HTTPRouteQueryParamMatching
46+
- HTTPRouteResponseHeaderModification
47+
- HTTPRouteSchemeRedirect
48+
unsupportedFeatures:
49+
- GatewayAddressEmpty
50+
- GatewayHTTPListenerIsolation
51+
- GatewayInfrastructurePropagation
52+
- GatewayStaticAddresses
53+
- HTTPRouteBackendRequestHeaderModification
54+
- HTTPRouteBackendTimeout
55+
- HTTPRouteParentRefPort
56+
- HTTPRouteRequestMirror
57+
- HTTPRouteRequestMultipleMirrors
58+
- HTTPRouteRequestPercentageMirror
59+
- HTTPRouteRequestTimeout
60+
name: GATEWAY-HTTP
61+
summary: Core tests succeeded. Extended tests succeeded.
62+
- core:
63+
result: success
64+
statistics:
65+
Failed: 0
66+
Passed: 11
67+
Skipped: 0
68+
name: GATEWAY-TLS
69+
summary: Core tests succeeded.

conformance/tests/backendtlspolicy-observed-generation-bump.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func init() {
3939

4040
var BackendTLSPolicyObservedGenerationBump = suite.ConformanceTest{
4141
ShortName: "BackendTLSPolicyObservedGenerationBump",
42-
Description: "A BackendTLSPolicy in the gateway-conformance-infra namespace should update the observedGeneration in all of it's Status.Conditions after an update to the spec",
42+
Description: "A BackendTLSPolicy in the gateway-conformance-infra namespace should update the observedGeneration in all of its Status.Conditions after an update to the spec",
4343
Features: []features.FeatureName{
4444
features.SupportGateway,
4545
features.SupportHTTPRoute,

conformance/tests/grpcroute-named-rule.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func init() {
3535

3636
var GRPCRouteNamedRule = suite.ConformanceTest{
3737
ShortName: "GRPCRouteNamedRule",
38-
Description: "An GRPCRoute with a named GRPCRouteRule",
38+
Description: "A GRPCRoute with a named GRPCRouteRule",
3939
Manifests: []string{"tests/grpcroute-named-rule.yaml"},
4040
Features: []features.FeatureName{
4141
features.SupportGateway,

conformance/tests/grpcroute-weight.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func init() {
3838

3939
var GRPCRouteWeight = suite.ConformanceTest{
4040
ShortName: "GRPCRouteWeight",
41-
Description: "An GRPCRoute with weighted backends",
41+
Description: "A GRPCRoute with weighted backends",
4242
Manifests: []string{"tests/grpcroute-weight.yaml"},
4343
Features: []features.FeatureName{
4444
features.SupportGateway,

conformance/utils/kubernetes/helpers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ func GatewayAndRoutesMustBeAccepted(t *testing.T, c client.Client, timeoutConfig
344344
// If the Gateway has multiple listeners, get a portless gwAddr.
345345
// Otherwise, you get the first listener's port, which might not be the one you want.
346346
if !usePort {
347-
gwAddr, _, _ = strings.Cut(gwAddr, ":")
347+
gwAddr, _, _ = net.SplitHostPort(gwAddr)
348348
}
349349

350350
ns := gatewayv1.Namespace(gw.Namespace)

0 commit comments

Comments
 (0)