Skip to content

Commit 909bf68

Browse files
rjtsdlowainlewis
authored andcommitted
make LoadBalancerConfig a pointer in Config (#294)
* make LoadBalancerConfig a pointer in Config * fix config unit test
1 parent 91ae790 commit 909bf68

File tree

3 files changed

+33
-19
lines changed

3 files changed

+33
-19
lines changed

pkg/cloudprovider/providers/oci/config/config.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ type RateLimiterConfig struct {
102102
// Config holds the OCI cloud-provider config passed to Kubernetes compontents
103103
// via the --cloud-config option.
104104
type Config struct {
105-
Auth AuthConfig `yaml:"auth"`
106-
LoadBalancer LoadBalancerConfig `yaml:"loadBalancer"`
107-
RateLimiter *RateLimiterConfig `yaml:"rateLimiter"`
105+
Auth AuthConfig `yaml:"auth"`
106+
LoadBalancer *LoadBalancerConfig `yaml:"loadBalancer"`
107+
RateLimiter *RateLimiterConfig `yaml:"rateLimiter"`
108108

109109
// When set to true, clients will use an instance principal configuration provider and ignore auth fields.
110110
UseInstancePrincipals bool `yaml:"useInstancePrincipals"`
@@ -118,7 +118,7 @@ type Config struct {
118118

119119
// Complete the config applying defaults / overrides.
120120
func (c *Config) Complete() {
121-
if !c.LoadBalancer.Disabled && c.LoadBalancer.SecurityListManagementMode == "" {
121+
if c.LoadBalancer != nil && !c.LoadBalancer.Disabled && c.LoadBalancer.SecurityListManagementMode == "" {
122122
c.LoadBalancer.SecurityListManagementMode = ManagementModeAll // default
123123
if c.LoadBalancer.DisableSecurityListManagement {
124124
zap.S().Warnf("cloud-provider config: \"loadBalancer.disableSecurityListManagement\" is DEPRECATED and will be removed in a later release. Please set \"loadBalancer.SecurityListManagementMode: %s\".", ManagementModeNone)

pkg/cloudprovider/providers/oci/config/config_validate.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func IsValidSecurityListManagementMode(mode string) bool {
7777
func validateLoadBalancerConfig(c *Config, fldPath *field.Path) field.ErrorList {
7878
allErrs := field.ErrorList{}
7979
lbConfig := c.LoadBalancer
80-
if &lbConfig == nil {
80+
if lbConfig == nil {
8181
return append(allErrs, field.Required(fldPath, ""))
8282
}
8383
if lbConfig.Subnet1 == "" && c.VCNID == "" {
@@ -94,7 +94,7 @@ func validateLoadBalancerConfig(c *Config, fldPath *field.Path) field.ErrorList
9494
func ValidateConfig(c *Config) field.ErrorList {
9595
allErrs := field.ErrorList{}
9696
allErrs = append(allErrs, validateAuthConfig(&c.Auth, field.NewPath("auth"))...)
97-
if !c.LoadBalancer.Disabled {
97+
if c.LoadBalancer != nil && !c.LoadBalancer.Disabled {
9898
allErrs = append(allErrs, validateLoadBalancerConfig(c, field.NewPath("loadBalancer"))...)
9999
}
100100
return allErrs

pkg/cloudprovider/providers/oci/config/config_validate_test.go

Lines changed: 27 additions & 13 deletions
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,11 +215,25 @@ 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
},
220220
errs: field.ErrorList{
221221
&field.Error{Type: field.ErrorTypeRequired, Field: "vcn", BadValue: "", Detail: "VCNID configuration must be provided if configuration for subnet1 is not provided"},
222222
},
223+
}, {
224+
name: "missing_lbconfig",
225+
in: &Config{
226+
Auth: AuthConfig{
227+
Region: "us-phoenix-1",
228+
TenancyID: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
229+
CompartmentID: "ocid1.compartment.oc1..aaaaaaaa3um2atybwhder4qttfhgon4j3hcxgmsvnyvx4flfjyewkkwfzwnq",
230+
UserID: "ocid1.user.oc1..aaaaaaaai77mql2xerv7cn6wu3nhxang3y4jk56vo5bn5l5lysl34avnui3q",
231+
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
232+
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
233+
},
234+
LoadBalancer: nil,
235+
},
236+
errs: field.ErrorList{},
223237
}, {
224238
name: "invalid_security_list_management_mode",
225239
in: &Config{
@@ -231,7 +245,7 @@ func TestValidateConfig(t *testing.T) {
231245
PrivateKey: "-----BEGIN RSA PRIVATE KEY----- (etc)",
232246
Fingerprint: "8c:bf:17:7b:5f:e0:7d:13:75:11:d6:39:0d:e2:84:74",
233247
},
234-
LoadBalancer: LoadBalancerConfig{
248+
LoadBalancer: &LoadBalancerConfig{
235249
Subnet1: "ocid1.tenancy.oc1..aaaaaaaatyn7scrtwtqedvgrxgr2xunzeo6uanvyhzxqblctwkrpisvke4kq",
236250
Subnet2: "ocid1.subnet.oc1.phx.aaaaaaaahuxrgvs65iwdz7ekwgg3l5gyah7ww5klkwjcso74u3e4i64hvtvq",
237251
SecurityListManagementMode: "invalid",
@@ -253,7 +267,7 @@ func TestValidateConfig(t *testing.T) {
253267
tt.in.Complete()
254268
result := ValidateConfig(tt.in)
255269
if !reflect.DeepEqual(result, tt.errs) {
256-
t.Errorf("ValidateConfig(%#v)\n=> %q \nExpected: %q", tt.in, result, tt.errs)
270+
t.Errorf("ValidateConfig (%s) \n(%#v)\n=> %q \nExpected: %q", tt.name, tt.in, result, tt.errs)
257271
}
258272
})
259273
}

0 commit comments

Comments
 (0)