Add fixedip to local kubeconfig if there is no loadbalancer and master topology is private

This commit is contained in:
Ole Markus With 2020-07-13 13:20:32 +02:00
parent 40b92e7d29
commit 3c0d0cf690
1 changed files with 18 additions and 6 deletions

View File

@ -690,14 +690,26 @@ func getApiIngressStatus(c OpenstackCloud, cluster *kops.Cluster) ([]kops.ApiIng
if ok && val == cluster.Name && ok2 {
role, success := kops.ParseInstanceGroupRole(val2, false)
if success && role == kops.InstanceGroupRoleMaster {
ips, err := c.ListServerFloatingIPs(instance.ID)
if err != nil {
return ingresses, err
}
for _, ip := range ips {
if cluster.Spec.Topology != nil && cluster.Spec.Topology.Masters == kops.TopologyPrivate {
ifName := instance.Metadata[TagKopsNetwork]
address, err := GetServerFixedIP(&instance, ifName)
if err != nil {
return ingresses, fmt.Errorf("failed to get interface address: %v", err)
}
ingresses = append(ingresses, kops.ApiIngressStatus{
IP: fi.StringValue(ip),
IP: address,
})
} else {
ips, err := c.ListServerFloatingIPs(instance.ID)
if err != nil {
return ingresses, err
}
for _, ip := range ips {
ingresses = append(ingresses, kops.ApiIngressStatus{
IP: fi.StringValue(ip),
})
}
}
}
}