Skip to content

Commit

Permalink
fix: include parameters with default values to envVars (#648)
Browse files Browse the repository at this point in the history
Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
  • Loading branch information
odubajDT and toddbaert authored May 29, 2024
1 parent e627f11 commit 4f0477c
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 92 deletions.
55 changes: 24 additions & 31 deletions apis/core/v1beta1/featureflagsource_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,46 +214,39 @@ func (fc *FeatureFlagSourceSpec) ToEnvVars() []corev1.EnvVar {
})
}

if fc.ManagementPort != common.DefaultManagementPort {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.ManagementPortEnvVar),
Value: fmt.Sprintf("%d", fc.ManagementPort),
})
}

if fc.Port != common.DefaultRPCPort {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.PortEnvVar),
Value: fmt.Sprintf("%d", fc.Port),
})
}
// default values are always included in the envVars
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.ManagementPortEnvVar),
Value: fmt.Sprintf("%d", fc.ManagementPort),
})

if fc.Evaluator != common.DefaultEvaluator {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.EvaluatorEnvVar),
Value: fc.Evaluator,
})
}
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.PortEnvVar),
Value: fmt.Sprintf("%d", fc.Port),
})

if fc.SocketPath != "" {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.SocketPathEnvVar),
Value: fc.SocketPath,
})
}
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.EvaluatorEnvVar),
Value: fc.Evaluator,
})

if fc.LogFormat != common.DefaultLogFormat {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.LogFormatEnvVar),
Value: fc.LogFormat,
})
}
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.LogFormatEnvVar),
Value: fc.LogFormat,
})

// sets the FLAGD_RESOLVER var to "rpc" to configure the provider for RPC evaluation mode
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.ResolverEnvVar),
Value: common.RPCResolverType,
})

if fc.SocketPath != "" {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.SocketPathEnvVar),
Value: fc.SocketPath,
})
}

return envs
}
8 changes: 4 additions & 4 deletions apis/core/v1beta1/featureflagsource_types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,10 +210,6 @@ func Test_FLagSourceConfiguration_ToEnvVars(t *testing.T) {
Name: "PRE_EVALUATOR",
Value: "evaluator",
},
{
Name: "PRE_SOCKET_PATH",
Value: "socket-path",
},
{
Name: "PRE_LOG_FORMAT",
Value: "log",
Expand All @@ -222,6 +218,10 @@ func Test_FLagSourceConfiguration_ToEnvVars(t *testing.T) {
Name: "PRE_RESOLVER",
Value: "rpc",
},
{
Name: "PRE_SOCKET_PATH",
Value: "socket-path",
},
}
require.Equal(t, expected, ff.Spec.ToEnvVars())
}
67 changes: 29 additions & 38 deletions apis/core/v1beta1/inprocessconfiguration_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,26 +152,37 @@ func (fc *InProcessConfigurationSpec) ToEnvVars() []corev1.EnvVar {
})
}

if fc.Host != common.DefaultHost {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.HostEnvVar),
Value: fc.Host,
})
}
// default values are always included in the envVars
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.HostEnvVar),
Value: fc.Host,
})

if fc.Port != common.DefaultInProcessPort {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.PortEnvVar),
Value: fmt.Sprintf("%d", fc.Port),
})
}
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.PortEnvVar),
Value: fmt.Sprintf("%d", fc.Port),
})

if fc.TLS != common.DefaultTLS {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.TLSEnvVar),
Value: fmt.Sprintf("%t", fc.TLS),
})
}
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.TLSEnvVar),
Value: fmt.Sprintf("%t", fc.TLS),
})

envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.CacheEnvVar),
Value: fc.Cache,
})

envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.CacheMaxSizeEnvVar),
Value: fmt.Sprintf("%d", fc.CacheMaxSize),
})

// sets the FLAGD_RESOLVER var to "in-process" to configure the provider for in-process evaluation mode
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.ResolverEnvVar),
Value: common.InProcessResolverType,
})

if fc.SocketPath != "" {
envs = append(envs, corev1.EnvVar{
Expand All @@ -194,25 +205,5 @@ func (fc *InProcessConfigurationSpec) ToEnvVars() []corev1.EnvVar {
})
}

if fc.Cache != common.DefaultCache {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.CacheEnvVar),
Value: fc.Cache,
})
}

