Skip to content

Commit 2a8a41a

Browse files
committed
Merge remote-tracking branch 'upstream/main' into adam--add-admission-control
Signed-off-by: Adam Buran <aburan28@gmail.com>
2 parents ead9d6d + 4747557 commit 2a8a41a

520 files changed

Lines changed: 10751 additions & 3889 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/pr-review/SKILL.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
name: review-envoy-gateway-pr
3+
description: Review an Envoy Gateway pull request for essential API, implementation, status, and test coverage requirements.
4+
metadata:
5+
short-description: Envoy Gateway PR review workflow
6+
version: "0.1"
7+
---
8+
9+
# Envoy Gateway PR Review Skill
10+
11+
## Inputs
12+
- GitHub PR URL (e.g. review PR: https://github.com/envoyproxy/gateway/pull/8237), or
13+
- A local diff between commits (e.g. review change: git diff 4927877a HEAD)
14+
15+
## Output
16+
- Lead with findings ordered by severity.
17+
- Include exact file and line references.
18+
- Separate required fixes from optional follow-ups.
19+
- If there are no findings, say that clearly and mention residual test or release-note risk.
20+
21+
## Review
22+
- Check API changes, implementation changes, feature coverage, and release notes as applicable.
23+
- Keep findings concise and actionable, with file references when possible.
24+
25+
## Checklist
26+
27+
### API changes
28+
- Make sure changes under `api/` align with https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md
29+
- Make sure changes under `api/` are consistent with existing API patterns in the Gateway API project: https://github.com/kubernetes-sigs/gateway-api/tree/main/apis
30+
- Make sure changes under `api/` are consistent with existing API patterns in this project.
31+
- Try to reuse existing types.
32+
- Keep naming consistent with this project.
33+
- Try to add kubebuilder and CEL validations to catch errors.
34+
- Make sure API validations are tested in `/test/cel-validation`.
35+
- Check backward compatibility for API shape, CRD schema, defaults, versioned structs, and upgrade behavior.
36+
- If a PR mixes API and implementation changes, say whether it should be split into separate PRs.
37+
38+
### Implementation changes
39+
- For changes under `internal/gatewayapi`, check that user-visible errors are surfaced in status.
40+
- For changes under `internal/gatewayapi`, check that status conditions follow the conventions in the Gateway API spec: https://gateway-api.sigs.k8s.io/geps/gep-1364/index.html
41+
- For changes under `internal/gatewayapi`, check that `internal/gatewayapi/testdata` has coverage.
42+
- For changes under `internal/xds/translator`, check that `internal/xds/translator/testdata` has coverage.
43+
44+
### Feature coverage
45+
- For new user-facing features, check that `test/e2e` has coverage.
46+
- For bug fixes, check that `test/e2e` has coverage if the bug is in user-facing code or has user-facing impact.
47+
48+
### Release notes
49+
Release notes should be added to `release-notes/current.yaml` for any of the following changes:
50+
- Bug fixes should be noted as "bug fix" and include a brief description of the issue and the fix.
51+
- New features should be noted as "new feature" and include a brief description of the feature.
52+
- Any breaking changes should be noted as "breaking change" and include a clear description of the change and its impact on users.
53+
- Any change to generated Envoy config (xDS) that moves, removes, or modifies existing config content would break EnvoyPatchPolicies and Extension Servers, so it should be noted as a breaking change. Additions to generated xDS config do not need to be called out.
54+
- Existing API changes should be noted.
55+
- Existing behavior changes should be noted.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Examples:
99
* "chore: change ci & build tools etc"
1010
* "api: add xxx fields in ClientTrafficPolicy"
1111
12-
Before raising a PR, please go through this section of the developer guide, https://gateway.envoyproxy.io/contributions/develop/#raising-a-pr
12+
Before raising a PR, please go through this section of the developer guide, https://gateway.envoyproxy.io/community/develop/#raising-a-pr
1313
-->
1414

1515
<!--

.github/workflows/build_and_test.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ jobs:
128128
run: make build-multiarch PLATFORMS="linux_amd64 linux_arm64"
129129

130130
- name: Upload EG Binaries
131-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
131+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
132132
with:
133133
name: envoy-gateway
134134
path: bin/
@@ -290,7 +290,7 @@ jobs:
290290
run: make benchmark
291291

292292
- name: Upload Benchmark report
293-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
293+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
294294
with:
295295
name: benchmark_report
296296
path: ./test/benchmark/benchmark_report/

.github/workflows/codex-review.yml

Lines changed: 0 additions & 121 deletions
This file was deleted.

.github/workflows/docs.yaml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,23 +47,17 @@ jobs:
4747

4848
- uses: ./tools/github-actions/setup-deps
4949

50-
- name: Setup Hugo
51-
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0
52-
with:
53-
hugo-version: 'latest'
54-
extended: true
55-
5650
- name: Setup Node
5751
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
5852
with:
59-
node-version: '18'
53+
node-version-file: site/.nvmrc
6054

6155
- name: Install Site Dependencies and Build Site
6256
run: make docs
6357

6458
# Upload docs for GitHub Pages
6559
- name: Upload GitHub Pages artifact
66-
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0
60+
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
6761
with:
6862
# Path of the directory containing the static assets.
6963
path: site/public

.github/workflows/experimental_conformance.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
run: make experimental-conformance
6161

6262
- name: Upload Conformance Report
63-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
63+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
6464
with:
6565
name: conformance-report-k8s-${{ matrix.target.version }}-${{ matrix.target.profile }}
6666
path: ./test/conformance/conformance-report-k8s-${{ matrix.target.version }}-${{ matrix.target.profile }}.yaml

.github/workflows/monthly-release-issue.yaml

Lines changed: 42 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -16,94 +16,71 @@ jobs:
1616
- name: Checkout repository
1717
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1818

19-
- name: Calculate current release month and versions
20-
id: release_info
19+
- name: Collect supported versions from hugo.toml
20+
id: versions
2121
run: |
22-
# Get current date
23-
CURRENT_MONTH=$(date +%m)
24-
CURRENT_YEAR=$(date +%Y)
25-
26-
# Get current month name
27-
MONTH_NAME=$(date +%B)
28-
29-
# Read current version from VERSION file
30-
CURRENT_VERSION=$(cat VERSION | tr -d 'v' | tr -d '\n')
31-
32-
# Parse version (assuming format X.Y.Z)
33-
MAJOR=$(echo $CURRENT_VERSION | cut -d. -f1)
34-
MINOR=$(echo $CURRENT_VERSION | cut -d. -f2)
35-
PATCH=$(echo $CURRENT_VERSION | cut -d. -f3)
36-
37-
# Calculate N version (current minor version)
38-
N_VERSION="v${MAJOR}.${MINOR}"
39-
40-
# Calculate N-1 version (previous minor version)
41-
if [ $MINOR -gt 0 ]; then
42-
N_MINUS_1_MINOR=$((MINOR - 1))
43-
N_MINUS_1_VERSION="v${MAJOR}.${N_MINUS_1_MINOR}"
44-
else
45-
# If minor is 0, go to previous major version
46-
if [ $MAJOR -gt 0 ]; then
47-
N_MINUS_1_MAJOR=$((MAJOR - 1))
48-
N_MINUS_1_VERSION="v${N_MINUS_1_MAJOR}.0"
49-
else
50-
N_MINUS_1_VERSION="v0.0"
22+
TODAY=$(date +%Y-%m-%d)
23+
24+
# Extract version/eol pairs from hugo.toml, skipping "latest"
25+
ACTIVE_VERSIONS=()
26+
VERSION=""
27+
VERSION_RE='version[[:space:]]*=[[:space:]]*"([^"]+)"'
28+
EOL_RE='eol[[:space:]]*=[[:space:]]*"([^"]+)"'
29+
while IFS= read -r line; do
30+
if [[ "$line" =~ $VERSION_RE ]]; then
31+
VERSION="${BASH_REMATCH[1]}"
32+
fi
33+
if [[ "$line" =~ $EOL_RE ]]; then
34+
EOL="${BASH_REMATCH[1]}"
35+
if [[ "$VERSION" != "latest" && ! "$EOL" < "$TODAY" ]]; then
36+
ACTIVE_VERSIONS+=("$VERSION")
37+
fi
38+
VERSION=""
5139
fi
52-
fi
40+
done < site/hugo.toml
5341
54-
echo "month=${CURRENT_MONTH}" >> $GITHUB_OUTPUT
55-
echo "year=${CURRENT_YEAR}" >> $GITHUB_OUTPUT
56-
echo "month_name=${MONTH_NAME}" >> $GITHUB_OUTPUT
57-
echo "n_version=${N_VERSION}" >> $GITHUB_OUTPUT
58-
echo "n_minus_1_version=${N_MINUS_1_VERSION}" >> $GITHUB_OUTPUT
42+
printf '%s\n' "Supported versions (EOL on or after ${TODAY}):" "${ACTIVE_VERSIONS[@]}"
43+
44+
# Export as JSON array for the matrix
45+
JSON=$(printf '%s\n' "${ACTIVE_VERSIONS[@]}" | jq -R . | jq -sc .)
46+
echo "matrix=${JSON}" >> $GITHUB_OUTPUT
47+
echo "month_name=$(date +%B)" >> $GITHUB_OUTPUT
48+
echo "year=$(date +%Y)" >> $GITHUB_OUTPUT
5949
6050
- name: Read issue template
6151
id: template
6252
run: |
63-
# Read the template file and skip the YAML front matter
6453
TEMPLATE_CONTENT=$(awk '/^---$/,/^---$/{if (!/^---$/) next} /^---$/{p++; next} p==2' .github/ISSUE_TEMPLATE/release.md)
6554
66-
# Save to output using multiline format
6755
{
6856
echo 'content<<EOF'
6957
echo "$TEMPLATE_CONTENT"
7058
echo 'EOF'
7159
} >> $GITHUB_OUTPUT
7260
73-
- name: Create release issue for N version
61+
- name: Create release issues for supported versions
7462
env:
7563
GH_TOKEN: ${{ github.token }}
64+
TEMPLATE_CONTENT: ${{ steps.template.outputs.content }}
7665
run: |
77-
MONTH_NAME="${{ steps.release_info.outputs.month_name }}"
78-
YEAR="${{ steps.release_info.outputs.year }}"
79-
N_VERSION="${{ steps.release_info.outputs.n_version }}"
80-
TEMPLATE_CONTENT="${{ steps.template.outputs.content }}"
66+
MONTH_NAME="${{ steps.versions.outputs.month_name }}"
67+
YEAR="${{ steps.versions.outputs.year }}"
68+
VERSIONS='${{ steps.versions.outputs.matrix }}'
8169
82-
gh issue create \
83-
--title "Patch Release ${N_VERSION}.x for ${MONTH_NAME} ${YEAR}" \
84-
--label "release-process" \
85-
--body "## Patch Release Checklist for ${N_VERSION}.x (${MONTH_NAME} ${YEAR})
70+
for VERSION in $(echo "$VERSIONS" | jq -r '.[]'); do
71+
echo "Creating release issue for ${VERSION}.x ..."
72+
BODY="## Patch Release Checklist for ${VERSION}.x (${MONTH_NAME} ${YEAR})
8673
8774
${TEMPLATE_CONTENT}
8875
8976
---
9077
*This issue was automatically created by the monthly release workflow.*"
9178
92-
- name: Create release issue for N-1 version
93-
env:
94-
GH_TOKEN: ${{ github.token }}
95-
run: |
96-
MONTH_NAME="${{ steps.release_info.outputs.month_name }}"
97-
YEAR="${{ steps.release_info.outputs.year }}"
98-
N_MINUS_1_VERSION="${{ steps.release_info.outputs.n_minus_1_version }}"
99-
TEMPLATE_CONTENT="${{ steps.template.outputs.content }}"
79+
# Replace placeholder version with the actual release version
80+
BODY="${BODY//v1.x.x/${VERSION}.x}"
10081
101-
gh issue create \
102-
--title "Patch Release ${N_MINUS_1_VERSION}.x for ${MONTH_NAME} ${YEAR}" \
103-
--label "release-process" \
104-
--body "## Patch Release Checklist for ${N_MINUS_1_VERSION}.x (${MONTH_NAME} ${YEAR})
105-
106-
${TEMPLATE_CONTENT}
107-
108-
---
109-
*This issue was automatically created by the monthly release workflow.*"
82+
gh issue create \
83+
--title "Patch Release ${VERSION}.x for ${MONTH_NAME} ${YEAR}" \
84+
--label "release-process" \
85+
--body "$BODY"
86+
done

.github/workflows/release.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
run: cd test/benchmark && zip -r benchmark_report.zip benchmark_report
7979

8080
- name: Upload Benchmark Report
81-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
81+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
8282
with:
8383
name: benchmark_report
8484
path: test/benchmark/benchmark_report.zip
@@ -155,7 +155,7 @@ jobs:
155155
156156
- name: Upload Release Manifests
157157
if: ${{ !contains(github.ref, '-rc.0') }}
158-
uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1
158+
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
159159
with:
160160
files: |
161161
release-artifacts/install.yaml

0 commit comments

Comments
 (0)