From 12fdeb66bbe03f94a45986d420cf17b130cb6391 Mon Sep 17 00:00:00 2001 From: Ben Ye Date: Mon, 30 Jan 2023 02:36:05 -0800 Subject: [PATCH] Cut 0.30.2 (#6081) * tracing: fixed panic because of nil sampler (#6066) * fixed panic because of nil sampler Signed-off-by: Vasiliy Rumyantsev <4119114+xBazilio@users.noreply.github.com> * added CHANGELOG entry Signed-off-by: Vasiliy Rumyantsev <4119114+xBazilio@users.noreply.github.com> Signed-off-by: Vasiliy Rumyantsev <4119114+xBazilio@users.noreply.github.com> * bump version to 0.30.2 Signed-off-by: Ben Ye * Updates busybox SHA (#6046) Signed-off-by: GitHub Signed-off-by: GitHub Co-authored-by: yeya24 * Use `e2edb.NewMinio` to disable SSE-S3 in e2e tests (#6055) * Use e2edb.NewMinio to disable SSE Signed-off-by: Saswata Mukherjee * Use temp fork for TLS Signed-off-by: Saswata Mukherjee * Fix broken rules api fanout test Signed-off-by: Saswata Mukherjee * Fix broken query compatibility test Signed-off-by: Saswata Mukherjee * Remove fork Signed-off-by: Saswata Mukherjee Signed-off-by: Saswata Mukherjee --------- Signed-off-by: Vasiliy Rumyantsev <4119114+xBazilio@users.noreply.github.com> Signed-off-by: Ben Ye Signed-off-by: GitHub Signed-off-by: Saswata Mukherjee Co-authored-by: Vasiliy Rumyantsev <4119114+xBazilio@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: yeya24 Co-authored-by: Saswata Mukherjee --- .busybox-versions | 10 +-- CHANGELOG.md | 6 ++ VERSION | 2 +- go.mod | 2 +- go.sum | 4 +- pkg/tracing/jaeger/config_yaml.go | 23 +++--- test/e2e/compact_test.go | 7 +- test/e2e/e2ethanos/services.go | 129 +----------------------------- test/e2e/info_api_test.go | 5 +- test/e2e/query_test.go | 14 ++-- test/e2e/rules_api_test.go | 8 +- test/e2e/store_gateway_test.go | 33 ++++---- test/e2e/tools_bucket_web_test.go | 19 ++--- 13 files changed, 74 insertions(+), 188 deletions(-) diff --git a/.busybox-versions b/.busybox-versions index 323843ccca..26710ea84d 100644 --- a/.busybox-versions +++ b/.busybox-versions @@ -1,6 +1,6 @@ # Auto generated by busybox-updater.sh. DO NOT EDIT -amd64=21ab7a8218a3eded24d4f86d50cd2b8917e8d4c33be731eeb97e0e7568b52f82 -arm64=bfba906739665ef14b021ee7d421275bcab47af8025a61c9b220e635c7b9c810 -arm=16f4b2b8e017d87963d1f8daa331badcf0316b4adc7a8f8f8ee5c59ea32208f2 -ppc64le=7cc6a566a2b427a724fee63403a30a571bd73c4e9e05a8e84c10d75debd57e9d -s390x=df395ffb2bd9086be276a4eba37be1edac468097afa7aa875807dc65a561e7a7 +amd64=e6cbef04eb81ffc90238a69e5b82af7e21ac5654ed6db0fc8bfe0250cea2b6fc +arm64=97989df9593527c9360ada8bcda4144795a31629792b487317b49da1d2b9816d +arm=609c4b635550f51f103912dac4bf7ce66df444380278cd0592e9d01938ea8632 +ppc64le=0fb57914d52f70c5d8095bed79107acf0363a4f1404268a28eecefa8cb5eef78 +s390x=dbe837ced07bd54874578ab39cd80c45f15666d0698c0f5e3ab8d37fff5c45f7 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4efe946c78..9cf7485d58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,12 @@ We use *breaking :warning:* to mark changes that are not backward compatible (re ## Unreleased +## [v0.30.2](https://github.com/thanos-io/thanos/tree/release-0.30) - 28.01.2023 + +### Fixed + +- [#6066](https://github.com/thanos-io/thanos/pull/6066) Tracing: fixed panic because of nil sampler + ## [v0.30.1](https://github.com/thanos-io/thanos/tree/release-0.30) - 4.01.2023 ### Fixed diff --git a/VERSION b/VERSION index 1a44cad74d..0f72177373 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.30.1 +0.30.2 diff --git a/go.mod b/go.mod index d7c22ef1ef..67196ebfc4 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.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 diff --git a/go.sum b/go.sum index a5b8ca3f21..3076d41610 100644 --- a/go.sum +++ b/go.sum @@ -255,8 +255,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.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= diff --git a/pkg/tracing/jaeger/config_yaml.go b/pkg/tracing/jaeger/config_yaml.go index 71009070b3..6bde1950ce 100644 --- a/pkg/tracing/jaeger/config_yaml.go +++ b/pkg/tracing/jaeger/config_yaml.go @@ -129,7 +129,10 @@ func getSampler(config Config) tracesdk.Sampler { case "remote": remoteOptions := getRemoteOptions(config) sampler = jaegerremote.New(config.ServiceName, remoteOptions...) + // Fallback always to default (rate limiting). case "ratelimiting": + fallthrough + default: // The same config options are applicable to both remote and rate-limiting samplers. remoteOptions := getRemoteOptions(config) sampler = jaegerremote.New(config.ServiceName, remoteOptions...) @@ -137,17 +140,17 @@ func getSampler(config Config) tracesdk.Sampler { if ok { sampler.Update(config.SamplerParam) } - default: - var root tracesdk.Sampler - var parentOptions []tracesdk.ParentBasedSamplerOption - if config.SamplerParentConfig.LocalParentSampled { - parentOptions = append(parentOptions, tracesdk.WithLocalParentSampled(root)) - } - if config.SamplerParentConfig.RemoteParentSampled { - parentOptions = append(parentOptions, tracesdk.WithRemoteParentSampled(root)) - } - sampler = tracesdk.ParentBased(root, parentOptions...) } + + var parentOptions []tracesdk.ParentBasedSamplerOption + if config.SamplerParentConfig.LocalParentSampled { + parentOptions = append(parentOptions, tracesdk.WithLocalParentSampled(sampler)) + } + if config.SamplerParentConfig.RemoteParentSampled { + parentOptions = append(parentOptions, tracesdk.WithRemoteParentSampled(sampler)) + } + sampler = tracesdk.ParentBased(sampler, parentOptions...) + return sampler } diff --git a/test/e2e/compact_test.go b/test/e2e/compact_test.go index 064a711f9c..c618bec5d2 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, e2edb.WithMinioTLS()) 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..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" @@ -31,9 +25,9 @@ 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/objstore/exthttp" "github.com/thanos-io/thanos/pkg/alert" "github.com/thanos-io/thanos/pkg/httpconfig" @@ -945,57 +939,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}). @@ -1061,76 +1004,6 @@ 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{ diff --git a/test/e2e/info_api_test.go b/test/e2e/info_api_test.go index c7084cbbc2..aa546feb0e 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, e2edb.WithMinioTLS()) 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..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", @@ -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, e2edb.WithMinioTLS()) 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, e2edb.WithMinioTLS()) 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/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{ diff --git a/test/e2e/store_gateway_test.go b/test/e2e/store_gateway_test.go index cfad2ba0f1..9a6aaa0b3f 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, e2edb.WithMinioTLS()) 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, e2edb.WithMinioTLS()) 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, e2edb.WithMinioTLS()) 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, e2edb.WithMinioTLS()) 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..08eeb6cac8 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, e2edb.WithMinioTLS()) 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, e2edb.WithMinioTLS()) 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, e2edb.WithMinioTLS()) 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, e2edb.WithMinioTLS()) 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,