mirror of https://github.com/kubernetes/kops.git
Merge pull request #5460 from rdrgmnzs/BindPrimaryIP
Allow kubelet to bind the hosts primary IP
This commit is contained in:
commit
21f97545f3
|
|
@ -278,6 +278,15 @@ func (c *NodeupModelContext) UseNodeAuthorizer() bool {
|
||||||
return c.Cluster.Spec.NodeAuthorization.NodeAuthorizer != nil
|
return c.Cluster.Spec.NodeAuthorization.NodeAuthorizer != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UsesSecondaryIP checks if the CNI in use attaches secondary interfaces to the host.
|
||||||
|
func (c *NodeupModelContext) UsesSecondaryIP() bool {
|
||||||
|
if (c.Cluster.Spec.Networking.CNI != nil && c.Cluster.Spec.Networking.CNI.UsesSecondaryIP) || c.Cluster.Spec.Networking.AmazonVPC != nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// UseBootstrapTokens checks if we are using bootstrap tokens
|
// UseBootstrapTokens checks if we are using bootstrap tokens
|
||||||
func (c *NodeupModelContext) UseBootstrapTokens() bool {
|
func (c *NodeupModelContext) UseBootstrapTokens() bool {
|
||||||
if c.IsMaster {
|
if c.IsMaster {
|
||||||
|
|
|
||||||
|
|
@ -172,16 +172,16 @@ func (b *KubeletBuilder) buildSystemdEnvironmentFile(kubeletConfig *kops.Kubelet
|
||||||
if b.UsesCNI() {
|
if b.UsesCNI() {
|
||||||
flags += " --cni-bin-dir=" + b.CNIBinDir()
|
flags += " --cni-bin-dir=" + b.CNIBinDir()
|
||||||
flags += " --cni-conf-dir=" + b.CNIConfDir()
|
flags += " --cni-conf-dir=" + b.CNIConfDir()
|
||||||
// If we are using the AmazonVPC plugin we need to bind the kubelet to the local ipv4 address
|
}
|
||||||
if b.Cluster.Spec.Networking.AmazonVPC != nil {
|
|
||||||
sess := session.Must(session.NewSession())
|
if b.UsesSecondaryIP() {
|
||||||
metadata := ec2metadata.New(sess)
|
sess := session.Must(session.NewSession())
|
||||||
localIpv4, err := metadata.GetMetadata("local-ipv4")
|
metadata := ec2metadata.New(sess)
|
||||||
if err != nil {
|
localIpv4, err := metadata.GetMetadata("local-ipv4")
|
||||||
return nil, fmt.Errorf("error fetching the local-ipv4 address from the ec2 meta-data: %v", err)
|
if err != nil {
|
||||||
}
|
return nil, fmt.Errorf("error fetching the local-ipv4 address from the ec2 meta-data: %v", err)
|
||||||
flags += " --node-ip=" + localIpv4
|
|
||||||
}
|
}
|
||||||
|
flags += " --node-ip=" + localIpv4
|
||||||
}
|
}
|
||||||
|
|
||||||
if b.Cluster.Spec.Networking != nil && b.Cluster.Spec.Networking.Kubenet != nil {
|
if b.Cluster.Spec.Networking != nil && b.Cluster.Spec.Networking.Kubenet != nil {
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ type ExternalNetworkingSpec struct {
|
||||||
// Networking is not managed by kops - we can create options here that directly configure e.g. weave
|
// Networking is not managed by kops - we can create options here that directly configure e.g. weave
|
||||||
// but this is useful for arbitrary network modes or for modes that don't need additional configuration.
|
// but this is useful for arbitrary network modes or for modes that don't need additional configuration.
|
||||||
type CNINetworkingSpec struct {
|
type CNINetworkingSpec struct {
|
||||||
|
UsesSecondaryIP bool `json:"usesSecondaryIP,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// KopeioNetworkingSpec declares that we want Kopeio networking
|
// KopeioNetworkingSpec declares that we want Kopeio networking
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ type ExternalNetworkingSpec struct {
|
||||||
// Networking is not managed by kops - we can create options here that directly configure e.g. weave
|
// Networking is not managed by kops - we can create options here that directly configure e.g. weave
|
||||||
// but this is useful for arbitrary network modes or for modes that don't need additional configuration.
|
// but this is useful for arbitrary network modes or for modes that don't need additional configuration.
|
||||||
type CNINetworkingSpec struct {
|
type CNINetworkingSpec struct {
|
||||||
|
UsesSecondaryIP bool `json:"usesSecondaryIP,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// KopeioNetworkingSpec declares that we want Kopeio networking
|
// KopeioNetworkingSpec declares that we want Kopeio networking
|
||||||
|
|
|
||||||
|
|
@ -426,6 +426,7 @@ func Convert_kops_AwsAuthenticationSpec_To_v1alpha1_AwsAuthenticationSpec(in *ko
|
||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetworkingSpec, out *kops.CNINetworkingSpec, s conversion.Scope) error {
|
func autoConvert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetworkingSpec, out *kops.CNINetworkingSpec, s conversion.Scope) error {
|
||||||
|
out.UsesSecondaryIP = in.UsesSecondaryIP
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -435,6 +436,7 @@ func Convert_v1alpha1_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetwork
|
||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(in *kops.CNINetworkingSpec, out *CNINetworkingSpec, s conversion.Scope) error {
|
func autoConvert_kops_CNINetworkingSpec_To_v1alpha1_CNINetworkingSpec(in *kops.CNINetworkingSpec, out *CNINetworkingSpec, s conversion.Scope) error {
|
||||||
|
out.UsesSecondaryIP = in.UsesSecondaryIP
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ type ExternalNetworkingSpec struct {
|
||||||
// Networking is not managed by kops - we can create options here that directly configure e.g. weave
|
// Networking is not managed by kops - we can create options here that directly configure e.g. weave
|
||||||
// but this is useful for arbitrary network modes or for modes that don't need additional configuration.
|
// but this is useful for arbitrary network modes or for modes that don't need additional configuration.
|
||||||
type CNINetworkingSpec struct {
|
type CNINetworkingSpec struct {
|
||||||
|
UsesSecondaryIP bool `json:"usesSecondaryIP,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// KopeioNetworkingSpec declares that we want Kopeio networking
|
// KopeioNetworkingSpec declares that we want Kopeio networking
|
||||||
|
|
|
||||||
|
|
@ -462,6 +462,7 @@ func Convert_kops_BastionSpec_To_v1alpha2_BastionSpec(in *kops.BastionSpec, out
|
||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_v1alpha2_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetworkingSpec, out *kops.CNINetworkingSpec, s conversion.Scope) error {
|
func autoConvert_v1alpha2_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetworkingSpec, out *kops.CNINetworkingSpec, s conversion.Scope) error {
|
||||||
|
out.UsesSecondaryIP = in.UsesSecondaryIP
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -471,6 +472,7 @@ func Convert_v1alpha2_CNINetworkingSpec_To_kops_CNINetworkingSpec(in *CNINetwork
|
||||||
}
|
}
|
||||||
|
|
||||||
func autoConvert_kops_CNINetworkingSpec_To_v1alpha2_CNINetworkingSpec(in *kops.CNINetworkingSpec, out *CNINetworkingSpec, s conversion.Scope) error {
|
func autoConvert_kops_CNINetworkingSpec_To_v1alpha2_CNINetworkingSpec(in *kops.CNINetworkingSpec, out *CNINetworkingSpec, s conversion.Scope) error {
|
||||||
|
out.UsesSecondaryIP = in.UsesSecondaryIP
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue