Skip to content

Commit

Permalink
feat: Default port to 8015 if in-process resolver is used. #523 (#524)
Browse files Browse the repository at this point in the history
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
  • Loading branch information
aepfli authored Jun 14, 2024
1 parent 95ab5d1 commit 7db1ce3
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 11 deletions.
20 changes: 10 additions & 10 deletions providers/flagd/pkg/configuration.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ type ResolverType string

// Naming and defaults must comply with flagd environment variables
const (
defaultMaxCacheSize int = 1000
defaultPort = 8013
defaultMaxEventStreamRetries = 5
defaultTLS bool = false
defaultCache = cache.LRUValue
defaultHost = "localhost"
defaultResolver = rpc
defaultMaxCacheSize int = 1000
defaultRpcPort uint16 = 8013
defaultInProcessPort uint16 = 8015
defaultMaxEventStreamRetries = 5
defaultTLS bool = false
defaultCache = cache.LRUValue
defaultHost = "localhost"
defaultResolver = rpc

rpc ResolverType = "rpc"
inProcess ResolverType = "in-process"
Expand Down Expand Up @@ -60,7 +61,6 @@ func newDefaultConfiguration(log logr.Logger) *providerConfiguration {
Host: defaultHost,
log: log,
MaxCacheSize: defaultMaxCacheSize,
Port: defaultPort,
Resolver: defaultResolver,
TLSEnabled: defaultTLS,
}
Expand All @@ -77,8 +77,8 @@ func (cfg *providerConfiguration) updateFromEnvVar() {
if err != nil {
cfg.log.Error(err,
fmt.Sprintf(
"invalid env config for %s provided, using default value: %d",
flagdPortEnvironmentVariableName, defaultPort,
"invalid env config for %s provided, using default value: %d or %d depending on resolver",
flagdPortEnvironmentVariableName, defaultRpcPort, defaultInProcessPort,
))
} else {
cfg.Port = uint16(port)
Expand Down
8 changes: 8 additions & 0 deletions providers/flagd/pkg/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,14 @@ func NewProvider(opts ...ProviderOption) *Provider {
opt(provider)
}

if provider.providerConfiguration.Port == 0 {
if provider.providerConfiguration.Resolver == inProcess {
provider.providerConfiguration.Port = defaultInProcessPort
} else {
provider.providerConfiguration.Port = defaultRpcPort
}
}

cacheService := cache.NewCacheService(
provider.providerConfiguration.CacheType,
provider.providerConfiguration.MaxCacheSize,
Expand Down
38 changes: 37 additions & 1 deletion providers/flagd/pkg/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
func TestNewProvider(t *testing.T) {
tests := []struct {
name string
expectedResolver ResolverType
expectPort uint16
expectHost string
expectCacheType cache.Type
Expand All @@ -24,7 +25,8 @@ func TestNewProvider(t *testing.T) {
}{
{
name: "default construction",
expectPort: defaultPort,
expectedResolver: rpc,
expectPort: defaultRpcPort,
expectHost: defaultHost,
expectCacheType: defaultCache,
expectCertPath: "",
Expand All @@ -36,6 +38,7 @@ func TestNewProvider(t *testing.T) {
},
{
name: "with options",
expectedResolver: inProcess,
expectPort: 9090,
expectHost: "myHost",
expectCacheType: cache.LRUValue,
Expand All @@ -46,6 +49,7 @@ func TestNewProvider(t *testing.T) {
expectSocketPath: "/socket",
expectTlsEnabled: true,
options: []ProviderOption{
WithInProcessResolver(),
WithSocketPath("/socket"),
WithOtelInterceptor(true),
WithLRUCache(2500),
Expand All @@ -55,6 +59,38 @@ func TestNewProvider(t *testing.T) {
WithPort(9090),
},
},
{
name: "default port handling with in-process resolver",
expectedResolver: inProcess,
expectPort: defaultInProcessPort,
expectHost: defaultHost,
expectCacheType: defaultCache,
expectCertPath: "",
expectMaxRetries: defaultMaxEventStreamRetries,
expectCacheSize: defaultMaxCacheSize,
expectOtelIntercept: false,
expectSocketPath: "",
expectTlsEnabled: false,
options: []ProviderOption{
WithInProcessResolver(),
},
},
{
name: "default port handling with in-process resolver",
expectedResolver: rpc,
expectPort: defaultRpcPort,
expectHost: defaultHost,
expectCacheType: defaultCache,
expectCertPath: "",
expectMaxRetries: defaultMaxEventStreamRetries,
expectCacheSize: defaultMaxCacheSize,
expectOtelIntercept: false,
expectSocketPath: "",
expectTlsEnabled: false,
options: []ProviderOption{
WithRPCResolver(),
},
},
}

for _, test := range tests {
Expand Down

0 comments on commit 7db1ce3

Please sign in to comment.