This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch composev2
in repository https://gitbox.apache.org/repos/asf/skywalking-infra-e2e.git

commit d5b50f2710c89c1578c8fb93922f0f42e0243133
Author: kezhenxu94 <kezhenx...@apache.org>
AuthorDate: Mon Aug 5 22:21:23 2024 +0800

    Upgrade testcontainers to use docker compose
---
 .github/workflows/e2e-test.yaml                    | 11 ++--
 commands/setup/setup.go                            |  7 +--
 go.mod                                             | 24 +++++----
 go.sum                                             | 60 +++++++++++-----------
 internal/components/setup/compose.go               | 11 ++--
 internal/components/setup/compose_provider.go      | 15 +++---
 .../components/setup/{compose.go => composev2.go}  | 22 +++-----
 internal/components/setup/kind.go                  | 12 ++---
 8 files changed, 76 insertions(+), 86 deletions(-)

diff --git a/.github/workflows/e2e-test.yaml b/.github/workflows/e2e-test.yaml
index a39c498..2146345 100644
--- a/.github/workflows/e2e-test.yaml
+++ b/.github/workflows/e2e-test.yaml
@@ -5,9 +5,9 @@
 # the Apache License, Version 2.0 (the "License"); you may
 # not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing,
 # software distributed under the License is distributed on an
 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -26,13 +26,13 @@ on:
   pull_request:
     branches:
       - main
+      - composev2
 
 jobs:
   build:
     name: E2E Test
     runs-on: ubuntu-latest
     steps:
-            
       - name: Set up Go 1.18
         uses: actions/setup-go@v4
         with:
@@ -48,7 +48,4 @@ jobs:
       - name: Run E2E Test
         uses: apache/skywalking-infra-e2e@main
         with:
