Skip to content

Commit 852778c

Browse files
committed
BUG/MINOR: Fix configuration of backend model
Setting the backend mode should be done before processing annotations because some of them depend on the backend mode.
1 parent 35f2e5c commit 852778c

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

controller/service/service.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ import (
3232

3333
var logger = utils.GetLogger()
3434

35+
const cookieKey = "ohph7OoGhong"
36+
3537
type Service struct {
3638
path *store.IngressPath
3739
resource *store.Service
@@ -139,25 +141,16 @@ func (s *Service) HandleBackend(client api.HAProxyClient, store store.K8s) (relo
139141
}
140142

141143
// getBackendModel checks for a corresponding custom resource before falling back to annoations
142-
func (s *Service) getBackendModel(store store.K8s) (*models.Backend, error) {
143-
var backend *models.Backend
144-
var err error
145-
var cookieKey = "ohph7OoGhong"
146-
crInuse := true
144+
func (s *Service) getBackendModel(store store.K8s) (backend *models.Backend, err error) {
145+
var crInUse = true
146+
// get/create backend Model
147147
backend, err = annotations.ModelBackend("cr-backend", s.resource.Namespace, store, s.annotations...)
148148
logger.Warning(err)
149149
if backend == nil {
150150
backend = &models.Backend{DefaultServer: &models.DefaultServer{}}
151-
crInuse = false
152-
}
153-
if !crInuse {
154-
for _, a := range annotations.Backend(backend, store, s.certs) {
155-
err = a.Process(store, s.annotations...)
156-
if err != nil {
157-
logger.Errorf("service '%s/%s': annotation '%s': %s", s.resource.Namespace, s.resource.Name, a.GetName(), err)
158-
}
159-
}
151+
crInUse = false
160152
}
153+
// configure backend model
161154
if s.modeTCP {
162155
backend.Mode = "tcp"
163156
} else {
@@ -169,6 +162,14 @@ func (s *Service) getBackendModel(store store.K8s) (*models.Backend, error) {
169162
if s.resource.DNS != "" {
170163
backend.DefaultServer = &models.DefaultServer{InitAddr: "last,libc,none"}
171164
}
165+
if !crInUse {
166+
for _, a := range annotations.Backend(backend, store, s.certs) {
167+
err = a.Process(store, s.annotations...)
168+
if err != nil {
169+
logger.Errorf("service '%s/%s': annotation '%s': %s", s.resource.Namespace, s.resource.Name, a.GetName(), err)
170+
}
171+
}
172+
}
172173
if backend.Cookie != nil && backend.Cookie.Dynamic && backend.DynamicCookieKey == "" {
173174
backend.DynamicCookieKey = cookieKey
174175
}

0 commit comments

Comments
 (0)