Skip to content

Commit d67a69d

Browse files
author
thanos
committed
Implemented AliYun OSS for objstore support
1 parent b516793 commit d67a69d

File tree

13 files changed

+453
-103
lines changed

13 files changed

+453
-103
lines changed

cmd/thanos/flags.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ func regCommonObjStoreFlags(cmd *kingpin.CmdClause, suffix string, required bool
114114
}
115115
}
116116

117-
118117
func regCommonTracingFlags(app *kingpin.Application) *pathOrContent {
119118
fileFlagName := fmt.Sprintf("tracing.config-file")
120119
contentFlagName := fmt.Sprintf("tracing.config")

go.mod

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ require (
44
cloud.google.com/go v0.34.0
55
github.com/Azure/azure-storage-blob-go v0.0.0-20181022225951-5152f14ace1c
66
github.com/NYTimes/gziphandler v1.1.1
7+
github.com/aliyun/aliyun-oss-go-sdk v1.9.8
78
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da
9+
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
810
github.com/cespare/xxhash v1.1.0
911
github.com/fatih/structtag v1.0.0
1012
github.com/fortytw2/leaktest v1.3.0
@@ -21,7 +23,7 @@ require (
2123
github.com/hashicorp/golang-lru v0.5.1
2224
github.com/leanovate/gopter v0.2.4
2325
github.com/lovoo/gcloud-opentracing v0.3.0
24-
github.com/miekg/dns v1.1.13
26+
github.com/miekg/dns v1.1.8
2527
github.com/minio/minio-go/v6 v6.0.27-0.20190529152532-de69c0e465ed
2628
github.com/mozillazg/go-cos v0.12.0
2729
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223
@@ -34,19 +36,50 @@ require (
3436
github.com/pkg/errors v0.8.1
3537
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829
3638
github.com/prometheus/common v0.4.0
37-
github.com/prometheus/prometheus v2.9.2+incompatible
39+
github.com/prometheus/prometheus v0.0.0-20190424153033-d3245f150225 //+incompatible
3840
github.com/prometheus/tsdb v0.8.0
3941
github.com/uber-go/atomic v1.4.0 // indirect
4042
github.com/uber/jaeger-client-go v2.16.0+incompatible
4143
github.com/uber/jaeger-lib v2.0.0+incompatible
4244
go.uber.org/atomic v1.4.0 // indirect
4345
golang.org/x/net v0.0.0-20190522155817-f3200d17e092
4446
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421
45-
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6
46-
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2
47+
golang.org/x/sync v0.0.0-20190423024810-112230192c58
48+
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db
4749
google.golang.org/api v0.3.2
4850
google.golang.org/grpc v1.19.1
4951
gopkg.in/alecthomas/kingpin.v2 v2.2.6
5052
gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect
5153
gopkg.in/yaml.v2 v2.2.2
5254
)
55+
56+
replace (
57+
cloud.google.com/go => github.com/googleapis/google-cloud-go v0.34.0
58+
golang.org/x/crypto => github.com/golang/crypto v0.0.0-20190510104115-cbcb75029529
59+
golang.org/x/exp => github.com/golang/exp v0.0.0-20190510132918-efd6b22b2522
60+
golang.org/x/image => github.com/golang/image v0.0.0-20190507092727-e4e5bf290fec
61+
golang.org/x/lint => github.com/golang/lint v0.0.0-20190409202823-959b441ac422
62+
golang.org/x/mobile => github.com/golang/mobile v0.0.0-20190509164839-32b2708ab171
63+
golang.org/x/net => github.com/golang/net v0.0.0-20190509222800-a4d6f7feada5
64+
golang.org/x/oauth2 => github.com/golang/oauth2 v0.0.0-20190402181905-9f3314589c9a
65+
golang.org/x/sync => github.com/golang/sync v0.0.0-20190423024810-112230192c58
66+
golang.org/x/sys => github.com/golang/sys v0.0.0-20190509141414-a5b02f93d862
67+
golang.org/x/text => github.com/golang/text v0.3.2
68+
golang.org/x/time => github.com/golang/time v0.0.0-20190308202827-9d24e82272b4
69+
golang.org/x/tools => github.com/golang/tools v0.0.0-20190511041617-99f201b6807e
70+
google.golang.org/api => github.com/google/google-api-go-client v0.5.0
71+
google.golang.org/appengine => github.com/golang/appengine v1.5.0
72+
google.golang.org/genproto => github.com/google/go-genproto v0.0.0-20190307195333-5fe7a883aa19
73+
google.golang.org/grpc => github.com/grpc/grpc-go v1.20.1
74+
gopkg.in/yaml.v2 => github.com/go-yaml/yaml v2.1.0+incompatible
75+
k8s.io/api => github.com/kubernetes/api v0.0.0-20190512063542-eae0ddcf85ba
76+
k8s.io/apimachinery => github.com/kubernetes/apimachinery v0.0.0-20190511063452-5b67e417bf61
77+
k8s.io/client-go => github.com/kubernetes/client-go v11.0.0+incompatible
78+
k8s.io/gengo => github.com/kubernetes/gengo v0.0.0-20190327210449-e17681d19d3a
79+
k8s.io/klog => github.com/kubernetes/klog v0.3.0
80+
k8s.io/kube-openapi => github.com/kubernetes/kube-openapi v0.0.0-20190510232812-a01b7d5d6c22
81+
labix.org/v2/mgo => gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce
82+
launchpad.net/gocheck => github.com/adjust/gocheck v0.0.0-20131111155431-fbc315b36e0e
83+
sigs.k8s.io/structured-merge-diff => github.com/kubernetes-sigs/structured-merge-diff v0.0.0-20190426204423-ea680f03cc65
84+
sigs.k8s.io/yaml => github.com/kubernetes-sigs/yaml v1.1.0
85+
)

go.sum

Lines changed: 84 additions & 91 deletions
Large diffs are not rendered by default.

pkg/objstore/client/factory.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/improbable-eng/thanos/pkg/objstore/azure"
1212
"github.com/improbable-eng/thanos/pkg/objstore/cos"
1313
"github.com/improbable-eng/thanos/pkg/objstore/gcs"
14+
"github.com/improbable-eng/thanos/pkg/objstore/oss"
1415
"github.com/improbable-eng/thanos/pkg/objstore/s3"
1516
"github.com/improbable-eng/thanos/pkg/objstore/swift"
1617
"github.com/pkg/errors"
@@ -26,6 +27,7 @@ const (
2627
AZURE ObjProvider = "AZURE"
2728
SWIFT ObjProvider = "SWIFT"
2829
COS ObjProvider = "COS"
30+
OSS ObjProvider = "OSS"
2931
)
3032

3133
type BucketConfig struct {
@@ -59,6 +61,8 @@ func NewBucket(logger log.Logger, confContentYaml []byte, reg prometheus.Registe
5961
bucket, err = swift.NewContainer(logger, config)
6062
case string(COS):
6163
bucket, err = cos.NewBucket(logger, config, component)
64+
case string(OSS):
65+
bucket, err = oss.NewBucket(logger, config, component)
6266
default:
6367
return nil, errors.Errorf("bucket with type %s is not supported", bucketConf.Type)
6468
}

pkg/objstore/objtesting/foreach.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/improbable-eng/thanos/pkg/objstore/cos"
1212
"github.com/improbable-eng/thanos/pkg/objstore/gcs"
1313
"github.com/improbable-eng/thanos/pkg/objstore/inmem"
14+
"github.com/improbable-eng/thanos/pkg/objstore/oss"
1415
"github.com/improbable-eng/thanos/pkg/objstore/s3"
1516
"github.com/improbable-eng/thanos/pkg/objstore/swift"
1617
"github.com/improbable-eng/thanos/pkg/testutil"
@@ -117,4 +118,20 @@ func ForeachStore(t *testing.T, testFn func(t testing.TB, bkt objstore.Bucket))
117118
} else {
118119
t.Log("THANOS_SKIP_TENCENT_COS_TESTS envvar present. Skipping test against Tencent COS.")
119120
}
121+
122+
// Optional OSS.
123+
if _, ok := os.LookupEnv("THANOS_SKIP_ALIYUN_OSS_TESTS"); !ok {
124+
bkt, closeFn, err := oss.NewTestBucket(t, "e2e-test")
125+
testutil.Ok(t, err)
126+
127+
ok := t.Run("AliYun oss", func(t *testing.T) {
128+
testFn(t, bkt)
129+
})
130+
closeFn()
131+
if !ok {
132+
return
133+
}
134+
} else {
135+
t.Log("THANOS_SKIP_ALIYUN_OSS_TESTS envvar present. Skipping test against AliYun OSS.")
136+
}
120137
}

0 commit comments

Comments
 (0)