Skip to content

Commit e7c33d8

Browse files
committed
REORG/MEDIUM: Make controller fields private
1 parent 59417d6 commit e7c33d8

File tree

7 files changed

+134
-132
lines changed

7 files changed

+134
-132
lines changed

main.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
//nolint:gosec
2525
_ "net/http/pprof"
2626

27-
"github.com/google/renameio"
2827
"github.com/jessevdk/go-flags"
2928

3029
c "github.com/haproxytech/kubernetes-ingress/pkg/controller"
@@ -81,13 +80,7 @@ func main() {
8180
s.NamespacesAccess.Blacklist[namespace] = struct{}{}
8281
}
8382
controller := c.NewBuilder().WithStore(s).WithArgs(osArgs).Build()
84-
cfg := controller.Cfg
85-
err = renameio.WriteFile(cfg.Env.MainCFGFile, haproxyConf, 0755)
86-
if err != nil {
87-
logger.Panic(err)
88-
}
89-
logger.Error(os.Chdir(cfg.Env.CfgDir))
90-
controller.Start()
83+
controller.Start(haproxyConf)
9184

9285
// Catch QUIT signals
9386
signalC := make(chan os.Signal, 1)

pkg/controller/builder.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ func (builder *Builder) Build() *HAProxyController {
7474
logger.Error(errPrefix)
7575

7676
return &HAProxyController{
77-
Cfg: builder.cfg,
78-
OSArgs: builder.osArgs,
79-
PodNamespace: os.Getenv("POD_NAMESPACE"),
80-
PodPrefix: prefix,
81-
Store: builder.store,
77+
cfg: builder.cfg,
78+
osArgs: builder.osArgs,
79+
podNamespace: os.Getenv("POD_NAMESPACE"),
80+
podPrefix: prefix,
81+
store: builder.store,
8282
}
8383
}
8484

pkg/controller/controller.go

Lines changed: 50 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@
1515
package controller
1616

