
* api: structure change * api: defaulting, conversion, and validation * [FIX] validation: auto remove second ip/family when service changes to SingleStack * [FIX] api: defaulting, conversion, and validation * api-server: clusterIPs alloc, printers, storage and strategy * [FIX] clusterIPs default on read * alloc: auto remove second ip/family when service changes to SingleStack * api-server: repair loop handling for clusterIPs * api-server: force kubernetes default service into single stack * api-server: tie dualstack feature flag with endpoint feature flag * controller-manager: feature flag, endpoint, and endpointSlice controllers handling multi family service * [FIX] controller-manager: feature flag, endpoint, and endpointSlicecontrollers handling multi family service * kube-proxy: feature-flag, utils, proxier, and meta proxier * [FIX] kubeproxy: call both proxier at the same time * kubenet: remove forced pod IP sorting * kubectl: modify describe to include ClusterIPs, IPFamilies, and IPFamilyPolicy * e2e: fix tests that depends on IPFamily field AND add dual stack tests * e2e: fix expected error message for ClusterIP immutability * add integration tests for dualstack the third phase of dual stack is a very complex change in the API, basically it introduces Dual Stack services. Main changes are: - It pluralizes the Service IPFamily field to IPFamilies, and removes the singular field. - It introduces a new field IPFamilyPolicyType that can take 3 values to express the "dual-stack(mad)ness" of the cluster: SingleStack, PreferDualStack and RequireDualStack - It pluralizes ClusterIP to ClusterIPs. The goal is to add coverage to the services API operations, taking into account the 6 different modes a cluster can have: - single stack: IP4 or IPv6 (as of today) - dual stack: IPv4 only, IPv6 only, IPv4 - IPv6, IPv6 - IPv4 * [FIX] add integration tests for dualstack * generated data * generated files Co-authored-by: Antonio Ojea <aojea@redhat.com>
102 lines
4.9 KiB
Python
102 lines
4.9 KiB
Python
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
|
|
|
go_library(
|
|
name = "go_default_library",
|
|
srcs = [
|
|
"endpointset.go",
|
|
"endpointslice_controller.go",
|
|
"endpointslice_tracker.go",
|
|
"reconciler.go",
|
|
"utils.go",
|
|
],
|
|
importpath = "k8s.io/kubernetes/pkg/controller/endpointslice",
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"//pkg/api/v1/pod:go_default_library",
|
|
"//pkg/apis/core:go_default_library",
|
|
"//pkg/apis/core/v1/helper:go_default_library",
|
|
"//pkg/apis/discovery/validation:go_default_library",
|
|
"//pkg/controller:go_default_library",
|
|
"//pkg/controller/endpointslice/metrics:go_default_library",
|
|
"//pkg/controller/util/endpoint: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",
|
|
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
|
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
|
|
"//staging/src/k8s.io/client-go/informers/discovery/v1beta1:go_default_library",
|
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
|
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",
|
|
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
|
|
"//staging/src/k8s.io/client-go/listers/core/v1:go_default_library",
|
|
"//staging/src/k8s.io/client-go/listers/discovery/v1beta1:go_default_library",
|
|
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
|
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
|
"//staging/src/k8s.io/client-go/util/workqueue:go_default_library",
|
|
"//staging/src/k8s.io/component-base/metrics/prometheus/ratelimiter:go_default_library",
|
|
"//vendor/golang.org/x/time/rate:go_default_library",
|
|
"//vendor/k8s.io/klog/v2:go_default_library",
|
|
"//vendor/k8s.io/utils/net:go_default_library",
|
|
],
|
|
)
|
|
|
|
go_test(
|
|
name = "go_default_test",
|
|
srcs = [
|
|
"endpointslice_controller_test.go",
|
|
"endpointslice_tracker_test.go",
|
|
"reconciler_test.go",
|
|
"utils_test.go",
|
|
],
|
|
embed = [":go_default_library"],
|
|
deps = [
|
|
"//pkg/controller:go_default_library",
|
|
"//pkg/controller/endpointslice/metrics:go_default_library",
|
|
"//pkg/controller/util/endpoint: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",
|
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
|
|
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
|
"//staging/src/k8s.io/client-go/informers:go_default_library",
|
|
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
|
"//staging/src/k8s.io/client-go/listers/core/v1:go_default_library",
|
|
"//staging/src/k8s.io/client-go/testing:go_default_library",
|
|
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
|
"//staging/src/k8s.io/component-base/metrics/testutil:go_default_library",
|
|
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
|
"//vendor/k8s.io/utils/pointer:go_default_library",
|
|
],
|
|
)
|
|
|
|
filegroup(
|
|
name = "package-srcs",
|
|
srcs = glob(["**"]),
|
|
tags = ["automanaged"],
|
|
visibility = ["//visibility:private"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "all-srcs",
|
|
srcs = [
|
|
":package-srcs",
|
|
"//pkg/controller/endpointslice/config:all-srcs",
|
|
"//pkg/controller/endpointslice/metrics:all-srcs",
|
|
],
|
|
tags = ["automanaged"],
|
|
visibility = ["//visibility:public"],
|
|
)
|