Don't apply spec.api defaults on OS

Openstack can use floating IPs as master API address. Setting these defauls and using floating ips ends up in a nil pointer error somewhere in the lbaasv2 code
This commit is contained in:
Ole Markus With 2020-07-12 14:39:25 +02:00
parent 33722a9eca
commit 9b0d235554
1 changed files with 20 additions and 17 deletions

View File

@ -46,25 +46,28 @@ func SetDefaults_ClusterSpec(obj *ClusterSpec) {
obj.Topology.DNS.Type = DNSTypePublic obj.Topology.DNS.Type = DNSTypePublic
} }
if obj.API == nil { if obj.CloudProvider != "openstack" {
obj.API = &AccessSpec{} if obj.API == nil {
} obj.API = &AccessSpec{}
}
if obj.API.IsEmpty() {
switch obj.Topology.Masters { if obj.API.IsEmpty() {
case TopologyPublic: switch obj.Topology.Masters {
obj.API.DNS = &DNSAccessSpec{} case TopologyPublic:
obj.API.DNS = &DNSAccessSpec{}
case TopologyPrivate:
obj.API.LoadBalancer = &LoadBalancerAccessSpec{} case TopologyPrivate:
obj.API.LoadBalancer = &LoadBalancerAccessSpec{}
default:
klog.Infof("unknown master topology type: %q", obj.Topology.Masters) default:
klog.Infof("unknown master topology type: %q", obj.Topology.Masters)
}
}
if obj.API.LoadBalancer != nil && obj.API.LoadBalancer.Type == "" {
obj.API.LoadBalancer.Type = LoadBalancerTypePublic
} }
}
if obj.API.LoadBalancer != nil && obj.API.LoadBalancer.Type == "" {
obj.API.LoadBalancer.Type = LoadBalancerTypePublic
} }
if obj.Authorization == nil { if obj.Authorization == nil {