if fc.CacheMaxSize != int(common.DefaultCacheMaxSize) {
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.CacheMaxSizeEnvVar),
Value: fmt.Sprintf("%d", fc.CacheMaxSize),
})
}

// sets the FLAGD_RESOLVER var to "in-process" to configure the provider for in-process evaluation mode
envs = append(envs, corev1.EnvVar{
Name: common.EnvVarKey(fc.EnvVarPrefix, common.ResolverEnvVar),
Value: common.InProcessResolverType,
})

return envs
}
24 changes: 12 additions & 12 deletions apis/core/v1beta1/inprocessconfiguration_types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,18 +149,6 @@ func Test_InProcessConfiguration_ToEnvVars(t *testing.T) {
Name: "PRE_TLS",
Value: "true",
},
{
Name: "PRE_SOCKET_PATH",
Value: "socket-path",
},
{
Name: "PRE_OFFLINE_FLAG_SOURCE_PATH",
Value: "path1",
},
{
Name: "PRE_SOURCE_SELECTOR",
Value: "selector",
},
{
Name: "PRE_CACHE",
Value: "cache",
Expand All @@ -173,6 +161,18 @@ func Test_InProcessConfiguration_ToEnvVars(t *testing.T) {
Name: "PRE_RESOLVER",
Value: "in-process",
},
{
Name: "PRE_SOCKET_PATH",
Value: "socket-path",
},
{
Name: "PRE_OFFLINE_FLAG_SOURCE_PATH",
Value: "path1",
},
{
Name: "PRE_SOURCE_SELECTOR",
Value: "selector",
},
}
require.Equal(t, expected, ff.Spec.ToEnvVars())
}
16 changes: 16 additions & 0 deletions common/flagdinjector/flagdinjector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -800,6 +800,14 @@ func getExpectedPod(namespace string) v1.Pod {
Name: "flagd_my-env-var",
Value: "my-value",
},
{
Name: "flagd_MANAGEMENT_PORT",
Value: "8014",
},
{
Name: "flagd_PORT",
Value: "8013",
},
{
Name: "flagd_EVALUATOR",
Value: "",
Expand Down Expand Up @@ -829,6 +837,14 @@ func getExpectedPod(namespace string) v1.Pod {
Name: "flagd_my-env-var",
Value: "my-value",
},
{
Name: "flagd_MANAGEMENT_PORT",
Value: "8014",
},
{
Name: "flagd_PORT",
Value: "8013",
},
{
Name: "flagd_EVALUATOR",
Value: "",
Expand Down
16 changes: 10 additions & 6 deletions test/e2e/chainsaw/in-process/00-assert.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,17 @@ spec:
- name: my-second-prefix_HOST
value: my-host
- name: my-second-prefix_PORT
value: "2424"
value: "8015"
- name: my-second-prefix_TLS
value: "true"
- name: my-second-prefix_OFFLINE_FLAG_SOURCE_PATH
value: my-path
- name: my-second-prefix_CACHE
value: "lru"
- name: my-second-prefix_MAX_CACHE_SIZE
value: "11"
- name: my-second-prefix_RESOLVER
value: in-process
- name: my-second-prefix_OFFLINE_FLAG_SOURCE_PATH
value: my-path
- name: open-feature-e2e-test2
image: busybox:1.36.1
env:
Expand All @@ -36,12 +38,14 @@ spec:
- name: my-second-prefix_HOST
value: my-host
- name: my-second-prefix_PORT
value: "2424"
value: "8015"
- name: my-second-prefix_TLS
value: "true"
- name: my-second-prefix_OFFLINE_FLAG_SOURCE_PATH
value: my-path
- name: my-second-prefix_CACHE
value: "lru"
- name: my-second-prefix_MAX_CACHE_SIZE
value: "11"
- name: my-second-prefix_RESOLVER
value: in-process
- name: my-second-prefix_OFFLINE_FLAG_SOURCE_PATH
value: my-path
1 change: 0 additions & 1 deletion test/e2e/chainsaw/in-process/00-install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ kind: InProcessConfiguration
metadata:
name: source-configuration
spec:
port: 2424
tls: true
offlineFlagSourcePath: "my-path"
cacheMaxSize: 11
Expand Down

0 comments on commit 4f0477c

Please sign in to comment.