From 9484a3892f85fd7f30a6ca618398d5f784fa6308 Mon Sep 17 00:00:00 2001 From: Saswata Mukherjee Date: Thu, 19 Jan 2023 09:37:14 +0530 Subject: [PATCH 1/5] Use e2edb.NewMinio to disable SSE Signed-off-by: Saswata Mukherjee --- go.mod | 2 +- go.sum | 4 +- test/e2e/compact_test.go | 7 ++-- test/e2e/e2ethanos/services.go | 64 +++---------------------------- test/e2e/info_api_test.go | 5 ++- test/e2e/query_test.go | 12 +++--- test/e2e/store_gateway_test.go | 33 ++++++++-------- test/e2e/tools_bucket_web_test.go | 19 ++++----- 8 files changed, 49 insertions(+), 97 deletions(-) diff --git a/go.mod b/go.mod index fdf5be15bc..59dbfade17 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/chromedp/chromedp v0.8.2 github.com/davecgh/go-spew v1.1.1 // indirect github.com/dustin/go-humanize v1.0.0 - github.com/efficientgo/e2e v0.13.1-0.20220923082810-8fa9daa8af8a + github.com/efficientgo/e2e v0.14.1-0.20230113103053-a223df4a911c github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb github.com/fatih/structtag v1.2.0 diff --git a/go.sum b/go.sum index a4379ce0db..ff49c27c15 100644 --- a/go.sum +++ b/go.sum @@ -247,8 +247,8 @@ github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/efficientgo/core v1.0.0-rc.0.0.20221201130417-ba593f67d2a4 h1:rydBwnBoywKQMjWF0z8SriYtQ+uUcaFsxuijMjJr5PI= github.com/efficientgo/core v1.0.0-rc.0.0.20221201130417-ba593f67d2a4/go.mod h1:kQa0V74HNYMfuJH6jiPiwNdpWXl4xd/K4tzlrcvYDQI= -github.com/efficientgo/e2e v0.13.1-0.20220923082810-8fa9daa8af8a h1:cnJajqeh/HjvJLhI3wPvWG9OQ4gU79+4pELRD5Pkih8= -github.com/efficientgo/e2e v0.13.1-0.20220923082810-8fa9daa8af8a/go.mod h1:Hi+sz0REtlhVZ8zcdeTC3j6LUEEpJpPtNjOaOKuNcgI= +github.com/efficientgo/e2e v0.14.1-0.20230113103053-a223df4a911c h1:r7MjS4rucQHFCETZ6CFdqGxuYXEdWLS4GSWND7yulXk= +github.com/efficientgo/e2e v0.14.1-0.20230113103053-a223df4a911c/go.mod h1:plsKU0YHE9uX+7utvr7SiDtVBSHJyEfHRO4UnUgDmts= github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd h1:VaYzzXeUbC5fVheskcKVNOyJMEYD+HgrJNzIAg/mRIM= github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd/go.mod h1:ZV0utlglOczUWv3ih2AbqPSoLoFzdplUYxwV62eZi6Q= github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0= diff --git a/test/e2e/compact_test.go b/test/e2e/compact_test.go index 064a711f9c..5fa7b3d2b5 100644 --- a/test/e2e/compact_test.go +++ b/test/e2e/compact_test.go @@ -17,6 +17,7 @@ import ( "time" "github.com/efficientgo/e2e" + e2edb "github.com/efficientgo/e2e/db" e2emon "github.com/efficientgo/e2e/monitoring" "github.com/efficientgo/e2e/monitoring/matchers" "github.com/go-kit/log" @@ -347,11 +348,11 @@ func testCompactWithStoreGateway(t *testing.T, penaltyDedup bool) { testutil.Ok(t, os.MkdirAll(dir, os.ModePerm)) const bucket = "compact-test" - m := e2ethanos.NewMinio(e, "minio", bucket) + m := e2edb.NewMinio(e, "minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) bkt, err := s3.NewBucketWithConfig(logger, - e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.Dir()), "test-feed") + e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.Dir()), "test-feed") testutil.Ok(t, err) ctx, cancel := context.WithTimeout(context.Background(), 90*time.Second) @@ -454,7 +455,7 @@ func testCompactWithStoreGateway(t *testing.T, penaltyDedup bool) { bktConfig := client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), } // Crank down the deletion mark delay since deduplication can miss blocks in the presence of replica labels it doesn't know about. diff --git a/test/e2e/e2ethanos/services.go b/test/e2e/e2ethanos/services.go index 57cccbda2d..cf3ae70611 100644 --- a/test/e2e/e2ethanos/services.go +++ b/test/e2e/e2ethanos/services.go @@ -31,7 +31,6 @@ import ( "gopkg.in/yaml.v2" "github.com/thanos-io/objstore/client" - "github.com/thanos-io/objstore/exthttp" "github.com/thanos-io/objstore/providers/s3" "github.com/thanos-io/thanos/pkg/alert" @@ -945,57 +944,6 @@ http { }), "http") } -// NewMinio returns minio server, used as a local replacement for S3. -// TODO(@matej-g): This is a temporary workaround for https://github.com/efficientgo/e2e/issues/11; -// after this is addresses fixed all calls should be replaced with e2edb.NewMinio. -func NewMinio(e e2e.Environment, name, bktName string) *e2emon.InstrumentedRunnable { - image := "minio/minio:RELEASE.2022-07-30T05-21-40Z" - minioKESGithubContent := "https://raw.githubusercontent.com/minio/kes/master" - - httpsPort := 8090 - consolePort := 8080 - f := e.Runnable(fmt.Sprintf("minio-%s", name)). - WithPorts(map[string]int{"https": httpsPort, "console": consolePort}). - Future() - - if err := os.MkdirAll(filepath.Join(f.Dir(), "certs", "CAs"), 0750); err != nil { - return &e2emon.InstrumentedRunnable{Runnable: e2e.NewFailedRunnable(name, errors.Wrap(err, "create certs dir"))} - } - - if err := genCerts( - filepath.Join(f.Dir(), "certs", "public.crt"), - filepath.Join(f.Dir(), "certs", "private.key"), - filepath.Join(f.Dir(), "certs", "CAs", "ca.crt"), - fmt.Sprintf("%s-minio-%s", e.Name(), name), - ); err != nil { - return &e2emon.InstrumentedRunnable{Runnable: e2e.NewFailedRunnable(name, errors.Wrap(err, "fail to generate certs"))} - } - - commands := []string{ - fmt.Sprintf("curl -sSL --tlsv1.2 -O '%s/root.key' -O '%s/root.cert'", minioKESGithubContent, minioKESGithubContent), - fmt.Sprintf("mkdir -p /data/%s && minio server --certs-dir %s/certs --address :%v --console-address :%v /data", bktName, f.InternalDir(), httpsPort, consolePort), - } - - minio := e2emon.AsInstrumented(f.Init(e2e.StartOptions{ - Image: image, - // Create the required bucket before starting minio. - Command: e2e.NewCommandWithoutEntrypoint("sh", "-c", strings.Join(commands, " && ")), - Readiness: e2e.NewHTTPSReadinessProbe("console", "/", 200, 200), - EnvVars: map[string]string{ - "MINIO_ROOT_USER": e2edb.MinioAccessKey, - "MINIO_ROOT_PASSWORD": e2edb.MinioSecretKey, - "MINIO_BROWSER": "on", - "ENABLE_HTTPS": "1", - // https://docs.min.io/docs/minio-kms-quickstart-guide.html - "MINIO_KMS_KES_ENDPOINT": "https://play.min.io:7373", - "MINIO_KMS_KES_KEY_FILE": "root.key", - "MINIO_KMS_KES_CERT_FILE": "root.cert", - "MINIO_KMS_KES_KEY_NAME": "my-minio-key", - }, - }), "https") - return minio -} - func NewMemcached(e e2e.Environment, name string) *e2emon.InstrumentedRunnable { return e2emon.AsInstrumented(e.Runnable(fmt.Sprintf("memcached-%s", name)). WithPorts(map[string]int{"memcached": 11211}). @@ -1133,18 +1081,18 @@ func genCerts(certPath, privkeyPath, caPath, serverName string) error { func NewS3Config(bucket, endpoint, basePath string) s3.Config { httpDefaultConf := s3.DefaultConfig.HTTPConfig - httpDefaultConf.TLSConfig = exthttp.TLSConfig{ - CAFile: filepath.Join(basePath, "certs", "CAs", "ca.crt"), - CertFile: filepath.Join(basePath, "certs", "public.crt"), - KeyFile: filepath.Join(basePath, "certs", "private.key"), - } + // httpDefaultConf.TLSConfig = exthttp.TLSConfig{ + // CAFile: filepath.Join(basePath, "certs", "CAs", "ca.crt"), + // CertFile: filepath.Join(basePath, "certs", "public.crt"), + // KeyFile: filepath.Join(basePath, "certs", "private.key"), + // } return s3.Config{ Bucket: bucket, AccessKey: e2edb.MinioAccessKey, SecretKey: e2edb.MinioSecretKey, Endpoint: endpoint, - Insecure: false, + Insecure: true, HTTPConfig: httpDefaultConf, BucketLookupType: s3.AutoLookup, } diff --git a/test/e2e/info_api_test.go b/test/e2e/info_api_test.go index c7084cbbc2..f0e93872ce 100644 --- a/test/e2e/info_api_test.go +++ b/test/e2e/info_api_test.go @@ -19,6 +19,7 @@ import ( "github.com/thanos-io/objstore/client" "github.com/efficientgo/core/testutil" + e2edb "github.com/efficientgo/e2e/db" "github.com/thanos-io/thanos/pkg/query" "github.com/thanos-io/thanos/pkg/runutil" "github.com/thanos-io/thanos/test/e2e/e2ethanos" @@ -37,14 +38,14 @@ func TestInfo(t *testing.T) { testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1, prom2, sidecar2, prom3, sidecar3)) const bucket = "info-api-test" - m := e2ethanos.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) store := e2ethanos.NewStoreGW( e, "1", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, "", nil, diff --git a/test/e2e/query_test.go b/test/e2e/query_test.go index 3f376802a6..aa6174081e 100644 --- a/test/e2e/query_test.go +++ b/test/e2e/query_test.go @@ -591,11 +591,11 @@ func TestQueryStoreMetrics(t *testing.T) { t.Cleanup(cancel) bucket := "store-gw-test" - minio := e2ethanos.NewMinio(e, "thanos-minio", bucket) + minio := e2edb.NewMinio(e, "thanos-minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(minio)) l := log.NewLogfmtLogger(os.Stdout) - bkt, err := s3.NewBucketWithConfig(l, e2ethanos.NewS3Config(bucket, minio.Endpoint("https"), minio.Dir()), "test") + bkt, err := s3.NewBucketWithConfig(l, e2ethanos.NewS3Config(bucket, minio.Endpoint("http"), minio.Dir()), "test") testutil.Ok(t, err) // Preparing 2 different blocks for the tests. @@ -639,7 +639,7 @@ func TestQueryStoreMetrics(t *testing.T) { "s1", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, minio.InternalEndpoint("https"), minio.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, minio.InternalEndpoint("http"), minio.InternalDir()), }, "", nil, @@ -719,7 +719,7 @@ func TestSidecarStorePushdown(t *testing.T) { testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1)) const bucket = "store-gateway-test" - m := e2ethanos.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) dir := filepath.Join(e.SharedDir(), "tmp") @@ -736,7 +736,7 @@ func TestSidecarStorePushdown(t *testing.T) { testutil.Ok(t, err) l := log.NewLogfmtLogger(os.Stdout) - bkt, err := s3.NewBucketWithConfig(l, e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.Dir()), "test") + bkt, err := s3.NewBucketWithConfig(l, e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.Dir()), "test") testutil.Ok(t, err) testutil.Ok(t, objstore.UploadDir(ctx, l, bkt, path.Join(dir, id1.String()), id1.String())) @@ -745,7 +745,7 @@ func TestSidecarStorePushdown(t *testing.T) { "1", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, "", nil, diff --git a/test/e2e/store_gateway_test.go b/test/e2e/store_gateway_test.go index cfad2ba0f1..6c5390c4d7 100644 --- a/test/e2e/store_gateway_test.go +++ b/test/e2e/store_gateway_test.go @@ -15,6 +15,7 @@ import ( "time" "github.com/efficientgo/e2e" + e2edb "github.com/efficientgo/e2e/db" e2emon "github.com/efficientgo/e2e/monitoring" "github.com/efficientgo/e2e/monitoring/matchers" "github.com/go-kit/log" @@ -48,7 +49,7 @@ func TestStoreGateway(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-test" - m := e2ethanos.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) memcached := e2ethanos.NewMemcached(e, "1") @@ -67,7 +68,7 @@ metafile_content_ttl: 0s`, memcached.InternalEndpoint("memcached")) "1", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, memcachedConfig, nil, @@ -107,7 +108,7 @@ metafile_content_ttl: 0s`, memcached.InternalEndpoint("memcached")) testutil.Ok(t, err) l := log.NewLogfmtLogger(os.Stdout) bkt, err := s3.NewBucketWithConfig(l, - e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.Dir()), "test-feed") + e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.Dir()), "test-feed") testutil.Ok(t, err) testutil.Ok(t, objstore.UploadDir(ctx, l, bkt, path.Join(dir, id1.String()), id1.String())) @@ -286,7 +287,7 @@ func TestStoreGatewayMemcachedCache(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-memcached-cache-test" - m := e2ethanos.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) memcached := e2ethanos.NewMemcached(e, "1") @@ -302,7 +303,7 @@ blocks_iter_ttl: 0s`, memcached.InternalEndpoint("memcached")) "1", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, memcachedConfig, nil, @@ -327,7 +328,7 @@ blocks_iter_ttl: 0s`, memcached.InternalEndpoint("memcached")) l := log.NewLogfmtLogger(os.Stdout) bkt, err := s3.NewBucketWithConfig(l, - e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.Dir()), "test-feed") + e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.Dir()), "test-feed") testutil.Ok(t, err) testutil.Ok(t, objstore.UploadDir(ctx, l, bkt, path.Join(dir, id.String()), id.String())) @@ -388,7 +389,7 @@ func TestStoreGatewayGroupCache(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-groupcache-test" - m := e2ethanos.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) groupcacheConfig := `type: GROUPCACHE @@ -410,7 +411,7 @@ metafile_content_ttl: 0s` "1", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, fmt.Sprintf(groupcacheConfig, 1), nil, @@ -420,7 +421,7 @@ metafile_content_ttl: 0s` "2", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, fmt.Sprintf(groupcacheConfig, 2), nil, @@ -430,7 +431,7 @@ metafile_content_ttl: 0s` "3", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, fmt.Sprintf(groupcacheConfig, 3), nil, @@ -459,7 +460,7 @@ metafile_content_ttl: 0s` testutil.Ok(t, err) l := log.NewLogfmtLogger(os.Stdout) - bkt, err := s3.NewBucketWithConfig(l, e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.Dir()), "test-feed") + bkt, err := s3.NewBucketWithConfig(l, e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.Dir()), "test-feed") testutil.Ok(t, err) testutil.Ok(t, objstore.UploadDir(ctx, l, bkt, path.Join(dir, id.String()), id.String())) @@ -513,7 +514,7 @@ func TestStoreGatewayBytesLimit(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-test" - m := e2ethanos.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) store1 := e2ethanos.NewStoreGW( @@ -521,7 +522,7 @@ func TestStoreGatewayBytesLimit(t *testing.T) { "1", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, "", []string{"--store.grpc.downloaded-bytes-limit=1B"}, @@ -532,7 +533,7 @@ func TestStoreGatewayBytesLimit(t *testing.T) { "2", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, "", []string{"--store.grpc.downloaded-bytes-limit=100B"}, @@ -542,7 +543,7 @@ func TestStoreGatewayBytesLimit(t *testing.T) { "3", client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), }, "", []string{"--store.grpc.downloaded-bytes-limit=196627B"}, @@ -577,7 +578,7 @@ func TestStoreGatewayBytesLimit(t *testing.T) { testutil.Ok(t, err) l := log.NewLogfmtLogger(os.Stdout) bkt, err := s3.NewBucketWithConfig(l, - e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.Dir()), "test-feed") + e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.Dir()), "test-feed") testutil.Ok(t, err) testutil.Ok(t, objstore.UploadDir(ctx, l, bkt, path.Join(dir, id1.String()), id1.String())) diff --git a/test/e2e/tools_bucket_web_test.go b/test/e2e/tools_bucket_web_test.go index abba45086e..05295f0a91 100644 --- a/test/e2e/tools_bucket_web_test.go +++ b/test/e2e/tools_bucket_web_test.go @@ -16,6 +16,7 @@ import ( "time" "github.com/efficientgo/e2e" + e2edb "github.com/efficientgo/e2e/db" "github.com/go-kit/log" "github.com/prometheus/prometheus/model/labels" "github.com/prometheus/prometheus/model/timestamp" @@ -41,12 +42,12 @@ func TestToolsBucketWebExternalPrefixWithoutReverseProxy(t *testing.T) { externalPrefix := "testThanos" const bucket = "compact-test" - m := e2ethanos.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) svcConfig := client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.InternalDir()), } b := e2ethanos.NewToolsBucketWeb( @@ -73,12 +74,12 @@ func TestToolsBucketWebExternalPrefix(t *testing.T) { externalPrefix := "testThanos" const bucket = "toolsBucketWeb-test" - m := e2ethanos.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) svcConfig := client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.InternalDir()), } b := e2ethanos.NewToolsBucketWeb( @@ -111,13 +112,13 @@ func TestToolsBucketWebExternalPrefixAndRoutePrefix(t *testing.T) { externalPrefix := "testThanos" routePrefix := "test" const bucket = "toolsBucketWeb-test" - m := e2ethanos.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket) testutil.Ok(t, err) testutil.Ok(t, e2e.StartAndWaitReady(m)) svcConfig := client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.InternalDir()), } b := e2ethanos.NewToolsBucketWeb( @@ -149,13 +150,13 @@ func TestToolsBucketWebWithTimeAndRelabelFilter(t *testing.T) { // Create Minio. const bucket = "toolsBucketWeb-test" - m := e2ethanos.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket) testutil.Ok(t, e2e.StartAndWaitReady(m)) // Create bucket. logger := log.NewLogfmtLogger(os.Stdout) bkt, err := s3.NewBucketWithConfig(logger, - e2ethanos.NewS3Config(bucket, m.Endpoint("https"), m.Dir()), "tools") + e2ethanos.NewS3Config(bucket, m.Endpoint("http"), m.Dir()), "tools") testutil.Ok(t, err) // Create share dir for upload. @@ -198,7 +199,7 @@ func TestToolsBucketWebWithTimeAndRelabelFilter(t *testing.T) { // Start thanos tool bucket web. svcConfig := client.BucketConfig{ Type: client.S3, - Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("https"), m.InternalDir()), + Config: e2ethanos.NewS3Config(bucket, m.InternalEndpoint("http"), m.InternalDir()), } b := e2ethanos.NewToolsBucketWeb( e, From 4bf49503f75820e4d42647f9abe371746c3d6f64 Mon Sep 17 00:00:00 2001 From: Saswata Mukherjee Date: Thu, 19 Jan 2023 11:36:16 +0530 Subject: [PATCH 2/5] Use temp fork for TLS Signed-off-by: Saswata Mukherjee --- go.mod | 2 + go.sum | 4 +- test/e2e/compact_test.go | 2 +- test/e2e/e2ethanos/services.go | 89 +++---------------------------- test/e2e/info_api_test.go | 2 +- test/e2e/query_test.go | 4 +- test/e2e/store_gateway_test.go | 8 +-- test/e2e/tools_bucket_web_test.go | 8 +-- 8 files changed, 23 insertions(+), 96 deletions(-) diff --git a/go.mod b/go.mod index 59dbfade17..0bf6471712 100644 --- a/go.mod +++ b/go.mod @@ -254,6 +254,8 @@ replace ( // Required by Cortex https://github.com/cortexproject/cortex/pull/3051. github.com/bradfitz/gomemcache => github.com/themihai/gomemcache v0.0.0-20180902122335-24332e2d58ab + github.com/efficientgo/e2e => github.com/saswatamcode/e2e v0.11.2-0.20230119055550-eedac0d0de84 + github.com/vimeo/galaxycache => github.com/thanos-community/galaxycache v0.0.0-20211122094458-3a32041a1f1e // Override due to https://github.com/weaveworks/common/issues/239 diff --git a/go.sum b/go.sum index ff49c27c15..91e24e4d99 100644 --- a/go.sum +++ b/go.sum @@ -247,8 +247,6 @@ github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/efficientgo/core v1.0.0-rc.0.0.20221201130417-ba593f67d2a4 h1:rydBwnBoywKQMjWF0z8SriYtQ+uUcaFsxuijMjJr5PI= github.com/efficientgo/core v1.0.0-rc.0.0.20221201130417-ba593f67d2a4/go.mod h1:kQa0V74HNYMfuJH6jiPiwNdpWXl4xd/K4tzlrcvYDQI= -github.com/efficientgo/e2e v0.14.1-0.20230113103053-a223df4a911c h1:r7MjS4rucQHFCETZ6CFdqGxuYXEdWLS4GSWND7yulXk= -github.com/efficientgo/e2e v0.14.1-0.20230113103053-a223df4a911c/go.mod h1:plsKU0YHE9uX+7utvr7SiDtVBSHJyEfHRO4UnUgDmts= github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd h1:VaYzzXeUbC5fVheskcKVNOyJMEYD+HgrJNzIAg/mRIM= github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd/go.mod h1:ZV0utlglOczUWv3ih2AbqPSoLoFzdplUYxwV62eZi6Q= github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0= @@ -840,6 +838,8 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/santhosh-tekuri/jsonschema v1.2.4 h1:hNhW8e7t+H1vgY+1QeEQpveR6D4+OwKPXCfD2aieJis= github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= +github.com/saswatamcode/e2e v0.11.2-0.20230119055550-eedac0d0de84 h1:5Cy6yR46xeniOb/Br0EUYMIffhD+8igRCSLkM/RPC4Y= +github.com/saswatamcode/e2e v0.11.2-0.20230119055550-eedac0d0de84/go.mod h1:plsKU0YHE9uX+7utvr7SiDtVBSHJyEfHRO4UnUgDmts= github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b h1:gQZ0qzfKHQIybLANtM3mBXNUtOfsCFXeTsnBqCsx1KM= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.10 h1:wsfMs0iv+MJiViM37qh5VEKISi3/ZUq2nNKNdqmumAs= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= diff --git a/test/e2e/compact_test.go b/test/e2e/compact_test.go index 5fa7b3d2b5..c618bec5d2 100644 --- a/test/e2e/compact_test.go +++ b/test/e2e/compact_test.go @@ -348,7 +348,7 @@ func testCompactWithStoreGateway(t *testing.T, penaltyDedup bool) { testutil.Ok(t, os.MkdirAll(dir, os.ModePerm)) const bucket = "compact-test" - m := e2edb.NewMinio(e, "minio", bucket) + m := e2edb.NewMinio(e, "minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) bkt, err := s3.NewBucketWithConfig(logger, diff --git a/test/e2e/e2ethanos/services.go b/test/e2e/e2ethanos/services.go index cf3ae70611..8eb58bcae7 100644 --- a/test/e2e/e2ethanos/services.go +++ b/test/e2e/e2ethanos/services.go @@ -4,14 +4,8 @@ package e2ethanos import ( - "crypto/rand" - "crypto/rsa" - "crypto/x509" "encoding/json" - "encoding/pem" "fmt" - "math/big" - "net" "os" "path/filepath" "strconv" @@ -33,6 +27,7 @@ import ( "github.com/thanos-io/objstore/client" "github.com/thanos-io/objstore/providers/s3" + "github.com/thanos-io/objstore/exthttp" "github.com/thanos-io/thanos/pkg/alert" "github.com/thanos-io/thanos/pkg/httpconfig" @@ -1009,90 +1004,20 @@ func NewToolsBucketWeb( })), "http") } -// genCerts generates certificates and writes those to the provided paths. -func genCerts(certPath, privkeyPath, caPath, serverName string) error { - var caRoot = &x509.Certificate{ - SerialNumber: big.NewInt(2019), - NotAfter: time.Now().AddDate(10, 0, 0), - IsCA: true, - ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth}, - KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign, - BasicConstraintsValid: true, - } - - var cert = &x509.Certificate{ - SerialNumber: big.NewInt(1658), - DNSNames: []string{serverName}, - IPAddresses: []net.IP{net.ParseIP("127.0.0.1"), net.ParseIP("::1")}, - NotAfter: time.Now().AddDate(10, 0, 0), - SubjectKeyId: []byte{1, 2, 3}, - ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth}, - KeyUsage: x509.KeyUsageDigitalSignature, - } - - caPrivKey, err := rsa.GenerateKey(rand.Reader, 2048) - if err != nil { - return err - } - - certPrivKey, err := rsa.GenerateKey(rand.Reader, 2048) - if err != nil { - return err - } - // Generate CA cert. - caBytes, err := x509.CreateCertificate(rand.Reader, caRoot, caRoot, &caPrivKey.PublicKey, caPrivKey) - if err != nil { - return err - } - caPEM := pem.EncodeToMemory(&pem.Block{ - Type: "CERTIFICATE", - Bytes: caBytes, - }) - err = os.WriteFile(caPath, caPEM, 0644) - if err != nil { - return err - } - - // Sign the cert with the CA private key. - certBytes, err := x509.CreateCertificate(rand.Reader, cert, caRoot, &certPrivKey.PublicKey, caPrivKey) - if err != nil { - return err - } - certPEM := pem.EncodeToMemory(&pem.Block{ - Type: "CERTIFICATE", - Bytes: certBytes, - }) - err = os.WriteFile(certPath, certPEM, 0644) - if err != nil { - return err - } - - certPrivKeyPEM := pem.EncodeToMemory(&pem.Block{ - Type: "RSA PRIVATE KEY", - Bytes: x509.MarshalPKCS1PrivateKey(certPrivKey), - }) - err = os.WriteFile(privkeyPath, certPrivKeyPEM, 0644) - if err != nil { - return err - } - - return nil -} - func NewS3Config(bucket, endpoint, basePath string) s3.Config { httpDefaultConf := s3.DefaultConfig.HTTPConfig - // httpDefaultConf.TLSConfig = exthttp.TLSConfig{ - // CAFile: filepath.Join(basePath, "certs", "CAs", "ca.crt"), - // CertFile: filepath.Join(basePath, "certs", "public.crt"), - // KeyFile: filepath.Join(basePath, "certs", "private.key"), - // } + httpDefaultConf.TLSConfig = exthttp.TLSConfig{ + CAFile: filepath.Join(basePath, "certs", "CAs", "ca.crt"), + CertFile: filepath.Join(basePath, "certs", "public.crt"), + KeyFile: filepath.Join(basePath, "certs", "private.key"), + } return s3.Config{ Bucket: bucket, AccessKey: e2edb.MinioAccessKey, SecretKey: e2edb.MinioSecretKey, Endpoint: endpoint, - Insecure: true, + Insecure: false, HTTPConfig: httpDefaultConf, BucketLookupType: s3.AutoLookup, } diff --git a/test/e2e/info_api_test.go b/test/e2e/info_api_test.go index f0e93872ce..aa546feb0e 100644 --- a/test/e2e/info_api_test.go +++ b/test/e2e/info_api_test.go @@ -38,7 +38,7 @@ func TestInfo(t *testing.T) { testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1, prom2, sidecar2, prom3, sidecar3)) const bucket = "info-api-test" - m := e2edb.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) store := e2ethanos.NewStoreGW( e, diff --git a/test/e2e/query_test.go b/test/e2e/query_test.go index aa6174081e..6248758b4a 100644 --- a/test/e2e/query_test.go +++ b/test/e2e/query_test.go @@ -591,7 +591,7 @@ func TestQueryStoreMetrics(t *testing.T) { t.Cleanup(cancel) bucket := "store-gw-test" - minio := e2edb.NewMinio(e, "thanos-minio", bucket) + minio := e2edb.NewMinio(e, "thanos-minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(minio)) l := log.NewLogfmtLogger(os.Stdout) @@ -719,7 +719,7 @@ func TestSidecarStorePushdown(t *testing.T) { testutil.Ok(t, e2e.StartAndWaitReady(prom1, sidecar1)) const bucket = "store-gateway-test" - m := e2edb.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) dir := filepath.Join(e.SharedDir(), "tmp") diff --git a/test/e2e/store_gateway_test.go b/test/e2e/store_gateway_test.go index 6c5390c4d7..9a6aaa0b3f 100644 --- a/test/e2e/store_gateway_test.go +++ b/test/e2e/store_gateway_test.go @@ -49,7 +49,7 @@ func TestStoreGateway(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-test" - m := e2edb.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) memcached := e2ethanos.NewMemcached(e, "1") @@ -287,7 +287,7 @@ func TestStoreGatewayMemcachedCache(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-memcached-cache-test" - m := e2edb.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) memcached := e2ethanos.NewMemcached(e, "1") @@ -389,7 +389,7 @@ func TestStoreGatewayGroupCache(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-groupcache-test" - m := e2edb.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) groupcacheConfig := `type: GROUPCACHE @@ -514,7 +514,7 @@ func TestStoreGatewayBytesLimit(t *testing.T) { t.Cleanup(e2ethanos.CleanScenario(t, e)) const bucket = "store-gateway-test" - m := e2edb.NewMinio(e, "thanos-minio", bucket) + m := e2edb.NewMinio(e, "thanos-minio", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) store1 := e2ethanos.NewStoreGW( diff --git a/test/e2e/tools_bucket_web_test.go b/test/e2e/tools_bucket_web_test.go index 05295f0a91..08eeb6cac8 100644 --- a/test/e2e/tools_bucket_web_test.go +++ b/test/e2e/tools_bucket_web_test.go @@ -42,7 +42,7 @@ func TestToolsBucketWebExternalPrefixWithoutReverseProxy(t *testing.T) { externalPrefix := "testThanos" const bucket = "compact-test" - m := e2edb.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) svcConfig := client.BucketConfig{ @@ -74,7 +74,7 @@ func TestToolsBucketWebExternalPrefix(t *testing.T) { externalPrefix := "testThanos" const bucket = "toolsBucketWeb-test" - m := e2edb.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) svcConfig := client.BucketConfig{ @@ -112,7 +112,7 @@ func TestToolsBucketWebExternalPrefixAndRoutePrefix(t *testing.T) { externalPrefix := "testThanos" routePrefix := "test" const bucket = "toolsBucketWeb-test" - m := e2edb.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, err) testutil.Ok(t, e2e.StartAndWaitReady(m)) @@ -150,7 +150,7 @@ func TestToolsBucketWebWithTimeAndRelabelFilter(t *testing.T) { // Create Minio. const bucket = "toolsBucketWeb-test" - m := e2edb.NewMinio(e, "thanos", bucket) + m := e2edb.NewMinio(e, "thanos", bucket, e2edb.WithMinioTLS()) testutil.Ok(t, e2e.StartAndWaitReady(m)) // Create bucket. From c61309cebcb21f0976f2989872ad89e2c88d74f9 Mon Sep 17 00:00:00 2001 From: Saswata Mukherjee Date: Thu, 19 Jan 2023 11:59:23 +0530 Subject: [PATCH 3/5] Fix broken rules api fanout test Signed-off-by: Saswata Mukherjee --- test/e2e/rules_api_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/e2e/rules_api_test.go b/test/e2e/rules_api_test.go index a8d554b5ed..6303ed3d7e 100644 --- a/test/e2e/rules_api_test.go +++ b/test/e2e/rules_api_test.go @@ -96,7 +96,7 @@ func TestRulesAPI_Fanout(t *testing.T) { ruleAndAssert(t, ctx, q.Endpoint("http"), "", []*rulespb.RuleGroup{ { Name: "example_abort", - File: "/shared/data/querier-query/rules/rules.yaml", + File: q.Dir() + "/rules/rules.yaml", Rules: []*rulespb.Rule{ rulespb.NewAlertingRule(&rulespb.Alert{ Name: "TestAlert_AbortOnPartialResponse", @@ -112,7 +112,7 @@ func TestRulesAPI_Fanout(t *testing.T) { }, { Name: "example_abort", - File: "/shared/data/querier-query/thanos-rules/rules-0.yaml", + File: q.Dir() + "/thanos-rules/rules-0.yaml", Rules: []*rulespb.Rule{ rulespb.NewAlertingRule(&rulespb.Alert{ Name: "TestAlert_AbortOnPartialResponse", @@ -127,7 +127,7 @@ func TestRulesAPI_Fanout(t *testing.T) { }, { Name: "example_warn", - File: "/shared/data/querier-query/thanos-rules/rules-1.yaml", + File: q.Dir() + "/thanos-rules/rules-1.yaml", Rules: []*rulespb.Rule{ rulespb.NewAlertingRule(&rulespb.Alert{ Name: "TestAlert_WarnOnPartialResponse", @@ -142,7 +142,7 @@ func TestRulesAPI_Fanout(t *testing.T) { }, { Name: "example_with_limit", - File: "/shared/data/querier-query/thanos-rules/rules-with-limit.yaml", + File: q.Dir() + "/thanos-rules/rules-with-limit.yaml", Limit: 1, Rules: []*rulespb.Rule{ rulespb.NewAlertingRule(&rulespb.Alert{ From 54f927729a20213b9671d48018995ba10f0853bb Mon Sep 17 00:00:00 2001 From: Saswata Mukherjee Date: Thu, 19 Jan 2023 12:09:25 +0530 Subject: [PATCH 4/5] Fix broken query compatibility test Signed-off-by: Saswata Mukherjee --- test/e2e/query_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/query_test.go b/test/e2e/query_test.go index 6248758b4a..1c599413ac 100644 --- a/test/e2e/query_test.go +++ b/test/e2e/query_test.go @@ -542,7 +542,7 @@ config: ruleAndAssert(t, ctx, q.Endpoint("http"), "", []*rulespb.RuleGroup{ { Name: "example_abort", - File: "/shared/data/querier-1/rules/rules.yaml", + File: q.Dir() + "/rules/rules.yaml", Rules: []*rulespb.Rule{ rulespb.NewAlertingRule(&rulespb.Alert{ Name: "TestAlert_AbortOnPartialResponse", From 60e6f6fd4edce6cbce56032bd64cad8095202e11 Mon Sep 17 00:00:00 2001 From: Saswata Mukherjee Date: Thu, 19 Jan 2023 14:42:36 +0530 Subject: [PATCH 5/5] Remove fork Signed-off-by: Saswata Mukherjee --- go.mod | 4 +--- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 0bf6471712..5ec6f1a381 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/chromedp/chromedp v0.8.2 github.com/davecgh/go-spew v1.1.1 // indirect github.com/dustin/go-humanize v1.0.0 - github.com/efficientgo/e2e v0.14.1-0.20230113103053-a223df4a911c + github.com/efficientgo/e2e v0.14.1-0.20230119090947-fa7ceb0197c5 github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb github.com/fatih/structtag v1.2.0 @@ -254,8 +254,6 @@ replace ( // Required by Cortex https://github.com/cortexproject/cortex/pull/3051. github.com/bradfitz/gomemcache => github.com/themihai/gomemcache v0.0.0-20180902122335-24332e2d58ab - github.com/efficientgo/e2e => github.com/saswatamcode/e2e v0.11.2-0.20230119055550-eedac0d0de84 - github.com/vimeo/galaxycache => github.com/thanos-community/galaxycache v0.0.0-20211122094458-3a32041a1f1e // Override due to https://github.com/weaveworks/common/issues/239 diff --git a/go.sum b/go.sum index 91e24e4d99..51081f762f 100644 --- a/go.sum +++ b/go.sum @@ -247,6 +247,8 @@ github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/efficientgo/core v1.0.0-rc.0.0.20221201130417-ba593f67d2a4 h1:rydBwnBoywKQMjWF0z8SriYtQ+uUcaFsxuijMjJr5PI= github.com/efficientgo/core v1.0.0-rc.0.0.20221201130417-ba593f67d2a4/go.mod h1:kQa0V74HNYMfuJH6jiPiwNdpWXl4xd/K4tzlrcvYDQI= +github.com/efficientgo/e2e v0.14.1-0.20230119090947-fa7ceb0197c5 h1:N1fHVcNEPMJNB93sxT6icl5yvoFxa2sp3/1NnVlrAFc= +github.com/efficientgo/e2e v0.14.1-0.20230119090947-fa7ceb0197c5/go.mod h1:plsKU0YHE9uX+7utvr7SiDtVBSHJyEfHRO4UnUgDmts= github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd h1:VaYzzXeUbC5fVheskcKVNOyJMEYD+HgrJNzIAg/mRIM= github.com/efficientgo/tools/extkingpin v0.0.0-20220817170617-6c25e3b627dd/go.mod h1:ZV0utlglOczUWv3ih2AbqPSoLoFzdplUYxwV62eZi6Q= github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0= @@ -838,8 +840,6 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/santhosh-tekuri/jsonschema v1.2.4 h1:hNhW8e7t+H1vgY+1QeEQpveR6D4+OwKPXCfD2aieJis= github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= -github.com/saswatamcode/e2e v0.11.2-0.20230119055550-eedac0d0de84 h1:5Cy6yR46xeniOb/Br0EUYMIffhD+8igRCSLkM/RPC4Y= -github.com/saswatamcode/e2e v0.11.2-0.20230119055550-eedac0d0de84/go.mod h1:plsKU0YHE9uX+7utvr7SiDtVBSHJyEfHRO4UnUgDmts= github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b h1:gQZ0qzfKHQIybLANtM3mBXNUtOfsCFXeTsnBqCsx1KM= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.10 h1:wsfMs0iv+MJiViM37qh5VEKISi3/ZUq2nNKNdqmumAs= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=