Skip to content

Commit 1a9c128

Browse files
committed
[Feature] [Platform] ECS Storage
1 parent 44441a5 commit 1a9c128

28 files changed

+1281
-32
lines changed

.golangci.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ linters-settings:
8787
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2
8888
- alias: pbImplStorageV2Shared
8989
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2/shared
90+
- alias: pbImplStorageV2SharedGCS
91+
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2/shared/gcs
9092
- alias: pbImplStorageV2SharedS3
9193
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2/shared/s3
9294
- alias: pbStorageV2

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- (Feature) Extend DebugPackage with Debug files
66
- (Documentation) Shutdown Debug Feature
77
- (Documentation) ManualUpgrade Docs
8+
- (Feature) (Platform) ECS Storage
89

910
## [1.2.50](https://github.com/arangodb/kube-arangodb/tree/1.2.50) (2025-07-04)
1011
- (Feature) (Platform) MetaV1 Integration Service

docs/api/ArangoPlatformStorage.V1Alpha1.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,64 @@ title: ArangoPlatformStorage V1Alpha1
88

99
## Spec
1010

11+
### .spec.backend.gcs.bucketName
12+
13+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/platform/v1alpha1/storage_spec_backend_gcs.go#L35)</sup>
14+
15+
BucketName specifies the name of the bucket
16+
Required
17+
18+
***
19+
20+
### .spec.backend.gcs.bucketPath
21+
22+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/platform/v1alpha1/storage_spec_backend_gcs.go#L38)</sup>
23+
24+
BucketPath specifies the Prefix within the bucket
25+
26+
***
27+
28+
### .spec.backend.gcs.credentialsSecret.checksum
29+
30+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/shared/v1/object.go#L61)</sup>
31+
32+
UID keeps the information about object Checksum
33+
34+
***
35+
36+
### .spec.backend.gcs.credentialsSecret.name
37+
38+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/shared/v1/object.go#L52)</sup>
39+
40+
Name of the object
41+
42+
***
43+
44+
### .spec.backend.gcs.credentialsSecret.namespace
45+
46+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/shared/v1/object.go#L55)</sup>
47+
48+
Namespace of the object. Should default to the namespace of the parent object
49+
50+
***
51+
52+
### .spec.backend.gcs.credentialsSecret.uid
53+
54+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/shared/v1/object.go#L58)</sup>
55+
56+
UID keeps the information about object UID
57+
58+
***
59+
60+
### .spec.backend.gcs.projectID
61+
62+
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/platform/v1alpha1/storage_spec_backend_gcs.go#L32)</sup>
63+
64+
ProjectID specifies the GCP ProjectID
65+
Required
66+
67+
***
68+
1169
### .spec.backend.s3.allowInsecure
1270

1371
Type: `boolean` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/platform/v1alpha1/storage_spec_backend_s3.go#L46)</sup>

docs/cli/arangodb_operator_integration.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ Flags:
8181
--integration.shutdown.v1.internal Defines if Internal access to service shutdown.v1 is enabled (Env: INTEGRATION_SHUTDOWN_V1_INTERNAL) (default true)
8282
--integration.storage.v2 StorageBucket V2 Integration (Env: INTEGRATION_STORAGE_V2)
8383
--integration.storage.v2.external Defines if External access to service storage.v2 is enabled (Env: INTEGRATION_STORAGE_V2_EXTERNAL)
84+
--integration.storage.v2.gcs.bucket.name string Bucket name (Env: INTEGRATION_STORAGE_V2_GCS_BUCKET_NAME)
85+
--integration.storage.v2.gcs.bucket.prefix string Bucket Prefix (Env: INTEGRATION_STORAGE_V2_GCS_BUCKET_PREFIX)
86+
--integration.storage.v2.gcs.project-id string ID of the ECS Project (Env: INTEGRATION_STORAGE_V2_GCS_PROJECT_ID)
87+
--integration.storage.v2.gcs.provider.sa.file string Path to the file with ServiceAccount JSON (Env: INTEGRATION_STORAGE_V2_GCS_PROVIDER_SA_FILE)
88+
--integration.storage.v2.gcs.provider.sa.json string ServiceAccount JSON (Env: INTEGRATION_STORAGE_V2_GCS_PROVIDER_SA_JSON)
89+
--integration.storage.v2.gcs.provider.type string Type of the provided credentials (Env: INTEGRATION_STORAGE_V2_GCS_PROVIDER_TYPE) (default "serviceAccount")
8490
--integration.storage.v2.internal Defines if Internal access to service storage.v2 is enabled (Env: INTEGRATION_STORAGE_V2_INTERNAL) (default true)
8591
--integration.storage.v2.s3.allow-insecure If set to true, the Endpoint certificates won't be checked (Env: INTEGRATION_STORAGE_V2_S3_ALLOW_INSECURE)
8692
--integration.storage.v2.s3.bucket.name string Bucket name (Env: INTEGRATION_STORAGE_V2_S3_BUCKET_NAME)

