Skip to content

Commit fd99ee5

Browse files
vspallas-flyrVasileios Pallas
andauthored
fix: Set appProtocol for service resources (#797)
Signed-off-by: Vasileios Pallas <vasileios.pallas@flyr.com> Co-authored-by: Vasileios Pallas <vasileios.pallas@flyr.com>
1 parent 7062150 commit fd99ee5

4 files changed

Lines changed: 44 additions & 14 deletions

File tree

internal/common/flagdproxy/flagdproxy.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1717
"k8s.io/apimachinery/pkg/util/intstr"
1818
"k8s.io/client-go/util/retry"
19+
"k8s.io/utils/ptr"
1920
"sigs.k8s.io/controller-runtime/pkg/client"
2021
)
2122

@@ -179,9 +180,10 @@ func (f *FlagdProxyHandler) newFlagdProxyService(ownerReference *metav1.OwnerRef
179180
},
180181
Ports: []corev1.ServicePort{
181182
{
182-
Name: "flagd-proxy",
183-
Port: int32(f.config.Port),
184-
TargetPort: intstr.FromInt(f.config.Port),
183+
AppProtocol: ptr.To("grpc"),
184+
Name: "flagd-proxy",
185+
Port: int32(f.config.Port),
186+
TargetPort: intstr.FromInt(f.config.Port),
185187
},
186188
},
187189
},

internal/common/flagdproxy/flagdproxy_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,10 @@ var (
158158
},
159159
Ports: []corev1.ServicePort{
160160
{
161-
Name: "flagd-proxy",
162-
Port: int32(testPort),
163-
TargetPort: intstr.FromInt(testPort),
161+
AppProtocol: ptr.To("grpc"),
162+
Name: "flagd-proxy",
163+
Port: int32(testPort),
164+
TargetPort: intstr.FromInt(testPort),
164165
},
165166
},
166167
},

internal/controller/core/flagd/resources/service.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
v1 "k8s.io/api/core/v1"
1111
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1212
"k8s.io/apimachinery/pkg/util/intstr"
13+
"k8s.io/utils/ptr"
1314
"sigs.k8s.io/controller-runtime/pkg/client"
1415
)
1516

@@ -56,29 +57,33 @@ func (r FlagdService) GetResource(_ context.Context, flagd *api.Flagd) (client.O
5657
},
5758
Ports: []v1.ServicePort{
5859
{
59-
Name: "flagd",
60-
Port: int32(r.FlagdConfig.FlagdPort),
60+
AppProtocol: ptr.To("grpc"),
61+
Name: "flagd",
62+
Port: int32(r.FlagdConfig.FlagdPort),
6163
TargetPort: intstr.IntOrString{
6264
IntVal: int32(r.FlagdConfig.FlagdPort),
6365
},
6466
},
6567
{
66-
Name: "ofrep",
67-
Port: int32(r.FlagdConfig.OFREPPort),
68+
AppProtocol: ptr.To("http"),
69+
Name: "ofrep",
70+
Port: int32(r.FlagdConfig.OFREPPort),
6871
TargetPort: intstr.IntOrString{
6972
IntVal: int32(r.FlagdConfig.OFREPPort),
7073
},
7174
},
7275
{
73-
Name: "sync",
74-
Port: int32(r.FlagdConfig.SyncPort),
76+
AppProtocol: ptr.To("grpc"),
77+
Name: "sync",
78+
Port: int32(r.FlagdConfig.SyncPort),
7579
TargetPort: intstr.IntOrString{
7680
IntVal: int32(r.FlagdConfig.SyncPort),
7781
},
7882
},
7983
{
80-
Name: "metrics",
81-
Port: int32(r.FlagdConfig.ManagementPort),
84+
AppProtocol: ptr.To("http"),
85+
Name: "metrics",
86+
Port: int32(r.FlagdConfig.ManagementPort),
8287
TargetPort: intstr.IntOrString{
8388
IntVal: int32(r.FlagdConfig.ManagementPort),
8489
},

internal/controller/core/flagd/resources/service_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/stretchr/testify/require"
1010
v1 "k8s.io/api/core/v1"
1111
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12+
"k8s.io/apimachinery/pkg/util/intstr"
1213
"sigs.k8s.io/controller-runtime/pkg/client"
1314
)
1415

@@ -30,6 +31,27 @@ func TestFlagdService_getService(t *testing.T) {
3031
require.Nil(t, err)
3132
require.NotNil(t, svc)
3233
require.IsType(t, &v1.Service{}, svc)
34+
35+
expectedPorts := map[string]struct {
36+
appProtocol string
37+
port int32
38+
}{
39+
"flagd": {"grpc", 8013},
40+
"ofrep": {"http", 8016},
41+
"sync": {"grpc", 8015},
42+
"metrics": {"http", 8014},
43+
}
44+
45+
ports := svc.(*v1.Service).Spec.Ports
46+
require.Len(t, ports, len(expectedPorts), "unexpected number of ports")
47+
48+
for _, port := range ports {
49+
expected, ok := expectedPorts[port.Name]
50+
require.True(t, ok, "unexpected port: %s", port.Name)
51+
require.Equal(t, expected.appProtocol, *port.AppProtocol)
52+
require.Equal(t, expected.port, port.Port)
53+
require.Equal(t, intstr.FromInt(int(expected.port)), port.TargetPort)
54+
}
3355
}
3456

3557
func Test_areServicesEqual(t *testing.T) {

0 commit comments

Comments
 (0)