Skip to content

Commit 506e7bb

Browse files
test: use k3d to replace kind for provisioning k8s cluster
Signed-off-by: Lin Yang <[email protected]>
1 parent 2cf92eb commit 506e7bb

File tree

10 files changed

+416
-67
lines changed

10 files changed

+416
-67
lines changed

.github/workflows/main.yml

+19-5
Original file line numberDiff line numberDiff line change
@@ -252,18 +252,19 @@ jobs:
252252
focus: [""]
253253
bucket: [6]
254254
include:
255-
- k8s_version: v1.19.16
255+
- k8s_version: v1.19.16-k3s1
256256
focus: "Test traffic from client to backend service routing by FSM Gateway"
257257
bucket: ".*"
258-
- k8s_version: v1.21.14
258+
- k8s_version: v1.21.16-k3s1
259259
focus: "Test traffic from client to backend service routing by FSM Gateway"
260260
bucket: ".*"
261-
- k8s_version: v1.23.17
261+
- k8s_version: v1.23.17-k3s1
262262
focus: "Test traffic from client to backend service routing by FSM Gateway"
263263
bucket: ".*"
264264
env:
265265
CTR_TAG: ${{ github.sha }}
266-
CTR_REGISTRY: "localhost:5000" # unused for kind, but currently required in framework
266+
CTR_REGISTRY: "localhost:5000"
267+
CLUSTER_INSTALL_TYPE: "K3dCluster"
267268
steps:
268269
- name: Free space
269270
run: |
@@ -274,6 +275,19 @@ jobs:
274275
sudo apt-get autoremove -y
275276
sudo apt-get clean
276277
rm -rf /usr/share/dotnet/
278+
- name: Change container registry in case it's k3d cluster
279+
if: ${{ env.CLUSTER_INSTALL_TYPE == 'K3dCluster' }}
280+
run: |
281+
echo "CTR_REGISTRY=localhost:5001" >> $GITHUB_ENV
282+
- name: Install k3d CLI
283+
if: ${{ env.CLUSTER_INSTALL_TYPE == 'K3dCluster' }}
284+
run: |
285+
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
286+
k3d version
287+
- name: Create k3d managed registry
288+
if: ${{ env.CLUSTER_INSTALL_TYPE == 'K3dCluster' }}
289+
run: |
290+
k3d registry create "registry" --port "127.0.0.1:5001"
277291
- name: Checkout
278292
uses: actions/checkout@v4
279293
- name: Setup Go
@@ -301,7 +315,7 @@ jobs:
301315
run: |
302316
export PATH=$PWD/bin:$PATH
303317
echo "PATH=$PATH"
304-
go test ./tests/e2e -test.v -ginkgo.v -ginkgo.progress -installType=KindCluster -kindClusterVersion='${{ matrix.k8s_version }}' -test.timeout 0 -test.failfast -ginkgo.failFast -ginkgo.focus='\[Bucket ${{ matrix.bucket }}\].*${{ matrix.focus }}'
318+
go test ./tests/e2e -test.v -ginkgo.v -ginkgo.progress -installType=${{ env.CLUSTER_INSTALL_TYPE }} -kindClusterVersion='${{ matrix.k8s_version }}' -test.timeout 0 -test.failfast -ginkgo.failFast -ginkgo.focus='\[Bucket ${{ matrix.bucket }}\].*${{ matrix.focus }}'
305319
continue-on-error: true
306320
- name: Set Logs name
307321
if: ${{ steps.test.conclusion != 'skipped' }}

go.mod

