Skip to content

Commit 7db1ce3

Browse files
authored
feat: Default port to 8015 if in-process resolver is used. #523 (#524)
Signed-off-by: Simon Schrottner <[email protected]>
1 parent 95ab5d1 commit 7db1ce3

File tree

3 files changed

+55
-11
lines changed

3 files changed

+55
-11
lines changed

providers/flagd/pkg/configuration.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ type ResolverType string
1212

1313
// Naming and defaults must comply with flagd environment variables
1414
const (
15-
defaultMaxCacheSize int = 1000
16-
defaultPort = 8013
17-
defaultMaxEventStreamRetries = 5
18-
defaultTLS bool = false
19-
defaultCache = cache.LRUValue
20-
defaultHost = "localhost"
21-
defaultResolver = rpc
15+
defaultMaxCacheSize int = 1000
16+
defaultRpcPort uint16 = 8013
17+
defaultInProcessPort uint16 = 8015
18+
defaultMaxEventStreamRetries = 5
19+
defaultTLS bool = false
20+
defaultCache = cache.LRUValue
21+
defaultHost = "localhost"
22+
defaultResolver = rpc
2223

2324
rpc ResolverType = "rpc"
2425
inProcess ResolverType = "in-process"
@@ -60,7 +61,6 @@ func newDefaultConfiguration(log logr.Logger) *providerConfiguration {
6061
Host: defaultHost,
6162
log: log,
6263
MaxCacheSize: defaultMaxCacheSize,
63-
Port: defaultPort,
6464
Resolver: defaultResolver,
6565
TLSEnabled: defaultTLS,
6666
}
@@ -77,8 +77,8 @@ func (cfg *providerConfiguration) updateFromEnvVar() {
7777
if err != nil {
7878
cfg.log.Error(err,
7979
fmt.Sprintf(
80-
"invalid env config for %s provided, using default value: %d",
81-
flagdPortEnvironmentVariableName, defaultPort,
80+
"invalid env config for %s provided, using default value: %d or %d depending on resolver",
81+
flagdPortEnvironmentVariableName, defaultRpcPort, defaultInProcessPort,
8282
))
8383
} else {
8484
cfg.Port = uint16(port)

providers/flagd/pkg/provider.go

+8
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ func NewProvider(opts ...ProviderOption) *Provider {
4242
opt(provider)
4343
}
4444

45+
if provider.providerConfiguration.Port == 0 {
46+
if provider.providerConfiguration.Resolver == inProcess {
47+
provider.providerConfiguration.Port = defaultInProcessPort
48+
} else {
49+
provider.providerConfiguration.Port = defaultRpcPort
50+
}
51+
}
52+
4553
cacheService := cache.NewCacheService(
4654
provider.providerConfiguration.CacheType,
4755
provider.providerConfiguration.MaxCacheSize,

providers/flagd/pkg/provider_test.go

+37-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
func TestNewProvider(t *testing.T) {
1212
tests := []struct {
1313
name string
14+
expectedResolver ResolverType
1415
expectPort uint16
1516
expectHost string
1617
expectCacheType cache.Type
@@ -24,7 +25,8 @@ func TestNewProvider(t *testing.T) {
2425
}{
2526
{
2627
name: "default construction",
27-
expectPort: defaultPort,
28+
expectedResolver: rpc,
29+
expectPort: defaultRpcPort,
2830
expectHost: defaultHost,
2931
expectCacheType: defaultCache,
3032
expectCertPath: "",
@@ -36,6 +38,7 @@ func TestNewProvider(t *testing.T) {
3638
},
3739
{
3840
name: "with options",
41+
expectedResolver: inProcess,
3942
expectPort: 9090,
4043
expectHost: "myHost",
4144
expectCacheType: cache.LRUValue,
@@ -46,6 +49,7 @@ func TestNewProvider(t *testing.T) {
4649
expectSocketPath: "/socket",
4750
expectTlsEnabled: true,
4851
options: []ProviderOption{
52+
WithInProcessResolver(),
4953
WithSocketPath("/socket"),
5054
WithOtelInterceptor(true),
5155
WithLRUCache(2500),
@@ -55,6 +59,38 @@ func TestNewProvider(t *testing.T) {
5559
WithPort(9090),
5660
},
5761
},
62+
{
63+
name: "default port handling with in-process resolver",
64+
expectedResolver: inProcess,
65+
expectPort: defaultInProcessPort,
66+
expectHost: defaultHost,
67+
expectCacheType: defaultCache,
68+
expectCertPath: "",
69+
expectMaxRetries: defaultMaxEventStreamRetries,
70+
expectCacheSize: defaultMaxCacheSize,
71+
expectOtelIntercept: false,
72+
expectSocketPath: "",
73+
expectTlsEnabled: false,
74+
options: []ProviderOption{
75+
WithInProcessResolver(),
76+
},
77+
},
78+
{
79+
name: "default port handling with in-process resolver",
80+
expectedResolver: rpc,
81+
expectPort: defaultRpcPort,
82+
expectHost: defaultHost,
83+
expectCacheType: defaultCache,
84+
expectCertPath: "",
85+
expectMaxRetries: defaultMaxEventStreamRetries,
86+
expectCacheSize: defaultMaxCacheSize,
87+
expectOtelIntercept: false,
88+
expectSocketPath: "",
89+
expectTlsEnabled: false,
90+
options: []ProviderOption{
91+
WithRPCResolver(),
92+
},
93+
},
5894
}
5995

6096
for _, test := range tests {

0 commit comments

Comments
 (0)