Drop using cloud provider to set host address feature
As part of the larger plan to drop --cloud-provider and --cloud-config from kube-apiserver, we need to stop calling Cloud Provider API to find the external ip address when one is not specified on the command line. When ExternalHost is not specified, we check if AdvertiseAddress is specified and use that, if that is missing then we use os.Hostname(). When testing this feature, found a problem that when ExternalHost is specified, the port was not added in the generated URL. So fixed that as well. Kubernetes-commit: 31332fa84a0928085200ba5a2e35118516ee2c48
This commit is contained in:
parent
cbbf2be019
commit
30e6bc192e
|
|
@ -338,13 +338,17 @@ type CompletedConfig struct {
|
|||
// Complete fills in any fields not set that are required to have valid data and can be derived
|
||||
// from other fields. If you're going to `ApplyOptions`, do that first. It's mutating the receiver.
|
||||
func (c *Config) Complete(informers informers.SharedInformerFactory) CompletedConfig {
|
||||
if len(c.ExternalAddress) == 0 && c.PublicAddress != nil {
|
||||
hostAndPort := c.PublicAddress.String()
|
||||
if c.ReadWritePort != 0 {
|
||||
hostAndPort = net.JoinHostPort(hostAndPort, strconv.Itoa(c.ReadWritePort))
|
||||
}
|
||||
c.ExternalAddress = hostAndPort
|
||||
host := c.ExternalAddress
|
||||
if host == "" && c.PublicAddress != nil {
|
||||
host = c.PublicAddress.String()
|
||||
}
|
||||
if !strings.Contains(host, ":") {
|
||||
if c.ReadWritePort != 0 {
|
||||
host = net.JoinHostPort(host, strconv.Itoa(c.ReadWritePort))
|
||||
}
|
||||
}
|
||||
c.ExternalAddress = host
|
||||
|
||||
if c.OpenAPIConfig != nil && c.OpenAPIConfig.SecurityDefinitions != nil {
|
||||
// Setup OpenAPI security: all APIs will have the same authentication for now.
|
||||
c.OpenAPIConfig.DefaultSecurity = []map[string][]string{}
|
||||
|
|
|
|||
Loading…
Reference in New Issue