1717
import (
18+
"os"
1819
"path/filepath"
1920
"strings"
2021

22+
"github.com/google/renameio"
23+
2124
"github.com/haproxytech/client-native/v2/models"
2225
config "github.com/haproxytech/kubernetes-ingress/pkg/configuration"
2326
"github.com/haproxytech/kubernetes-ingress/pkg/controller/route"
@@ -35,13 +38,13 @@ var logger = utils.GetLogger()
3538

3639
// HAProxyController is ingress controller
3740
type HAProxyController struct {
38-
Cfg config.ControllerCfg
41+
cfg config.ControllerCfg
3942
crManager cr.CRManager
40-
Client api.HAProxyClient
41-
OSArgs utils.OSArgs
42-
Store store.K8s
43-
PublishService *utils.NamespaceValue
44-
AuxCfgModTime int64
43+
client api.HAProxyClient
44+
osArgs utils.OSArgs
45+
store store.K8s
46+
publishService *utils.NamespaceValue
47+
auxCfgModTime int64
4548
eventChan chan k8s.SyncDataEvent
4649
ingressChan chan ingress.Sync
4750
k8s *k8s.K8s
@@ -50,41 +53,46 @@ type HAProxyController struct {
5053
restart bool
5154
updateHandlers []UpdateHandler
5255
haproxyProcess process.Process
53-
PodNamespace string
54-
PodPrefix string
56+
podNamespace string
57+
podPrefix string
5558
}
5659

5760
// Wrapping a Native-Client transaction and commit it.
5861
// Returning an error to let panic or log it upon the scenario.
5962
func (c *HAProxyController) clientAPIClosure(fn func() error) (err error) {
60-
if err = c.Client.APIStartTransaction(); err != nil {
63+
if err = c.client.APIStartTransaction(); err != nil {
6164
return err
6265
}
6366
defer func() {
64-
c.Client.APIDisposeTransaction()
67+
c.client.APIDisposeTransaction()
6568
}()
6669
if err = fn(); err != nil {
6770
return err
6871
}
6972

70-
if err = c.Client.APICommitTransaction(); err != nil {
73+
if err = c.client.APICommitTransaction(); err != nil {
7174
return err
7275
}
7376
return nil
7477
}
7578

7679
// Start initializes and runs HAProxyController
77-
func (c *HAProxyController) Start() {
80+
func (c *HAProxyController) Start(haproxyConf []byte) {
7881
var err error
79-
logger.SetLevel(c.OSArgs.LogLevel.LogLevel)
82+
logger.SetLevel(c.osArgs.LogLevel.LogLevel)
83+
err = renameio.WriteFile(c.cfg.Env.MainCFGFile, haproxyConf, 0755)
84+
if err != nil {
85+
logger.Panic(err)
86+
}
87+
logger.Error(os.Chdir(c.cfg.Env.CfgDir))
8088

8189
// Initialize controller
82-
err = c.Cfg.Init()
90+
err = c.cfg.Init()
8391
if err != nil {
8492
logger.Panic(err)
8593
}
8694

87-
c.Client, err = api.Init(c.Cfg.Env.CfgDir, c.Cfg.Env.MainCFGFile, c.Cfg.Env.HAProxyBinary, c.Cfg.Env.RuntimeSocket)
95+
c.client, err = api.Init(c.cfg.Env.CfgDir, c.cfg.Env.MainCFGFile, c.cfg.Env.HAProxyBinary, c.cfg.Env.RuntimeSocket)
8896
if err != nil {
8997
logger.Panic(err)
9098
}
@@ -93,22 +101,22 @@ func (c *HAProxyController) Start() {
93101
c.haproxyStartup()
94102

95103
// Controller PublishService
96-
parts := strings.Split(c.OSArgs.PublishService, "/")
104+
parts := strings.Split(c.osArgs.PublishService, "/")
97105
if len(parts) == 2 {
98-
c.PublishService = &utils.NamespaceValue{
106+
c.publishService = &utils.NamespaceValue{
99107
Namespace: parts[0],
100108
Name: parts[1],
101109
}
102110
}
103111

104112
// Get K8s client
105-
c.k8s, err = k8s.GetKubernetesClient(c.OSArgs.DisableServiceExternalName)
106-
if c.OSArgs.External {
113+
c.k8s, err = k8s.GetKubernetesClient(c.osArgs.DisableServiceExternalName)
114+
if c.osArgs.External {
107115
kubeconfig := filepath.Join(utils.HomeDir(), ".kube", "config")
108-
if c.OSArgs.KubeConfig != "" {
109-
kubeconfig = c.OSArgs.KubeConfig
116+
if c.osArgs.KubeConfig != "" {
117+
kubeconfig = c.osArgs.KubeConfig
110118
}
111-
c.k8s, err = k8s.GetRemoteKubernetesClient(kubeconfig, c.OSArgs.DisableServiceExternalName)
119+
c.k8s, err = k8s.GetRemoteKubernetesClient(kubeconfig, c.osArgs.DisableServiceExternalName)
112120
}
113121
if err != nil {
114122
logger.Panic(err)
@@ -122,16 +130,16 @@ func (c *HAProxyController) Start() {
122130

123131
// Monitor k8s events
124132
var chanSize int64 = int64(watch.DefaultChanSize * 6)
125-
if c.OSArgs.ChannelSize > 0 {
126-
chanSize = c.OSArgs.ChannelSize
133+
if c.osArgs.ChannelSize > 0 {
134+
chanSize = c.osArgs.ChannelSize
127135
}
128136
logger.Infof("Channel size: %d", chanSize)
129137
c.eventChan = make(chan k8s.SyncDataEvent, chanSize)
130138
go c.monitorChanges()
131-
if c.PublishService != nil {
139+
if c.publishService != nil {
132140
// Update Ingress status
133141
c.ingressChan = make(chan ingress.Sync, chanSize)
134-
go ingress.UpdateStatus(c.k8s.API, c.Store, c.OSArgs.IngressClass, c.OSArgs.EmptyIngressClass, c.ingressChan)
142+
go ingress.UpdateStatus(c.k8s.API, c.store, c.osArgs.IngressClass, c.osArgs.EmptyIngressClass, c.ingressChan)
135143
}
136144
}
137145

@@ -147,51 +155,51 @@ func (c *HAProxyController) updateHAProxy() {
147155
var err error
148156
logger.Trace("HAProxy config sync started")
149157

150-
err = c.Client.APIStartTransaction()
158+
err = c.client.APIStartTransaction()
151159
if err != nil {
152160
logger.Error(err)
153161
return
154162
}
155163
defer func() {
156-
c.Client.APIDisposeTransaction()
164+
c.client.APIDisposeTransaction()
157165
}()
158166

159167
reload, restart := c.handleGlobalConfig()
160168
c.reload = c.reload || reload
161169
c.restart = c.restart || restart
162170

163171
if len(route.CustomRoutes) != 0 {
164-
logger.Error(route.CustomRoutesReset(c.Client))
172+
logger.Error(route.CustomRoutesReset(c.client))
165173
}
166174

167-
for _, namespace := range c.Store.Namespaces {
175+
for _, namespace := range c.store.Namespaces {
168176
if !namespace.Relevant {
169177
continue
170178
}
171179
for _, ingResource := range namespace.Ingresses {
172-
i := ingress.New(c.Store, ingResource, c.OSArgs.IngressClass, c.OSArgs.EmptyIngressClass)
180+
i := ingress.New(c.store, ingResource, c.osArgs.IngressClass, c.osArgs.EmptyIngressClass)
173181
if i == nil {
174182
logger.Debugf("ingress '%s/%s' ignored: no matching IngressClass", ingResource.Namespace, ingResource.Name)
175183
continue
176184
}
177-
if c.PublishService != nil && ingResource.Status == store.ADDED {
185+
if c.publishService != nil && ingResource.Status == store.ADDED {
178186
select {
179187
case c.ingressChan <- ingress.Sync{Ingress: ingResource}:
180188
default:
181189
logger.Errorf("Ingress %s/%s: unable to sync status: sync channel full", ingResource.Namespace, ingResource.Name)
182190
}
183191
}
184-
c.reload = i.Update(c.Store, &c.Cfg, c.Client) || c.reload
192+
c.reload = i.Update(c.store, &c.cfg, c.client) || c.reload
185193
}
186194
}
187195

188196
for _, handler := range c.updateHandlers {
189-
reload, err = handler.Update(c.Store, &c.Cfg, c.Client)
197+
reload, err = handler.Update(c.store, &c.cfg, c.client)
190198
logger.Error(err)
191199
c.reload = c.reload || reload
192200
}
193201

194-
err = c.Client.APICommitTransaction()
202+
err = c.client.APICommitTransaction()
195203
if err != nil {
196204
logger.Error("unable to Sync HAProxy configuration !!")
197205
logger.Error(err)
@@ -226,15 +234,15 @@ func (c *HAProxyController) updateHAProxy() {
226234
// setToRready exposes readiness endpoint
227235
func (c *HAProxyController) setToReady() {
228236
logger.Panic(c.clientAPIClosure(func() error {
229-
return c.Client.FrontendBindEdit("healthz",
237+
return c.client.FrontendBindEdit("healthz",
230238
models.Bind{
231239
Name: "v4",
232240
Address: "0.0.0.0:1042",
233241
})
234242
}))
235-
if !c.OSArgs.DisableIPV6 {
243+
if !c.osArgs.DisableIPV6 {
236244
logger.Panic(c.clientAPIClosure(func() error {
237-
return c.Client.FrontendBindCreate("healthz",
245+
return c.client.FrontendBindCreate("healthz",
238246
models.Bind{
239247
Name: "v6",
240248
Address: ":::1042",
@@ -243,7 +251,7 @@ func (c *HAProxyController) setToReady() {
243251
}))
244252
}
245253
logger.Debugf("healthz frontend exposed for readiness probe")
246-
cm := c.Store.ConfigMaps.Main
254+
cm := c.store.ConfigMaps.Main
247255
if cm.Name != "" && !cm.Loaded {
248256
logger.Warningf("Main configmap '%s/%s' not found", cm.Namespace, cm.Name)
249257
}
@@ -252,10 +260,10 @@ func (c *HAProxyController) setToReady() {
252260

253261
// clean controller state
254262
func (c *HAProxyController) clean(failedSync bool) {
255-
logger.Error(c.Cfg.Clean())
256-
c.Cfg.SSLPassthrough = false
263+
logger.Error(c.cfg.Clean())
264+
c.cfg.SSLPassthrough = false
257265
if !failedSync {
258-
c.Store.Clean()
266+
c.store.Clean()
259267
}
260268
c.reload = false
261269
c.restart = false

0 commit comments

Comments
 (0)