Skip to content

Commit 616e27b

Browse files
author
Harvey Lowndes
committed
Enable/Disable load balancer via disabled flag in configuration
1 parent ed67907 commit 616e27b

File tree

4 files changed

+24
-27
lines changed

4 files changed

+24
-27
lines changed

pkg/oci/ccm.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func NewCloudProvider(config *Config) (cloudprovider.Interface, error) {
8787
config.CompartmentID = metadata.CompartmentOCID
8888
}
8989

90-
if config.LoadBalancerIsEnabled() && config.VCNID == "" {
90+
if !config.LoadBalancer.Disabled && config.VCNID == "" {
9191
glog.Infof("No vcn provided in cloud provider config. Falling back to looking up VCN via LB subnet.")
9292
subnet, err := c.Networking().GetSubnet(context.Background(), config.LoadBalancer.Subnet1)
9393
if err != nil {
@@ -136,7 +136,7 @@ func (cp *CloudProvider) Initialize(clientBuilder controller.ControllerClientBui
136136
}
137137
cp.NodeLister = nodeInformer.Lister()
138138

139-
if cp.config.LoadBalancerIsEnabled() {
139+
if !cp.config.LoadBalancer.Disabled {
140140
var serviceInformer informersv1.ServiceInformer
141141
if cp.config.LoadBalancer.SecurityListManagementMode != ManagementModeNone {
142142
serviceInformer = factory.Core().V1().Services()
@@ -160,7 +160,7 @@ func (cp *CloudProvider) ProviderName() string {
160160
// is supported, false otherwise.
161161
func (cp *CloudProvider) LoadBalancer() (cloudprovider.LoadBalancer, bool) {
162162
glog.V(6).Info("Claiming to support Load Balancers")
163-
return cp, cp.config.LoadBalancerIsEnabled()
163+
return cp, !cp.config.LoadBalancer.Disabled
164164
}
165165

166166
// Instances returns an instances interface. Also returns true if the interface

pkg/oci/config.go

+6-9
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ type AuthConfig struct {
4242

4343
// LoadBalancerConfig holds the configuration options for OCI load balancers.
4444
type LoadBalancerConfig struct {
45+
// Disabled disables the creation of a load balancer.
46+
Disabled bool `yaml:"disabled"`
47+
4548
// DisableSecurityListManagement disables the automatic creation of ingress
4649
// rules for the node subnets and egress rules for the load balancers to the node subnets.
4750
//
@@ -67,8 +70,8 @@ type LoadBalancerConfig struct {
6770
// Config holds the OCI cloud-provider config passed to Kubernetes compontents
6871
// via the --cloud-config option.
6972
type Config struct {
70-
Auth AuthConfig `yaml:"auth"`
71-
LoadBalancer *LoadBalancerConfig `yaml:"loadBalancer"`
73+
Auth AuthConfig `yaml:"auth"`
74+
LoadBalancer LoadBalancerConfig `yaml:"loadBalancer"`
7275

7376
// CompartmentID is the OCID of the Compartment within which the cluster
7477
// resides.
@@ -80,7 +83,7 @@ type Config struct {
8083

8184
// Complete the config applying defaults / overrides.
8285
func (c *Config) Complete() {
83-
if c.LoadBalancerIsEnabled() && c.LoadBalancer.SecurityListManagementMode == "" {
86+
if !c.LoadBalancer.Disabled && c.LoadBalancer.SecurityListManagementMode == "" {
8487
c.LoadBalancer.SecurityListManagementMode = ManagementModeAll // default
8588
if c.LoadBalancer.DisableSecurityListManagement {
8689
glog.Warningf("cloud-provider config: \"loadBalancer.disableSecurityListManagement\" is DEPRECIATED and will be removed in a later release. Please set \"loadBalancer.SecurityListManagementMode: %s\".", ManagementModeNone)
@@ -121,9 +124,3 @@ func ReadConfig(r io.Reader) (*Config, error) {
121124

122125
return cfg, nil
123126
}
124-
125-
// LoadBalancerIsEnabled returns a bool based on whether a LoadBalancer
126-
// configuration exists.
127-
func (c *Config) LoadBalancerIsEnabled() bool {
128-
return c.LoadBalancer != nil
129-
}

pkg/oci/config_validate.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ func validateLoadBalancerConfig(c *LoadBalancerConfig, fldPath *field.Path) fiel
8484
func ValidateConfig(c *Config) field.ErrorList {
8585
allErrs := field.ErrorList{}
8686
allErrs = append(allErrs, validateAuthConfig(&c.Auth, field.NewPath("auth"))...)
87-
if c.LoadBalancerIsEnabled() {
88-
allErrs = append(allErrs, validateLoadBalancerConfig(c.LoadBalancer, field.NewPath("loadBalancer"))...)
87+
if !c.LoadBalancer.Disabled {
88+
allErrs = append(allErrs, validateLoadBalancerConfig(&c.LoadBalancer, field.NewPath("loadBalancer"))...)
8989
}
9090
return allErrs
9191
}

pkg/oci/config_validate_test.go

+13-13
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func TestValidateConfig(t *testing.T) {
3838
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
3939
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
4040
},
41-
LoadBalancer: &LoadBalancerConfig{
41+
LoadBalancer: LoadBalancerConfig{
4242
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
4343
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
4444
},
@@ -51,7 +51,7 @@ func TestValidateConfig(t *testing.T) {
5151
Auth: AuthConfig{
5252
UseInstancePrincipals: true,
5353
},
54-
LoadBalancer: &LoadBalancerConfig{
54+
LoadBalancer: LoadBalancerConfig{
5555
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
5656
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
5757
},
@@ -68,7 +68,7 @@ func TestValidateConfig(t *testing.T) {
6868
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
6969
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
7070
},
71-
LoadBalancer: &LoadBalancerConfig{
71+
LoadBalancer: LoadBalancerConfig{
7272
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
7373
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
7474
},
@@ -91,7 +91,7 @@ func TestValidateConfig(t *testing.T) {
9191
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
9292
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
9393
},
94-
LoadBalancer: &LoadBalancerConfig{
94+
LoadBalancer: LoadBalancerConfig{
9595
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
9696
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
9797
SecurityListManagementMode: ManagementModeFrontend,
@@ -108,7 +108,7 @@ func TestValidateConfig(t *testing.T) {
108108
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
109109
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
110110
},
111-
LoadBalancer: &LoadBalancerConfig{
111+
LoadBalancer: LoadBalancerConfig{
112112
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
113113
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
114114
},
@@ -126,7 +126,7 @@ func TestValidateConfig(t *testing.T) {
126126
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
127127
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
128128
},
129-
LoadBalancer: &LoadBalancerConfig{
129+
LoadBalancer: LoadBalancerConfig{
130130
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
131131
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
132132
},
@@ -144,7 +144,7 @@ func TestValidateConfig(t *testing.T) {
144144
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
145145
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
146146
},
147-
LoadBalancer: &LoadBalancerConfig{
147+
LoadBalancer: LoadBalancerConfig{
148148
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
149149
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
150150
},
@@ -160,7 +160,7 @@ func TestValidateConfig(t *testing.T) {
160160
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
161161
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
162162
},
163-
LoadBalancer: &LoadBalancerConfig{
163+
LoadBalancer: LoadBalancerConfig{
164164
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
165165
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
166166
},
@@ -178,7 +178,7 @@ func TestValidateConfig(t *testing.T) {
178178
UserID: "ocid1.user.oc1..aaaaaaaai77mql2xerv7cn6wu3nhxang3y4jk56vo5bn5l5lysl34avnui3q",
179179
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
180180
},
181-
LoadBalancer: &LoadBalancerConfig{
181+
LoadBalancer: LoadBalancerConfig{
182182
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
183183
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
184184
},
@@ -196,7 +196,7 @@ func TestValidateConfig(t *testing.T) {
196196
UserID: "ocid1.user.oc1..aaaaaaaai77mql2xerv7cn6wu3nhxang3y4jk56vo5bn5l5lysl34avnui3q",
197197
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
198198
},
199-
LoadBalancer: &LoadBalancerConfig{
199+
LoadBalancer: LoadBalancerConfig{
200200
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
201201
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
202202
},
@@ -215,7 +215,7 @@ func TestValidateConfig(t *testing.T) {
215215
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
216216
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
217217
},
218-
LoadBalancer: &LoadBalancerConfig{
218+
LoadBalancer: LoadBalancerConfig{
219219
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
220220
},
221221
},
@@ -233,7 +233,7 @@ func TestValidateConfig(t *testing.T) {
233233
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
234234
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
235235
},
236-
LoadBalancer: &LoadBalancerConfig{
236+
LoadBalancer: LoadBalancerConfig{
237237
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
238238
},
239239
},
@@ -251,7 +251,7 @@ func TestValidateConfig(t *testing.T) {
251251
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
252252
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
253253
},
254-
LoadBalancer: &LoadBalancerConfig{
254+
LoadBalancer: LoadBalancerConfig{
255255
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
256256
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
257257
SecurityListManagementMode: "invalid",

0 commit comments

Comments
 (0)