mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +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"],
|
||||
deps = [
|
||||
"//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/discovery/v1beta1: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/registry/rest: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/discovery/v1beta1: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"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
discoveryclient "k8s.io/client-go/kubernetes/typed/discovery/v1beta1"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
utilnet "k8s.io/utils/net"
|
||||
)
|
||||
|
||||
@ -166,17 +168,22 @@ func getEndpointsFromAddresses(addresses []corev1.EndpointAddress, addressType d
|
||||
|
||||
// endpointFromAddress generates an Endpoint from an EndpointAddress resource.
|
||||
func endpointFromAddress(address corev1.EndpointAddress, ready bool) discovery.Endpoint {
|
||||
topology := map[string]string{}
|
||||
if address.NodeName != nil {
|
||||
topology["kubernetes.io/hostname"] = *address.NodeName
|
||||
}
|
||||
|
||||
return discovery.Endpoint{
|
||||
ep := discovery.Endpoint{
|
||||
Addresses: []string{address.IP},
|
||||
Conditions: discovery.EndpointConditions{Ready: &ready},
|
||||
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.
|
||||
|
@ -232,7 +232,7 @@ func TestEndpointsAdapterUpdate(t *testing.T) {
|
||||
// with one that has an IPv4 address type.
|
||||
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.AddressType = discovery.AddressTypeIP
|
||||
epSlice4IP.AddressType = discovery.AddressType("IP")
|
||||
_, epSlice4IPv4 := generateEndpointsAndSlice("foo", "testing", []int{80}, []string{"10.1.2.7", "10.1.2.8"})
|
||||
|
||||
testCases := map[string]struct {
|
||||
|
Loading…
Reference in New Issue
Block a user