Skip to content

Commit 349c176

Browse files
authored
feat(flagd): add support for GCS (#765)
Signed-off-by: Oleg Atamanenko <oleg.atamanenko@gmail.com>
1 parent 20f6f40 commit 349c176

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

api/core/v1beta1/common/common.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ type SyncProviderType string
1111
const (
1212
SyncProviderKubernetes SyncProviderType = "kubernetes"
1313
SyncProviderFilepath SyncProviderType = "file"
14+
SyncProviderGcs SyncProviderType = "gcs"
1415
SyncProviderHttp SyncProviderType = "http"
1516
SyncProviderGrpc SyncProviderType = "grpc"
1617
SyncProviderFlagdProxy SyncProviderType = "flagd-proxy"
@@ -57,6 +58,10 @@ func (s SyncProviderType) IsHttp() bool {
5758
return s == SyncProviderHttp
5859
}
5960

61+
func (s SyncProviderType) IsGcs() bool {
62+
return s == SyncProviderGcs
63+
}
64+
6065
func (s SyncProviderType) IsFilepath() bool {
6166
return s == SyncProviderFilepath
6267
}

api/core/v1beta1/common/common_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,19 @@ func Test_FeatureFlagSource_SyncProvider(t *testing.T) {
1212
f := SyncProviderFilepath
1313
h := SyncProviderHttp
1414
g := SyncProviderGrpc
15+
gcs := SyncProviderGcs
1516

1617
require.True(t, k.IsKubernetes())
1718
require.True(t, f.IsFilepath())
1819
require.True(t, h.IsHttp())
1920
require.True(t, g.IsGrpc())
21+
require.True(t, gcs.IsGcs())
2022

2123
require.False(t, f.IsKubernetes())
2224
require.False(t, h.IsFilepath())
2325
require.False(t, k.IsGrpc())
2426
require.False(t, g.IsHttp())
27+
require.False(t, g.IsGcs())
2528
}
2629

2730
func Test_FLagSourceConfiguration_EnvVarKey(t *testing.T) {

internal/common/flagdinjector/flagdinjector.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,8 @@ func (fi *FlagdContainerInjector) newSourceConfig(ctx context.Context, source ap
230230
sourceCfg, err = fi.toFilepathProviderConfig(ctx, objectMeta, podSpec, sidecar, source)
231231
case source.Provider.IsHttp():
232232
sourceCfg = fi.toHttpProviderConfig(source)
233+
case source.Provider.IsGcs():
234+
sourceCfg = fi.toGcsConfig(source)
233235
case source.Provider.IsGrpc():
234236
sourceCfg = fi.toGrpcProviderConfig(source)
235237
case source.Provider.IsFlagdProxy():
@@ -306,6 +308,14 @@ func (fi *FlagdContainerInjector) toHttpProviderConfig(source api.Source) types.
306308
}
307309
}
308310

311+
func (fi *FlagdContainerInjector) toGcsConfig(source api.Source) types.SourceConfig {
312+
return types.SourceConfig{
313+
URI: source.Source,
314+
Provider: string(apicommon.SyncProviderGcs),
315+
Interval: source.Interval,
316+
}
317+
}
318+
309319
func (fi *FlagdContainerInjector) toGrpcProviderConfig(source api.Source) types.SourceConfig {
310320
return types.SourceConfig{
311321
URI: source.Source,

0 commit comments

Comments
 (0)