Skip to content

Commit 7876070

Browse files
authored
Merge pull request #169 from arangodb/bugfix/remove-service-stickyness
Remove service stickyness
2 parents 1aa8ce3 + 5a3c5c1 commit 7876070

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

pkg/deployment/resources/services.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,15 @@ func (r *Resources) EnsureServices() error {
7878
if single {
7979
role = "single"
8080
}
81-
sessionAffinity := v1.ServiceAffinityClientIP
82-
if err := r.ensureExternalAccessServices(eaServiceName, ns, role, "database", k8sutil.ArangoPort, false, sessionAffinity, spec.ExternalAccess, apiObject, log, kubecli); err != nil {
81+
if err := r.ensureExternalAccessServices(eaServiceName, ns, role, "database", k8sutil.ArangoPort, false, spec.ExternalAccess, apiObject, log, kubecli); err != nil {
8382
return maskAny(err)
8483
}
8584

8685
if spec.Sync.IsEnabled() {
8786
// External (and internal) Sync master service
8887
eaServiceName := k8sutil.CreateSyncMasterClientServiceName(apiObject.GetName())
8988
role := "syncmaster"
90-
sessionAffinity := v1.ServiceAffinityNone
91-
if err := r.ensureExternalAccessServices(eaServiceName, ns, role, "sync", k8sutil.ArangoSyncMasterPort, true, sessionAffinity, spec.Sync.ExternalAccess.ExternalAccessSpec, apiObject, log, kubecli); err != nil {
89+
if err := r.ensureExternalAccessServices(eaServiceName, ns, role, "sync", k8sutil.ArangoSyncMasterPort, true, spec.Sync.ExternalAccess.ExternalAccessSpec, apiObject, log, kubecli); err != nil {
9290
return maskAny(err)
9391
}
9492
status := r.context.GetStatus()
@@ -103,7 +101,7 @@ func (r *Resources) EnsureServices() error {
103101
}
104102

105103
// EnsureServices creates all services needed to service the deployment
106-
func (r *Resources) ensureExternalAccessServices(eaServiceName, ns, svcRole, title string, port int, noneIsClusterIP bool, sessionAffinity v1.ServiceAffinity, spec api.ExternalAccessSpec, apiObject k8sutil.APIObject, log zerolog.Logger, kubecli kubernetes.Interface) error {
104+
func (r *Resources) ensureExternalAccessServices(eaServiceName, ns, svcRole, title string, port int, noneIsClusterIP bool, spec api.ExternalAccessSpec, apiObject k8sutil.APIObject, log zerolog.Logger, kubecli kubernetes.Interface) error {
107105
// Database external access service
108106
createExternalAccessService := false
109107
deleteExternalAccessService := false
@@ -170,10 +168,7 @@ func (r *Resources) ensureExternalAccessServices(eaServiceName, ns, svcRole, tit
170168
// Let's create or update the database external access service
171169
nodePort := spec.GetNodePort()
172170
loadBalancerIP := spec.GetLoadBalancerIP()
173-
if eaServiceType == v1.ServiceTypeLoadBalancer {
174-
sessionAffinity = v1.ServiceAffinityNone
175-
}
176-
_, newlyCreated, err := k8sutil.CreateExternalAccessService(kubecli, eaServiceName, svcRole, apiObject, eaServiceType, port, nodePort, loadBalancerIP, sessionAffinity, apiObject.AsOwner())
171+
_, newlyCreated, err := k8sutil.CreateExternalAccessService(kubecli, eaServiceName, svcRole, apiObject, eaServiceType, port, nodePort, loadBalancerIP, apiObject.AsOwner())
177172
if err != nil {
178173
log.Debug().Err(err).Msgf("Failed to create %s external access service", title)
179174
return maskAny(err)

pkg/util/k8sutil/services.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,8 @@ func CreateHeadlessService(kubecli kubernetes.Interface, deployment metav1.Objec
6868
},
6969
}
7070
publishNotReadyAddresses := false
71-
sessionAffinity := v1.ServiceAffinityNone
7271
serviceType := v1.ServiceTypeClusterIP
73-
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), ClusterIPNone, "", serviceType, ports, "", publishNotReadyAddresses, sessionAffinity, owner)
72+
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), ClusterIPNone, "", serviceType, ports, "", publishNotReadyAddresses, owner)
7473
if err != nil {
7574
return "", false, maskAny(err)
7675
}
@@ -98,9 +97,8 @@ func CreateDatabaseClientService(kubecli kubernetes.Interface, deployment metav1
9897
role = "coordinator"
9998
}
10099
publishNotReadyAddresses := true
101-
sessionAffinity := v1.ServiceAffinityClientIP
102100
serviceType := v1.ServiceTypeClusterIP
103-
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", role, serviceType, ports, "", publishNotReadyAddresses, sessionAffinity, owner)
101+
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", role, serviceType, ports, "", publishNotReadyAddresses, owner)
104102
if err != nil {
105103
return "", false, maskAny(err)
106104
}
@@ -111,7 +109,7 @@ func CreateDatabaseClientService(kubecli kubernetes.Interface, deployment metav1
111109
// If the service already exists, nil is returned.
112110
// If another error occurs, that error is returned.
113111
// The returned bool is true if the service is created, or false when the service already existed.
114-
func CreateExternalAccessService(kubecli kubernetes.Interface, svcName, role string, deployment metav1.Object, serviceType v1.ServiceType, port, nodePort int, loadBalancerIP string, sessionAffinity v1.ServiceAffinity, owner metav1.OwnerReference) (string, bool, error) {
112+
func CreateExternalAccessService(kubecli kubernetes.Interface, svcName, role string, deployment metav1.Object, serviceType v1.ServiceType, port, nodePort int, loadBalancerIP string, owner metav1.OwnerReference) (string, bool, error) {
115113
deploymentName := deployment.GetName()
116114
ports := []v1.ServicePort{
117115
v1.ServicePort{
@@ -122,7 +120,7 @@ func CreateExternalAccessService(kubecli kubernetes.Interface, svcName, role str
122120
},
123121
}
124122
publishNotReadyAddresses := true
125-
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", role, serviceType, ports, loadBalancerIP, publishNotReadyAddresses, sessionAffinity, owner)
123+
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", role, serviceType, ports, loadBalancerIP, publishNotReadyAddresses, owner)
126124
if err != nil {
127125
return "", false, maskAny(err)
128126
}
@@ -134,7 +132,7 @@ func CreateExternalAccessService(kubecli kubernetes.Interface, svcName, role str
134132
// If another error occurs, that error is returned.
135133
// The returned bool is true if the service is created, or false when the service already existed.
136134
func createService(kubecli kubernetes.Interface, svcName, deploymentName, ns, clusterIP, role string, serviceType v1.ServiceType,
137-
ports []v1.ServicePort, loadBalancerIP string, publishNotReadyAddresses bool, sessionAffinity v1.ServiceAffinity, owner metav1.OwnerReference) (bool, error) {
135+
ports []v1.ServicePort, loadBalancerIP string, publishNotReadyAddresses bool, owner metav1.OwnerReference) (bool, error) {
138136
labels := LabelsForDeployment(deploymentName, role)
139137
svc := &v1.Service{
140138
ObjectMeta: metav1.ObjectMeta{
@@ -153,7 +151,6 @@ func createService(kubecli kubernetes.Interface, svcName, deploymentName, ns, cl
153151
Selector: labels,
154152
ClusterIP: clusterIP,
155153
PublishNotReadyAddresses: publishNotReadyAddresses,
156-
SessionAffinity: sessionAffinity,
157154
LoadBalancerIP: loadBalancerIP,
158155
},
159156
}

0 commit comments

Comments
 (0)