Skip to content

Commit 8760300

Browse files
authored
.github: add v1.18.x to the nightly tests (#10429)
1 parent d92d665 commit 8760300

File tree

6 files changed

+150
-47
lines changed

6 files changed

+150
-47
lines changed

.github/workflows/docs-gen.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ name: Docs
22

33
env:
44
SLACK_DEBUG_TESTING: false # when set to "true", send notifications to #slack-integration-testing. Otherwise, post to #edge-team-bots
5-
MIN_SCANNED_VERSION: 'v1.14.0' # ⚠️ you should also change trivy-analysis-scheduled.yaml ⚠️
5+
MIN_SCANNED_VERSION: 'v1.15.0' # ⚠️ you should also change trivy-analysis-scheduled.yaml ⚠️
66
on:
77
push:
88
branches:
99
- 'main'
10+
- 'v1.18.x'
1011
- 'v1.17.x'
1112
- 'v1.16.x'
1213
- 'v1.15.x'
13-
- 'v1.14.x'
1414
pull_request:
1515
types: [opened, synchronize, reopened, ready_for_review]
1616
branches:

.github/workflows/nightly-tests.yaml

+138-42
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,19 @@ on:
1212
# Day of the week ([0,6] with 0=Sunday)
1313
schedule:
1414
- cron: "0 5 * * *" # every day @ 05:00 UTC, run tests against latest main
15-
- cron: "0 6 * * 1" # monday @ 06:00 UTC, run expanded tests against v1.17.x
16-
- cron: "0 7 * * 1" # monday @ 07:00 UTC, run expanded tests against v1.16.x
17-
- cron: "0 8 * * 1" # monday @ 08:00 UTC, run expanded tests against v1.15.x
15+
- cron: "0 6 * * 1" # monday @ 06:00 UTC, run expanded tests against v1.18.x
16+
- cron: "0 7 * * 1" # monday @ 07:00 UTC, run expanded tests against v1.17.x
17+
- cron: "0 8 * * 1" # monday @ 08:00 UTC, run expanded tests against v1.16.x
1818
workflow_dispatch:
1919
inputs:
2020
branch:
2121
description: "The branch to run tests against"
2222
type: choice
2323
options:
2424
- main
25+
- v1.18.x
2526
- v1.17.x
2627
- v1.16.x
27-
- v1.15.x
2828
- workflow_initiating_branch
2929
run-regression:
3030
description: "Run regression tests"
@@ -177,9 +177,71 @@ jobs:
177177
matrix-label: ${{ matrix.version-files.label }}
178178

179179
# Reminder: when setting up the job next release branch, copy from "end_to_end_tests_main" not the previous release job as configuration may have changed
180+
end_to_end_tests_18:
181+
name: End-to-End (branch=v1.18.x, cluster=${{ matrix.test.cluster-name }}, version=${{ matrix.version-files.label }} )
182+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'v1.18.x') || github.event.schedule == '0 6 * * 1' }}
183+
runs-on: ubuntu-22.04
184+
timeout-minutes: 180
185+
strategy:
186+
# Since we are running these on a schedule, there is no value in failing fast
187+
# In fact, we want to ensure that all tests run, so that we have a clearer picture of which tests are prone to flaking
188+
fail-fast: false
189+
matrix:
190+
test:
191+
# When running the tests at night, there is no value in splitting the tests across multiple clusters and running them in parallel.
192+
# As a result, we increase the threshold for the tests, since they all run serially on a single cluster
193+
- cluster-name: 'cluster-one'
194+
go-test-args: '-v -timeout=150m'
195+
# Specifying an empty regex means all tests will be run.
196+
go-test-run-regex: ""
197+
# In our nightly tests, we run the suite of tests using the lower and upper ends of versions that we claim to support
198+
# The versions should mirror: https://docs.solo.io/gloo-edge/latest/reference/support/
199+
version-files:
200+
- label: 'min'
201+
file: './.github/workflows/.env/nightly-tests/min_versions.env'
202+
- label: 'max'
203+
file: './.github/workflows/.env/nightly-tests/max_versions.env'
204+
205+
steps:
206+
- uses: actions/checkout@v4
207+
with:
208+
ref: main
209+
# The dotenv action is used to load key-value pairs from files.
210+
# In this case, the file is specified in the matrix and will contain the versions of the tools to use
211+
- name: Dotenv Action
212+
uses: falti/[email protected]
213+
id: dotenv
214+
with:
215+
path: ${{ matrix.version-files.file }}
216+
log-variables: true
217+
- name: Prep Go Runner
218+
uses: ./.github/workflows/composite-actions/prep-go-runner
219+
# Set up the KinD cluster that the tests will use
220+
- id: setup-kind-cluster
221+
name: Setup KinD Cluster
222+
uses: ./.github/workflows/composite-actions/setup-kind-cluster
223+
with:
224+
cluster-name: ${{ matrix.test.cluster-name }}
225+
kind-node-version: ${{ steps.dotenv.outputs.node_version }}
226+
kind-version: ${{ steps.dotenv.outputs.kind_version }}
227+
kubectl-version: ${{ steps.dotenv.outputs.kubectl_version }}
228+
helm-version: ${{ steps.dotenv.outputs.helm_version }}
229+
istio-version: ${{ steps.dotenv.outputs.istio_version }}
230+
k8sgateway-api-version: ${{ steps.dotenv.outputs.k8sgateway_api_version }}
231+
# Run the tests
232+
- id: run-tests
233+
name: Run Kubernetes e2e Tests
234+
uses: ./.github/workflows/composite-actions/kubernetes-e2e-tests
235+
with:
236+
cluster-name: ${{ matrix.test.cluster-name }}
237+
test-args: ${{ matrix.test.go-test-args }}
238+
run-regex: ${{ matrix.test.go-test-run-regex }}
239+
istio-version: ${{ steps.dotenv.outputs.istio_version }}
240+
matrix-label: ${{ matrix.version-files.label }}
241+
180242
end_to_end_tests_17:
181243
name: End-to-End (branch=v1.17.x, cluster=${{ matrix.test.cluster-name }}, version=${{ matrix.version-files.label }} )
182-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
244+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'v1.17.x') || github.event.schedule == '0 7 * * 1' }}
183245
runs-on: ubuntu-22.04
184246
timeout-minutes: 150
185247
strategy:
@@ -286,9 +348,39 @@ jobs:
286348
ref: main
287349
- uses: ./.github/workflows/composite-actions/regression-tests
288350

