Skip to content

Commit 01c1720

Browse files
authored
Merge branch 'main' into ci/run_validate_kong_image_daily
2 parents ab4d2f3 + 2876ed1 commit 01c1720

File tree

787 files changed

+90797
-52709
lines changed

Some content is hidden

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

787 files changed

+90797
-52709
lines changed

.dockerignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,13 @@
55
!**/*.sum
66
.git
77
kong-ingress-controller
8+
bin/
9+
config/
10+
docs/
11+
examples/
12+
scripts/
13+
generators/
14+
Dockerfile*
15+
test/
16+
keps/
17+
*.md

.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
**/zz_generated*.go linguist-generated=true
1+
**/zz_generated.*.go linguist-generated=true
22
pkg/clientset/** linguist-generated=true
33
deploy/single/** linguist-generated=true
44
test/e2e/manifests/** linguist-generated=true

.github/ISSUE_TEMPLATE/enhancement.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@ body:
99
options:
1010
- label: I have searched the existing issues
1111
required: true
12+
- type: checkboxes
13+
attributes:
14+
label: Does this enhancement require public documentation?
15+
description: |
16+
Please make sure that Acceptance Criteria section includes for updating our public documentation
17+
([docs.konghq.com](https://github.com/kong/docs.konghq.com), README.md, etc.) with the new feature or enhancement.
18+
If the scope of the change is too large to be documented in the Acceptance Criteria, please create a separate
19+
issue and link it in the AC.
20+
options:
21+
- label: I have added an Acceptance Criteria item for adding and/or adjusting public documentation (if applicable)
22+
required: true
1223
- type: textarea
1324
attributes:
1425
label: Problem Statement

.github/ISSUE_TEMPLATE/epic.yaml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: ☔ Epic
2+
description: Use this template to propose a new feature or enhancement that requires multiple changes across the project.
3+
labels: [ epic ]
4+
title:
5+
body:
6+
- type: checkboxes
7+
attributes:
8+
label: Is there an existing issue for this?
9+
description: Please search to see if an issue already exists for the bug you encountered.
10+
options:
11+
- label: I have searched the existing issues
12+
required: true
13+
- type: textarea
14+
attributes:
15+
label: Problem Statement
16+
description: Without specifying a solution, describe what the project is missing today.
17+
placeholder: |
18+
The rotating project logo has a fixed size and color.
19+
There is no way to make it larger and more shiny.
20+
validations:
21+
required: true
22+
- type: textarea
23+
attributes:
24+
label: Supporting documentation
25+
description: |
26+
Link to supporting documentation, such as design documents, user stories, or other relevant information.
27+
placeholder: |
28+
User stories:
29+
- As a user, I want to control the size of the rotating logo using a CLI flag.
30+
- As a user, I want to control the color of the rotating logo using a CLI flag.
31+
[Design document](https://example.com/design)
32+
validations:
33+
required: false
34+
- type: textarea
35+
attributes:
36+
label: Acceptance Criteria
37+
value: |
38+
### Implementation
39+
- [ ] Design
40+
- [ ] Code
41+
42+
### Docs
43+
- [ ] Guide and required documentation
44+
- [ ] User-acceptance testing (someone not involved in the project tries the guide and the feature)
45+
validations:
46+
required: true

.github/ISSUE_TEMPLATE/release.yaml

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@ body:
1515
- patch
1616
validations:
1717
required: true
18-
- type: checkboxes
19-
id: release_branch
20-
attributes:
21-
label: "**For major/minor releases** Create `release/<MAJOR>.<MINOR>.x` Branch"
22-
options:
23-
# This can be automated. https://github.com/Kong/kubernetes-ingress-controller/issues/3772 tracks this effort
24-
- label: "Create the `release/<MAJOR>.<MINOR>.x` branch at the place where you want to branch of off main"
2518
- type: checkboxes
2619
id: prepare_release_branch
2720
attributes:
@@ -46,6 +39,13 @@ body:
4639
- label: Once the PR is merged (the `prepare-release/x.y.z` branch will get automatically removed), approve and merge the automatic backport PR and [initiate a release job](https://github.com/Kong/kubernetes-ingress-controller/actions/workflows/release.yaml) on the `main` branch for major or minor release, for patch use the release branch. Your tag must use `vX.Y.Z` format. Set `latest` to true if this is be the latest release. That should be the case if a new major.minor release is done or a patch release is done on the latest minor version.
4740
- label: CI will validate the requested version, build and push an image, and run tests against the image before finally creating a tag and publishing a release. If tests fail, CI will push the image but not the tag or release. Investigate the failure, correct it as needed, and start a new release job.
4841
- label: The release workflow ([.github/workflows/release.yaml](/Kong/kubernetes-ingress-controller/blob/main/.github/workflows/release.yaml)) will update the `latest` branch - if the released version was set to be `latest` - to the just released tag.
42+
- type: checkboxes
43+
id: release_branch
44+
attributes:
45+
label: "**For major/minor releases** Create `release/<MAJOR>.<MINOR>.x` Branch"
46+
options:
47+
# This can be automated. https://github.com/Kong/kubernetes-ingress-controller/issues/3772 tracks this effort
48+
- label: "Create the `release/<MAJOR>.<MINOR>.x` branch at the place where you want to branch of off main. It should be done after the release workflow has run successfully."
4949
- type: checkboxes
5050
id: release_documents
5151
attributes:
@@ -58,18 +58,40 @@ body:
5858
- label: Update `reference/version-compatibility.md` to include the new versions (make sure you capture any new Kubernetes/Istio versions that have been tested)
5959
- label: Copy `app/_data/docs_nav_kic_OLDVERSION.yml` to `app/_data/docs_nav_kic_NEWVERSION.yml` and update the `release` field to `NEWVERSION`. Add entries for any new articles.
6060
- label: Make sure that `app/_data/docs_nav_kic_NEWVERSION.yml` links to the latest generated `custom-resources-X.X.X.md`.
61-
- label: Add a section to `app/_data/kong_versions.yml` for your version.
62-
- label: "Add entries in support policy documents: `app/_includes/md/support-policy.md` and `app/_src/kubernetes-ingress-controller/support-policy.md`."
61+
- label: Add a section to `app/_data/kong_versions.yml` for your version and move the `latest` field to version that's being released.
62+
- label: "Add entries in support policy documents: `app/_src/kubernetes-ingress-controller/support-policy.md` and `app/_includes/md/kic/support.md`."
6363
- label: Mark the PR ready for review.
6464
- label: Inform and ping the @Kong/team-k8s via slack of impending release with a link to the release PR.
6565
- label: Ensure that [KGO](https://github.com/Kong/gateway-operator) works with the released version of KIC. Update and release it if needed.
66+
- type: checkboxes
67+
id: release_charts
68+
attributes:
69+
label: "**For major/minor releases only** Bump charts' dependencies"
70+
options:
71+
- label: Synchronize `config/crd/bases` with [`kong/kong` charts CRDs][https://github.com/Kong/charts/blob/6c1421bf2f4/charts/kong/crds/custom-resource-definitions.yaml]
72+
- label: Update RBAC policy rules (`kong.kubernetesRBACRules` template) in [`kong/kong`'s `charts/kong/templates`][https://github.com/Kong/charts/blob/0b1f635f180220f86d17f5b1b4dd60fc0dc35aae/charts/kong/templates/_helpers.tpl#L1292].
73+
- label: Bump the KIC version in the [`kong/kong` Helm chart](https://github.com/Kong/charts/blob/main/charts/kong/values.yaml#L528).
74+
- label: Release new version of the `kong/kong` Helm chart.
75+
- label: After `kong/kong` is released, bump the dependency on `kong/kong` chart in the [`kong/ingress` Helm chart](https://github.com/Kong/charts/blob/main/charts/ingress/Chart.yaml#L15) and release a new version of the chart.
6676
- type: textarea
6777
id: conformance_tests_report
6878
attributes:
6979
label: Conformance tests report
70-
value: Trigger for released version CI workflow [Generate Kubernetes Gateway API conformance tests report](https://github.com/Kong/kubernetes-ingress-controller/actions/workflows/conformance_tests_report.yaml), verify artifact and submit it to https://github.com/kubernetes-sigs/gateway-api/tree/main/conformance/reports. It's still in experimental phase. Update the KIC version in the README's Gateway API conformance badge.
80+
value: Trigger for released version CI workflow [Generate Kubernetes Gateway API conformance tests report](https://github.com/Kong/kubernetes-ingress-controller/actions/workflows/conformance_tests_report.yaml), verify artifact and submit it to https://github.com/kubernetes-sigs/gateway-api/tree/main/conformance/reports. Update the KIC version in the README's Gateway API conformance badge.
81+
- type: textarea
82+
id: post_release_testing
83+
attributes:
84+
label: Post release testing
85+
value: Appoint volunteer(s) to perform end-to-end testing of newly released features by following official documentation. Testing should cover following all the newly added or modified guides/tutorials, etc.
7186
- type: textarea
7287
id: release_trouble_shooting_link
7388
attributes:
7489
label: Release Troubleshooting
7590
value: The [Release Troubleshooting guide](https://github.com/Kong/kubernetes-ingress-controller/blob/main/RELEASE.md#release-troubleshooting) covers strategies for dealing with a release that has failed.
91+
- type: checkboxes
92+
id: post_release
93+
attributes:
94+
label: "**For major/minor releases only** Do post release steps"
95+
options:
96+
- label: Schedule a retro meeting. Invite the team (team-kubernetes@konghq.com) and a Product Manager. Remember to link to [retro notes](https://docs.google.com/document/d/15gDtl425zyttbDwA8qQrh5yBgTD5OpnhjOquqfSJUx4/edit#heading=h.biunbyheelys) in the invite description.
97+
- label: Update [`konnect-ui-apps`](https://github.com/Kong/konnect-ui-apps/) with latest KIC version (see [konnect-ui-apps#4939](https://github.com/Kong/konnect-ui-apps/pull/4939) as an example). Remove this when [#6738](https://github.com/Kong/kubernetes-ingress-controller/issues/6738) is resolved.

.github/dependabot.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
version: 2
22
updates:
33
- package-ecosystem: gomod
4+
ignore:
5+
# Ignore updates for `kong/kubernetes-configuration` as it is handled by Renovate.
6+
- dependency-name: github.com/kong/kubernetes-configuration
47
directory: /
58
schedule:
69
interval: daily
710
labels:
811
- dependencies
9-
- package-ecosystem: gomod
10-
directory: /third_party/
11-
schedule:
12-
interval: daily
13-
labels:
14-
- dependencies
12+
groups:
13+
# Specify a name for the group, which will be used in pull request titles and branch names
14+
k8s.io:
15+
# Define patterns to include dependencies in the group (based on dependency name)
16+
applies-to: version-updates # Applies the group rule to version updates
17+
patterns:
18+
- "k8s.io/*"
19+
exclude-patterns:
20+
- k8s.io/klog/*
21+
- k8s.io/utils
22+
- k8s.io/kube-openapi
1523
- package-ecosystem: github-actions
1624
directory: /
1725
schedule:

.github/test_dependencies.yaml

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,57 @@
11
e2e:
22
kind:
33
# renovate: datasource=docker depName=kindest/node versioning=docker
4-
- 'v1.28.0'
4+
- 'v1.32.0'
55
# renovate: datasource=docker depName=kindest/node@only-patch packageName=kindest/node versioning=docker
6-
- 'v1.27.3'
6+
- 'v1.31.4'
77
# renovate: datasource=docker depName=kindest/node@only-patch packageName=kindest/node versioning=docker
8-
- 'v1.26.6'
8+
- 'v1.30.8'
99
# renovate: datasource=docker depName=kindest/node@only-patch packageName=kindest/node versioning=docker
10-
- 'v1.25.11'
11-
# renovate: datasource=docker depName=kindest/node@only-patch packageName=kindest/node versioning=docker
12-
- 'v1.24.15'
10+
- 'v1.29.12'
1311
gke:
1412
# renovate: datasource=custom.gke-rapid depName=gke versioning=semver
15-
- '1.28.3'
16-
13+
- '1.32.0'
1714

1815
# For Istio, we define combinations of Kind and Istio versions that will be
1916
# used directly in the test matrix `include` section.
2017
istio:
2118
- # renovate: datasource=docker depName=kindest/node versioning=docker
22-
kind: 'v1.28.0'
19+
kind: 'v1.32.0'
2320
# renovate: datasource=docker depName=istio/istioctl versioning=docker
24-
istio: '1.20.0'
25-
- # renovate: datasource=docker depName=kindest/node@only-patch packageName=kindest/node versioning=docker
26-
kind: 'v1.27.3'
27-
# renovate: datasource=docker depName=istio/istioctl@only-patch packageName=istio/istioctl versioning=docker
28-
istio: '1.19.4'
29-
- # renovate: datasource=docker depName=kindest/node@only-patch packageName=kindest/node versioning=docker
30-
kind: 'v1.26.6'
31-
# renovate: datasource=docker depName=istio/istioctl@only-patch packageName=istio/istioctl versioning=docker
32-
istio: '1.18.5'
33-
- # renovate: datasource=docker depName=kindest/node@only-patch packageName=kindest/node versioning=docker
34-
kind: 'v1.25.11'
35-
# renovate: datasource=docker depName=istio/istioctl@only-patch packageName=istio/istioctl versioning=docker
36-
istio: '1.17.8'
21+
istio: '1.24.2'
22+
- # renovate: datasource=docker depName=kindest/node@only-patch versioning=docker
23+
kind: 'v1.30.8'
24+
# renovate: datasource=docker depName=istio/istioctl@only-patch versioning=docker
25+
istio: '1.23.3'
26+
- # renovate: datasource=docker depName=kindest/node@only-patch versioning=docker
27+
kind: 'v1.30.8'
28+
# renovate: datasource=docker depName=istio/istioctl@only-patch versioning=docker
29+
istio: '1.22.3'
30+
- # renovate: datasource=docker depName=kindest/node@only-patch versioning=docker
31+
kind: 'v1.29.12'
32+
# renovate: datasource=docker depName=istio/istioctl@only-patch versioning=docker
33+
istio: '1.21.2'
34+
35+
# renovate: datasource=helm depName=kuma registryUrl=https://kumahq.github.io/charts versioning=helm
36+
kuma: '2.9.2'
3737

3838
integration:
3939
helm:
4040
# renovate: datasource=helm depName=kong registryUrl=https://charts.konghq.com versioning=helm
41-
kong: '2.33.1'
41+
kong: '2.46.0'
4242
# renovate: datasource=docker depName=kindest/node versioning=docker
43-
kind: 'v1.28.0'
43+
kind: 'v1.32.0'
4444
# renovate: datasource=docker depName=kong versioning=docker
45-
kong-oss: '3.5.0'
45+
kong-oss: '3.9.0'
4646
# renovate: datasource=docker depName=kong/kong-gateway versioning=docker
47-
kong-ee: '3.5.0.1'
47+
kong-ee: '3.9.0.0'
4848

4949
kongintegration:
5050
# renovate: datasource=docker depName=kong versioning=docker
51-
kong-oss: '3.5.0'
51+
kong-oss: '3.9.0'
52+
# renovate: datasource=docker depName=kong/kong-gateway versioning=docker
53+
kong-ee: '3.9.0.0'
54+
55+
envtests:
56+
# renovate: datasource=docker depName=kong/kong-gateway versioning=docker
57+
kong-ee: '3.9.0.0'

.github/workflows/_conformance_tests.yaml

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,21 @@ on:
1111

1212
jobs:
1313
dependencies-versions:
14+
timeout-minutes: ${{ fromJSON(vars.GHA_DEFAULT_TIMEOUT || 10) }}
1415
runs-on: ubuntu-latest
1516
outputs:
1617
helm-kong: ${{ steps.set-versions.outputs.helm-kong }}
1718
steps:
1819
- name: checkout repository
1920
uses: actions/checkout@v4
20-
with:
21-
fetch-depth: 0
2221

2322
- id: set-versions
2423
name: Set versions
2524
run: |
2625
echo "helm-kong=$(yq -ojson -r '.integration.helm.kong' < .github/test_dependencies.yaml )" >> $GITHUB_OUTPUT
2726
2827
conformance-tests:
28+
timeout-minutes: ${{ fromJSON(vars.GHA_DEFAULT_TIMEOUT || 10) }}
2929
name: ${{ matrix.name }}
3030
runs-on: ubuntu-latest
3131
needs: dependencies-versions
@@ -35,40 +35,58 @@ jobs:
3535
fail-fast: false
3636
matrix:
3737
include:
38-
- name: conformance-tests-traditional-compatible-router
39-
expression_routes: "false"
40-
- name: "conformance-tests-expressions-router"
41-
expression_routes: "true"
38+
- name: traditional-compatible-router
39+
router-flavor: traditional_compatible
40+
- name: expressions-router
41+
router-flavor: expressions
4242
steps:
4343
- name: checkout repository
4444
uses: actions/checkout@v4
45-
with:
46-
fetch-depth: 0
4745

4846
- name: setup golang
4947
uses: actions/setup-go@v5
5048
with:
5149
go-version-file: go.mod
5250

51+
- uses: jdx/mise-action@v2
52+
with:
53+
install: false
54+
55+
- run: echo "JUNIT_REPORT=conformance-tests-${{ matrix.name }}.xml" >> $GITHUB_ENV
56+
5357
- name: run conformance tests
5458
run: make test.conformance
5559
env:
56-
JUNIT_REPORT: "conformance-tests.xml"
57-
KONG_TEST_EXPRESSION_ROUTES: ${{ matrix.expression_routes }}
60+
MISE_VERBOSE: 1
61+
MISE_DEBUG: 1
62+
JUNIT_REPORT: ${{ env.JUNIT_REPORT }}
63+
TEST_KONG_ROUTER_FLAVOR: ${{ matrix.router-flavor }}
5864
TEST_KONG_KIC_MANAGER_LOG_OUTPUT: ${{ inputs.log-output-file }}
59-
65+
6066
# upload logs when test failed
61-
- name: upload KIC logs
67+
- name: upload KIC logs
6268
if: ${{ failure() && inputs.log-output-file != '' }}
63-
uses: actions/upload-artifact@v3
69+
uses: actions/upload-artifact@v4
6470
with:
6571
name: ${{ matrix.name }}-kic-logs
6672
path: ${{ inputs.log-output-file }}
6773
if-no-files-found: ignore
6874

6975
- name: collect test report
7076
if: ${{ always() }}
71-
uses: actions/upload-artifact@v3
77+
uses: actions/upload-artifact@v4
78+
with:
79+
name: test-report-conformance-${{ matrix.name }}
80+
path: ${{ env.JUNIT_REPORT }}
81+
82+
merge-junit-test-reports:
83+
runs-on: ubuntu-latest
84+
needs:
85+
- conformance-tests
86+
steps:
87+
- name: Merge Junit test reports
88+
uses: actions/upload-artifact/merge@v4
7289
with:
73-
name: tests-report
74-
path: conformance-tests.xml
90+
name: test-report-conformance
91+
pattern: test-report-conformance-*
92+
delete-merged: true

0 commit comments

Comments
 (0)