mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Updating ControlPlane to support NodeName field
This commit is contained in:
parent
d985438772
commit
877ad98c53
@ -14,6 +14,7 @@ go_library(
|
|||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api/v1/endpoints:go_default_library",
|
"//pkg/api/v1/endpoints:go_default_library",
|
||||||
|
"//pkg/features:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/api/discovery/v1beta1:go_default_library",
|
"//staging/src/k8s.io/api/discovery/v1beta1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
||||||
@ -23,6 +24,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/registry/rest:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/registry/rest:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/storage:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/storage:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes/typed/discovery/v1beta1:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes/typed/discovery/v1beta1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
|
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
|
||||||
|
@ -23,8 +23,10 @@ import (
|
|||||||
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
apiequality "k8s.io/apimachinery/pkg/api/equality"
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||||
discoveryclient "k8s.io/client-go/kubernetes/typed/discovery/v1beta1"
|
discoveryclient "k8s.io/client-go/kubernetes/typed/discovery/v1beta1"
|
||||||
|
"k8s.io/kubernetes/pkg/features"
|
||||||
utilnet "k8s.io/utils/net"
|
utilnet "k8s.io/utils/net"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -166,17 +168,22 @@ func getEndpointsFromAddresses(addresses []corev1.EndpointAddress, addressType d
|
|||||||
|
|
||||||
// endpointFromAddress generates an Endpoint from an EndpointAddress resource.
|
// endpointFromAddress generates an Endpoint from an EndpointAddress resource.
|
||||||
func endpointFromAddress(address corev1.EndpointAddress, ready bool) discovery.Endpoint {
|
func endpointFromAddress(address corev1.EndpointAddress, ready bool) discovery.Endpoint {
|
||||||
topology := map[string]string{}
|
ep := discovery.Endpoint{
|
||||||
if address.NodeName != nil {
|
|
||||||
topology["kubernetes.io/hostname"] = *address.NodeName
|
|
||||||
}
|
|
||||||
|
|
||||||
return discovery.Endpoint{
|
|
||||||
Addresses: []string{address.IP},
|
Addresses: []string{address.IP},
|
||||||
Conditions: discovery.EndpointConditions{Ready: &ready},
|
Conditions: discovery.EndpointConditions{Ready: &ready},
|
||||||
TargetRef: address.TargetRef,
|
TargetRef: address.TargetRef,
|
||||||
Topology: topology,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if address.NodeName != nil {
|
||||||
|
ep.Topology = map[string]string{
|
||||||
|
"kubernetes.io/hostname": *address.NodeName,
|
||||||
|
}
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.EndpointSliceNodeName) {
|
||||||
|
ep.NodeName = address.NodeName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ep
|
||||||
}
|
}
|
||||||
|
|
||||||
// allAddressesIPv6 returns true if all provided addresses are IPv6.
|
// allAddressesIPv6 returns true if all provided addresses are IPv6.
|
||||||
|
@ -232,7 +232,7 @@ func TestEndpointsAdapterUpdate(t *testing.T) {
|
|||||||
// with one that has an IPv4 address type.
|
// with one that has an IPv4 address type.
|
||||||
endpoints4, _ := generateEndpointsAndSlice("foo", "testing", []int{80}, []string{"10.1.2.7", "10.1.2.8"})
|
endpoints4, _ := generateEndpointsAndSlice("foo", "testing", []int{80}, []string{"10.1.2.7", "10.1.2.8"})
|
||||||
_, epSlice4IP := generateEndpointsAndSlice("foo", "testing", []int{80}, []string{"10.1.2.7", "10.1.2.8"})
|
_, epSlice4IP := generateEndpointsAndSlice("foo", "testing", []int{80}, []string{"10.1.2.7", "10.1.2.8"})
|
||||||
epSlice4IP.AddressType = discovery.AddressTypeIP
|
epSlice4IP.AddressType = discovery.AddressType("IP")
|
||||||
_, epSlice4IPv4 := generateEndpointsAndSlice("foo", "testing", []int{80}, []string{"10.1.2.7", "10.1.2.8"})
|
_, epSlice4IPv4 := generateEndpointsAndSlice("foo", "testing", []int{80}, []string{"10.1.2.7", "10.1.2.8"})
|
||||||
|
|
||||||
testCases := map[string]struct {
|
testCases := map[string]struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user