351+
regression_tests_18:
352+
name: v1.18.x regression tests
353+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.18.x') || github.event.schedule == '0 6 * * 1' }}
354+
runs-on: ubuntu-22.04
355+
timeout-minutes: 60
356+
# Previously, there was an environment variable, RELEASED_VERSION="LATEST" set. This made use of some internal code:
357+
# https://github.com/solo-io/gloo/blob/main/test/kube2e/util.go#L229-L241
358+
# which modified our testing process to pull the latest beta release.
359+
#
360+
# NOW, however, running this job is the same as normal CI. (building a local chart, then using it)
361+
strategy:
362+
fail-fast: false
363+
matrix:
364+
# TODO:
365+
# As part of the end_to_end_tests_main job, we added support for importing versions from a .env file
366+
# We should extend the support/usage of those .env files to these other jobs.
367+
# The tests are currently in flux, and some of these regression tests are being migrated, so we decided
368+
# to limit the scope (and potentially unnecessary work) for now
369+
kube-e2e-test-type: [ 'gateway', 'gloo', 'upgrade' ]
370+
kube-version: [ { node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' },
371+
{ node: 'v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865', kubectl: 'v1.31.0', kind: 'v0.24.0', helm: 'v3.14.4' } ]
372+
image-variant:
373+
- standard
374+
steps:
375+
- uses: actions/checkout@v4
376+
with:
377+
ref: v1.18.x
378+
- uses: ./.github/workflows/composite-actions/regression-tests
379+
380+
289381
regression_tests_17:
290382
name: v1.17.x regression tests
291-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
383+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.17.x') || github.event.schedule == '0 7 * * 1' }}
292384
runs-on: ubuntu-22.04
293385
timeout-minutes: 60
294386
strategy:
@@ -306,7 +398,7 @@ jobs:
306398

307399
regression_tests_16:
308400
name: v1.16.x regression tests
309-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.16.x') || github.event.schedule == '0 7 * * 1' }}
401+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.16.x') || github.event.schedule == '0 8 * * 1' }}
310402
runs-on: ubuntu-22.04
311403
timeout-minutes: 60
312404
strategy:
@@ -321,23 +413,6 @@ jobs:
321413
ref: v1.16.x
322414
- uses: ./.github/workflows/composite-actions/regression-tests
323415

324-
regression_tests_15:
325-
name: v1.15.x regression tests
326-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.15.x') || github.event.schedule == '0 8 * * 1' }}
327-
runs-on: ubuntu-22.04
328-
timeout-minutes: 60
329-
strategy:
330-
fail-fast: false
331-
matrix:
332-
kube-e2e-test-type: ['gateway', 'gloo', 'ingress', 'helm', 'gloomtls', 'glooctl', 'upgrade']
333-
kube-version: [ { node: 'v1.23.13@sha256:ef453bb7c79f0e3caba88d2067d4196f427794086a7d0df8df4f019d5e336b61', kubectl: 'v1.23.17', kind: 'v0.17.0', helm: 'v3.11.2' },
334-
{ node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' } ]
335-
steps:
336-
- uses: actions/checkout@v4
337-
with:
338-
ref: v1.15.x
339-
- uses: ./.github/workflows/composite-actions/regression-tests
340-
341416
performance_tests_on_demand:
342417
name: on demand performance tests
343418
if: ${{ github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'workflow_initiating_branch' }}
@@ -362,39 +437,39 @@ jobs:
362437
- uses: ./.github/workflows/composite-actions/prep-go-runner
363438
- uses: ./.github/workflows/composite-actions/performance-tests
364439

365-
performance_tests_17:
366-
name: v1.17.x performance tests
367-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
440+
performance_tests_18:
441+
name: v1.18.x performance tests
442+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.18.x') || github.event.schedule == '0 6 * * 1' }}
368443
runs-on: ubuntu-22.04
369444
timeout-minutes: 60
370445
steps:
371446
- uses: actions/checkout@v4
372447
with:
373-
ref: v1.17.x
448+
ref: v1.18.x
374449
- uses: ./.github/workflows/composite-actions/prep-go-runner
375450
- uses: ./.github/workflows/composite-actions/performance-tests
376451

377-
performance_tests_16:
378-
name: v1.16.x performance tests
379-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.16.x') || github.event.schedule == '0 7 * * 1' }}
452+
performance_tests_17:
453+
name: v1.17.x performance tests
454+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 7 * * 1' }}
380455
runs-on: ubuntu-22.04
381456
timeout-minutes: 60
382457
steps:
383458
- uses: actions/checkout@v4
384459
with:
385-
ref: v1.16.x
460+
ref: v1.17.x
386461
- uses: ./.github/workflows/composite-actions/prep-go-runner
387462
- uses: ./.github/workflows/composite-actions/performance-tests
388463

389-
performance_tests_15:
390-
name: v1.15.x performance tests
391-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.15.x') || github.event.schedule == '0 8 * * 1' }}
464+
performance_tests_16:
465+
name: v1.16.x performance tests
466+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.16.x') || github.event.schedule == '0 8 * * 1' }}
392467
runs-on: ubuntu-22.04
393468
timeout-minutes: 60
394469
steps:
395470
- uses: actions/checkout@v4
396471
with:
397-
ref: v1.15.x
472+
ref: v1.16.x
398473
- uses: ./.github/workflows/composite-actions/prep-go-runner
399474
- uses: ./.github/workflows/composite-actions/performance-tests
400475

@@ -416,9 +491,28 @@ jobs:
416491
ref: main
417492
- uses: ./.github/workflows/composite-actions/kube-gateway-api-conformance-tests
418493

494+
kube_gateway_api_conformance_tests_18:
495+
name: Conformance (branch=v1.18.x, type=Kubernetes Gateway API, version=${{matrix.kube-version.node}} )
496+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'v1.18.x') || github.event.schedule == '0 6 * * 1' }}
497+
runs-on: ubuntu-22.04
498+
timeout-minutes: 60
499+
strategy:
500+
fail-fast: false
501+
matrix:
502+
kube-version: [ { node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' },
503+
{ node: 'v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865', kubectl: 'v1.31.0', kind: 'v0.24.0', helm: 'v3.14.4' }]
504+
image-variant:
505+
- standard
506+
steps:
507+
- uses: actions/checkout@v4
508+
with:
509+
ref: v1.18.x
510+
- uses: ./.github/workflows/composite-actions/kube-gateway-api-conformance-tests
511+
512+
419513
kube_gateway_api_conformance_tests_17:
420514
name: Conformance (branch=v1.17.x, type=Kubernetes Gateway API, version=${{matrix.kube-version.node}} )
421-
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
515+
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 7 * * 1' }}
422516
runs-on: ubuntu-22.04
423517
timeout-minutes: 60
424518
strategy:
@@ -440,16 +534,18 @@ jobs:
440534
if: ${{ always() }}
441535
needs:
442536
- end_to_end_tests_main
537+
- end_to_end_tests_18
443538
- end_to_end_tests_17
444539
- regression_tests_main
540+
- regression_tests_18
445541
- regression_tests_17
446542
- regression_tests_16
447-
- regression_tests_15
448543
- performance_tests_main
544+
- performance_tests_18
449545
- performance_tests_17
450546
- performance_tests_16
451-
- performance_tests_15
452547
- kube_gateway_api_conformance_tests_main
548+
- kube_gateway_api_conformance_tests_18
453549
- kube_gateway_api_conformance_tests_17
454550
- end_to_end_tests_on_demand
455551
- regression_tests_on_demand
@@ -470,13 +566,13 @@ jobs:
470566
branch="main"
471567
elif [[ ${{github.event.schedule == '0 6 * * 1'}} = true ]]; then
472568
trigger="Gloo OSS weeklies"
473-
branch="v1.17.x"
569+
branch="v1.18.x"
474570
elif [[ ${{github.event.schedule == '0 7 * * 1'}} = true ]]; then
475571
trigger="Gloo OSS weeklies"
476-
branch="v1.16.x"
572+
branch="v1.17.x"
477573
elif [[ ${{github.event.schedule == '0 8 * * 1'}} = true ]]; then
478574
trigger="Gloo OSS nightlies"
479-
branch="v1.15.x"
575+
branch="v1.16.x"
480576
fi
481577
preamble="$trigger ($branch)"
482578
echo "Setting PREAMBLE as $preamble"

.github/workflows/trivy-analysis-scheduled.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
SCAN_DIR: _output/scans
3939
IMAGE_REGISTRY: quay.io/solo-io
4040
# ON_LTS_UPDATE - bump version
41-
MIN_SCANNED_VERSION: 'v1.14.0' # ⚠️ you should also change docs-gen.yaml ⚠️
41+
MIN_SCANNED_VERSION: 'v1.15.0' # ⚠️ you should also change docs-gen.yaml ⚠️
4242
run: |
4343
mkdir -p $SCAN_DIR
4444
make run-security-scan

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1250,7 +1250,7 @@ SCAN_DIR ?= $(OUTPUT_DIR)/scans
12501250
SCAN_BUCKET ?= solo-gloo-security-scans
12511251
# The minimum version to scan with trivy
12521252
# ON_LTS_UPDATE - bump version
1253-
MIN_SCANNED_VERSION ?= v1.14.0
1253+
MIN_SCANNED_VERSION ?= v1.15.0
12541254

12551255
.PHONY: run-security-scans
12561256
run-security-scan:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
changelog:
2+
- type: NON_USER_FACING
3+
description: >-
4+
Update the main branch nightly tests after cutting the 1.18.x branch
5+
6+
skipCI-kube-tests:true
7+
skipCI-docs-build:true

docs/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ HUGO_VERSION := 0.81.0
1111
SOLO_HUGO_THEME_REVISION := v0.0.29
1212

1313
# The minimum version to maintain in our public docs
14-
MIN_SCANNED_VERSION ?= v1.13.0
14+
MIN_SCANNED_VERSION ?= v1.15.0
1515

1616
#----------------------------------------------------------------------------------
1717
# Docs

0 commit comments

Comments
 (0)