-           e2e-file: ./test/e2e/e2e.yaml
-
-              
-       
+          e2e-file: ./test/e2e/e2e.yaml
diff --git a/commands/setup/setup.go b/commands/setup/setup.go
index 0d73aab..eeb8b01 100644
--- a/commands/setup/setup.go
+++ b/commands/setup/setup.go
@@ -63,18 +63,19 @@ func DoSetupAccordingE2E() error {
        e2eConfig := config.GlobalConfig.E2EConfig
 
        setup.InitLogFollower()
-       if e2eConfig.Setup.Env == constant.Kind {
+       switch e2eConfig.Setup.Env {
+       case constant.Kind:
                err := setup.KindSetup(&e2eConfig)
                if err != nil {
                        return err
                }
-       } else if e2eConfig.Setup.Env == constant.Compose {
+       case constant.Compose:
                err := setup.ComposeSetup(&e2eConfig)
                if err != nil {
                        return err
                }
                return nil
-       } else {
+       default:
                return fmt.Errorf("no such env for setup: [%s]. should use kind 
or compose instead", e2eConfig.Setup.Env)
        }
 
diff --git a/go.mod b/go.mod
index b126b17..c353ceb 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,8 @@
 module github.com/apache/skywalking-infra-e2e
 
-go 1.22.2
+go 1.22.0
+
+toolchain go1.22.2
 
 require (
        github.com/docker/docker v27.0.3+incompatible
@@ -9,8 +11,8 @@ require (
        github.com/pterm/pterm v0.12.45
        github.com/sirupsen/logrus v1.9.3
        github.com/spf13/cobra v1.8.1
-       github.com/testcontainers/testcontainers-go v0.32.0
-       github.com/testcontainers/testcontainers-go/modules/compose v0.32.0
+       github.com/testcontainers/testcontainers-go 
v0.32.1-0.20240718121053-70b90cce99b4
+       github.com/testcontainers/testcontainers-go/modules/compose 
v0.32.1-0.20240718121053-70b90cce99b4
        gopkg.in/yaml.v2 v2.4.0
        k8s.io/api v0.30.3
        k8s.io/apimachinery v0.30.3
@@ -199,20 +201,20 @@ require (
        go.opentelemetry.io/proto/otlp v1.0.0 // indirect
        go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
        go.uber.org/mock v0.4.0 // indirect
-       golang.org/x/crypto v0.22.0 // indirect
+       golang.org/x/crypto v0.24.0 // indirect
        golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
-       golang.org/x/net v0.24.0 // indirect
-       golang.org/x/oauth2 v0.11.0 // indirect
+       golang.org/x/net v0.26.0 // indirect
+       golang.org/x/oauth2 v0.18.0 // indirect
        golang.org/x/sync v0.7.0 // indirect
        golang.org/x/sys v0.21.0 // indirect
-       golang.org/x/term v0.19.0 // indirect
-       golang.org/x/text v0.14.0 // indirect
+       golang.org/x/term v0.21.0 // indirect
+       golang.org/x/text v0.16.0 // indirect
        golang.org/x/time v0.3.0 // indirect
        google.golang.org/appengine v1.6.8 // indirect
        google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // 
indirect
-       google.golang.org/genproto/googleapis/api 
v0.0.0-20231016165738-49dd2c1f3d0b // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20231016165738-49dd2c1f3d0b // indirect
-       google.golang.org/grpc v1.59.0 // indirect
+       google.golang.org/genproto/googleapis/api 
v0.0.0-20240318140521-94a12d6c2237 // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240318140521-94a12d6c2237 // indirect
+       google.golang.org/grpc v1.64.1 // indirect
        google.golang.org/protobuf v1.33.0 // indirect
        gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect
        gopkg.in/inf.v0 v0.9.1 // indirect
diff --git a/go.sum b/go.sum
index d2b3f8e..bd57f43 100644
--- a/go.sum
+++ b/go.sum
@@ -4,8 +4,8 @@ atomicgo.dev/keyboard v0.2.8 
h1:Di09BitwZgdTV1hPyX/b9Cqxi8HVuJQwWivnZUEqlj4=
 atomicgo.dev/keyboard v0.2.8/go.mod 
h1:BC4w9g00XkxH/f1HXhW2sXmJFOCWbKn9xrOunSFtExQ=
 cloud.google.com/go v0.26.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME=
-cloud.google.com/go/compute v1.23.1 
h1:V97tBoDaZHb6leicZ1G6DLK2BAaZLJ/7+9BB/En3hR0=
-cloud.google.com/go/compute v1.23.1/go.mod 
h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78=
+cloud.google.com/go/compute v1.25.1 
h1:ZRpHJedLtTpKgr3RV1Fx23NuaAEN1Zfx9hw1u4aJdjU=
+cloud.google.com/go/compute v1.25.1/go.mod 
h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls=
 cloud.google.com/go/compute/metadata v0.2.3 
h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
 cloud.google.com/go/compute/metadata v0.2.3/go.mod 
h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
 dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
@@ -109,8 +109,8 @@ github.com/chzyer/test 
v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
 github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cloudflare/cfssl v0.0.0-20180223231731-4e2dcbde5004 
h1:lkAMpLVBDaj17e85keuznYcH5rqI438v41pKcBl4ZxQ=
 github.com/cloudflare/cfssl v0.0.0-20180223231731-4e2dcbde5004/go.mod 
h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA=
-github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 
h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
-github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod 
h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50 
h1:DBmgJDC9dTfkVyGgipamEh2BpGYxScCH1TOF1LL1cXc=
+github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50/go.mod 
h1:5e1+Vvlzido69INQaVO6d87Qn543Xr6nooe9Kz7oBFM=
 github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb 
h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE=
 github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod 
h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4=
 github.com/compose-spec/compose-go/v2 v2.1.3 
h1:bD67uqLuL/XgkAK6ir3xZvNLFPxPScEi1KW7R5esrLE=
@@ -189,8 +189,8 @@ github.com/emicklei/go-restful/v3 v3.11.0 
h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxER
 github.com/emicklei/go-restful/v3 v3.11.0/go.mod 
h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
 github.com/envoyproxy/go-control-plane 
v0.9.1-0.20191026205805-5f8ba28d4473/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod 
h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/envoyproxy/protoc-gen-validate v1.0.2 
h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA=
-github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod 
h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE=
+github.com/envoyproxy/protoc-gen-validate v1.0.4 
h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A=
+github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod 
h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew=
 github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod 
h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
 github.com/evanphx/json-patch v4.12.0+incompatible 
h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
 github.com/evanphx/json-patch v4.12.0+incompatible/go.mod 
h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
@@ -242,8 +242,8 @@ github.com/gogo/protobuf v1.3.2 
h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod 
h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod 
h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
-github.com/golang/glog v1.1.2/go.mod 
h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
+github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68=
+github.com/golang/glog v1.2.0/go.mod 
h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da 
h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod 
h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/mock v1.1.1/go.mod 
h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
@@ -568,10 +568,10 @@ github.com/stretchr/testify v1.8.1/go.mod 
h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o
 github.com/stretchr/testify v1.8.4/go.mod 
h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/stretchr/testify v1.9.0 
h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
 github.com/stretchr/testify v1.9.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/testcontainers/testcontainers-go v0.32.0 
h1:ug1aK08L3gCHdhknlTTwWjPHPS+/alvLJU/DRxTD/ME=
-github.com/testcontainers/testcontainers-go v0.32.0/go.mod 
h1:CRHrzHLQhlXUsa5gXjTOfqIEJcrK5+xMDmBr/WMI88E=
-github.com/testcontainers/testcontainers-go/modules/compose v0.32.0 
h1:7Ei3qamJeXZc4jurAwzV2hGGihiabZ01MxIbll1Ee3U=
-github.com/testcontainers/testcontainers-go/modules/compose v0.32.0/go.mod 
h1:A/it0TCrstoVkp0qmU5/LHiF1ZQyO7yqi8KKBD3WchY=
+github.com/testcontainers/testcontainers-go 
v0.32.1-0.20240718121053-70b90cce99b4 
h1:a4klW6alolpAC7L9P5cDtTeHmdbcTAbNJlqrVUH62VM=
+github.com/testcontainers/testcontainers-go 
v0.32.1-0.20240718121053-70b90cce99b4/go.mod 
h1:VplBxmoqMRLW3h+OvO5vx83+mBiENC7RlbQJ5cCWAmc=
+github.com/testcontainers/testcontainers-go/modules/compose 
v0.32.1-0.20240718121053-70b90cce99b4 
h1:MrOIdFS6Xin1Sy6lx2yG29sg1GeCiFsbcpk3jC8sEh4=
+github.com/testcontainers/testcontainers-go/modules/compose 
v0.32.1-0.20240718121053-70b90cce99b4/go.mod 
h1:DRVbgD6yYsfSzNWSkru9rt1C565WMv8yvVXE0d3mxMk=
 github.com/theupdateframework/notary v0.7.0 
h1:QyagRZ7wlSpjT5N2qQAh/pN+DVqgekv4DzbAiAiEL3c=
 github.com/theupdateframework/notary v0.7.0/go.mod 
h1:c9DRxcmhHmVLDay4/2fUYdISnHqbFDGRSlXPO0AhYWw=
 github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 
h1:QB54BJwA6x8QU9nHY3xJSZR2kX9bgpZekRKGkLTmEXA=
@@ -650,8 +650,8 @@ golang.org/x/crypto 
v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod 
h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
-golang.org/x/crypto v0.22.0/go.mod 
h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
+golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
+golang.org/x/crypto v0.24.0/go.mod 
h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 
h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o=
 golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod 
h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08=
@@ -677,11 +677,11 @@ golang.org/x/net 
v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
-golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
+golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
+golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU=
-golang.org/x/oauth2 v0.11.0/go.mod 
h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
+golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI=
+golang.org/x/oauth2 v0.18.0/go.mod 
h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -732,15 +732,15 @@ golang.org/x/term 
v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9sn
 golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q=
-golang.org/x/term v0.19.0/go.mod 
h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk=
+golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
+golang.org/x/term v0.21.0/go.mod 
h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
+golang.org/x/text v0.16.0/go.mod 
h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
 golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
 golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -752,8 +752,8 @@ golang.org/x/tools 
v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
 golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod 
h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ=
-golang.org/x/tools v0.18.0/go.mod 
h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d 
h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
+golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod 
h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -767,16 +767,16 @@ google.golang.org/genproto 
v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98
 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod 
h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b 
h1:+YaDE2r2OG8t/z5qmsh7Y+XXwCbvadxxZ0YY6mTdrVA=
 google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod 
h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI=
-google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b 
h1:CIC2YMXmIhYw6evmhPxBKJ4fmLbOFtXQN/GV3XOZR8k=
-google.golang.org/genproto/googleapis/api 
v0.0.0-20231016165738-49dd2c1f3d0b/go.mod 
h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b 
h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20231016165738-49dd2c1f3d0b/go.mod 
h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc=
+google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 
h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4=
+google.golang.org/genproto/googleapis/api 
v0.0.0-20240318140521-94a12d6c2237/go.mod 
h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 
h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20240318140521-94a12d6c2237/go.mod 
h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
 google.golang.org/grpc v1.0.5/go.mod 
h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
 google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.23.0/go.mod 
h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.27.0/go.mod 
h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
-google.golang.org/grpc v1.59.0/go.mod 
h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
+google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA=
+google.golang.org/grpc v1.64.1/go.mod 
h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
diff --git a/internal/components/setup/compose.go 
b/internal/components/setup/compose.go
index 1a22f49..df9509b 100644
--- a/internal/components/setup/compose.go
+++ b/internal/components/setup/compose.go
@@ -21,13 +21,13 @@ package setup
 import (
        "context"
        "fmt"
-
-       "github.com/testcontainers/testcontainers-go/wait"
+       "time"
 
        "github.com/apache/skywalking-infra-e2e/internal/config"
        "github.com/apache/skywalking-infra-e2e/internal/logger"
 
        tc "github.com/testcontainers/testcontainers-go/modules/compose"
+       "github.com/testcontainers/testcontainers-go/wait"
 )
 
 const (
@@ -55,7 +55,7 @@ func ComposeSetup(e2eConfig *config.E2EConfig) error {
                return fmt.Errorf("compose setup error: %v", err)
        }
 
-       if err = compose.Up(context.Background()); err != nil {
+       if err = compose.Up(context.Background(), tc.Wait(true)); err != nil {
                return err
        }
 
@@ -64,11 +64,11 @@ func ComposeSetup(e2eConfig *config.E2EConfig) error {
                if err != nil {
                        return err
                }
-               containerJson, err := container.Inspect(context.Background())
+               ports, err := container.Ports(context.Background())
                if err != nil {
                        return err
                }
-               for port := range containerJson.Config.ExposedPorts {
+               for port := range ports {
                        logger.Log.Debugf("waiting for port %v in container: 
%v/%v", port, service, container.ID)
                        if err = 
wait.ForListeningPort(port).WaitUntilReady(context.Background(), container); 
err != nil {
                                return err
@@ -83,5 +83,6 @@ func ComposeSetup(e2eConfig *config.E2EConfig) error {
                return err
        }
 
+       time.Sleep(time.Second * 30)
        return nil
 }
diff --git a/internal/components/setup/compose_provider.go 
b/internal/components/setup/compose_provider.go
index b4dc6ac..d161c52 100644
--- a/internal/components/setup/compose_provider.go
+++ b/internal/components/setup/compose_provider.go
@@ -34,7 +34,6 @@ import (
 
        "github.com/docker/docker/api/types"
        "github.com/docker/docker/api/types/container"
-       "github.com/docker/docker/api/types/network"
        "github.com/docker/docker/client"
        "github.com/docker/go-connections/nat"
        "github.com/testcontainers/testcontainers-go/wait"
@@ -266,7 +265,7 @@ func (c *DockerContainer) NetworkAliases(ctx 
context.Context) (map[string][]stri
 
 func (c *DockerContainer) Exec(ctx context.Context, cmd []string) (int, error) 
{
        cli := c.provider.client
-       response, err := cli.ContainerExecCreate(ctx, c.ID, 
container.ExecOptions{
+       response, err := cli.ContainerExecCreate(ctx, c.ID, types.ExecConfig{
                Cmd:    cmd,
                Detach: false,
        })
@@ -274,7 +273,7 @@ func (c *DockerContainer) Exec(ctx context.Context, cmd 
[]string) (int, error) {
                return 0, err
        }
 
-       err = cli.ContainerExecStart(ctx, response.ID, 
container.ExecStartOptions{
+       err = cli.ContainerExecStart(ctx, response.ID, types.ExecStartCheck{
                Detach: false,
        })
        if err != nil {
@@ -358,12 +357,12 @@ func (p *DockerProvider) daemonHost(ctx context.Context) 
(string, error) {
 }
 
 // GetNetwork returns the object representing the network identified by its 
name
-func (p *DockerProvider) GetNetwork(ctx context.Context, req NetworkRequest) 
(network.Inspect, error) {
-       networkResource, err := p.client.NetworkInspect(ctx, req.Name, 
network.InspectOptions{
+func (p *DockerProvider) GetNetwork(ctx context.Context, req NetworkRequest) 
(types.NetworkResource, error) {
+       networkResource, err := p.client.NetworkInspect(ctx, req.Name, 
types.NetworkInspectOptions{
                Verbose: true,
        })
        if err != nil {
-               return network.Summary{}, err
+               return types.NetworkResource{}, err
        }
 
        return networkResource, err
@@ -420,7 +419,7 @@ func getDefaultGatewayIP() (string, error) {
 
 func getDefaultNetwork(ctx context.Context, cli *client.Client) (string, 
error) {
        // Get list of available networks
-       networkResources, err := cli.NetworkList(ctx, network.ListOptions{})
+       networkResources, err := cli.NetworkList(ctx, 
types.NetworkListOptions{})
        if err != nil {
                return "", err
        }
@@ -441,7 +440,7 @@ func getDefaultNetwork(ctx context.Context, cli 
*client.Client) (string, error)
 
        // Create a bridge network for the container communications
        if !reaperNetworkExists {
-               _, err = cli.NetworkCreate(ctx, reaperNetwork, 
network.CreateOptions{
+               _, err = cli.NetworkCreate(ctx, reaperNetwork, 
types.NetworkCreate{
                        Driver:     Bridge,
                        Attachable: true,
                        Labels: map[string]string{
diff --git a/internal/components/setup/compose.go 
b/internal/components/setup/composev2.go
similarity index 74%
copy from internal/components/setup/compose.go
copy to internal/components/setup/composev2.go
index 1a22f49..49b1905 100644
--- a/internal/components/setup/compose.go
+++ b/internal/components/setup/composev2.go
@@ -22,25 +22,15 @@ import (
        "context"
        "fmt"
 
-       "github.com/testcontainers/testcontainers-go/wait"
-
        "github.com/apache/skywalking-infra-e2e/internal/config"
        "github.com/apache/skywalking-infra-e2e/internal/logger"
 
        tc "github.com/testcontainers/testcontainers-go/modules/compose"
+       "github.com/testcontainers/testcontainers-go/wait"
 )
 
-const (
-       // SeparatorV1 is the separator used in docker-compose v1
-       // refer to 
https://github.com/docker/compose/blob/5becea4ca9f68875334c92f191a13482bcd6e5cf/compose/service.py#L1492-L1498
-       SeparatorV1 = "_"
-       // SeparatorV2 is the separator used in docker-compose v2
-       // refer to 
https://github.com/docker/compose/blob/981aea674d052ee1ab252f71c3ca1f9f8a7e32de/pkg/compose/convergence.go#L252-L257
-       SeparatorV2 = "-"
-)
-
-// ComposeSetup sets up environment according to e2e.yaml.
-func ComposeSetup(e2eConfig *config.E2EConfig) error {
+// ComposeV2Setup sets up environment according to e2e.yaml.
+func ComposeV2Setup(e2eConfig *config.E2EConfig) error {
        composeConfigPath := e2eConfig.Setup.GetFile()
        if composeConfigPath == "" {
                return fmt.Errorf("no compose config file was provided")
@@ -55,7 +45,7 @@ func ComposeSetup(e2eConfig *config.E2EConfig) error {
                return fmt.Errorf("compose setup error: %v", err)
        }
 
-       if err = compose.Up(context.Background()); err != nil {
+       if err = compose.Up(context.Background(), tc.Wait(true)); err != nil {
                return err
        }
 
@@ -64,11 +54,11 @@ func ComposeSetup(e2eConfig *config.E2EConfig) error {
                if err != nil {
                        return err
                }
-               containerJson, err := container.Inspect(context.Background())
+               ports, err := container.Ports(context.Background())
                if err != nil {
                        return err
                }
-               for port := range containerJson.Config.ExposedPorts {
+               for port := range ports {
                        logger.Log.Debugf("waiting for port %v in container: 
%v/%v", port, service, container.ID)
                        if err = 
wait.ForListeningPort(port).WaitUntilReady(context.Background(), container); 
err != nil {
                                return err
diff --git a/internal/components/setup/kind.go 
b/internal/components/setup/kind.go
index 95ef12a..ee2ca1b 100644
--- a/internal/components/setup/kind.go
+++ b/internal/components/setup/kind.go
@@ -126,22 +126,22 @@ func pullImages(ctx context.Context, images []string) 
error {
        var wg sync.WaitGroup
        for _, image := range filterResult {
                wg.Add(1)
-               go func(img string) {
+               go func(image string) {
                        defer wg.Done()
-                       logger.Log.Infof("image %s does not exist, will pull 
from remote", img)
-                       out, err := cli.ImagePull(ctx, img, 
dockerimage.PullOptions{})
+                       logger.Log.Infof("image %s does not exist, will pull 
from remote", image)
+                       out, err := cli.ImagePull(ctx, image, 
dockerimage.PullOptions{})
                        if err != nil {
-                               logger.Log.WithError(err).Errorf("failed pull 
image: %s", img)
+                               logger.Log.WithError(err).Errorf("failed pull 
image: %s", image)
                                return
                        }
                        defer out.Close()
 
                        if _, err := io.ReadAll(out); err != nil {
-                               logger.Log.WithError(err).Errorf("failed pull 
image: %s", img)
+                               logger.Log.WithError(err).Errorf("failed pull 
image: %s", image)
                                return
                        }
                        atomic.AddInt32(&count, 1)
-                       logger.Log.Infof("success pull image: %s", img)
+                       logger.Log.Infof("success pull image: %s", image)
                }(image)
        }
        wg.Wait()

Reply via email to