+31-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ require (
1717
github.com/deckarep/golang-set v1.8.0
1818
github.com/deckarep/golang-set/v2 v2.7.0
1919
github.com/docker/distribution v2.8.3+incompatible
20-
github.com/docker/docker v26.1.5+incompatible
20+
github.com/docker/docker v27.0.3+incompatible
2121
github.com/dubbogo/go-zookeeper v1.0.3
2222
github.com/dustin/go-humanize v1.0.1
2323
github.com/fatih/color v1.18.0
@@ -44,6 +44,7 @@ require (
4444
github.com/jinzhu/copier v0.4.0
4545
github.com/jonboulle/clockwork v0.5.0
4646
github.com/jstemmer/go-junit-report v1.0.0
47+
github.com/k3d-io/k3d/v5 v5.7.5
4748
github.com/kelseyhightower/envconfig v1.4.0
4849
github.com/matm/gocov-html v1.4.0
4950
github.com/mholt/archiver/v3 v3.5.1
@@ -204,6 +205,7 @@ require (
204205
github.com/containerd/errdefs v0.3.0 // indirect
205206
github.com/containerd/log v0.1.0 // indirect
206207
github.com/containerd/platforms v0.2.1 // indirect
208+
github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
207209
github.com/coreos/etcd v3.3.27+incompatible // indirect
208210
github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect
209211
github.com/coreos/pkg v0.0.0-20220810130054-c7d1c02cb6cf // indirect
@@ -218,8 +220,9 @@ require (
218220
github.com/dimchansky/utfbom v1.1.1 // indirect
219221
github.com/disintegration/imaging v1.6.2 // indirect
220222
github.com/distribution/reference v0.6.0 // indirect
221-
github.com/docker/cli v26.1.5+incompatible // indirect
222-
github.com/docker/docker-credential-helpers v0.7.0 // indirect
223+
github.com/docker/cli v27.0.3+incompatible // indirect
224+
github.com/docker/docker-credential-helpers v0.8.1 // indirect
225+
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect
223226
github.com/docker/go-connections v0.5.0 // indirect
224227
github.com/docker/go-metrics v0.0.1 // indirect
225228
github.com/docker/go-units v0.5.0 // indirect
@@ -237,6 +240,7 @@ require (
237240
github.com/fogleman/gg v1.3.0 // indirect
238241
github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8 // indirect
239242
github.com/fsnotify/fsnotify v1.7.0 // indirect
243+
github.com/fvbommel/sortorder v1.1.0 // indirect
240244
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
241245
github.com/fzipp/gocyclo v0.6.0 // indirect
242246
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
@@ -292,8 +296,10 @@ require (
292296
github.com/golangci/plugin-module-register v0.1.1 // indirect
293297
github.com/golangci/revgrep v0.5.3 // indirect
294298
github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
299+
github.com/goodhosts/hostsfile v0.1.6 // indirect
295300
github.com/google/btree v1.0.1 // indirect
296301
github.com/google/gnostic-models v0.6.8 // indirect
302+
github.com/google/go-containerregistry v0.19.1 // indirect
297303
github.com/google/go-metrics-stackdriver v0.2.0 // indirect
298304
github.com/google/go-querystring v1.1.0 // indirect
299305
github.com/google/gofuzz v1.2.0 // indirect
@@ -311,6 +317,7 @@ require (
311317
github.com/gostaticanalysis/nilerr v0.1.1 // indirect
312318
github.com/gosuri/uitable v0.0.4 // indirect
313319
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
320+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
314321
github.com/hashicorp-forge/bbolt v1.3.8-hc3 // indirect
315322
github.com/hashicorp/cli v1.1.6 // indirect
316323
github.com/hashicorp/errwrap v1.1.0 // indirect
@@ -412,7 +419,8 @@ require (
412419
github.com/linode/linodego v0.10.0 // indirect
413420
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
414421
github.com/macabu/inamedparam v0.1.3 // indirect
415-
github.com/magiconair/properties v1.8.6 // indirect
422+
github.com/magefile/mage v1.15.0 // indirect
423+
github.com/magiconair/properties v1.8.7 // indirect
416424
github.com/mailru/easyjson v0.7.7 // indirect
417425
github.com/maratori/testableexamples v1.0.0 // indirect
418426
github.com/maratori/testpackage v1.1.1 // indirect
@@ -421,6 +429,7 @@ require (
421429
github.com/mattn/go-isatty v0.0.20 // indirect
422430
github.com/mattn/go-runewidth v0.0.16 // indirect
423431
github.com/mgechev/revive v1.5.1 // indirect
432+
github.com/miekg/pkcs11 v1.1.1 // indirect
424433
github.com/mitchellh/copystructure v1.2.0 // indirect
425434
github.com/mitchellh/go-homedir v1.1.0 // indirect
426435
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
@@ -433,6 +442,9 @@ require (
433442
github.com/moby/locker v1.0.1 // indirect
434443
github.com/moby/patternmatcher v0.6.0 // indirect
435444
github.com/moby/spdystream v0.4.0 // indirect
445+
github.com/moby/sys/sequential v0.5.0 // indirect
446+
github.com/moby/sys/user v0.3.0 // indirect
447+
github.com/moby/sys/userns v0.1.0 // indirect
436448
github.com/moby/term v0.5.0 // indirect
437449
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
438450
github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -476,6 +488,7 @@ require (
476488
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
477489
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
478490
github.com/raeperd/recvcheck v0.2.0 // indirect
491+
github.com/rancher/wharfie v0.6.2 // indirect
479492
github.com/rboyer/safeio v0.2.1 // indirect
480493
github.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03 // indirect
481494
github.com/rivo/uniseg v0.4.7 // indirect
@@ -487,6 +500,8 @@ require (
487500
github.com/ryancurrah/gomodguard v1.3.5 // indirect
488501
github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect
489502
github.com/ryanuber/go-glob v1.0.0 // indirect
503+
github.com/sagikazarmark/locafero v0.4.0 // indirect
504+
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
490505
github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect
491506
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect
492507
github.com/sasha-s/go-deadlock v0.2.0 // indirect
@@ -505,19 +520,20 @@ require (
505520
github.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d // indirect
506521
github.com/sonatard/noctx v0.1.0 // indirect
507522
github.com/sony/gobreaker v0.5.0 // indirect
523+
github.com/sourcegraph/conc v0.3.0 // indirect
508524
github.com/sourcegraph/go-diff v0.7.0 // indirect
509525
github.com/spf13/afero v1.11.0 // indirect
510526
github.com/spf13/cast v1.7.0 // indirect
511-
github.com/spf13/jwalterweatherman v1.1.0 // indirect
512-
github.com/spf13/viper v1.12.0 // indirect
527+
github.com/spf13/viper v1.18.2 // indirect
513528
github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect
514529
github.com/stbenjam/no-sprintf-host-port v0.2.0 // indirect
515530
github.com/stretchr/objx v0.5.2 // indirect
516-
github.com/subosito/gotenv v1.4.1 // indirect
531+
github.com/subosito/gotenv v1.6.0 // indirect
517532
github.com/tdakkota/asciicheck v0.3.0 // indirect
518533
github.com/tencentcloud/tencentcloud-sdk-go v1.0.162 // indirect
519534
github.com/tetafro/godot v1.4.20 // indirect
520535
github.com/tetratelabs/wazero v1.8.1 // indirect
536+
github.com/theupdateframework/notary v0.7.0 // indirect
521537
github.com/tidwall/match v1.1.1 // indirect
522538
github.com/tidwall/pretty v1.2.0 // indirect
523539
github.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3 // indirect
@@ -535,6 +551,7 @@ require (
535551
github.com/ultraware/whitespace v0.2.0 // indirect
536552
github.com/uudashr/gocognit v1.2.0 // indirect
537553
github.com/uudashr/iface v1.3.0 // indirect
554+
github.com/vbatts/tar-split v0.11.3 // indirect
538555
github.com/vmware/govmomi v0.30.6 // indirect
539556
github.com/x448/float16 v0.8.4 // indirect
540557
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
@@ -556,13 +573,20 @@ require (
556573
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect
557574
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
558575
go.opentelemetry.io/otel v1.31.0 // indirect
576+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.28.0 // indirect
577+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 // indirect
578+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect
559579
go.opentelemetry.io/otel/metric v1.31.0 // indirect
580+
go.opentelemetry.io/otel/sdk v1.31.0 // indirect
581+
go.opentelemetry.io/otel/sdk/metric v1.31.0 // indirect
560582
go.opentelemetry.io/otel/trace v1.31.0 // indirect
583+
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
561584
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
562585
go.uber.org/atomic v1.11.0 // indirect
563586
go.uber.org/automaxprocs v1.6.0 // indirect
564587
go.uber.org/multierr v1.11.0 // indirect
565588
go.uber.org/zap v1.27.0 // indirect
589+
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
566590
golang.org/x/arch v0.8.0 // indirect
567591
golang.org/x/crypto v0.31.0 // indirect
568592
golang.org/x/exp/typeparams v0.0.0-20241108190413-2d47ceb2692f // indirect

0 commit comments

Comments
 (0)