go.mod

Lines changed: 43 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ require (
3737
github.com/cenkalti/backoff v2.2.1+incompatible
3838
github.com/coreos/go-semver v0.3.1
3939
github.com/dchest/uniuri v1.2.0
40-
github.com/envoyproxy/go-control-plane v0.13.1
4140
github.com/fsnotify/fsnotify v1.7.0
4241
github.com/gin-gonic/gin v1.9.1
4342
github.com/golang/protobuf v1.5.4 // indirect
@@ -57,13 +56,13 @@ require (
5756
github.com/spf13/cobra v1.9.1
5857
github.com/spf13/pflag v1.0.6
5958
github.com/stretchr/testify v1.10.0
60-
golang.org/x/sync v0.12.0
61-
golang.org/x/sys v0.31.0
62-
golang.org/x/text v0.23.0
63-
golang.org/x/time v0.7.0
64-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489
65-
google.golang.org/grpc v1.70.0
66-
google.golang.org/protobuf v1.36.5
59+
golang.org/x/sync v0.14.0
60+
golang.org/x/sys v0.33.0
61+
golang.org/x/text v0.25.0
62+
golang.org/x/time v0.11.0
63+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250512202823-5a2f75b736a9
64+
google.golang.org/grpc v1.72.1
65+
google.golang.org/protobuf v1.36.6
6766
gopkg.in/yaml.v3 v3.0.1
6867
k8s.io/api v0.32.2
6968
k8s.io/apiextensions-apiserver v0.32.2
@@ -74,28 +73,40 @@ require (
7473
)
7574

7675
require (
76+
cloud.google.com/go/storage v1.55.0
7777
github.com/Masterminds/semver/v3 v3.3.0
7878
github.com/arangodb-managed/apis v0.89.1
7979
github.com/arangodb-managed/integration-apis v0.2.1
8080
github.com/aws/aws-sdk-go v1.55.6
8181
github.com/coreos/go-oidc/v3 v3.14.1
82+
github.com/envoyproxy/go-control-plane/envoy v1.32.4
8283
github.com/go-logr/zerologr v1.2.3
8384
github.com/golang-jwt/jwt/v5 v5.2.2
8485
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1
8586
github.com/jedib0t/go-pretty/v6 v6.6.5
8687
github.com/regclient/regclient v0.8.3
87-
golang.org/x/oauth2 v0.28.0
88-
google.golang.org/genproto/googleapis/api v0.0.0-20250204164813-702378808489
88+
golang.org/x/oauth2 v0.30.0
89+
google.golang.org/api v0.235.0
90+
google.golang.org/genproto/googleapis/api v0.0.0-20250512202823-5a2f75b736a9
8991
helm.sh/helm/v3 v3.17.3
9092
k8s.io/klog/v2 v2.130.1
9193
)
9294

9395
require (
94-
cel.dev/expr v0.19.0 // indirect
96+
cel.dev/expr v0.20.0 // indirect
97+
cloud.google.com/go v0.121.1 // indirect
98+
cloud.google.com/go/auth v0.16.1 // indirect
99+
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
100+
cloud.google.com/go/compute/metadata v0.7.0 // indirect
101+
cloud.google.com/go/iam v1.5.2 // indirect
102+
cloud.google.com/go/monitoring v1.24.2 // indirect
95103
dario.cat/mergo v1.0.1 // indirect
96104
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
97105
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
98106
github.com/BurntSushi/toml v1.4.0 // indirect
107+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect
108+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.51.0 // indirect
109+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
99110
github.com/MakeNowJust/heredoc v1.0.0 // indirect
100111
github.com/Masterminds/goutils v1.1.1 // indirect
101112
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
@@ -106,11 +117,10 @@ require (
106117
github.com/blang/semver/v4 v4.0.0 // indirect
107118
github.com/bytedance/sonic v1.9.1 // indirect
108119
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
109-
github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
110120
github.com/cespare/xxhash/v2 v2.3.0 // indirect
111121
github.com/chai2010/gettext-go v1.0.2 // indirect
112122
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
113-
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect
123+
github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 // indirect
114124
github.com/containerd/containerd v1.7.27 // indirect
115125
github.com/containerd/errdefs v0.3.0 // indirect
116126
github.com/containerd/log v0.1.0 // indirect
@@ -127,7 +137,7 @@ require (
127137
github.com/docker/go-metrics v0.0.1 // indirect
128138
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
129139
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
130-
github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect
140+
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
131141
github.com/evanphx/json-patch v5.9.0+incompatible // indirect
132142
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
133143
github.com/fatih/color v1.13.0 // indirect
@@ -152,9 +162,12 @@ require (
152162
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
153163
github.com/google/btree v1.0.1 // indirect
154164
github.com/google/gnostic-models v0.6.8 // indirect
155-
github.com/google/go-cmp v0.6.0 // indirect
165+
github.com/google/go-cmp v0.7.0 // indirect
156166
github.com/google/gofuzz v1.2.0 // indirect
167+
github.com/google/s2a-go v0.1.9 // indirect
157168
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
169+
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
170+
github.com/googleapis/gax-go/v2 v2.14.2 // indirect
158171
github.com/gorilla/mux v1.8.0 // indirect
159172
github.com/gorilla/websocket v1.5.0 // indirect
160173
github.com/gosuri/uitable v0.0.4 // indirect
@@ -207,6 +220,7 @@ require (
207220
github.com/shopspring/decimal v1.4.0 // indirect
208221
github.com/sirupsen/logrus v1.9.3 // indirect
209222
github.com/spf13/cast v1.7.0 // indirect
223+
github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect
210224
github.com/stretchr/objx v0.5.2 // indirect
211225
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
212226
github.com/ugorji/go/codec v1.2.11 // indirect
@@ -216,15 +230,22 @@ require (
216230
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
217231
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
218232
github.com/xlab/treeprint v1.2.0 // indirect
219-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect
220-
go.opentelemetry.io/otel v1.32.0 // indirect
221-
go.opentelemetry.io/otel/metric v1.32.0 // indirect
222-
go.opentelemetry.io/otel/trace v1.32.0 // indirect
233+
github.com/zeebo/errs v1.4.0 // indirect
234+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
235+
go.opentelemetry.io/contrib/detectors/gcp v1.36.0 // indirect
236+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
237+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect
238+
go.opentelemetry.io/otel v1.36.0 // indirect
239+
go.opentelemetry.io/otel/metric v1.36.0 // indirect
240+
go.opentelemetry.io/otel/sdk v1.36.0 // indirect
241+
go.opentelemetry.io/otel/sdk/metric v1.36.0 // indirect
242+
go.opentelemetry.io/otel/trace v1.36.0 // indirect
223243
golang.org/x/arch v0.3.0 // indirect
224-
golang.org/x/crypto v0.36.0 // indirect
225-
golang.org/x/net v0.38.0 // indirect
226-
golang.org/x/term v0.30.0 // indirect
244+
golang.org/x/crypto v0.38.0 // indirect
245+
golang.org/x/net v0.40.0 // indirect
246+
golang.org/x/term v0.32.0 // indirect
227247
golang.org/x/tools v0.27.0 // indirect
248+
google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 // indirect
228249
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
229250
gopkg.in/inf.v0 v0.9.1 // indirect
230251
gopkg.in/yaml.v2 v2.4.0 // indirect

0 commit comments

Comments
 (0)