From 24e7f1bbebe3c6df47a5c719670a0353916eb5e1 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Thu, 2 Dec 2021 18:06:41 +0100 Subject: [PATCH 1/2] UPSTREAM: : update base image for go1.17 --- .ci-operator.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci-operator.yaml b/.ci-operator.yaml index 534f43e00b55..00d7adfcf4e6 100644 --- a/.ci-operator.yaml +++ b/.ci-operator.yaml @@ -1,4 +1,4 @@ build_root_image: name: release namespace: openshift - tag: rhel-8-release-golang-1.16-openshift-4.9 + tag: rhel-8-release-golang-1.17-openshift-4.10 From fdb6e2ba97a5524ceed1b59fb7e88645f899c917 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Thu, 2 Dec 2021 18:07:09 +0100 Subject: [PATCH 2/2] UPSTREAM: : switch to go1.17 --- build/tools.go | 1 + .../images/etcd/migrate/integration_test.go | 6 +- cluster/images/etcd/migrate/util_others.go | 1 + cluster/images/etcd/migrate/utils_windows.go | 1 + .../nodeipamcontroller.go | 4 +- cmd/cloud-controller-manager/providers.go | 1 + .../app/options/globalflags_providerless.go | 1 + .../app/options/globalflags_providers.go | 1 + .../app/options/options_test.go | 7 +- .../app/options/validation_test.go | 7 +- cmd/kube-apiserver/app/server.go | 5 +- cmd/kube-controller-manager/app/core.go | 4 +- .../app/flags_providerless.go | 1 + .../app/flags_providers.go | 1 + .../app/options/options.go | 3 +- .../app/options/options_test.go | 4 +- .../app/plugins_providerless.go | 1 + .../app/plugins_providers.go | 1 + cmd/kube-proxy/app/init_others.go | 1 + cmd/kube-proxy/app/init_windows.go | 1 + cmd/kube-proxy/app/server.go | 10 +- cmd/kube-proxy/app/server_others.go | 12 +- cmd/kube-proxy/app/server_others_test.go | 24 +- cmd/kube-proxy/app/server_windows.go | 5 +- .../app/options/insecure_serving.go | 9 +- cmd/kube-scheduler/app/options/options.go | 3 +- .../v1/zz_generated.deepcopy.go | 1 + cmd/kubeadm/app/apis/kubeadm/apiendpoint.go | 4 +- .../app/apis/kubeadm/v1beta2/defaults_unix.go | 1 + .../apis/kubeadm/v1beta2/defaults_windows.go | 1 + .../v1beta2/zz_generated.conversion.go | 1 + .../kubeadm/v1beta2/zz_generated.deepcopy.go | 1 + .../kubeadm/v1beta2/zz_generated.defaults.go | 1 + .../app/apis/kubeadm/v1beta3/defaults_unix.go | 1 + .../apis/kubeadm/v1beta3/defaults_windows.go | 1 + .../v1beta3/zz_generated.conversion.go | 1 + .../kubeadm/v1beta3/zz_generated.deepcopy.go | 1 + .../kubeadm/v1beta3/zz_generated.defaults.go | 1 + .../app/apis/kubeadm/validation/validation.go | 20 +- .../app/apis/kubeadm/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../output/v1alpha1/zz_generated.deepcopy.go | 1 + .../output/v1alpha1/zz_generated.defaults.go | 1 + .../app/apis/output/zz_generated.deepcopy.go | 1 + cmd/kubeadm/app/cmd/phases/reset/unmount.go | 1 + .../app/cmd/phases/reset/unmount_linux.go | 1 + cmd/kubeadm/app/componentconfigs/kubeproxy.go | 5 +- cmd/kubeadm/app/constants/constants.go | 10 +- cmd/kubeadm/app/constants/constants_unix.go | 1 + .../app/constants/constants_windows.go | 1 + .../app/phases/certs/renewal/manager_test.go | 7 +- .../phases/certs/renewal/readwriter_test.go | 3 +- cmd/kubeadm/app/preflight/checks.go | 16 +- cmd/kubeadm/app/preflight/checks_darwin.go | 1 + cmd/kubeadm/app/preflight/checks_linux.go | 1 + cmd/kubeadm/app/preflight/checks_unix.go | 1 + cmd/kubeadm/app/preflight/checks_windows.go | 1 + cmd/kubeadm/app/util/apiclient/init_dryrun.go | 7 +- cmd/kubeadm/app/util/chroot_unix.go | 1 + cmd/kubeadm/app/util/chroot_windows.go | 1 + cmd/kubeadm/app/util/config/common.go | 5 +- .../app/util/config/initconfiguration.go | 3 +- cmd/kubeadm/app/util/endpoint.go | 8 +- .../app/util/initsystem/initsystem_unix.go | 1 + .../app/util/initsystem/initsystem_windows.go | 1 + cmd/kubeadm/app/util/pkiutil/pki_helpers.go | 9 +- .../app/util/pkiutil/pki_helpers_test.go | 7 +- cmd/kubeadm/app/util/runtime/runtime_unix.go | 1 + .../app/util/runtime/runtime_windows.go | 1 + cmd/kubeadm/app/util/staticpod/utils_linux.go | 1 + .../app/util/staticpod/utils_linux_test.go | 1 + .../app/util/staticpod/utils_others.go | 1 + cmd/kubeadm/app/util/users/users_linux.go | 1 + .../app/util/users/users_linux_test.go | 1 + cmd/kubeadm/app/util/users/users_other.go | 1 + cmd/kubelet/app/init_others.go | 1 + cmd/kubelet/app/init_windows.go | 1 + cmd/kubelet/app/options/globalflags_linux.go | 1 + cmd/kubelet/app/options/globalflags_other.go | 1 + .../app/options/globalflags_providerless.go | 1 + .../app/options/globalflags_providers.go | 1 + cmd/kubelet/app/options/osflags_others.go | 1 + cmd/kubelet/app/options/osflags_windows.go | 1 + cmd/kubelet/app/plugins_providerless.go | 1 + cmd/kubelet/app/plugins_providers.go | 1 + cmd/kubelet/app/server.go | 8 +- cmd/kubelet/app/server_others.go | 1 + cmd/kubelet/app/server_unsupported.go | 1 + cmd/kubelet/app/server_windows.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../runonceduration/zz_generated.deepcopy.go | 1 + .../customresourcevalidation/oauth/helpers.go | 5 +- .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../externalipranger/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../zz_generated.deepcopy.go | 1 + .../externalipranger/externalip_admission.go | 5 +- .../externalip_admission_test.go | 11 +- .../restrictedendpoints/endpoint_admission.go | 7 +- .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../ingressadmission/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../zz_generated.deepcopy.go | 1 + pkg/apis/abac/v0/zz_generated.conversion.go | 1 + pkg/apis/abac/v0/zz_generated.deepcopy.go | 1 + .../abac/v1beta1/zz_generated.conversion.go | 1 + .../abac/v1beta1/zz_generated.deepcopy.go | 1 + .../abac/v1beta1/zz_generated.defaults.go | 1 + pkg/apis/abac/zz_generated.deepcopy.go | 1 + .../admission/v1/zz_generated.conversion.go | 1 + .../admission/v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + pkg/apis/admission/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../zz_generated.deepcopy.go | 1 + pkg/apis/apps/v1/zz_generated.conversion.go | 1 + pkg/apis/apps/v1/zz_generated.defaults.go | 1 + .../apps/v1beta1/zz_generated.conversion.go | 1 + .../apps/v1beta1/zz_generated.defaults.go | 1 + .../apps/v1beta2/zz_generated.conversion.go | 1 + .../apps/v1beta2/zz_generated.defaults.go | 1 + pkg/apis/apps/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../authentication/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../authorization/v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../authorization/zz_generated.deepcopy.go | 1 + .../autoscaling/v1/zz_generated.conversion.go | 1 + .../autoscaling/v1/zz_generated.defaults.go | 1 + .../v2beta1/zz_generated.conversion.go | 1 + .../v2beta1/zz_generated.defaults.go | 1 + .../v2beta2/zz_generated.conversion.go | 1 + .../v2beta2/zz_generated.defaults.go | 1 + pkg/apis/autoscaling/zz_generated.deepcopy.go | 1 + pkg/apis/batch/v1/zz_generated.conversion.go | 1 + pkg/apis/batch/v1/zz_generated.defaults.go | 1 + .../batch/v1beta1/zz_generated.conversion.go | 1 + .../batch/v1beta1/zz_generated.defaults.go | 1 + pkg/apis/batch/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../certificates/v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../validation/validation_test.go | 27 ++- .../certificates/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../coordination/v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../coordination/zz_generated.deepcopy.go | 1 + pkg/apis/core/v1/zz_generated.conversion.go | 1 + pkg/apis/core/v1/zz_generated.defaults.go | 1 + pkg/apis/core/validation/validation.go | 12 +- pkg/apis/core/zz_generated.deepcopy.go | 1 + .../discovery/v1/zz_generated.conversion.go | 1 + .../discovery/v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + pkg/apis/discovery/zz_generated.deepcopy.go | 1 + pkg/apis/events/v1/zz_generated.conversion.go | 1 + pkg/apis/events/v1/zz_generated.defaults.go | 1 + .../events/v1beta1/zz_generated.conversion.go | 1 + .../events/v1beta1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + pkg/apis/extensions/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + pkg/apis/flowcontrol/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + pkg/apis/imagepolicy/zz_generated.deepcopy.go | 1 + .../networking/v1/zz_generated.conversion.go | 1 + .../networking/v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + pkg/apis/networking/validation/validation.go | 4 +- pkg/apis/networking/zz_generated.deepcopy.go | 1 + pkg/apis/node/v1/zz_generated.conversion.go | 1 + .../node/v1alpha1/zz_generated.conversion.go | 1 + .../node/v1beta1/zz_generated.conversion.go | 1 + pkg/apis/node/zz_generated.deepcopy.go | 1 + pkg/apis/policy/v1/zz_generated.conversion.go | 1 + pkg/apis/policy/v1/zz_generated.defaults.go | 1 + .../policy/v1beta1/zz_generated.conversion.go | 1 + .../policy/v1beta1/zz_generated.defaults.go | 1 + pkg/apis/policy/zz_generated.deepcopy.go | 1 + pkg/apis/rbac/v1/zz_generated.conversion.go | 1 + pkg/apis/rbac/v1/zz_generated.deepcopy.go | 1 + pkg/apis/rbac/v1/zz_generated.defaults.go | 1 + .../rbac/v1alpha1/zz_generated.conversion.go | 1 + .../rbac/v1alpha1/zz_generated.defaults.go | 1 + .../rbac/v1beta1/zz_generated.conversion.go | 1 + .../rbac/v1beta1/zz_generated.defaults.go | 1 + pkg/apis/rbac/zz_generated.deepcopy.go | 1 + .../scheduling/v1/zz_generated.conversion.go | 1 + .../scheduling/v1/zz_generated.defaults.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + pkg/apis/scheduling/zz_generated.deepcopy.go | 1 + .../storage/v1/zz_generated.conversion.go | 1 + pkg/apis/storage/v1/zz_generated.defaults.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../storage/v1alpha1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../storage/v1beta1/zz_generated.defaults.go | 1 + pkg/apis/storage/zz_generated.deepcopy.go | 1 + pkg/cloudprovider/providers/providers.go | 1 + pkg/cloudprovider/providers/providers_test.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1alpha1/zz_generated.defaults.go | 1 + .../apis/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../signer/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../cronjob/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../daemon/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../endpoint/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../endpointslicemirroring/utils.go | 4 +- .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../metaonly/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../job/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../namespace/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../nodeipam/config/zz_generated.deepcopy.go | 1 + pkg/controller/nodeipam/ipam/adapter.go | 4 +- .../nodeipam/ipam/cidrset/cidr_set_test.go | 35 +-- .../nodeipam/ipam/cloud_cidr_allocator.go | 3 +- .../cloud_cidr_allocator_nolegacyproviders.go | 1 + .../ipam/cloud_cidr_allocator_test.go | 1 + .../ipam/controller_legacyprovider.go | 4 +- .../nodeipam/ipam/range_allocator.go | 5 +- .../nodeipam/ipam/range_allocator_test.go | 69 +++--- pkg/controller/nodeipam/ipam/sync/sync.go | 5 +- .../nodeipam/ipam/sync/sync_test.go | 3 +- pkg/controller/nodeipam/ipam/test/utils.go | 4 +- pkg/controller/nodeipam/legacyprovider.go | 1 + .../nodeipam/node_ipam_controller_test.go | 5 +- pkg/controller/nodeipam/nolegacyprovider.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../podgc/config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + pkg/controlplane/controller_test.go | 14 +- pkg/controlplane/instance_test.go | 5 +- pkg/controlplane/reconcilers/lease_test.go | 8 +- .../azure/azure_acr_helper.go | 1 + .../azure/azure_credentials.go | 1 + .../azure/azure_credentials_test.go | 1 + pkg/generated/openapi/zz_generated.openapi.go | 1 + pkg/kubeapiserver/options/options.go | 3 +- pkg/kubeapiserver/options/serving.go | 5 +- .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1alpha1/zz_generated.defaults.go | 1 + .../apis/config/v1beta1/defaults_linux.go | 1 + .../apis/config/v1beta1/defaults_others.go | 1 + .../config/v1beta1/zz_generated.conversion.go | 1 + .../config/v1beta1/zz_generated.deepcopy.go | 1 + .../config/v1beta1/zz_generated.defaults.go | 1 + .../config/validation/validation_others.go | 1 + .../config/validation/validation_windows.go | 1 + .../apis/config/zz_generated.deepcopy.go | 1 + .../cadvisor/cadvisor_cloudproviders.go | 4 +- pkg/kubelet/cadvisor/cadvisor_linux.go | 1 + pkg/kubelet/cadvisor/cadvisor_linux_docker.go | 1 + pkg/kubelet/cadvisor/cadvisor_linux_test.go | 1 + pkg/kubelet/cadvisor/cadvisor_unsupported.go | 1 + pkg/kubelet/cadvisor/cadvisor_windows.go | 1 + pkg/kubelet/cadvisor/helpers_linux.go | 1 + pkg/kubelet/cadvisor/helpers_unsupported.go | 1 + pkg/kubelet/cadvisor/util_test.go | 1 + pkg/kubelet/certificate/kubelet.go | 7 +- pkg/kubelet/certificate/kubelet_test.go | 7 +- pkg/kubelet/cm/cgroup_manager_linux_test.go | 1 + pkg/kubelet/cm/cgroup_manager_test.go | 1 + pkg/kubelet/cm/cgroup_manager_unsupported.go | 1 + pkg/kubelet/cm/container_manager_linux.go | 1 + .../cm/container_manager_linux_test.go | 1 + .../cm/container_manager_unsupported.go | 1 + pkg/kubelet/cm/container_manager_windows.go | 1 + pkg/kubelet/cm/helpers_linux_test.go | 1 + pkg/kubelet/cm/helpers_unsupported.go | 1 + .../cm/internal_container_lifecycle_linux.go | 1 + ...nternal_container_lifecycle_unsupported.go | 1 + .../internal_container_lifecycle_windows.go | 1 + .../cm/node_container_manager_linux.go | 1 + .../cm/node_container_manager_linux_test.go | 1 + .../cm/pod_container_manager_linux_test.go | 1 + .../cm/pod_container_manager_unsupported.go | 1 + .../cm/qos_container_manager_linux_test.go | 1 + pkg/kubelet/cm/util/cgroups_unsupported.go | 1 + pkg/kubelet/config/file_linux.go | 1 + pkg/kubelet/config/file_linux_test.go | 1 + pkg/kubelet/config/file_unsupported.go | 1 + pkg/kubelet/cri/remote/fake/endpoint.go | 1 + .../cri/remote/fake/endpoint_windows.go | 1 + pkg/kubelet/cri/remote/util/util_unix.go | 1 + pkg/kubelet/cri/remote/util/util_unix_test.go | 1 + .../cri/remote/util/util_unsupported.go | 1 + pkg/kubelet/cri/remote/util/util_windows.go | 1 + .../cri/remote/util/util_windows_test.go | 1 + .../dockershim/cm/container_manager.go | 1 + .../dockershim/cm/container_manager_linux.go | 1 + .../cm/container_manager_unsupported.go | 1 + .../cm/container_manager_windows.go | 1 + pkg/kubelet/dockershim/convert.go | 1 + pkg/kubelet/dockershim/convert_test.go | 1 + pkg/kubelet/dockershim/doc.go | 1 + pkg/kubelet/dockershim/docker_checkpoint.go | 1 + .../dockershim/docker_checkpoint_test.go | 1 + pkg/kubelet/dockershim/docker_container.go | 1 + .../dockershim/docker_container_test.go | 1 + .../docker_container_unsupported.go | 1 + .../dockershim/docker_container_windows.go | 1 + .../docker_container_windows_test.go | 1 + pkg/kubelet/dockershim/docker_image.go | 1 + pkg/kubelet/dockershim/docker_image_linux.go | 1 + pkg/kubelet/dockershim/docker_image_test.go | 1 + .../dockershim/docker_image_unsupported.go | 1 + .../dockershim/docker_image_windows.go | 1 + .../dockershim/docker_legacy_service.go | 1 + pkg/kubelet/dockershim/docker_logs.go | 1 + pkg/kubelet/dockershim/docker_sandbox.go | 1 + .../dockershim/docker_sandbox_linux_test.go | 1 + pkg/kubelet/dockershim/docker_sandbox_test.go | 1 + pkg/kubelet/dockershim/docker_service.go | 1 + pkg/kubelet/dockershim/docker_service_test.go | 1 + pkg/kubelet/dockershim/docker_stats.go | 1 + pkg/kubelet/dockershim/docker_stats_linux.go | 1 + pkg/kubelet/dockershim/docker_stats_test.go | 1 + .../dockershim/docker_stats_unsupported.go | 1 + .../dockershim/docker_stats_windows.go | 1 + pkg/kubelet/dockershim/docker_streaming.go | 1 + .../dockershim/docker_streaming_others.go | 1 + .../dockershim/docker_streaming_windows.go | 1 + pkg/kubelet/dockershim/dockershim_nodocker.go | 1 + pkg/kubelet/dockershim/exec.go | 1 + pkg/kubelet/dockershim/exec_test.go | 1 + pkg/kubelet/dockershim/helpers.go | 1 + pkg/kubelet/dockershim/helpers_linux.go | 1 + pkg/kubelet/dockershim/helpers_linux_test.go | 1 + pkg/kubelet/dockershim/helpers_test.go | 1 + pkg/kubelet/dockershim/helpers_unsupported.go | 1 + pkg/kubelet/dockershim/helpers_windows.go | 1 + pkg/kubelet/dockershim/libdocker/client.go | 1 + .../dockershim/libdocker/fake_client.go | 1 + pkg/kubelet/dockershim/libdocker/helpers.go | 1 + .../dockershim/libdocker/helpers_test.go | 1 + .../libdocker/instrumented_client.go | 1 + .../libdocker/kube_docker_client.go | 1 + .../libdocker/kube_docker_client_test.go | 1 + .../libdocker/testing/mock_client.go | 1 + pkg/kubelet/dockershim/metrics/metrics.go | 1 + pkg/kubelet/dockershim/naming.go | 1 + pkg/kubelet/dockershim/naming_test.go | 1 + pkg/kubelet/dockershim/network/cni/cni.go | 1 + .../dockershim/network/cni/cni_others.go | 1 + .../dockershim/network/cni/cni_test.go | 1 + .../dockershim/network/cni/cni_windows.go | 1 + .../network/cni/testing/mock_cni.go | 1 + .../dockershim/network/hairpin/hairpin.go | 1 + .../network/hairpin/hairpin_test.go | 1 + .../network/hostport/fake_iptables.go | 5 +- .../network/hostport/fake_iptables_test.go | 1 + .../dockershim/network/hostport/hostport.go | 1 + .../network/hostport/hostport_manager.go | 1 + .../network/hostport/hostport_manager_test.go | 25 +- .../network/hostport/hostport_test.go | 1 + .../dockershim/network/kubenet/kubenet.go | 1 + .../network/kubenet/kubenet_linux.go | 7 +- .../network/kubenet/kubenet_linux_test.go | 6 +- .../network/kubenet/kubenet_unsupported.go | 1 + .../dockershim/network/metrics/metrics.go | 1 + pkg/kubelet/dockershim/network/network.go | 1 + pkg/kubelet/dockershim/network/plugins.go | 4 +- .../dockershim/network/plugins_test.go | 1 + .../dockershim/network/testing/fake_host.go | 1 + .../network/testing/mock_network_plugin.go | 1 + .../network/testing/plugins_test.go | 7 +- .../dockershim/remote/docker_server.go | 1 + pkg/kubelet/dockershim/security_context.go | 1 + .../dockershim/security_context_test.go | 1 + pkg/kubelet/dockershim/selinux_util.go | 1 + pkg/kubelet/dockershim/selinux_util_test.go | 1 + .../threshold_notifier_unsupported.go | 1 + pkg/kubelet/kubelet.go | 3 +- pkg/kubelet/kubelet_dockerless_test.go | 1 + pkg/kubelet/kubelet_dockershim.go | 1 + pkg/kubelet/kubelet_dockershim_nodocker.go | 1 + pkg/kubelet/kubelet_network_linux.go | 1 + pkg/kubelet/kubelet_network_others.go | 1 + pkg/kubelet/kubelet_network_test.go | 1 + pkg/kubelet/kubelet_node_status_others.go | 1 + pkg/kubelet/kubelet_node_status_test.go | 3 +- pkg/kubelet/kubelet_node_status_windows.go | 1 + pkg/kubelet/kubelet_pods_linux_test.go | 1 + pkg/kubelet/kubelet_pods_test.go | 5 +- pkg/kubelet/kubelet_server_journal_linux.go | 1 + pkg/kubelet/kubelet_server_journal_others.go | 1 + pkg/kubelet/kubelet_server_journal_windows.go | 1 + pkg/kubelet/kubelet_volumes_linux_test.go | 1 + pkg/kubelet/kuberuntime/helpers_linux.go | 1 + .../kuberuntime/helpers_unsupported.go | 1 + .../kuberuntime_container_linux.go | 1 + .../kuberuntime_container_linux_test.go | 1 + .../kuberuntime_container_unsupported.go | 1 + .../kuberuntime_container_windows.go | 1 + .../kuberuntime/kuberuntime_sandbox.go | 6 +- .../kuberuntime/security_context_others.go | 1 + .../security_context_others_test.go | 1 + .../kuberuntime/security_context_windows.go | 1 + .../security_context_windows_test.go | 1 + pkg/kubelet/network/dns/dns_test.go | 7 +- .../nodeshutdown_manager_linux.go | 1 + .../nodeshutdown_manager_linux_test.go | 1 + .../nodeshutdown_manager_others.go | 1 + .../nodeshutdown/systemd/inhibit_linux.go | 1 + .../systemd/inhibit_linux_test.go | 1 + .../nodeshutdown/systemd/inhibit_others.go | 1 + pkg/kubelet/nodestatus/setters.go | 7 +- pkg/kubelet/nodestatus/setters_test.go | 33 +-- pkg/kubelet/oom/oom_watcher_linux.go | 1 + pkg/kubelet/oom/oom_watcher_unsupported.go | 1 + pkg/kubelet/server/server.go | 3 +- .../server/stats/summary_sys_containers.go | 1 + .../stats/summary_sys_containers_windows.go | 1 + pkg/kubelet/server/stats/summary_test.go | 1 + .../server/stats/summary_windows_test.go | 1 + .../stats/cri_stats_provider_others.go | 1 + .../stats/cri_stats_provider_windows.go | 1 + pkg/kubelet/stats/pidlimit/pidlimit_linux.go | 1 + .../stats/pidlimit/pidlimit_unsupported.go | 1 + pkg/kubelet/util/boottime_util_darwin.go | 1 + pkg/kubelet/util/boottime_util_freebsd.go | 1 + .../util/boottime_util_freebsd_test.go | 1 + pkg/kubelet/util/boottime_util_linux.go | 1 + pkg/kubelet/util/boottime_util_linux_test.go | 1 + pkg/kubelet/util/util_unix.go | 1 + pkg/kubelet/util/util_unix_test.go | 1 + pkg/kubelet/util/util_unsupported.go | 1 + pkg/kubelet/util/util_windows.go | 1 + pkg/kubelet/util/util_windows_test.go | 1 + pkg/kubelet/winstats/network_stats.go | 1 + pkg/kubelet/winstats/perfcounter_nodestats.go | 1 + pkg/kubelet/winstats/perfcounters.go | 1 + pkg/kubelet/winstats/version.go | 1 + pkg/kubelet/winstats/winstats.go | 1 + pkg/kubelet/winstats/winstats_test.go | 1 + pkg/kubemark/hollow_proxy.go | 4 +- pkg/proxy/apis/config/v1alpha1/defaults.go | 4 +- .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1alpha1/zz_generated.defaults.go | 1 + .../apis/config/validation/validation.go | 10 +- .../apis/config/zz_generated.deepcopy.go | 1 + pkg/proxy/iptables/proxier.go | 46 ++-- pkg/proxy/iptables/proxier_test.go | 24 +- pkg/proxy/ipvs/graceful_termination_test.go | 58 ++--- pkg/proxy/ipvs/netlink_linux.go | 7 +- pkg/proxy/ipvs/netlink_unsupported.go | 1 + pkg/proxy/ipvs/proxier.go | 60 ++--- pkg/proxy/ipvs/proxier_test.go | 217 +++++++++--------- pkg/proxy/service.go | 3 +- pkg/proxy/service_test.go | 4 +- pkg/proxy/userspace/proxier.go | 20 +- pkg/proxy/userspace/proxier_test.go | 33 +-- pkg/proxy/userspace/rlimit.go | 1 + pkg/proxy/userspace/rlimit_windows.go | 1 + pkg/proxy/util/endpoints.go | 5 +- pkg/proxy/util/endpoints_test.go | 5 +- pkg/proxy/util/iptables/traffic.go | 7 +- pkg/proxy/util/utils.go | 30 +-- pkg/proxy/util/utils_test.go | 92 ++++---- pkg/proxy/winkernel/hnsV1.go | 8 +- pkg/proxy/winkernel/hnsV2.go | 1 + pkg/proxy/winkernel/hns_test.go | 1 + pkg/proxy/winkernel/proxier.go | 19 +- pkg/proxy/winkernel/proxier_test.go | 22 +- pkg/proxy/winuserspace/proxier.go | 9 +- pkg/proxy/winuserspace/proxier_test.go | 31 +-- .../core/service/ipallocator/allocator.go | 16 +- .../service/ipallocator/allocator_test.go | 29 +-- .../service/ipallocator/controller/repair.go | 8 +- .../ipallocator/controller/repair_test.go | 47 ++-- .../ipallocator/storage/storage_test.go | 14 +- pkg/registry/core/service/storage/rest.go | 14 +- .../core/service/storage/rest_test.go | 30 +-- .../core/service/storage/storage_test.go | 6 +- pkg/registry/core/service/strategy_test.go | 4 +- .../apis/config/v1/zz_generated.conversion.go | 1 + .../apis/config/v1/zz_generated.deepcopy.go | 1 + .../apis/config/v1/zz_generated.defaults.go | 1 + pkg/scheduler/apis/config/v1beta1/defaults.go | 5 +- .../config/v1beta1/zz_generated.conversion.go | 1 + .../config/v1beta1/zz_generated.deepcopy.go | 1 + .../config/v1beta1/zz_generated.defaults.go | 1 + pkg/scheduler/apis/config/v1beta2/defaults.go | 5 +- .../config/v1beta2/zz_generated.conversion.go | 1 + .../config/v1beta2/zz_generated.deepcopy.go | 1 + .../config/v1beta2/zz_generated.defaults.go | 1 + .../apis/config/zz_generated.deepcopy.go | 1 + .../internal/cache/debugger/signal.go | 1 + pkg/security/apparmor/validate_disabled.go | 1 + pkg/util/bandwidth/linux.go | 4 +- pkg/util/bandwidth/linux_test.go | 1 + pkg/util/bandwidth/unsupported.go | 1 + pkg/util/coverage/coverage.go | 1 + pkg/util/coverage/coverage_disabled.go | 1 + pkg/util/flag/flags.go | 10 +- pkg/util/flock/flock_other.go | 1 + pkg/util/flock/flock_unix.go | 1 + pkg/util/ipset/ipset.go | 8 +- pkg/util/iptables/iptables_linux.go | 1 + pkg/util/iptables/iptables_test.go | 1 + pkg/util/iptables/iptables_unsupported.go | 1 + pkg/util/iptables/monitor_test.go | 1 + pkg/util/ipvs/ipvs_linux.go | 1 + pkg/util/ipvs/ipvs_linux_test.go | 50 ++-- pkg/util/ipvs/ipvs_test.go | 72 +++--- pkg/util/ipvs/ipvs_unsupported.go | 1 + pkg/util/ipvs/kernelcheck_unsupported.go | 1 + pkg/util/ipvs/testing/fake_test.go | 20 +- pkg/util/node/node.go | 8 +- pkg/util/node/node_test.go | 19 +- pkg/util/oom/oom_linux.go | 1 + pkg/util/oom/oom_linux_test.go | 1 + pkg/util/oom/oom_unsupported.go | 1 + pkg/util/procfs/procfs_linux.go | 1 + pkg/util/procfs/procfs_linux_test.go | 1 + pkg/util/procfs/procfs_unsupported.go | 1 + pkg/util/rlimit/rlimit_linux.go | 1 + pkg/util/rlimit/rlimit_unsupported.go | 1 + pkg/util/selinux/selinux_linux.go | 1 + pkg/util/selinux/selinux_unsupported.go | 1 + pkg/volume/awsebs/attacher.go | 1 + pkg/volume/awsebs/attacher_linux.go | 4 +- pkg/volume/awsebs/attacher_test.go | 1 + pkg/volume/awsebs/attacher_unsupported.go | 4 +- pkg/volume/awsebs/attacher_windows.go | 4 +- pkg/volume/awsebs/aws_ebs.go | 1 + pkg/volume/awsebs/aws_ebs_block.go | 1 + pkg/volume/awsebs/aws_ebs_block_test.go | 1 + pkg/volume/awsebs/aws_ebs_test.go | 1 + pkg/volume/awsebs/aws_util.go | 1 + pkg/volume/azure_file/azure_file.go | 1 + pkg/volume/azure_file/azure_file_test.go | 1 + pkg/volume/azure_file/azure_provision.go | 1 + pkg/volume/azure_file/azure_util.go | 1 + pkg/volume/azuredd/attacher.go | 1 + pkg/volume/azuredd/attacher_test.go | 1 + pkg/volume/azuredd/azure_common.go | 1 + pkg/volume/azuredd/azure_common_linux.go | 4 +- pkg/volume/azuredd/azure_common_test.go | 1 + .../azuredd/azure_common_unsupported.go | 4 +- pkg/volume/azuredd/azure_common_windows.go | 4 +- pkg/volume/azuredd/azure_dd.go | 1 + pkg/volume/azuredd/azure_dd_block.go | 1 + pkg/volume/azuredd/azure_dd_block_test.go | 1 + pkg/volume/azuredd/azure_dd_max_disk_count.go | 1 + pkg/volume/azuredd/azure_dd_test.go | 1 + pkg/volume/azuredd/azure_mounter.go | 1 + pkg/volume/azuredd/azure_provision.go | 1 + pkg/volume/azuredd/azure_provision_test.go | 1 + pkg/volume/cinder/attacher.go | 1 + pkg/volume/cinder/attacher_test.go | 1 + pkg/volume/cinder/cinder.go | 1 + pkg/volume/cinder/cinder_block.go | 1 + pkg/volume/cinder/cinder_block_test.go | 1 + pkg/volume/cinder/cinder_test.go | 1 + pkg/volume/cinder/cinder_util.go | 1 + pkg/volume/emptydir/empty_dir_linux.go | 1 + pkg/volume/emptydir/empty_dir_test.go | 1 + pkg/volume/emptydir/empty_dir_unsupported.go | 1 + pkg/volume/gcepd/attacher.go | 1 + pkg/volume/gcepd/attacher_test.go | 1 + pkg/volume/gcepd/gce_pd.go | 1 + pkg/volume/gcepd/gce_pd_block.go | 1 + pkg/volume/gcepd/gce_pd_block_test.go | 1 + pkg/volume/gcepd/gce_pd_test.go | 1 + pkg/volume/gcepd/gce_util.go | 1 + pkg/volume/gcepd/gce_util_test.go | 1 + pkg/volume/glusterfs/glusterfs.go | 4 +- pkg/volume/local/local_linux_test.go | 1 + pkg/volume/local/local_test.go | 1 + pkg/volume/metrics_du_test.go | 1 + pkg/volume/util/atomic_writer_test.go | 1 + pkg/volume/util/device_util_linux.go | 1 + pkg/volume/util/device_util_linux_test.go | 1 + pkg/volume/util/device_util_unsupported.go | 1 + pkg/volume/util/fs/fs.go | 1 + pkg/volume/util/fs/fs_unsupported.go | 1 + pkg/volume/util/fs/fs_windows.go | 1 + .../util/fsquota/common/quota_linux_common.go | 1 + .../fsquota/common/quota_linux_common_impl.go | 1 + pkg/volume/util/fsquota/project.go | 1 + pkg/volume/util/fsquota/quota_linux.go | 1 + pkg/volume/util/fsquota/quota_linux_test.go | 1 + pkg/volume/util/fsquota/quota_unsupported.go | 1 + pkg/volume/util/hostutil/hostutil_linux.go | 1 + .../util/hostutil/hostutil_linux_test.go | 1 + .../util/hostutil/hostutil_unsupported.go | 1 + pkg/volume/util/hostutil/hostutil_windows.go | 1 + .../util/hostutil/hostutil_windows_test.go | 1 + pkg/volume/util/subpath/subpath_linux.go | 1 + pkg/volume/util/subpath/subpath_linux_test.go | 1 + .../util/subpath/subpath_unsupported.go | 1 + pkg/volume/util/subpath/subpath_windows.go | 1 + .../util/subpath/subpath_windows_test.go | 1 + .../volume_path_handler_linux.go | 1 + .../volume_path_handler_unsupported.go | 1 + pkg/volume/volume_linux.go | 1 + pkg/volume/volume_linux_test.go | 1 + pkg/volume/volume_unsupported.go | 1 + pkg/volume/vsphere_volume/attacher.go | 1 + pkg/volume/vsphere_volume/attacher_test.go | 1 + pkg/volume/vsphere_volume/vsphere_volume.go | 1 + .../vsphere_volume/vsphere_volume_block.go | 1 + .../vsphere_volume_block_test.go | 1 + .../vsphere_volume/vsphere_volume_test.go | 1 + .../vsphere_volume/vsphere_volume_util.go | 1 + .../vsphere_volume_util_linux.go | 4 +- .../vsphere_volume_util_unsupported.go | 4 +- .../vsphere_volume_util_windows.go | 4 +- pkg/windows/service/service.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../eventratelimit/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../zz_generated.deepcopy.go | 1 + .../serviceaccount/admission_test.go | 9 +- staging/publishing/import-restrictions.yaml | 4 +- .../api/admission/v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../api/apps/v1/zz_generated.deepcopy.go | 1 + .../api/apps/v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/apps/v1beta2/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../authorization/v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../autoscaling/v1/zz_generated.deepcopy.go | 1 + .../v2beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../v2beta2/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/batch/v1/zz_generated.deepcopy.go | 1 + .../batch/v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../certificates/v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../coordination/v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/core/v1/zz_generated.deepcopy.go | 1 + .../api/discovery/v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/events/v1/zz_generated.deepcopy.go | 1 + .../events/v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + staging/src/k8s.io/api/go.sum | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../networking/v1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/node/v1/zz_generated.deepcopy.go | 1 + .../node/v1alpha1/zz_generated.deepcopy.go | 1 + .../api/node/v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/policy/v1/zz_generated.deepcopy.go | 1 + .../policy/v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/rbac/v1/zz_generated.deepcopy.go | 1 + .../rbac/v1alpha1/zz_generated.deepcopy.go | 1 + .../api/rbac/v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../scheduling/v1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../api/storage/v1/zz_generated.deepcopy.go | 1 + .../storage/v1alpha1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../storage/v1beta1/zz_generated.deepcopy.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../examples/client-go/hack/tools.go | 1 + .../pkg/apis/cr/v1/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../apiextensions/v1/zz_generated.deepcopy.go | 1 + .../apiextensions/v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../apiextensions/zz_generated.deepcopy.go | 1 + .../apiserver/schema/zz_generated.deepcopy.go | 1 + .../pkg/cmd/server/options/options.go | 3 +- .../generated/openapi/zz_generated.openapi.go | 1 + staging/src/k8s.io/apimachinery/go.mod | 1 + staging/src/k8s.io/apimachinery/go.sum | 3 + .../api/apitesting/roundtrip/fuzz_norace.go | 1 + .../pkg/api/apitesting/roundtrip/fuzz_race.go | 1 + .../pkg/api/resource/zz_generated.deepcopy.go | 1 + .../zz_generated.conversion.go | 1 + .../internalversion/zz_generated.deepcopy.go | 1 + .../pkg/apis/meta/v1/micro_time_fuzz.go | 1 + .../pkg/apis/meta/v1/time_fuzz.go | 1 + .../v1/unstructured/zz_generated.deepcopy.go | 1 + .../apis/meta/v1/zz_generated.conversion.go | 1 + .../pkg/apis/meta/v1/zz_generated.deepcopy.go | 1 + .../pkg/apis/meta/v1/zz_generated.defaults.go | 1 + .../meta/v1beta1/zz_generated.deepcopy.go | 1 + .../meta/v1beta1/zz_generated.defaults.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../testapigroup/v1/zz_generated.deepcopy.go | 1 + .../testapigroup/v1/zz_generated.defaults.go | 1 + .../testapigroup/zz_generated.deepcopy.go | 1 + .../pkg/labels/zz_generated.deepcopy.go | 1 + .../runtime/testing/zz_generated.deepcopy.go | 1 + .../pkg/runtime/zz_generated.deepcopy.go | 1 + .../pkg/test/zz_generated.deepcopy.go | 1 + .../pkg/util/intstr/instr_fuzz.go | 1 + .../apimachinery/pkg/util/json/json_test.go | 1 + .../k8s.io/apimachinery/pkg/util/net/http.go | 13 +- .../apimachinery/pkg/util/net/http_test.go | 4 +- .../apimachinery/pkg/util/net/interface.go | 5 +- .../pkg/util/net/interface_test.go | 66 +++--- .../apimachinery/pkg/util/net/util_test.go | 4 +- .../pkg/util/validation/validation.go | 7 +- .../pkg/watch/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../resourcequota/v1/zz_generated.deepcopy.go | 1 + .../resourcequota/v1/zz_generated.defaults.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../resourcequota/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.defaults.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../webhookadmission/zz_generated.deepcopy.go | 1 + .../apiserver/v1/zz_generated.conversion.go | 1 + .../apiserver/v1/zz_generated.deepcopy.go | 1 + .../apiserver/v1/zz_generated.defaults.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../apis/apiserver/zz_generated.deepcopy.go | 1 + .../apis/audit/v1/zz_generated.conversion.go | 1 + .../apis/audit/v1/zz_generated.deepcopy.go | 1 + .../apis/audit/v1/zz_generated.defaults.go | 1 + .../audit/v1alpha1/zz_generated.conversion.go | 1 + .../audit/v1alpha1/zz_generated.deepcopy.go | 1 + .../audit/v1alpha1/zz_generated.defaults.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../audit/v1beta1/zz_generated.conversion.go | 1 + .../audit/v1beta1/zz_generated.deepcopy.go | 1 + .../audit/v1beta1/zz_generated.defaults.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../pkg/apis/audit/zz_generated.deepcopy.go | 1 + .../apis/config/v1/zz_generated.conversion.go | 1 + .../apis/config/v1/zz_generated.deepcopy.go | 1 + .../apis/config/v1/zz_generated.defaults.go | 1 + .../pkg/apis/config/zz_generated.deepcopy.go | 1 + .../example/v1/zz_generated.conversion.go | 1 + .../apis/example/v1/zz_generated.deepcopy.go | 1 + .../apis/example/v1/zz_generated.defaults.go | 1 + .../pkg/apis/example/zz_generated.deepcopy.go | 1 + .../example2/v1/zz_generated.conversion.go | 1 + .../apis/example2/v1/zz_generated.deepcopy.go | 1 + .../apis/example2/v1/zz_generated.defaults.go | 1 + .../apis/example2/zz_generated.deepcopy.go | 1 + .../pkg/endpoints/discovery/addresses_test.go | 4 +- .../openapi/testing/zz_generated.deepcopy.go | 1 + .../testing/zz_generated.deepcopy.go | 1 + .../pkg/server/config_selfclient_test.go | 4 +- .../apiserver/pkg/server/config_test.go | 6 +- .../dynamiccertificates/named_certificates.go | 4 +- .../named_certificates_test.go | 6 +- .../pkg/server/genericapiserver_test.go | 3 +- .../server/options/server_run_options_test.go | 22 +- .../apiserver/pkg/server/options/serving.go | 3 +- .../pkg/server/options/serving_test.go | 7 +- .../pkg/server/options/serving_unix.go | 1 + .../pkg/server/options/serving_unix_test.go | 1 + .../pkg/server/options/serving_windows.go | 1 + .../options/serving_with_loopback_test.go | 3 +- .../pkg/server/patch_genericapiserver.go | 3 +- .../apiserver/pkg/server/signal_posix.go | 1 + .../storage/testing/zz_generated.deepcopy.go | 1 + .../envelope/grpc_service_unix_test.go | 1 + .../envelope/testing/kms_plugin_mock.go | 1 + .../pkg/util/webhook/webhook_test.go | 2 +- .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.defaults.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../zz_generated.deepcopy.go | 1 + .../pkg/client/auth/plugins_providers.go | 1 + .../client-go/rest/zz_generated.deepcopy.go | 1 + .../appsv1beta1/zz_generated.conversion.go | 1 + .../appsv1beta2/zz_generated.conversion.go | 1 + .../autoscalingv1/zz_generated.conversion.go | 1 + .../zz_generated.conversion.go | 1 + .../scale/scheme/zz_generated.deepcopy.go | 1 + .../api/v1/zz_generated.conversion.go | 1 + .../clientcmd/api/v1/zz_generated.deepcopy.go | 1 + .../clientcmd/api/v1/zz_generated.defaults.go | 1 + .../clientcmd/api/zz_generated.deepcopy.go | 1 + .../tools/portforward/portforward.go | 5 +- .../src/k8s.io/client-go/util/cert/cert.go | 3 +- .../k8s.io/client-go/util/cert/csr_test.go | 3 +- .../certificate/certificate_manager_test.go | 13 +- .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1alpha1/zz_generated.defaults.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../controllers/route/route_controller.go | 3 +- .../route/route_controller_test.go | 7 +- .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../service/config/zz_generated.deepcopy.go | 1 + .../k8s.io/cloud-provider/options/options.go | 5 +- .../cloud-provider/options/options_test.go | 10 +- staging/src/k8s.io/cluster-bootstrap/go.sum | 3 + .../apis/example/v1/zz_generated.deepcopy.go | 1 + .../apis/example/v1/zz_generated.defaults.go | 1 + .../apis/example/v1/zz_generated.deepcopy.go | 1 + .../apis/example/v1/zz_generated.defaults.go | 1 + .../example/v1/zz_generated.conversion.go | 1 + .../apis/example/v1/zz_generated.deepcopy.go | 1 + .../apis/example/v1/zz_generated.defaults.go | 1 + .../apis/example/zz_generated.deepcopy.go | 1 + .../example2/v1/zz_generated.conversion.go | 1 + .../apis/example2/v1/zz_generated.deepcopy.go | 1 + .../apis/example2/v1/zz_generated.defaults.go | 1 + .../apis/example2/zz_generated.deepcopy.go | 1 + .../example3.io/v1/zz_generated.conversion.go | 1 + .../example3.io/v1/zz_generated.deepcopy.go | 1 + .../example3.io/v1/zz_generated.defaults.go | 1 + .../apis/example3.io/zz_generated.deepcopy.go | 1 + .../apiserver/openapi/zz_generated.openapi.go | 1 + .../apis/example/v1/zz_generated.deepcopy.go | 1 + .../apis/example/v1/zz_generated.defaults.go | 1 + .../apis/example2/v1/zz_generated.deepcopy.go | 1 + .../apis/example2/v1/zz_generated.defaults.go | 1 + staging/src/k8s.io/code-generator/tools.go | 1 + .../cli/flag/ciphersuites_flag_114.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + .../metrics/processstarttime_others.go | 1 + .../metrics/processstarttime_windows.go | 1 + .../reconciliation/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1beta1/zz_generated.conversion.go | 1 + .../config/v1beta1/zz_generated.deepcopy.go | 1 + .../config/zz_generated.deepcopy.go | 1 + staging/src/k8s.io/csi-translation-lib/go.sum | 3 + .../src/k8s.io/kube-aggregator/hack/tools.go | 1 + .../v1/zz_generated.conversion.go | 1 + .../v1/zz_generated.deepcopy.go | 1 + .../v1/zz_generated.defaults.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.defaults.go | 1 + .../zz_generated.prerelease-lifecycle.go | 1 + .../apiregistration/zz_generated.deepcopy.go | 1 + .../generated/openapi/zz_generated.openapi.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1/zz_generated.deepcopy.go | 1 + .../config/v1beta1/zz_generated.deepcopy.go | 1 + .../config/v1beta2/zz_generated.deepcopy.go | 1 + .../extender/v1/zz_generated.deepcopy.go | 1 + .../pkg/cmd/testing/zz_generated.deepcopy.go | 1 + .../kubectl/pkg/util/term/resizeevents.go | 1 + staging/src/k8s.io/kubectl/pkg/util/umask.go | 1 + .../k8s.io/kubectl/pkg/util/umask_windows.go | 1 + .../config/v1alpha1/zz_generated.deepcopy.go | 1 + .../config/v1beta1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.defaults.go | 1 + .../zz_generated.deepcopy.go | 1 + .../k8s.io/legacy-cloud-providers/aws/aws.go | 7 +- .../legacy-cloud-providers/aws/aws_fakes.go | 1 + .../aws/aws_instancegroups.go | 1 + .../aws/aws_loadbalancer.go | 1 + .../aws/aws_loadbalancer_test.go | 1 + .../legacy-cloud-providers/aws/aws_metrics.go | 1 + .../legacy-cloud-providers/aws/aws_routes.go | 1 + .../legacy-cloud-providers/aws/aws_test.go | 1 + .../legacy-cloud-providers/aws/aws_utils.go | 1 + .../aws/device_allocator.go | 1 + .../aws/device_allocator_test.go | 1 + .../legacy-cloud-providers/aws/instances.go | 1 + .../aws/instances_test.go | 1 + .../legacy-cloud-providers/aws/log_handler.go | 1 + .../aws/retry_handler.go | 1 + .../aws/retry_handler_test.go | 1 + .../aws/sets_ippermissions.go | 1 + .../k8s.io/legacy-cloud-providers/aws/tags.go | 1 + .../legacy-cloud-providers/aws/tags_test.go | 1 + .../legacy-cloud-providers/aws/volumes.go | 1 + .../legacy-cloud-providers/azure/azure.go | 1 + .../azure/azure_backoff.go | 1 + .../azure/azure_backoff_test.go | 1 + .../azure/azure_blobDiskController.go | 1 + .../azure/azure_blobDiskController_test.go | 1 + .../azure/azure_config.go | 1 + .../azure/azure_config_test.go | 1 + .../azure/azure_controller_common.go | 1 + .../azure/azure_controller_common_test.go | 1 + .../azure/azure_controller_standard.go | 1 + .../azure/azure_controller_standard_test.go | 1 + .../azure/azure_controller_vmss.go | 1 + .../azure/azure_controller_vmss_test.go | 1 + .../azure/azure_fakes.go | 1 + .../azure/azure_file.go | 1 + .../azure/azure_instance_metadata.go | 1 + .../azure/azure_instances.go | 1 + .../azure/azure_instances_test.go | 1 + .../azure/azure_loadbalancer.go | 1 + .../azure/azure_loadbalancer_test.go | 1 + .../azure/azure_managedDiskController.go | 1 + .../azure/azure_managedDiskController_test.go | 1 + .../azure/azure_ratelimit.go | 1 + .../azure/azure_ratelimit_test.go | 1 + .../azure/azure_routes.go | 1 + .../azure/azure_routes_test.go | 1 + .../azure/azure_standard.go | 1 + .../azure/azure_standard_test.go | 1 + .../azure/azure_storage.go | 1 + .../azure/azure_storage_test.go | 1 + .../azure/azure_storageaccount.go | 1 + .../azure/azure_storageaccount_test.go | 1 + .../azure/azure_test.go | 1 + .../azure/azure_utils.go | 1 + .../azure/azure_utils_test.go | 1 + .../azure/azure_vmsets.go | 1 + .../azure/azure_vmss.go | 1 + .../azure/azure_vmss_cache.go | 1 + .../azure/azure_vmss_cache_test.go | 1 + .../azure/azure_vmss_test.go | 1 + .../azure/azure_wrap.go | 1 + .../azure/azure_wrap_test.go | 1 + .../azure/azure_zones.go | 1 + .../azure/azure_zones_test.go | 1 + .../azure/cache/azure_cache.go | 1 + .../azure/cache/azure_cache_test.go | 1 + .../legacy-cloud-providers/azure/cache/doc.go | 1 + .../clients/armclient/azure_armclient.go | 1 + .../clients/armclient/azure_armclient_test.go | 1 + .../azure/clients/armclient/doc.go | 1 + .../azure/clients/armclient/interface.go | 1 + .../clients/armclient/mockarmclient/doc.go | 1 + .../armclient/mockarmclient/interface.go | 1 + .../azure/clients/azure_client_config.go | 1 + .../azure/clients/azure_client_config_test.go | 1 + .../azure_containerserviceclient.go | 1 + .../azure_containerserviceclient_test.go | 1 + .../clients/containerserviceclient/doc.go | 1 + .../containerserviceclient/interface.go | 1 + .../mockcontainerserviceclient/doc.go | 1 + .../mockcontainerserviceclient/interface.go | 1 + .../azure_deploymentclient.go | 1 + .../azure_deploymentclient_test.go | 1 + .../azure/clients/deploymentclient/doc.go | 1 + .../clients/deploymentclient/interface.go | 1 + .../mockdeploymentclient/doc.go | 1 + .../mockdeploymentclient/interface.go | 1 + .../clients/diskclient/azure_diskclient.go | 1 + .../diskclient/azure_diskclient_test.go | 1 + .../azure/clients/diskclient/doc.go | 1 + .../azure/clients/diskclient/interface.go | 1 + .../clients/diskclient/mockdiskclient/doc.go | 1 + .../diskclient/mockdiskclient/interface.go | 1 + .../azure/clients/doc.go | 1 + .../clients/fileclient/azure_fileclient.go | 1 + .../azure/clients/fileclient/doc.go | 1 + .../azure/clients/fileclient/interface.go | 1 + .../clients/fileclient/mockfileclient/doc.go | 1 + .../fileclient/mockfileclient/interface.go | 1 + .../interfaceclient/azure_interfaceclient.go | 1 + .../azure_interfaceclient_test.go | 1 + .../azure/clients/interfaceclient/doc.go | 1 + .../clients/interfaceclient/interface.go | 1 + .../mockinterfaceclient/doc.go | 1 + .../mockinterfaceclient/interface.go | 1 + .../azure_loadbalancerclient.go | 1 + .../azure_loadbalancerclient_test.go | 1 + .../azure/clients/loadbalancerclient/doc.go | 1 + .../clients/loadbalancerclient/interface.go | 1 + .../mockloadbalancerclient/doc.go | 1 + .../mockloadbalancerclient/interface.go | 1 + .../publicipclient/azure_publicipclient.go | 1 + .../azure_publicipclient_test.go | 1 + .../azure/clients/publicipclient/doc.go | 1 + .../azure/clients/publicipclient/interface.go | 1 + .../publicipclient/mockpublicipclient/doc.go | 1 + .../mockpublicipclient/interface.go | 1 + .../clients/routeclient/azure_routeclient.go | 1 + .../routeclient/azure_routeclient_test.go | 1 + .../azure/clients/routeclient/doc.go | 1 + .../azure/clients/routeclient/interface.go | 1 + .../routeclient/mockrouteclient/doc.go | 1 + .../routeclient/mockrouteclient/interface.go | 1 + .../azure_routetableclient.go | 1 + .../azure_routetableclient_test.go | 1 + .../azure/clients/routetableclient/doc.go | 1 + .../clients/routetableclient/interface.go | 1 + .../mockroutetableclient/doc.go | 1 + .../mockroutetableclient/interface.go | 1 + .../azure_securitygroupclient.go | 1 + .../azure_securitygroupclient_test.go | 1 + .../azure/clients/securitygroupclient/doc.go | 1 + .../clients/securitygroupclient/interface.go | 1 + .../mocksecuritygroupclient/doc.go | 1 + .../mocksecuritygroupclient/interface.go | 1 + .../snapshotclient/azure_snapshotclient.go | 1 + .../azure_snapshotclient_test.go | 1 + .../azure/clients/snapshotclient/doc.go | 1 + .../azure/clients/snapshotclient/interface.go | 1 + .../snapshotclient/mocksnapshotclient/doc.go | 1 + .../mocksnapshotclient/interface.go | 1 + .../azure_storageaccountclient.go | 1 + .../azure_storageaccountclient_test.go | 1 + .../azure/clients/storageaccountclient/doc.go | 1 + .../clients/storageaccountclient/interface.go | 1 + .../mockstorageaccountclient/doc.go | 1 + .../mockstorageaccountclient/interface.go | 1 + .../subnetclient/azure_subnetclient.go | 1 + .../subnetclient/azure_subnetclient_test.go | 1 + .../azure/clients/subnetclient/doc.go | 1 + .../azure/clients/subnetclient/interface.go | 1 + .../subnetclient/mocksubnetclient/doc.go | 1 + .../mocksubnetclient/interface.go | 1 + .../azure/clients/vmclient/azure_vmclient.go | 1 + .../clients/vmclient/azure_vmclient_test.go | 1 + .../azure/clients/vmclient/doc.go | 1 + .../azure/clients/vmclient/interface.go | 1 + .../clients/vmclient/mockvmclient/doc.go | 1 + .../vmclient/mockvmclient/interface.go | 1 + .../vmsizeclient/azure_vmsizeclient.go | 1 + .../vmsizeclient/azure_vmsizeclient_test.go | 1 + .../azure/clients/vmsizeclient/doc.go | 1 + .../azure/clients/vmsizeclient/interface.go | 1 + .../vmsizeclient/mockvmsizeclient/doc.go | 1 + .../mockvmsizeclient/interface.go | 1 + .../clients/vmssclient/azure_vmssclient.go | 1 + .../vmssclient/azure_vmssclient_test.go | 1 + .../azure/clients/vmssclient/doc.go | 1 + .../azure/clients/vmssclient/interface.go | 1 + .../clients/vmssclient/mockvmssclient/doc.go | 1 + .../vmssclient/mockvmssclient/interface.go | 1 + .../vmssvmclient/azure_vmssvmclient.go | 1 + .../vmssvmclient/azure_vmssvmclient_test.go | 1 + .../azure/clients/vmssvmclient/doc.go | 1 + .../azure/clients/vmssvmclient/interface.go | 1 + .../vmssvmclient/mockvmssvmclient/doc.go | 1 + .../mockvmssvmclient/interface.go | 1 + .../legacy-cloud-providers/azure/doc.go | 1 + .../azure/metrics/azure_metrics.go | 1 + .../azure/metrics/azure_metrics_test.go | 1 + .../azure/metrics/doc.go | 1 + .../azure/mockvmsets/azure_mock_vmsets.go | 1 + .../azure/mockvmsets/doc.go | 1 + .../azure/retry/azure_error.go | 1 + .../azure/retry/azure_error_test.go | 1 + .../azure/retry/azure_retry.go | 1 + .../azure/retry/azure_retry_test.go | 1 + .../legacy-cloud-providers/azure/retry/doc.go | 1 + .../k8s.io/legacy-cloud-providers/gce/gce.go | 1 + .../gce/gce_address_manager.go | 1 + .../gce/gce_address_manager_test.go | 1 + .../gce/gce_addresses.go | 1 + .../legacy-cloud-providers/gce/gce_alpha.go | 1 + .../gce/gce_annotations.go | 1 + .../gce/gce_annotations_test.go | 1 + .../gce/gce_backendservice.go | 1 + .../legacy-cloud-providers/gce/gce_cert.go | 1 + .../gce/gce_clusterid.go | 1 + .../gce/gce_clusters.go | 1 + .../legacy-cloud-providers/gce/gce_disks.go | 1 + .../gce/gce_disks_test.go | 1 + .../legacy-cloud-providers/gce/gce_fake.go | 1 + .../gce/gce_firewall.go | 1 + .../gce/gce_forwardingrule.go | 1 + .../gce/gce_healthchecks.go | 1 + .../gce/gce_healthchecks_test.go | 1 + .../gce/gce_instancegroup.go | 1 + .../gce/gce_instances.go | 1 + .../gce/gce_instances_test.go | 1 + .../gce/gce_interfaces.go | 1 + .../gce/gce_loadbalancer.go | 14 +- .../gce/gce_loadbalancer_external.go | 1 + .../gce/gce_loadbalancer_external_test.go | 1 + .../gce/gce_loadbalancer_internal.go | 1 + .../gce/gce_loadbalancer_internal_test.go | 1 + .../gce/gce_loadbalancer_metrics.go | 1 + .../gce/gce_loadbalancer_metrics_test.go | 1 + .../gce/gce_loadbalancer_naming.go | 1 + .../gce/gce_loadbalancer_test.go | 1 + .../gce/gce_loadbalancer_utils_test.go | 1 + .../gce/gce_networkendpointgroup.go | 1 + .../legacy-cloud-providers/gce/gce_routes.go | 1 + .../gce/gce_securitypolicy.go | 1 + .../gce/gce_targetpool.go | 1 + .../gce/gce_targetproxy.go | 1 + .../legacy-cloud-providers/gce/gce_test.go | 1 + .../legacy-cloud-providers/gce/gce_tpu.go | 1 + .../legacy-cloud-providers/gce/gce_urlmap.go | 1 + .../legacy-cloud-providers/gce/gce_util.go | 6 +- .../gce/gce_util_test.go | 5 +- .../legacy-cloud-providers/gce/gce_zones.go | 1 + .../legacy-cloud-providers/gce/metrics.go | 1 + .../gce/metrics_test.go | 1 + .../legacy-cloud-providers/gce/support.go | 1 + .../gce/token_source.go | 1 + .../openstack/metadata.go | 1 + .../openstack/metadata_test.go | 1 + .../openstack/openstack.go | 7 +- .../openstack/openstack_client.go | 1 + .../openstack/openstack_instances.go | 1 + .../openstack/openstack_loadbalancer.go | 5 +- .../openstack/openstack_metrics.go | 1 + .../openstack/openstack_routes.go | 7 +- .../openstack/openstack_routes_test.go | 5 +- .../openstack/openstack_test.go | 1 + .../openstack/openstack_volumes.go | 1 + .../vsphere/credentialmanager.go | 1 + .../vsphere/credentialmanager_test.go | 1 + .../vsphere/nodemanager.go | 1 + .../vsphere/shared_datastore.go | 1 + .../legacy-cloud-providers/vsphere/vsphere.go | 4 +- .../vsphere/vsphere_test.go | 1 + .../vsphere/vsphere_util.go | 1 + .../vsphere/vsphere_util_linux.go | 4 +- .../vsphere/vsphere_util_test.go | 1 + .../vsphere/vsphere_util_unsupported.go | 4 +- .../vsphere/vsphere_util_windows.go | 4 +- .../vsphere/vsphere_volume_map.go | 1 + .../vsphere/vsphere_volume_map_test.go | 1 + staging/src/k8s.io/metrics/hack/tools.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../v1beta2/zz_generated.conversion.go | 1 + .../v1beta2/zz_generated.deepcopy.go | 1 + .../custom_metrics/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../v1beta1/zz_generated.deepcopy.go | 1 + .../external_metrics/zz_generated.deepcopy.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../metrics/v1alpha1/zz_generated.deepcopy.go | 1 + .../v1beta1/zz_generated.conversion.go | 1 + .../metrics/v1beta1/zz_generated.deepcopy.go | 1 + .../pkg/apis/metrics/zz_generated.deepcopy.go | 1 + .../k8s.io/mount-utils/mount_helper_unix.go | 1 + .../mount-utils/mount_helper_unix_test.go | 1 + .../mount-utils/mount_helper_windows.go | 1 + .../mount-utils/mount_helper_windows_test.go | 1 + staging/src/k8s.io/mount-utils/mount_linux.go | 1 + .../k8s.io/mount-utils/mount_linux_test.go | 1 + .../k8s.io/mount-utils/mount_unsupported.go | 1 + .../src/k8s.io/mount-utils/mount_windows.go | 1 + .../k8s.io/mount-utils/mount_windows_test.go | 1 + .../src/k8s.io/mount-utils/resizefs_linux.go | 1 + .../k8s.io/mount-utils/resizefs_linux_test.go | 1 + .../mount-utils/resizefs_unsupported.go | 1 + .../api/v1alpha1/zz_generated.conversion.go | 1 + .../api/v1alpha1/zz_generated.deepcopy.go | 1 + .../api/v1alpha1/zz_generated.defaults.go | 1 + .../admission/api/zz_generated.deepcopy.go | 1 + staging/src/k8s.io/sample-apiserver/go.mod | 1 + .../src/k8s.io/sample-apiserver/hack/tools.go | 1 + .../v1alpha1/zz_generated.conversion.go | 1 + .../wardle/v1alpha1/zz_generated.deepcopy.go | 1 + .../wardle/v1alpha1/zz_generated.defaults.go | 1 + .../wardle/v1beta1/zz_generated.conversion.go | 1 + .../wardle/v1beta1/zz_generated.deepcopy.go | 1 + .../wardle/v1beta1/zz_generated.defaults.go | 1 + .../pkg/apis/wardle/zz_generated.deepcopy.go | 1 + .../sample-apiserver/pkg/cmd/server/start.go | 3 +- .../generated/openapi/zz_generated.openapi.go | 1 + .../k8s.io/sample-controller/hack/tools.go | 1 + .../v1alpha1/zz_generated.deepcopy.go | 1 + .../pkg/signals/signal_posix.go | 1 + test/e2e/framework/ingress/ingress_utils.go | 3 +- test/e2e/framework/service/jig.go | 12 +- test/e2e/framework/util.go | 3 +- test/e2e/network/netpol/kubemanager.go | 3 +- test/e2e/network/netpol/network_legacy.go | 15 +- test/e2e/network/netpol/probe.go | 4 +- test/e2e_kubeadm/networking_test.go | 10 +- test/e2e_node/benchmark_util.go | 1 + test/e2e_node/container_manager_test.go | 1 + test/e2e_node/density_test.go | 1 + test/e2e_node/e2e_node_suite_test.go | 1 + test/e2e_node/node_container_manager_test.go | 1 + test/e2e_node/node_problem_detector_linux.go | 1 + test/e2e_node/node_shutdown_linux_test.go | 1 + test/e2e_node/resource_collector.go | 1 + test/e2e_node/resource_usage_test.go | 1 + test/e2e_node/restart_test.go | 1 + test/e2e_node/runner/remote/run_remote.go | 2 +- test/e2e_node/services/apiserver.go | 6 +- test/e2e_node/util_xfs_linux.go | 1 + test/e2e_node/util_xfs_unsupported.go | 1 + test/e2e_node/utils_linux.go | 1 + test/e2e_node/utils_unsupported.go | 1 + test/images/agnhost/dns/dns.go | 1 + test/images/agnhost/dns/dns_windows.go | 1 + test/images/agnhost/mounttest/mt_utils.go | 1 + .../agnhost/mounttest/mt_utils_windows.go | 1 + test/images/agnhost/netexec/netexec.go | 3 +- test/images/agnhost/nettest/nettest.go | 2 +- test/images/agnhost/no-snat-test/main.go | 6 +- test/images/agnhost/pause/pause.go | 2 +- test/images/regression-issue-74839/main.go | 10 +- .../consume-cpu/consume_cpu.go | 1 + .../consume-cpu/consume_cpu_windows.go | 1 + test/images/resource-consumer/utils.go | 1 + .../images/resource-consumer/utils_windows.go | 1 + .../controlplane/kms_transformation_test.go | 1 + .../synthetic_controlplane_test.go | 4 +- .../dualstack/dualstack_endpoints_test.go | 6 +- test/integration/dualstack/dualstack_test.go | 36 +-- test/integration/etcd/server.go | 3 +- test/integration/examples/apiserver_test.go | 3 +- .../framework/controlplane_utils.go | 5 +- test/integration/framework/test_server.go | 5 +- test/integration/ipamperf/ipam_test.go | 5 +- 1344 files changed, 2328 insertions(+), 1020 deletions(-) diff --git a/build/tools.go b/build/tools.go index 0007c065833f..677e45419e6e 100644 --- a/build/tools.go +++ b/build/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools /* diff --git a/cluster/images/etcd/migrate/integration_test.go b/cluster/images/etcd/migrate/integration_test.go index ff3b2959e7f5..a5afd6104c5c 100644 --- a/cluster/images/etcd/migrate/integration_test.go +++ b/cluster/images/etcd/migrate/integration_test.go @@ -1,3 +1,4 @@ +//go:build integration // +build integration /* @@ -39,6 +40,7 @@ import ( "github.com/blang/semver" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) var ( @@ -307,7 +309,7 @@ func getOrCreateTestCertFiles(certFileName, keyFileName string, spec TestCertSpe func parseIPList(ips []string) []net.IP { var netIPs []net.IP for _, ip := range ips { - netIPs = append(netIPs, net.ParseIP(ip)) + netIPs = append(netIPs, netutils.ParseIPSloppy(ip)) } return netIPs } @@ -335,7 +337,7 @@ func generateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS IsCA: true, } - if ip := net.ParseIP(host); ip != nil { + if ip := netutils.ParseIPSloppy(host); ip != nil { template.IPAddresses = append(template.IPAddresses, ip) } else { template.DNSNames = append(template.DNSNames, host) diff --git a/cluster/images/etcd/migrate/util_others.go b/cluster/images/etcd/migrate/util_others.go index a25dc5c2078b..79c826712a27 100644 --- a/cluster/images/etcd/migrate/util_others.go +++ b/cluster/images/etcd/migrate/util_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cluster/images/etcd/migrate/utils_windows.go b/cluster/images/etcd/migrate/utils_windows.go index 35ac1ef356ec..be7cce349b82 100644 --- a/cluster/images/etcd/migrate/utils_windows.go +++ b/cluster/images/etcd/migrate/utils_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/cloud-controller-manager/nodeipamcontroller.go b/cmd/cloud-controller-manager/nodeipamcontroller.go index ebceef0629fb..9831950e9c5f 100644 --- a/cmd/cloud-controller-manager/nodeipamcontroller.go +++ b/cmd/cloud-controller-manager/nodeipamcontroller.go @@ -96,14 +96,14 @@ func startNodeIpamController(ccmConfig *cloudcontrollerconfig.CompletedConfig, n // service cidr processing if len(strings.TrimSpace(nodeIPAMConfig.ServiceCIDR)) != 0 { - _, serviceCIDR, err = net.ParseCIDR(nodeIPAMConfig.ServiceCIDR) + _, serviceCIDR, err = netutils.ParseCIDRSloppy(nodeIPAMConfig.ServiceCIDR) if err != nil { klog.Warningf("Unsuccessful parsing of service CIDR %v: %v", nodeIPAMConfig.ServiceCIDR, err) } } if len(strings.TrimSpace(nodeIPAMConfig.SecondaryServiceCIDR)) != 0 { - _, secondaryServiceCIDR, err = net.ParseCIDR(nodeIPAMConfig.SecondaryServiceCIDR) + _, secondaryServiceCIDR, err = netutils.ParseCIDRSloppy(nodeIPAMConfig.SecondaryServiceCIDR) if err != nil { klog.Warningf("Unsuccessful parsing of service CIDR %v: %v", nodeIPAMConfig.SecondaryServiceCIDR, err) } diff --git a/cmd/cloud-controller-manager/providers.go b/cmd/cloud-controller-manager/providers.go index 91a74e758d37..aa063d928448 100644 --- a/cmd/cloud-controller-manager/providers.go +++ b/cmd/cloud-controller-manager/providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/cmd/kube-apiserver/app/options/globalflags_providerless.go b/cmd/kube-apiserver/app/options/globalflags_providerless.go index de00215c414f..30d0598e33a3 100644 --- a/cmd/kube-apiserver/app/options/globalflags_providerless.go +++ b/cmd/kube-apiserver/app/options/globalflags_providerless.go @@ -1,3 +1,4 @@ +//go:build providerless // +build providerless /* diff --git a/cmd/kube-apiserver/app/options/globalflags_providers.go b/cmd/kube-apiserver/app/options/globalflags_providers.go index 61107cf38076..76e7d1a8c806 100644 --- a/cmd/kube-apiserver/app/options/globalflags_providers.go +++ b/cmd/kube-apiserver/app/options/globalflags_providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/cmd/kube-apiserver/app/options/options_test.go b/cmd/kube-apiserver/app/options/options_test.go index 912285fd4bf9..09214ae41dbf 100644 --- a/cmd/kube-apiserver/app/options/options_test.go +++ b/cmd/kube-apiserver/app/options/options_test.go @@ -39,6 +39,7 @@ import ( "k8s.io/kubernetes/pkg/controlplane/reconcilers" kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" + netutils "k8s.io/utils/net" ) func TestAddFlags(t *testing.T) { @@ -124,12 +125,12 @@ func TestAddFlags(t *testing.T) { // This is a snapshot of expected options parsed by args. expected := &ServerRunOptions{ ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange, - ServiceClusterIPRanges: (&net.IPNet{IP: net.ParseIP("192.168.128.0"), Mask: net.CIDRMask(17, 32)}).String(), + ServiceClusterIPRanges: (&net.IPNet{IP: netutils.ParseIPSloppy("192.168.128.0"), Mask: net.CIDRMask(17, 32)}).String(), MasterCount: 5, EndpointReconcilerType: string(reconcilers.LeaseEndpointReconcilerType), AllowPrivileged: false, GenericServerRunOptions: &apiserveroptions.ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: 200, @@ -175,7 +176,7 @@ func TestAddFlags(t *testing.T) { DefaultWatchCacheSize: 100, }, SecureServing: (&apiserveroptions.SecureServingOptions{ - BindAddress: net.ParseIP("192.168.10.20"), + BindAddress: netutils.ParseIPSloppy("192.168.10.20"), BindPort: 6443, ServerCert: apiserveroptions.GeneratableKeyCert{ CertDirectory: "/var/run/kubernetes", diff --git a/cmd/kube-apiserver/app/options/validation_test.go b/cmd/kube-apiserver/app/options/validation_test.go index d3d323c97d89..396f8557f24f 100644 --- a/cmd/kube-apiserver/app/options/validation_test.go +++ b/cmd/kube-apiserver/app/options/validation_test.go @@ -23,6 +23,7 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/features" + netutils "k8s.io/utils/net" ) func makeOptionsWithCIDRs(serviceCIDR string, secondaryServiceCIDR string) *ServerRunOptions { @@ -33,14 +34,14 @@ func makeOptionsWithCIDRs(serviceCIDR string, secondaryServiceCIDR string) *Serv var primaryCIDR, secondaryCIDR net.IPNet if len(serviceCIDR) > 0 { - _, cidr, _ := net.ParseCIDR(serviceCIDR) + _, cidr, _ := netutils.ParseCIDRSloppy(serviceCIDR) if cidr != nil { primaryCIDR = *(cidr) } } if len(secondaryServiceCIDR) > 0 { - _, cidr, _ := net.ParseCIDR(secondaryServiceCIDR) + _, cidr, _ := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if cidr != nil { secondaryCIDR = *(cidr) } @@ -151,7 +152,7 @@ func TestClusterServiceIPRange(t *testing.T) { } func getIPnetFromCIDR(cidr string) *net.IPNet { - _, ipnet, _ := net.ParseCIDR(cidr) + _, ipnet, _ := netutils.ParseCIDRSloppy(cidr) return ipnet } diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index d858391fb370..cdfb8ed6bb4f 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -33,6 +33,7 @@ import ( "k8s.io/kubernetes/openshift-kube-apiserver/admission/admissionenablement" "k8s.io/kubernetes/openshift-kube-apiserver/enablement" "k8s.io/kubernetes/openshift-kube-apiserver/openshiftkubeapiserver" + netutils "k8s.io/utils/net" "github.com/spf13/cobra" "github.com/spf13/pflag" @@ -727,7 +728,7 @@ func getServiceIPAndRanges(serviceClusterIPRanges string) (net.IP, net.IPNet, ne return apiServerServiceIP, primaryServiceIPRange, net.IPNet{}, nil } - _, primaryServiceClusterCIDR, err := net.ParseCIDR(serviceClusterIPRangeList[0]) + _, primaryServiceClusterCIDR, err := netutils.ParseCIDRSloppy(serviceClusterIPRangeList[0]) if err != nil { return net.IP{}, net.IPNet{}, net.IPNet{}, fmt.Errorf("service-cluster-ip-range[0] is not a valid cidr") } @@ -740,7 +741,7 @@ func getServiceIPAndRanges(serviceClusterIPRanges string) (net.IP, net.IPNet, ne // user provided at least two entries // note: validation asserts that the list is max of two dual stack entries if len(serviceClusterIPRangeList) > 1 { - _, secondaryServiceClusterCIDR, err := net.ParseCIDR(serviceClusterIPRangeList[1]) + _, secondaryServiceClusterCIDR, err := netutils.ParseCIDRSloppy(serviceClusterIPRangeList[1]) if err != nil { return net.IP{}, net.IPNet{}, net.IPNet{}, fmt.Errorf("service-cluster-ip-range[1] is not an ip net") } diff --git a/cmd/kube-controller-manager/app/core.go b/cmd/kube-controller-manager/app/core.go index b4333bb5f194..d4bd27827372 100644 --- a/cmd/kube-controller-manager/app/core.go +++ b/cmd/kube-controller-manager/app/core.go @@ -127,14 +127,14 @@ func startNodeIpamController(ctx ControllerContext) (http.Handler, bool, error) // service cidr processing if len(strings.TrimSpace(ctx.ComponentConfig.NodeIPAMController.ServiceCIDR)) != 0 { - _, serviceCIDR, err = net.ParseCIDR(ctx.ComponentConfig.NodeIPAMController.ServiceCIDR) + _, serviceCIDR, err = netutils.ParseCIDRSloppy(ctx.ComponentConfig.NodeIPAMController.ServiceCIDR) if err != nil { klog.Warningf("Unsuccessful parsing of service CIDR %v: %v", ctx.ComponentConfig.NodeIPAMController.ServiceCIDR, err) } } if len(strings.TrimSpace(ctx.ComponentConfig.NodeIPAMController.SecondaryServiceCIDR)) != 0 { - _, secondaryServiceCIDR, err = net.ParseCIDR(ctx.ComponentConfig.NodeIPAMController.SecondaryServiceCIDR) + _, secondaryServiceCIDR, err = netutils.ParseCIDRSloppy(ctx.ComponentConfig.NodeIPAMController.SecondaryServiceCIDR) if err != nil { klog.Warningf("Unsuccessful parsing of service CIDR %v: %v", ctx.ComponentConfig.NodeIPAMController.SecondaryServiceCIDR, err) } diff --git a/cmd/kube-controller-manager/app/flags_providerless.go b/cmd/kube-controller-manager/app/flags_providerless.go index f08fc68e26b4..3f1cf42173af 100644 --- a/cmd/kube-controller-manager/app/flags_providerless.go +++ b/cmd/kube-controller-manager/app/flags_providerless.go @@ -1,3 +1,4 @@ +//go:build providerless // +build providerless /* diff --git a/cmd/kube-controller-manager/app/flags_providers.go b/cmd/kube-controller-manager/app/flags_providers.go index cb8a5a0cf44f..1b4f44c80d27 100644 --- a/cmd/kube-controller-manager/app/flags_providers.go +++ b/cmd/kube-controller-manager/app/flags_providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index d098ff274947..3f63c0d73663 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -45,6 +45,7 @@ import ( kubectrlmgrconfigscheme "k8s.io/kubernetes/pkg/controller/apis/config/scheme" "k8s.io/kubernetes/pkg/controller/garbagecollector" garbagecollectorconfig "k8s.io/kubernetes/pkg/controller/garbagecollector/config" + netutils "k8s.io/utils/net" // add the kubernetes feature gates _ "k8s.io/kubernetes/pkg/features" @@ -430,7 +431,7 @@ func (s KubeControllerManagerOptions) Config(allControllers []string, disabledBy return nil, err } - if err := s.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{net.ParseIP("127.0.0.1")}); err != nil { + if err := s.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{netutils.ParseIPSloppy("127.0.0.1")}); err != nil { return nil, fmt.Errorf("error creating self-signed certificates: %v", err) } diff --git a/cmd/kube-controller-manager/app/options/options_test.go b/cmd/kube-controller-manager/app/options/options_test.go index 167c00ee5341..90e354ab22a1 100644 --- a/cmd/kube-controller-manager/app/options/options_test.go +++ b/cmd/kube-controller-manager/app/options/options_test.go @@ -17,7 +17,6 @@ limitations under the License. package options import ( - "net" "reflect" "sort" "testing" @@ -60,6 +59,7 @@ import ( ttlafterfinishedconfig "k8s.io/kubernetes/pkg/controller/ttlafterfinished/config" attachdetachconfig "k8s.io/kubernetes/pkg/controller/volume/attachdetach/config" persistentvolumeconfig "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/config" + netutils "k8s.io/utils/net" ) var args = []string{ @@ -396,7 +396,7 @@ func TestAddFlags(t *testing.T) { }, SecureServing: (&apiserveroptions.SecureServingOptions{ BindPort: 10001, - BindAddress: net.ParseIP("192.168.4.21"), + BindAddress: netutils.ParseIPSloppy("192.168.4.21"), ServerCert: apiserveroptions.GeneratableKeyCert{ CertDirectory: "/a/b/c", PairName: "kube-controller-manager", diff --git a/cmd/kube-controller-manager/app/plugins_providerless.go b/cmd/kube-controller-manager/app/plugins_providerless.go index f0ded7da355a..e1b625d1ad9b 100644 --- a/cmd/kube-controller-manager/app/plugins_providerless.go +++ b/cmd/kube-controller-manager/app/plugins_providerless.go @@ -1,3 +1,4 @@ +//go:build providerless // +build providerless /* diff --git a/cmd/kube-controller-manager/app/plugins_providers.go b/cmd/kube-controller-manager/app/plugins_providers.go index 69660eaaf412..96c6c5cc949a 100644 --- a/cmd/kube-controller-manager/app/plugins_providers.go +++ b/cmd/kube-controller-manager/app/plugins_providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/cmd/kube-proxy/app/init_others.go b/cmd/kube-proxy/app/init_others.go index 6c0e6b8c7d57..cee69f1a0eb2 100644 --- a/cmd/kube-proxy/app/init_others.go +++ b/cmd/kube-proxy/app/init_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kube-proxy/app/init_windows.go b/cmd/kube-proxy/app/init_windows.go index 5db0b703f40b..ea4b306b58d0 100644 --- a/cmd/kube-proxy/app/init_windows.go +++ b/cmd/kube-proxy/app/init_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index 0abb02dd07a4..6175270c7a7a 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -86,7 +86,7 @@ import ( utilipvs "k8s.io/kubernetes/pkg/util/ipvs" "k8s.io/kubernetes/pkg/util/oom" "k8s.io/utils/exec" - utilsnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" ) @@ -828,13 +828,13 @@ func (s *ProxyServer) CleanupAndExit() error { // 2. the primary IP from the Node object, if set // 3. if no IP is found it defaults to 127.0.0.1 and IPv4 func detectNodeIP(client clientset.Interface, hostname, bindAddress string) net.IP { - nodeIP := net.ParseIP(bindAddress) + nodeIP := netutils.ParseIPSloppy(bindAddress) if nodeIP.IsUnspecified() { nodeIP = utilnode.GetNodeIP(client, hostname) } if nodeIP == nil { klog.V(0).Infof("can't determine this node's IP, assuming 127.0.0.1; if this is incorrect, please set the --bind-address flag") - nodeIP = net.ParseIP("127.0.0.1") + nodeIP = netutils.ParseIPSloppy("127.0.0.1") } return nodeIP } @@ -845,8 +845,8 @@ func detectNodeIP(client clientset.Interface, hostname, bindAddress string) net. func nodeIPTuple(bindAddress string) [2]net.IP { nodes := [2]net.IP{net.IPv4zero, net.IPv6zero} - adr := net.ParseIP(bindAddress) - if utilsnet.IsIPv6(adr) { + adr := netutils.ParseIPSloppy(bindAddress) + if netutils.IsIPv6(adr) { nodes[1] = adr } else { nodes[0] = adr diff --git a/cmd/kube-proxy/app/server_others.go b/cmd/kube-proxy/app/server_others.go index 1d9a4f617f96..049bd6e3ecc0 100644 --- a/cmd/kube-proxy/app/server_others.go +++ b/cmd/kube-proxy/app/server_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* @@ -24,7 +25,6 @@ import ( "context" "errors" "fmt" - "net" goruntime "runtime" "strings" "time" @@ -65,7 +65,7 @@ import ( utilnode "k8s.io/kubernetes/pkg/util/node" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" "k8s.io/utils/exec" - utilsnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" "k8s.io/klog/v2" ) @@ -177,7 +177,7 @@ func newProxyServer( klog.V(2).Info("DetectLocalMode: '", string(detectLocalMode), "'") primaryProtocol := utiliptables.ProtocolIPv4 - if utilsnet.IsIPv6(nodeIP) { + if netutils.IsIPv6(nodeIP) { primaryProtocol = utiliptables.ProtocolIPv6 } iptInterface = utiliptables.New(execer, primaryProtocol) @@ -350,7 +350,7 @@ func newProxyServer( // TODO this has side effects that should only happen when Run() is invoked. proxier, err = userspace.NewProxier( userspace.NewLoadBalancerRR(), - net.ParseIP(config.BindAddress), + netutils.ParseIPSloppy(config.BindAddress), iptInterface, execer, *utilnet.ParsePortRangeOrDie(config.PortRange), @@ -504,7 +504,7 @@ func getDualStackLocalDetectorTuple(mode proxyconfigapi.LocalMode, config *proxy } // localDetectors, like ipt, need to be of the order [IPv4, IPv6], but PodCIDRs is setup so that PodCIDRs[0] == PodCIDR. // so have to handle the case where PodCIDR can be IPv6 and set that to localDetectors[1] - if utilsnet.IsIPv6CIDRString(nodeInfo.Spec.PodCIDR) { + if netutils.IsIPv6CIDRString(nodeInfo.Spec.PodCIDR) { localDetectors[1], err = proxyutiliptables.NewDetectLocalByCIDR(nodeInfo.Spec.PodCIDR, ipt[1]) if err != nil { return localDetectors, err @@ -538,7 +538,7 @@ func cidrTuple(cidrList string) [2]string { foundIPv6 := false for _, cidr := range strings.Split(cidrList, ",") { - if utilsnet.IsIPv6CIDRString(cidr) && !foundIPv6 { + if netutils.IsIPv6CIDRString(cidr) && !foundIPv6 { cidrs[1] = cidr foundIPv6 = true } else if !foundIPv4 { diff --git a/cmd/kube-proxy/app/server_others_test.go b/cmd/kube-proxy/app/server_others_test.go index 8cdb354f8246..305f9c48ff51 100644 --- a/cmd/kube-proxy/app/server_others_test.go +++ b/cmd/kube-proxy/app/server_others_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* @@ -26,6 +27,7 @@ import ( v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + netutils "k8s.io/utils/net" clientsetfake "k8s.io/client-go/kubernetes/fake" @@ -232,21 +234,21 @@ func Test_detectNodeIP(t *testing.T) { nodeInfo: makeNodeWithAddresses("", "", ""), hostname: "fakeHost", bindAddress: "10.0.0.1", - expectedIP: net.ParseIP("10.0.0.1"), + expectedIP: netutils.ParseIPSloppy("10.0.0.1"), }, { name: "Bind address IPv6 unicast address and no Node object", nodeInfo: makeNodeWithAddresses("", "", ""), hostname: "fakeHost", bindAddress: "fd00:4321::2", - expectedIP: net.ParseIP("fd00:4321::2"), + expectedIP: netutils.ParseIPSloppy("fd00:4321::2"), }, { name: "No Valid IP found", nodeInfo: makeNodeWithAddresses("", "", ""), hostname: "fakeHost", bindAddress: "", - expectedIP: net.ParseIP("127.0.0.1"), + expectedIP: netutils.ParseIPSloppy("127.0.0.1"), }, // Disabled because the GetNodeIP method has a backoff retry mechanism // and the test takes more than 30 seconds @@ -263,56 +265,56 @@ func Test_detectNodeIP(t *testing.T) { nodeInfo: makeNodeWithAddresses("fakeHost", "192.168.1.1", "90.90.90.90"), hostname: "fakeHost", bindAddress: "0.0.0.0", - expectedIP: net.ParseIP("192.168.1.1"), + expectedIP: netutils.ParseIPSloppy("192.168.1.1"), }, { name: "Bind address :: and node with IPv4 InternalIP set", nodeInfo: makeNodeWithAddresses("fakeHost", "192.168.1.1", "90.90.90.90"), hostname: "fakeHost", bindAddress: "::", - expectedIP: net.ParseIP("192.168.1.1"), + expectedIP: netutils.ParseIPSloppy("192.168.1.1"), }, { name: "Bind address 0.0.0.0 and node with IPv6 InternalIP set", nodeInfo: makeNodeWithAddresses("fakeHost", "fd00:1234::1", "2001:db8::2"), hostname: "fakeHost", bindAddress: "0.0.0.0", - expectedIP: net.ParseIP("fd00:1234::1"), + expectedIP: netutils.ParseIPSloppy("fd00:1234::1"), }, { name: "Bind address :: and node with IPv6 InternalIP set", nodeInfo: makeNodeWithAddresses("fakeHost", "fd00:1234::1", "2001:db8::2"), hostname: "fakeHost", bindAddress: "::", - expectedIP: net.ParseIP("fd00:1234::1"), + expectedIP: netutils.ParseIPSloppy("fd00:1234::1"), }, { name: "Bind address 0.0.0.0 and node with only IPv4 ExternalIP set", nodeInfo: makeNodeWithAddresses("fakeHost", "", "90.90.90.90"), hostname: "fakeHost", bindAddress: "0.0.0.0", - expectedIP: net.ParseIP("90.90.90.90"), + expectedIP: netutils.ParseIPSloppy("90.90.90.90"), }, { name: "Bind address :: and node with only IPv4 ExternalIP set", nodeInfo: makeNodeWithAddresses("fakeHost", "", "90.90.90.90"), hostname: "fakeHost", bindAddress: "::", - expectedIP: net.ParseIP("90.90.90.90"), + expectedIP: netutils.ParseIPSloppy("90.90.90.90"), }, { name: "Bind address 0.0.0.0 and node with only IPv6 ExternalIP set", nodeInfo: makeNodeWithAddresses("fakeHost", "", "2001:db8::2"), hostname: "fakeHost", bindAddress: "0.0.0.0", - expectedIP: net.ParseIP("2001:db8::2"), + expectedIP: netutils.ParseIPSloppy("2001:db8::2"), }, { name: "Bind address :: and node with only IPv6 ExternalIP set", nodeInfo: makeNodeWithAddresses("fakeHost", "", "2001:db8::2"), hostname: "fakeHost", bindAddress: "::", - expectedIP: net.ParseIP("2001:db8::2"), + expectedIP: netutils.ParseIPSloppy("2001:db8::2"), }, } for _, c := range cases { diff --git a/cmd/kube-proxy/app/server_windows.go b/cmd/kube-proxy/app/server_windows.go index 7a9ee8fd36ef..4edb79b31b25 100644 --- a/cmd/kube-proxy/app/server_windows.go +++ b/cmd/kube-proxy/app/server_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* @@ -23,7 +24,6 @@ package app import ( "errors" "fmt" - "net" goruntime "runtime" // Enable pprof HTTP handlers. @@ -45,6 +45,7 @@ import ( utilnetsh "k8s.io/kubernetes/pkg/util/netsh" utilnode "k8s.io/kubernetes/pkg/util/node" "k8s.io/utils/exec" + netutils "k8s.io/utils/net" ) // NewProxyServer returns a new ProxyServer. @@ -148,7 +149,7 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi proxier, err = winuserspace.NewProxier( winuserspace.NewLoadBalancerRR(), - net.ParseIP(config.BindAddress), + netutils.ParseIPSloppy(config.BindAddress), netshInterface, *utilnet.ParsePortRangeOrDie(config.PortRange), // TODO @pires replace below with default values, if applicable diff --git a/cmd/kube-scheduler/app/options/insecure_serving.go b/cmd/kube-scheduler/app/options/insecure_serving.go index 449ba266d91d..4acf5db3284f 100644 --- a/cmd/kube-scheduler/app/options/insecure_serving.go +++ b/cmd/kube-scheduler/app/options/insecure_serving.go @@ -26,6 +26,7 @@ import ( apiserveroptions "k8s.io/apiserver/pkg/server/options" schedulerappconfig "k8s.io/kubernetes/cmd/kube-scheduler/app/config" kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config" + netutils "k8s.io/utils/net" ) // CombinedInsecureServingOptions sets up to two insecure listeners for healthz and metrics. The flags @@ -78,11 +79,11 @@ func (o *CombinedInsecureServingOptions) ApplyTo(c *schedulerappconfig.Config, c if o.Healthz != nil { o.Healthz.BindPort = o.BindPort - o.Healthz.BindAddress = net.ParseIP(o.BindAddress) + o.Healthz.BindAddress = netutils.ParseIPSloppy(o.BindAddress) } if o.Metrics != nil { o.Metrics.BindPort = o.BindPort - o.Metrics.BindAddress = net.ParseIP(o.BindAddress) + o.Metrics.BindAddress = netutils.ParseIPSloppy(o.BindAddress) } return o.applyTo(c, componentConfig) @@ -125,7 +126,7 @@ func updateDeprecatedInsecureServingOptionsFromAddress(is *apiserveroptions.Depr } else { // In the previous `validate` process, we can ensure that the `addr` is legal, so ignore the error host, portInt, _ := splitHostIntPort(addr) - is.BindAddress = net.ParseIP(host) + is.BindAddress = netutils.ParseIPSloppy(host) is.BindPort = portInt } } @@ -142,7 +143,7 @@ func (o *CombinedInsecureServingOptions) Validate() []error { errors = append(errors, fmt.Errorf("--port %v must be between 0 and 65535, inclusive. 0 for turning off insecure (HTTP) port", o.BindPort)) } - if len(o.BindAddress) > 0 && net.ParseIP(o.BindAddress) == nil { + if len(o.BindAddress) > 0 && netutils.ParseIPSloppy(o.BindAddress) == nil { errors = append(errors, fmt.Errorf("--address %v is an invalid IP address", o.BindAddress)) } diff --git a/cmd/kube-scheduler/app/options/options.go b/cmd/kube-scheduler/app/options/options.go index e21ff6b0dea7..f3997bfcf12b 100644 --- a/cmd/kube-scheduler/app/options/options.go +++ b/cmd/kube-scheduler/app/options/options.go @@ -45,6 +45,7 @@ import ( kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/apis/config/latest" "k8s.io/kubernetes/pkg/scheduler/apis/config/validation" + netutils "k8s.io/utils/net" libgorestclient "github.com/openshift/library-go/pkg/config/client" ) @@ -292,7 +293,7 @@ func (o *Options) Validate() []error { // Config return a scheduler config object func (o *Options) Config() (*schedulerappconfig.Config, error) { if o.SecureServing != nil { - if err := o.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{net.ParseIP("127.0.0.1")}); err != nil { + if err := o.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{netutils.ParseIPSloppy("127.0.0.1")}); err != nil { return nil, fmt.Errorf("error creating self-signed certificates: %v", err) } } diff --git a/cmd/kubeadm/app/apis/bootstraptoken/v1/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/bootstraptoken/v1/zz_generated.deepcopy.go index 60e9998c35d1..1dcf76cb9b96 100644 --- a/cmd/kubeadm/app/apis/bootstraptoken/v1/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/bootstraptoken/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/kubeadm/apiendpoint.go b/cmd/kubeadm/app/apis/kubeadm/apiendpoint.go index 50be2a813ede..5715d58ff16b 100644 --- a/cmd/kubeadm/app/apis/kubeadm/apiendpoint.go +++ b/cmd/kubeadm/app/apis/kubeadm/apiendpoint.go @@ -20,6 +20,8 @@ import ( "net" "strconv" + netutils "k8s.io/utils/net" + "github.com/pkg/errors" ) @@ -29,7 +31,7 @@ func APIEndpointFromString(apiEndpoint string) (APIEndpoint, error) { if err != nil { return APIEndpoint{}, errors.Wrapf(err, "invalid advertise address endpoint: %s", apiEndpoint) } - if net.ParseIP(apiEndpointHost) == nil { + if netutils.ParseIPSloppy(apiEndpointHost) == nil { return APIEndpoint{}, errors.Errorf("invalid API endpoint IP: %s", apiEndpointHost) } apiEndpointPort, err := net.LookupPort("tcp", apiEndpointPortStr) diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_unix.go b/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_unix.go index 5211bc8ea7fd..2ec1487c5a78 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_unix.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_windows.go b/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_windows.go index 9f0986db46e5..3f61b23bbebc 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_windows.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta2/defaults_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.conversion.go b/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.conversion.go index edb19d11494b..798fdb32827a 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.conversion.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.deepcopy.go index 399923a6164d..b8877b65e42c 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.defaults.go b/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.defaults.go index 5267e05f6e26..e32e600a99ff 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.defaults.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta2/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_unix.go b/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_unix.go index d12494ecd2c4..673e4f3784c2 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_unix.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_windows.go b/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_windows.go index bf48f950b4e7..f41b3d02cd5c 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_windows.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go b/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go index 69d939c57a45..32e963432179 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.deepcopy.go index c06ae0bb4049..2b8f49053658 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.defaults.go b/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.defaults.go index 1baaf3edd51c..b3fa54fbe26d 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.defaults.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta3/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go index dce6605889d4..d21f2dbf90d3 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go @@ -40,7 +40,7 @@ import ( bootstrapapi "k8s.io/cluster-bootstrap/token/api" bootstraputil "k8s.io/cluster-bootstrap/token/util" "k8s.io/klog/v2" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" "github.com/pkg/errors" "github.com/spf13/pflag" @@ -319,7 +319,7 @@ func ValidateCertSANs(altnames []string, fldPath *field.Path) field.ErrorList { for _, altname := range altnames { if errs := validation.IsDNS1123Subdomain(altname); len(errs) != 0 { if errs2 := validation.IsWildcardDNS1123Subdomain(altname); len(errs2) != 0 { - if net.ParseIP(altname) == nil { + if netutils.ParseIPSloppy(altname) == nil { allErrs = append(allErrs, field.Invalid(fldPath, altname, fmt.Sprintf("altname is not a valid IP address, DNS label or a DNS label with subdomain wildcards: %s; %s", strings.Join(errs, "; "), strings.Join(errs2, "; ")))) } } @@ -350,7 +350,7 @@ func ValidateURLs(urls []string, requireHTTPS bool, fldPath *field.Path) field.E // ValidateIPFromString validates ip address func ValidateIPFromString(ipaddr string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if net.ParseIP(ipaddr) == nil { + if netutils.ParseIPSloppy(ipaddr) == nil { allErrs = append(allErrs, field.Invalid(fldPath, ipaddr, "ip address is not valid")) } return allErrs @@ -377,7 +377,7 @@ func ValidateHostPort(endpoint string, fldPath *field.Path) field.ErrorList { // ValidateIPNetFromString validates network portion of ip address func ValidateIPNetFromString(subnetStr string, minAddrs int64, isDualStack bool, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - subnets, err := utilnet.ParseCIDRs(strings.Split(subnetStr, ",")) + subnets, err := netutils.ParseCIDRs(strings.Split(subnetStr, ",")) if err != nil { allErrs = append(allErrs, field.Invalid(fldPath, subnetStr, "couldn't parse subnet")) return allErrs @@ -388,7 +388,7 @@ func ValidateIPNetFromString(subnetStr string, minAddrs int64, isDualStack bool, allErrs = append(allErrs, field.Invalid(fldPath, subnetStr, "expected one (IPv4 or IPv6) CIDR or two CIDRs from each family for dual-stack networking")) // if DualStack and there are 2 CIDRs validate if there is at least one of each IP family case isDualStack && len(subnets) == 2: - areDualStackCIDRs, err := utilnet.IsDualStackCIDRs(subnets) + areDualStackCIDRs, err := netutils.IsDualStackCIDRs(subnets) if err != nil { allErrs = append(allErrs, field.Invalid(fldPath, subnetStr, err.Error())) } else if !areDualStackCIDRs { @@ -400,13 +400,13 @@ func ValidateIPNetFromString(subnetStr string, minAddrs int64, isDualStack bool, } // validate the subnet/s for _, s := range subnets { - numAddresses := utilnet.RangeSize(s) + numAddresses := netutils.RangeSize(s) if numAddresses < minAddrs { allErrs = append(allErrs, field.Invalid(fldPath, s.String(), fmt.Sprintf("subnet with %d address(es) is too small, the minimum is %d", numAddresses, minAddrs))) } // Warn when the subnet is in site-local range - i.e. contains addresses that belong to fec0::/10 - _, siteLocalNet, _ := net.ParseCIDR("fec0::/10") + _, siteLocalNet, _ := netutils.ParseCIDRSloppy("fec0::/10") if siteLocalNet.Contains(s.IP) || s.Contains(siteLocalNet.IP) { klog.Warningf("the subnet %v contains IPv6 site-local addresses that belong to fec0::/10 which has been deprecated by rfc3879", s) } @@ -422,7 +422,7 @@ func ValidateIPNetFromString(subnetStr string, minAddrs int64, isDualStack bool, func ValidateServiceSubnetSize(subnetStr string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} // subnets were already validated - subnets, _ := utilnet.ParseCIDRs(strings.Split(subnetStr, ",")) + subnets, _ := netutils.ParseCIDRs(strings.Split(subnetStr, ",")) for _, serviceSubnet := range subnets { ones, bits := serviceSubnet.Mask.Size() if bits-ones > constants.MaximumBitsForServiceSubnet { @@ -437,13 +437,13 @@ func ValidateServiceSubnetSize(subnetStr string, fldPath *field.Path) field.Erro func ValidatePodSubnetNodeMask(subnetStr string, c *kubeadm.ClusterConfiguration, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} // subnets were already validated - subnets, _ := utilnet.ParseCIDRs(strings.Split(subnetStr, ",")) + subnets, _ := netutils.ParseCIDRs(strings.Split(subnetStr, ",")) for _, podSubnet := range subnets { // obtain podSubnet mask mask := podSubnet.Mask maskSize, _ := mask.Size() // obtain node-cidr-mask - nodeMask, err := getClusterNodeMask(c, utilnet.IsIPv6(podSubnet.IP)) + nodeMask, err := getClusterNodeMask(c, netutils.IsIPv6(podSubnet.IP)) if err != nil { allErrs = append(allErrs, field.Invalid(fldPath, podSubnet.String(), err.Error())) continue diff --git a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go index 9f14e11e2ecb..6c4b65757a93 100644 --- a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.conversion.go b/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.conversion.go index 0e23d2546ca1..d6ccca0e6e0e 100644 --- a/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.conversion.go +++ b/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.deepcopy.go index c11c44675cb9..1b155c1309dc 100644 --- a/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.defaults.go b/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.defaults.go index 8cdf1335c171..73d32e991d11 100644 --- a/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.defaults.go +++ b/cmd/kubeadm/app/apis/output/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/apis/output/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/output/zz_generated.deepcopy.go index 49788197571e..0d7bc006cf95 100644 --- a/cmd/kubeadm/app/apis/output/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/output/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/cmd/kubeadm/app/cmd/phases/reset/unmount.go b/cmd/kubeadm/app/cmd/phases/reset/unmount.go index ab0f81bb1189..1796da898b9e 100644 --- a/cmd/kubeadm/app/cmd/phases/reset/unmount.go +++ b/cmd/kubeadm/app/cmd/phases/reset/unmount.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/cmd/kubeadm/app/cmd/phases/reset/unmount_linux.go b/cmd/kubeadm/app/cmd/phases/reset/unmount_linux.go index 7d92d445547f..b598ccab8bfe 100644 --- a/cmd/kubeadm/app/cmd/phases/reset/unmount_linux.go +++ b/cmd/kubeadm/app/cmd/phases/reset/unmount_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/cmd/kubeadm/app/componentconfigs/kubeproxy.go b/cmd/kubeadm/app/componentconfigs/kubeproxy.go index 65b1d82e9f73..06ab73eb64a4 100644 --- a/cmd/kubeadm/app/componentconfigs/kubeproxy.go +++ b/cmd/kubeadm/app/componentconfigs/kubeproxy.go @@ -17,12 +17,11 @@ limitations under the License. package componentconfigs import ( - "net" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/features" + netutils "k8s.io/utils/net" clientset "k8s.io/client-go/kubernetes" kubeproxyconfig "k8s.io/kube-proxy/config/v1alpha1" @@ -76,7 +75,7 @@ func (kp *kubeProxyConfig) Unmarshal(docmap kubeadmapi.DocumentMap) error { } func kubeProxyDefaultBindAddress(localAdvertiseAddress string) string { - ip := net.ParseIP(localAdvertiseAddress) + ip := netutils.ParseIPSloppy(localAdvertiseAddress) if ip.To4() != nil { return kubeadmapiv1.DefaultProxyBindAddressv4 } diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index b3559734a335..78c0cfab9fc0 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -30,7 +30,7 @@ import ( "k8s.io/apimachinery/pkg/util/version" "k8s.io/apimachinery/pkg/util/wait" bootstrapapi "k8s.io/cluster-bootstrap/token/api" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" "github.com/pkg/errors" ) @@ -601,7 +601,7 @@ func GetDNSIP(svcSubnetList string, isDualStack bool) (net.IP, error) { } // Selects the 10th IP in service subnet CIDR range as dnsIP - dnsIP, err := utilnet.GetIndexedIP(svcSubnetCIDR, 10) + dnsIP, err := netutils.GetIndexedIP(svcSubnetCIDR, 10) if err != nil { return nil, errors.Wrap(err, "unable to get internal Kubernetes Service IP from the given service CIDR") } @@ -615,7 +615,7 @@ func GetKubernetesServiceCIDR(svcSubnetList string, isDualStack bool) (*net.IPNe // The default service address family for the cluster is the address family of the first // service cluster IP range configured via the `--service-cluster-ip-range` flag // of the kube-controller-manager and kube-apiserver. - svcSubnets, err := utilnet.ParseCIDRs(strings.Split(svcSubnetList, ",")) + svcSubnets, err := netutils.ParseCIDRs(strings.Split(svcSubnetList, ",")) if err != nil { return nil, errors.Wrapf(err, "unable to parse ServiceSubnet %v", svcSubnetList) } @@ -625,7 +625,7 @@ func GetKubernetesServiceCIDR(svcSubnetList string, isDualStack bool) (*net.IPNe return svcSubnets[0], nil } // internal IP address for the API server - _, svcSubnet, err := net.ParseCIDR(svcSubnetList) + _, svcSubnet, err := netutils.ParseCIDRSloppy(svcSubnetList) if err != nil { return nil, errors.Wrapf(err, "unable to parse ServiceSubnet %v", svcSubnetList) } @@ -638,7 +638,7 @@ func GetAPIServerVirtualIP(svcSubnetList string, isDualStack bool) (net.IP, erro if err != nil { return nil, errors.Wrap(err, "unable to get internal Kubernetes Service IP from the given service CIDR") } - internalAPIServerVirtualIP, err := utilnet.GetIndexedIP(svcSubnet, 1) + internalAPIServerVirtualIP, err := netutils.GetIndexedIP(svcSubnet, 1) if err != nil { return nil, errors.Wrapf(err, "unable to get the first IP address from the given CIDR: %s", svcSubnet.String()) } diff --git a/cmd/kubeadm/app/constants/constants_unix.go b/cmd/kubeadm/app/constants/constants_unix.go index 16ff72d55568..812faf064b5b 100644 --- a/cmd/kubeadm/app/constants/constants_unix.go +++ b/cmd/kubeadm/app/constants/constants_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubeadm/app/constants/constants_windows.go b/cmd/kubeadm/app/constants/constants_windows.go index 6daae0a1fffb..1a44a82723d9 100644 --- a/cmd/kubeadm/app/constants/constants_windows.go +++ b/cmd/kubeadm/app/constants/constants_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubeadm/app/phases/certs/renewal/manager_test.go b/cmd/kubeadm/app/phases/certs/renewal/manager_test.go index 93257a3b6690..ecbb561109be 100644 --- a/cmd/kubeadm/app/phases/certs/renewal/manager_test.go +++ b/cmd/kubeadm/app/phases/certs/renewal/manager_test.go @@ -30,6 +30,7 @@ import ( certtestutil "k8s.io/kubernetes/cmd/kubeadm/app/util/certs" "k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil" testutil "k8s.io/kubernetes/cmd/kubeadm/test" + netutils "k8s.io/utils/net" certutil "k8s.io/client-go/util/cert" ) @@ -46,7 +47,7 @@ var ( CommonName: "test-common-name", Organization: []string{"sig-cluster-lifecycle"}, AltNames: certutil.AltNames{ - IPs: []net.IP{net.ParseIP("10.100.0.1")}, + IPs: []net.IP{netutils.ParseIPSloppy("10.100.0.1")}, DNSNames: []string{"test-domain.space"}, }, Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, @@ -234,7 +235,7 @@ func TestCertToConfig(t *testing.T) { CommonName: "test-common-name", Organization: []string{"sig-cluster-lifecycle"}, AltNames: certutil.AltNames{ - IPs: []net.IP{net.ParseIP("10.100.0.1")}, + IPs: []net.IP{netutils.ParseIPSloppy("10.100.0.1")}, DNSNames: []string{"test-domain.space"}, }, Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, @@ -247,7 +248,7 @@ func TestCertToConfig(t *testing.T) { }, ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, DNSNames: []string{"test-domain.space"}, - IPAddresses: []net.IP{net.ParseIP("10.100.0.1")}, + IPAddresses: []net.IP{netutils.ParseIPSloppy("10.100.0.1")}, } cfg := certToConfig(cert) diff --git a/cmd/kubeadm/app/phases/certs/renewal/readwriter_test.go b/cmd/kubeadm/app/phases/certs/renewal/readwriter_test.go index 800f391c1f20..0b408c3e3ac3 100644 --- a/cmd/kubeadm/app/phases/certs/renewal/readwriter_test.go +++ b/cmd/kubeadm/app/phases/certs/renewal/readwriter_test.go @@ -28,6 +28,7 @@ import ( kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" pkiutil "k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil" testutil "k8s.io/kubernetes/cmd/kubeadm/test" + netutils "k8s.io/utils/net" "k8s.io/client-go/tools/clientcmd" certutil "k8s.io/client-go/util/cert" @@ -161,7 +162,7 @@ func writeTestKubeconfig(t *testing.T, dir, name string, caCert *x509.Certificat Organization: []string{"sig-cluster-lifecycle"}, Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, AltNames: certutil.AltNames{ - IPs: []net.IP{net.ParseIP("10.100.0.1")}, + IPs: []net.IP{netutils.ParseIPSloppy("10.100.0.1")}, DNSNames: []string{"test-domain.space"}, }, }, diff --git a/cmd/kubeadm/app/preflight/checks.go b/cmd/kubeadm/app/preflight/checks.go index e9fbfb721e7f..c7761b291e50 100644 --- a/cmd/kubeadm/app/preflight/checks.go +++ b/cmd/kubeadm/app/preflight/checks.go @@ -49,7 +49,7 @@ import ( "k8s.io/klog/v2" system "k8s.io/system-validators/validators" utilsexec "k8s.io/utils/exec" - utilsnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" "github.com/PuerkitoBio/purell" "github.com/pkg/errors" @@ -431,7 +431,7 @@ func (hst HTTPProxyCheck) Name() string { func (hst HTTPProxyCheck) Check() (warnings, errorList []error) { klog.V(1).Infoln("validating if the connectivity type is via proxy or direct") u := &url.URL{Scheme: hst.Proto, Host: hst.Host} - if utilsnet.IsIPv6String(hst.Host) { + if netutils.IsIPv6String(hst.Host) { u.Host = net.JoinHostPort(hst.Host, "1234") } @@ -473,12 +473,12 @@ func (subnet HTTPProxyCIDRCheck) Check() (warnings, errorList []error) { return nil, nil } - _, cidr, err := net.ParseCIDR(subnet.CIDR) + _, cidr, err := netutils.ParseCIDRSloppy(subnet.CIDR) if err != nil { return nil, []error{errors.Wrapf(err, "error parsing CIDR %q", subnet.CIDR)} } - testIP, err := utilsnet.GetIndexedIP(cidr, 1) + testIP, err := netutils.GetIndexedIP(cidr, 1) if err != nil { return nil, []error{errors.Wrapf(err, "unable to get first IP address from the given CIDR (%s)", cidr.String())} } @@ -936,8 +936,8 @@ func RunInitNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.InitConfigura checks = addCommonChecks(execer, cfg.KubernetesVersion, &cfg.NodeRegistration, checks) // Check if Bridge-netfilter and IPv6 relevant flags are set - if ip := net.ParseIP(cfg.LocalAPIEndpoint.AdvertiseAddress); ip != nil { - if utilsnet.IsIPv6(ip) { + if ip := netutils.ParseIPSloppy(cfg.LocalAPIEndpoint.AdvertiseAddress); ip != nil { + if netutils.IsIPv6(ip) { checks = append(checks, FileContentCheck{Path: bridgenf6, Content: []byte{'1'}}, FileContentCheck{Path: ipv6DefaultForwarding, Content: []byte{'1'}}, @@ -1001,8 +1001,8 @@ func RunJoinNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.JoinConfigura checks = append(checks, HTTPProxyCheck{Proto: "https", Host: ipstr}, ) - if ip := net.ParseIP(ipstr); ip != nil { - if utilsnet.IsIPv6(ip) { + if ip := netutils.ParseIPSloppy(ipstr); ip != nil { + if netutils.IsIPv6(ip) { addIPv6Checks = true } } diff --git a/cmd/kubeadm/app/preflight/checks_darwin.go b/cmd/kubeadm/app/preflight/checks_darwin.go index 2d05cc283165..9779a5f74274 100644 --- a/cmd/kubeadm/app/preflight/checks_darwin.go +++ b/cmd/kubeadm/app/preflight/checks_darwin.go @@ -1,3 +1,4 @@ +//go:build darwin // +build darwin /* diff --git a/cmd/kubeadm/app/preflight/checks_linux.go b/cmd/kubeadm/app/preflight/checks_linux.go index db956c0f1f63..8af88fcc0ecb 100644 --- a/cmd/kubeadm/app/preflight/checks_linux.go +++ b/cmd/kubeadm/app/preflight/checks_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/cmd/kubeadm/app/preflight/checks_unix.go b/cmd/kubeadm/app/preflight/checks_unix.go index 2bbbd9ca2d37..5a9da3b7c445 100644 --- a/cmd/kubeadm/app/preflight/checks_unix.go +++ b/cmd/kubeadm/app/preflight/checks_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubeadm/app/preflight/checks_windows.go b/cmd/kubeadm/app/preflight/checks_windows.go index d51c2612a15e..3ee8ff7a105e 100644 --- a/cmd/kubeadm/app/preflight/checks_windows.go +++ b/cmd/kubeadm/app/preflight/checks_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubeadm/app/util/apiclient/init_dryrun.go b/cmd/kubeadm/app/util/apiclient/init_dryrun.go index e63c62fd0ab9..de5078d3c0a5 100644 --- a/cmd/kubeadm/app/util/apiclient/init_dryrun.go +++ b/cmd/kubeadm/app/util/apiclient/init_dryrun.go @@ -17,7 +17,6 @@ limitations under the License. package apiclient import ( - "net" "strings" "k8s.io/kubernetes/cmd/kubeadm/app/constants" @@ -28,7 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" core "k8s.io/client-go/testing" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" "github.com/pkg/errors" ) @@ -88,12 +87,12 @@ func (idr *InitDryRunGetter) handleKubernetesService(action core.GetAction) (boo return false, nil, nil } - _, svcSubnet, err := net.ParseCIDR(idr.serviceSubnet) + _, svcSubnet, err := netutils.ParseCIDRSloppy(idr.serviceSubnet) if err != nil { return true, nil, errors.Wrapf(err, "error parsing CIDR %q", idr.serviceSubnet) } - internalAPIServerVirtualIP, err := utilnet.GetIndexedIP(svcSubnet, 1) + internalAPIServerVirtualIP, err := netutils.GetIndexedIP(svcSubnet, 1) if err != nil { return true, nil, errors.Wrapf(err, "unable to get first IP address from the given CIDR (%s)", svcSubnet.String()) } diff --git a/cmd/kubeadm/app/util/chroot_unix.go b/cmd/kubeadm/app/util/chroot_unix.go index 674a72ed9b85..d1468bb057ec 100644 --- a/cmd/kubeadm/app/util/chroot_unix.go +++ b/cmd/kubeadm/app/util/chroot_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubeadm/app/util/chroot_windows.go b/cmd/kubeadm/app/util/chroot_windows.go index b7e434e08289..4f34a9d3837d 100644 --- a/cmd/kubeadm/app/util/chroot_windows.go +++ b/cmd/kubeadm/app/util/chroot_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubeadm/app/util/config/common.go b/cmd/kubeadm/app/util/config/common.go index 184d6d11632a..ff9bdea1b34d 100644 --- a/cmd/kubeadm/app/util/config/common.go +++ b/cmd/kubeadm/app/util/config/common.go @@ -27,6 +27,7 @@ import ( kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" + netutils "k8s.io/utils/net" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -122,7 +123,7 @@ func LowercaseSANs(sans []string) { // VerifyAPIServerBindAddress can be used to verify if a bind address for the API Server is 0.0.0.0, // in which case this address is not valid and should not be used. func VerifyAPIServerBindAddress(address string) error { - ip := net.ParseIP(address) + ip := netutils.ParseIPSloppy(address) if ip == nil { return errors.Errorf("cannot parse IP address: %s", address) } @@ -147,7 +148,7 @@ func ChooseAPIServerBindAddress(bindAddress net.IP) (net.IP, error) { if err != nil { if netutil.IsNoRoutesError(err) { klog.Warningf("WARNING: could not obtain a bind address for the API Server: %v; using: %s", err, constants.DefaultAPIServerBindAddress) - defaultIP := net.ParseIP(constants.DefaultAPIServerBindAddress) + defaultIP := netutils.ParseIPSloppy(constants.DefaultAPIServerBindAddress) if defaultIP == nil { return nil, errors.Errorf("cannot parse default IP address: %s", constants.DefaultAPIServerBindAddress) } diff --git a/cmd/kubeadm/app/util/config/initconfiguration.go b/cmd/kubeadm/app/util/config/initconfiguration.go index 50071285bc4a..4a9cbbd4a202 100644 --- a/cmd/kubeadm/app/util/config/initconfiguration.go +++ b/cmd/kubeadm/app/util/config/initconfiguration.go @@ -33,6 +33,7 @@ import ( kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/cmd/kubeadm/app/util/config/strict" kubeadmruntime "k8s.io/kubernetes/cmd/kubeadm/app/util/runtime" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" @@ -122,7 +123,7 @@ func SetNodeRegistrationDynamicDefaults(cfg *kubeadmapi.NodeRegistrationOptions, // SetAPIEndpointDynamicDefaults checks and sets configuration values for the APIEndpoint object func SetAPIEndpointDynamicDefaults(cfg *kubeadmapi.APIEndpoint) error { // validate cfg.API.AdvertiseAddress. - addressIP := net.ParseIP(cfg.AdvertiseAddress) + addressIP := netutils.ParseIPSloppy(cfg.AdvertiseAddress) if addressIP == nil && cfg.AdvertiseAddress != "" { return errors.Errorf("couldn't use \"%s\" as \"apiserver-advertise-address\", must be ipv4 or ipv6 address", cfg.AdvertiseAddress) } diff --git a/cmd/kubeadm/app/util/endpoint.go b/cmd/kubeadm/app/util/endpoint.go index 4a55f7ea805e..515a12493ca4 100644 --- a/cmd/kubeadm/app/util/endpoint.go +++ b/cmd/kubeadm/app/util/endpoint.go @@ -25,7 +25,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/apimachinery/pkg/util/validation" - utilsnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" "github.com/pkg/errors" ) @@ -100,7 +100,7 @@ func ParseHostPort(hostport string) (string, string, error) { } // if host is a valid IP, returns it - if ip := net.ParseIP(host); ip != nil { + if ip := netutils.ParseIPSloppy(host); ip != nil { return host, port, nil } @@ -115,7 +115,7 @@ func ParseHostPort(hostport string) (string, string, error) { // ParsePort parses a string representing a TCP port. // If the string is not a valid representation of a TCP port, ParsePort returns an error. func ParsePort(port string) (int, error) { - portInt, err := utilsnet.ParsePort(port, true) + portInt, err := netutils.ParsePort(port, true) if err == nil && (1 <= portInt && portInt <= 65535) { return portInt, nil } @@ -133,7 +133,7 @@ func parseAPIEndpoint(localEndpoint *kubeadmapi.APIEndpoint) (net.IP, string, er } // parse the AdvertiseAddress - var ip = net.ParseIP(localEndpoint.AdvertiseAddress) + var ip = netutils.ParseIPSloppy(localEndpoint.AdvertiseAddress) if ip == nil { return nil, "", errors.Errorf("invalid value `%s` given for api.advertiseAddress", localEndpoint.AdvertiseAddress) } diff --git a/cmd/kubeadm/app/util/initsystem/initsystem_unix.go b/cmd/kubeadm/app/util/initsystem/initsystem_unix.go index 5cbf9099e75b..7bd4c4f2f652 100644 --- a/cmd/kubeadm/app/util/initsystem/initsystem_unix.go +++ b/cmd/kubeadm/app/util/initsystem/initsystem_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubeadm/app/util/initsystem/initsystem_windows.go b/cmd/kubeadm/app/util/initsystem/initsystem_windows.go index 394272ddcb33..0bd20280a566 100644 --- a/cmd/kubeadm/app/util/initsystem/initsystem_windows.go +++ b/cmd/kubeadm/app/util/initsystem/initsystem_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubeadm/app/util/pkiutil/pki_helpers.go b/cmd/kubeadm/app/util/pkiutil/pki_helpers.go index 9bc8d6cd0858..724b4f4cc5d0 100644 --- a/cmd/kubeadm/app/util/pkiutil/pki_helpers.go +++ b/cmd/kubeadm/app/util/pkiutil/pki_helpers.go @@ -39,6 +39,7 @@ import ( kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/features" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" + netutils "k8s.io/utils/net" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" @@ -417,7 +418,7 @@ func pathForCSR(pkiPath, name string) string { // GetAPIServerAltNames builds an AltNames object for to be used when generating apiserver certificate func GetAPIServerAltNames(cfg *kubeadmapi.InitConfiguration) (*certutil.AltNames, error) { // advertise address - advertiseAddress := net.ParseIP(cfg.LocalAPIEndpoint.AdvertiseAddress) + advertiseAddress := netutils.ParseIPSloppy(cfg.LocalAPIEndpoint.AdvertiseAddress) if advertiseAddress == nil { return nil, errors.Errorf("error parsing LocalAPIEndpoint AdvertiseAddress %v: is not a valid textual representation of an IP address", cfg.LocalAPIEndpoint.AdvertiseAddress) @@ -446,7 +447,7 @@ func GetAPIServerAltNames(cfg *kubeadmapi.InitConfiguration) (*certutil.AltNames // add cluster controlPlaneEndpoint if present (dns or ip) if len(cfg.ControlPlaneEndpoint) > 0 { if host, _, err := kubeadmutil.ParseHostPort(cfg.ControlPlaneEndpoint); err == nil { - if ip := net.ParseIP(host); ip != nil { + if ip := netutils.ParseIPSloppy(host); ip != nil { altNames.IPs = append(altNames.IPs, ip) } else { altNames.DNSNames = append(altNames.DNSNames, host) @@ -478,7 +479,7 @@ func GetEtcdPeerAltNames(cfg *kubeadmapi.InitConfiguration) (*certutil.AltNames, // getAltNames builds an AltNames object with the cfg and certName. func getAltNames(cfg *kubeadmapi.InitConfiguration, certName string) (*certutil.AltNames, error) { // advertise address - advertiseAddress := net.ParseIP(cfg.LocalAPIEndpoint.AdvertiseAddress) + advertiseAddress := netutils.ParseIPSloppy(cfg.LocalAPIEndpoint.AdvertiseAddress) if advertiseAddress == nil { return nil, errors.Errorf("error parsing LocalAPIEndpoint AdvertiseAddress %v: is not a valid textual representation of an IP address", cfg.LocalAPIEndpoint.AdvertiseAddress) @@ -508,7 +509,7 @@ func getAltNames(cfg *kubeadmapi.InitConfiguration, certName string) (*certutil. // certNames is used to print user facing warnings and should be the name of the cert the altNames will be used for func appendSANsToAltNames(altNames *certutil.AltNames, SANs []string, certName string) { for _, altname := range SANs { - if ip := net.ParseIP(altname); ip != nil { + if ip := netutils.ParseIPSloppy(altname); ip != nil { altNames.IPs = append(altNames.IPs, ip) } else if len(validation.IsDNS1123Subdomain(altname)) == 0 { altNames.DNSNames = append(altNames.DNSNames, altname) diff --git a/cmd/kubeadm/app/util/pkiutil/pki_helpers_test.go b/cmd/kubeadm/app/util/pkiutil/pki_helpers_test.go index 338f080ca4cf..e7bd27a1430f 100644 --- a/cmd/kubeadm/app/util/pkiutil/pki_helpers_test.go +++ b/cmd/kubeadm/app/util/pkiutil/pki_helpers_test.go @@ -30,6 +30,7 @@ import ( "testing" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + netutils "k8s.io/utils/net" certutil "k8s.io/client-go/util/cert" ) @@ -633,7 +634,7 @@ func TestGetAPIServerAltNames(t *testing.T) { for _, IPAddress := range rt.expectedIPAddresses { found := false for _, val := range altNames.IPs { - if val.Equal(net.ParseIP(IPAddress)) { + if val.Equal(netutils.ParseIPSloppy(IPAddress)) { found = true break } @@ -698,7 +699,7 @@ func TestGetEtcdAltNames(t *testing.T) { t.Run(IPAddress, func(t *testing.T) { found := false for _, val := range altNames.IPs { - if val.Equal(net.ParseIP(IPAddress)) { + if val.Equal(netutils.ParseIPSloppy(IPAddress)) { found = true break } @@ -757,7 +758,7 @@ func TestGetEtcdPeerAltNames(t *testing.T) { for _, IPAddress := range expectedIPAddresses { found := false for _, val := range altNames.IPs { - if val.Equal(net.ParseIP(IPAddress)) { + if val.Equal(netutils.ParseIPSloppy(IPAddress)) { found = true break } diff --git a/cmd/kubeadm/app/util/runtime/runtime_unix.go b/cmd/kubeadm/app/util/runtime/runtime_unix.go index b15c30373137..11bc059dea7a 100644 --- a/cmd/kubeadm/app/util/runtime/runtime_unix.go +++ b/cmd/kubeadm/app/util/runtime/runtime_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubeadm/app/util/runtime/runtime_windows.go b/cmd/kubeadm/app/util/runtime/runtime_windows.go index 0c6a7b496dca..35a84cd3855e 100644 --- a/cmd/kubeadm/app/util/runtime/runtime_windows.go +++ b/cmd/kubeadm/app/util/runtime/runtime_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubeadm/app/util/staticpod/utils_linux.go b/cmd/kubeadm/app/util/staticpod/utils_linux.go index 5dc05a6b07c4..f28236c404a0 100644 --- a/cmd/kubeadm/app/util/staticpod/utils_linux.go +++ b/cmd/kubeadm/app/util/staticpod/utils_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/cmd/kubeadm/app/util/staticpod/utils_linux_test.go b/cmd/kubeadm/app/util/staticpod/utils_linux_test.go index e8322748ff3c..d797e60174b9 100644 --- a/cmd/kubeadm/app/util/staticpod/utils_linux_test.go +++ b/cmd/kubeadm/app/util/staticpod/utils_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/cmd/kubeadm/app/util/staticpod/utils_others.go b/cmd/kubeadm/app/util/staticpod/utils_others.go index 77f01040d309..189457a4a839 100644 --- a/cmd/kubeadm/app/util/staticpod/utils_others.go +++ b/cmd/kubeadm/app/util/staticpod/utils_others.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/cmd/kubeadm/app/util/users/users_linux.go b/cmd/kubeadm/app/util/users/users_linux.go index 01e634128188..eb539e65e6fd 100644 --- a/cmd/kubeadm/app/util/users/users_linux.go +++ b/cmd/kubeadm/app/util/users/users_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/cmd/kubeadm/app/util/users/users_linux_test.go b/cmd/kubeadm/app/util/users/users_linux_test.go index 31b1c2487cb4..be72a04a8e6a 100644 --- a/cmd/kubeadm/app/util/users/users_linux_test.go +++ b/cmd/kubeadm/app/util/users/users_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/cmd/kubeadm/app/util/users/users_other.go b/cmd/kubeadm/app/util/users/users_other.go index 388ef1efcd81..ba79ebfbb069 100644 --- a/cmd/kubeadm/app/util/users/users_other.go +++ b/cmd/kubeadm/app/util/users/users_other.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/cmd/kubelet/app/init_others.go b/cmd/kubelet/app/init_others.go index 1fe895f5d0ac..024f5a29bcda 100644 --- a/cmd/kubelet/app/init_others.go +++ b/cmd/kubelet/app/init_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubelet/app/init_windows.go b/cmd/kubelet/app/init_windows.go index 8b2755cc30d4..3b8ef098cdb5 100644 --- a/cmd/kubelet/app/init_windows.go +++ b/cmd/kubelet/app/init_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubelet/app/options/globalflags_linux.go b/cmd/kubelet/app/options/globalflags_linux.go index de2ab49abe9e..dffd39db5489 100644 --- a/cmd/kubelet/app/options/globalflags_linux.go +++ b/cmd/kubelet/app/options/globalflags_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/cmd/kubelet/app/options/globalflags_other.go b/cmd/kubelet/app/options/globalflags_other.go index b4a04f9f40f8..f630d1024b07 100644 --- a/cmd/kubelet/app/options/globalflags_other.go +++ b/cmd/kubelet/app/options/globalflags_other.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/cmd/kubelet/app/options/globalflags_providerless.go b/cmd/kubelet/app/options/globalflags_providerless.go index 7fba07df799f..ece7981228f7 100644 --- a/cmd/kubelet/app/options/globalflags_providerless.go +++ b/cmd/kubelet/app/options/globalflags_providerless.go @@ -1,3 +1,4 @@ +//go:build providerless // +build providerless /* diff --git a/cmd/kubelet/app/options/globalflags_providers.go b/cmd/kubelet/app/options/globalflags_providers.go index 5d2dd44d3454..9fde6b7f4f2e 100644 --- a/cmd/kubelet/app/options/globalflags_providers.go +++ b/cmd/kubelet/app/options/globalflags_providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/cmd/kubelet/app/options/osflags_others.go b/cmd/kubelet/app/options/osflags_others.go index ab4c0ac1c61c..083231a8d6e8 100644 --- a/cmd/kubelet/app/options/osflags_others.go +++ b/cmd/kubelet/app/options/osflags_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubelet/app/options/osflags_windows.go b/cmd/kubelet/app/options/osflags_windows.go index 95ee23483e65..1805b33d82ea 100644 --- a/cmd/kubelet/app/options/osflags_windows.go +++ b/cmd/kubelet/app/options/osflags_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/cmd/kubelet/app/plugins_providerless.go b/cmd/kubelet/app/plugins_providerless.go index dc1bd3c07a72..a2b5cf442158 100644 --- a/cmd/kubelet/app/plugins_providerless.go +++ b/cmd/kubelet/app/plugins_providerless.go @@ -1,3 +1,4 @@ +//go:build providerless // +build providerless /* diff --git a/cmd/kubelet/app/plugins_providers.go b/cmd/kubelet/app/plugins_providers.go index 98564409de32..859e052a1067 100644 --- a/cmd/kubelet/app/plugins_providers.go +++ b/cmd/kubelet/app/plugins_providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 34bac9c53a9a..77752a1ca18a 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -103,7 +103,7 @@ import ( "k8s.io/kubernetes/pkg/volume/util/hostutil" "k8s.io/kubernetes/pkg/volume/util/subpath" "k8s.io/utils/exec" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) const ( @@ -1122,7 +1122,7 @@ func RunKubelet(kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencie var nodeIPs []net.IP if kubeServer.NodeIP != "" { for _, ip := range strings.Split(kubeServer.NodeIP, ",") { - parsedNodeIP := net.ParseIP(strings.TrimSpace(ip)) + parsedNodeIP := netutils.ParseIPSloppy(strings.TrimSpace(ip)) if parsedNodeIP == nil { klog.InfoS("Could not parse --node-ip ignoring", "IP", ip) } else { @@ -1132,7 +1132,7 @@ func RunKubelet(kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencie } if !utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) && len(nodeIPs) > 1 { return fmt.Errorf("dual-stack --node-ip %q not supported in a single-stack cluster", kubeServer.NodeIP) - } else if len(nodeIPs) > 2 || (len(nodeIPs) == 2 && utilnet.IsIPv6(nodeIPs[0]) == utilnet.IsIPv6(nodeIPs[1])) { + } else if len(nodeIPs) > 2 || (len(nodeIPs) == 2 && netutils.IsIPv6(nodeIPs[0]) == netutils.IsIPv6(nodeIPs[1])) { return fmt.Errorf("bad --node-ip %q; must contain either a single IP or a dual-stack pair of IPs", kubeServer.NodeIP) } else if len(nodeIPs) == 2 && kubeServer.CloudProvider != "" { return fmt.Errorf("dual-stack --node-ip %q not supported when using a cloud provider", kubeServer.NodeIP) @@ -1224,7 +1224,7 @@ func startKubelet(k kubelet.Bootstrap, podCfg *config.PodConfig, kubeCfg *kubele go k.ListenAndServe(kubeCfg, kubeDeps.TLSOptions, kubeDeps.Auth) } if kubeCfg.ReadOnlyPort > 0 { - go k.ListenAndServeReadOnly(net.ParseIP(kubeCfg.Address), uint(kubeCfg.ReadOnlyPort)) + go k.ListenAndServeReadOnly(netutils.ParseIPSloppy(kubeCfg.Address), uint(kubeCfg.ReadOnlyPort)) } if utilfeature.DefaultFeatureGate.Enabled(features.KubeletPodResources) { go k.ListenAndServePodResources() diff --git a/cmd/kubelet/app/server_others.go b/cmd/kubelet/app/server_others.go index a6cced1a1a86..895267134c5b 100644 --- a/cmd/kubelet/app/server_others.go +++ b/cmd/kubelet/app/server_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/cmd/kubelet/app/server_unsupported.go b/cmd/kubelet/app/server_unsupported.go index 6b4f8bc3c9f3..be66d7732f1c 100644 --- a/cmd/kubelet/app/server_unsupported.go +++ b/cmd/kubelet/app/server_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/cmd/kubelet/app/server_windows.go b/cmd/kubelet/app/server_windows.go index b986f102b29e..07cbbf404909 100644 --- a/cmd/kubelet/app/server_windows.go +++ b/cmd/kubelet/app/server_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.conversion.go index f8ca2c657e34..27dc8863cd2c 100644 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.conversion.go +++ b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.deepcopy.go index e609027ea9ce..c65004232add 100644 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/zz_generated.deepcopy.go index d2e334594500..13736ecd59c1 100644 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.conversion.go index c2d65e81b521..3590bb3ccb16 100644 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.conversion.go +++ b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.deepcopy.go index ff4c0295065c..e418b1b54534 100644 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/zz_generated.deepcopy.go index e2e9680e8235..7a2f070a725a 100644 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/helpers.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/helpers.go index 127c91e1312d..126a53bb9ac1 100644 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/helpers.go +++ b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/helpers.go @@ -1,10 +1,9 @@ package oauth import ( - "net" - kvalidation "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" + netutils "k8s.io/utils/net" configv1 "github.com/openshift/api/config/v1" "github.com/openshift/library-go/pkg/config/validation" @@ -12,7 +11,7 @@ import ( ) func isValidHostname(hostname string) bool { - return len(kvalidation.IsDNS1123Subdomain(hostname)) == 0 || net.ParseIP(hostname) != nil + return len(kvalidation.IsDNS1123Subdomain(hostname)) == 0 || netutils.ParseIPSloppy(hostname) != nil } func ValidateRemoteConnectionInfo(remoteConnectionInfo configv1.OAuthRemoteConnectionInfo, fldPath *field.Path) field.ErrorList { diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.conversion.go index 8ec11178435c..34c70eb5aadc 100644 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.conversion.go +++ b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.deepcopy.go index 34eaa7cff663..7e5bf419ad07 100644 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/zz_generated.deepcopy.go index 55601d78cf56..b551e55df1d0 100644 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/network/apis/externalipranger/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.conversion.go index 413965b8ee70..0dd1360d0607 100644 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.conversion.go +++ b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.deepcopy.go index d63f90426e6f..32b95e73bc29 100644 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/zz_generated.deepcopy.go index f6e62a3e11b7..e982f26d234f 100644 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission.go b/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission.go index 79a1be9cee7e..63c26a833c8f 100644 --- a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission.go +++ b/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission.go @@ -16,6 +16,7 @@ import ( "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/externalipranger" v1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/externalipranger/v1" kapi "k8s.io/kubernetes/pkg/apis/core" + netutils "k8s.io/utils/net" ) const ExternalIPPluginName = "network.openshift.io/ExternalIPRanger" @@ -80,7 +81,7 @@ func ParseRejectAdmitCIDRRules(rules []string) (reject, admit []*net.IPNet, err negate = true s = s[1:] } - _, cidr, err := net.ParseCIDR(s) + _, cidr, err := netutils.ParseCIDRSloppy(s) if err != nil { return nil, nil, err } @@ -166,7 +167,7 @@ func (r *externalIPRanger) Validate(ctx context.Context, a admission.Attributes, // administrator has limited the range case len(svc.Spec.ExternalIPs) > 0 && len(r.admit) > 0: for i, s := range svc.Spec.ExternalIPs { - ip := net.ParseIP(s) + ip := netutils.ParseIPSloppy(s) if ip == nil { errs = append(errs, field.Forbidden(field.NewPath("spec", "externalIPs").Index(i), "externalIPs must be a valid address")) continue diff --git a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission_test.go b/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission_test.go index 7c33d28b8c51..c29e3abe4f01 100644 --- a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission_test.go +++ b/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission_test.go @@ -10,6 +10,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authorization/authorizer" + netutils "k8s.io/utils/net" "k8s.io/apiserver/pkg/authentication/user" @@ -48,23 +49,23 @@ func TestAdmission(t *testing.T) { } var oldSvc *kapi.Service - _, ipv4, err := net.ParseCIDR("172.0.0.0/16") + _, ipv4, err := netutils.ParseCIDRSloppy("172.0.0.0/16") if err != nil { t.Fatal(err) } - _, ipv4subset, err := net.ParseCIDR("172.0.1.0/24") + _, ipv4subset, err := netutils.ParseCIDRSloppy("172.0.1.0/24") if err != nil { t.Fatal(err) } - _, ipv4offset, err := net.ParseCIDR("172.200.0.0/24") + _, ipv4offset, err := netutils.ParseCIDRSloppy("172.200.0.0/24") if err != nil { t.Fatal(err) } - _, none, err := net.ParseCIDR("0.0.0.0/32") + _, none, err := netutils.ParseCIDRSloppy("0.0.0.0/32") if err != nil { t.Fatal(err) } - _, all, err := net.ParseCIDR("0.0.0.0/0") + _, all, err := netutils.ParseCIDRSloppy("0.0.0.0/0") if err != nil { t.Fatal(err) } diff --git a/openshift-kube-apiserver/admission/network/restrictedendpoints/endpoint_admission.go b/openshift-kube-apiserver/admission/network/restrictedendpoints/endpoint_admission.go index 29c649349a8b..b61b2a0bd62e 100644 --- a/openshift-kube-apiserver/admission/network/restrictedendpoints/endpoint_admission.go +++ b/openshift-kube-apiserver/admission/network/restrictedendpoints/endpoint_admission.go @@ -13,6 +13,7 @@ import ( "k8s.io/klog/v2" kapi "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/apis/discovery" + netutils "k8s.io/utils/net" "github.com/openshift/library-go/pkg/config/helpers" "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/restrictedendpoints" @@ -71,7 +72,7 @@ var _ = admission.ValidationInterface(&restrictedEndpointsAdmission{}) // ParseSimpleCIDRRules parses a list of CIDR strings func ParseSimpleCIDRRules(rules []string) (networks []*net.IPNet, err error) { for _, s := range rules { - _, cidr, err := net.ParseCIDR(s) + _, cidr, err := netutils.ParseCIDRSloppy(s) if err != nil { return nil, err } @@ -107,12 +108,12 @@ var ( } defaultRestrictedNetworks = []*net.IPNet{ // IPv4 link-local range 169.254.0.0/16 (including cloud metadata IP) - {IP: net.ParseIP("169.254.0.0"), Mask: net.CIDRMask(16, 32)}, + {IP: netutils.ParseIPSloppy("169.254.0.0"), Mask: net.CIDRMask(16, 32)}, } ) func checkRestrictedIP(ipString string, restricted []*net.IPNet) error { - ip := net.ParseIP(ipString) + ip := netutils.ParseIPSloppy(ipString) if ip == nil { return nil } diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.conversion.go index 1a4fd21ec0e0..e2b109eb69a2 100644 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.conversion.go +++ b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.deepcopy.go index e59ff458868b..0ff013697a53 100644 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/zz_generated.deepcopy.go index 159314a6901e..c918ac8a2e68 100644 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/route/apis/ingressadmission/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.conversion.go index 6a13d569f2ea..40a730275e95 100644 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.conversion.go +++ b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.deepcopy.go index 624cec3cceb0..eaf84add54c8 100644 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/zz_generated.deepcopy.go index e8f45f4e9b28..a37350369cdb 100644 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/zz_generated.deepcopy.go +++ b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/abac/v0/zz_generated.conversion.go b/pkg/apis/abac/v0/zz_generated.conversion.go index ed54737690fd..1111f6b07e19 100644 --- a/pkg/apis/abac/v0/zz_generated.conversion.go +++ b/pkg/apis/abac/v0/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/abac/v0/zz_generated.deepcopy.go b/pkg/apis/abac/v0/zz_generated.deepcopy.go index d2eb7135f8ff..0e2ad7bcab2e 100644 --- a/pkg/apis/abac/v0/zz_generated.deepcopy.go +++ b/pkg/apis/abac/v0/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/abac/v1beta1/zz_generated.conversion.go b/pkg/apis/abac/v1beta1/zz_generated.conversion.go index 3646a7d0d339..4bb4d8b54049 100644 --- a/pkg/apis/abac/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/abac/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go b/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go index 19c37edb5034..f4cc7b93f52a 100644 --- a/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go +++ b/pkg/apis/abac/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/abac/v1beta1/zz_generated.defaults.go b/pkg/apis/abac/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/pkg/apis/abac/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/abac/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/abac/zz_generated.deepcopy.go b/pkg/apis/abac/zz_generated.deepcopy.go index d660b6ad7cca..40c5b58fdf4f 100644 --- a/pkg/apis/abac/zz_generated.deepcopy.go +++ b/pkg/apis/abac/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admission/v1/zz_generated.conversion.go b/pkg/apis/admission/v1/zz_generated.conversion.go index 957aad9f1267..535390fd7361 100644 --- a/pkg/apis/admission/v1/zz_generated.conversion.go +++ b/pkg/apis/admission/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admission/v1/zz_generated.defaults.go b/pkg/apis/admission/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/pkg/apis/admission/v1/zz_generated.defaults.go +++ b/pkg/apis/admission/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admission/v1beta1/zz_generated.conversion.go b/pkg/apis/admission/v1beta1/zz_generated.conversion.go index 6dd4b5bb58a9..b2d44b2c9fcf 100644 --- a/pkg/apis/admission/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/admission/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admission/v1beta1/zz_generated.defaults.go b/pkg/apis/admission/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/pkg/apis/admission/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/admission/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admission/zz_generated.deepcopy.go b/pkg/apis/admission/zz_generated.deepcopy.go index c73b49515be2..452f53fdb7e2 100644 --- a/pkg/apis/admission/zz_generated.deepcopy.go +++ b/pkg/apis/admission/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admissionregistration/v1/zz_generated.conversion.go b/pkg/apis/admissionregistration/v1/zz_generated.conversion.go index 0157eac718f2..601d2c9cfdff 100644 --- a/pkg/apis/admissionregistration/v1/zz_generated.conversion.go +++ b/pkg/apis/admissionregistration/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admissionregistration/v1/zz_generated.defaults.go b/pkg/apis/admissionregistration/v1/zz_generated.defaults.go index cb27f6003bb3..c67444952a2c 100644 --- a/pkg/apis/admissionregistration/v1/zz_generated.defaults.go +++ b/pkg/apis/admissionregistration/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admissionregistration/v1beta1/zz_generated.conversion.go b/pkg/apis/admissionregistration/v1beta1/zz_generated.conversion.go index cc105ce38127..d469152683c4 100644 --- a/pkg/apis/admissionregistration/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/admissionregistration/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admissionregistration/v1beta1/zz_generated.defaults.go b/pkg/apis/admissionregistration/v1beta1/zz_generated.defaults.go index 8159b2c95832..4dcc81286a40 100644 --- a/pkg/apis/admissionregistration/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/admissionregistration/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/admissionregistration/zz_generated.deepcopy.go b/pkg/apis/admissionregistration/zz_generated.deepcopy.go index 44a84070d358..a0d555a4a016 100644 --- a/pkg/apis/admissionregistration/zz_generated.deepcopy.go +++ b/pkg/apis/admissionregistration/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apiserverinternal/v1alpha1/zz_generated.conversion.go b/pkg/apis/apiserverinternal/v1alpha1/zz_generated.conversion.go index 11cf07210308..9bb20d5a340f 100644 --- a/pkg/apis/apiserverinternal/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/apiserverinternal/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apiserverinternal/v1alpha1/zz_generated.defaults.go b/pkg/apis/apiserverinternal/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/pkg/apis/apiserverinternal/v1alpha1/zz_generated.defaults.go +++ b/pkg/apis/apiserverinternal/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apiserverinternal/zz_generated.deepcopy.go b/pkg/apis/apiserverinternal/zz_generated.deepcopy.go index 0e8861608b21..73210bb07b2e 100644 --- a/pkg/apis/apiserverinternal/zz_generated.deepcopy.go +++ b/pkg/apis/apiserverinternal/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apps/v1/zz_generated.conversion.go b/pkg/apis/apps/v1/zz_generated.conversion.go index 48419ed126e9..e30a48fa36dd 100644 --- a/pkg/apis/apps/v1/zz_generated.conversion.go +++ b/pkg/apis/apps/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apps/v1/zz_generated.defaults.go b/pkg/apis/apps/v1/zz_generated.defaults.go index 80dba3b79469..71620aaa434b 100644 --- a/pkg/apis/apps/v1/zz_generated.defaults.go +++ b/pkg/apis/apps/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apps/v1beta1/zz_generated.conversion.go b/pkg/apis/apps/v1beta1/zz_generated.conversion.go index 82b3f9986c6c..4bc769c55bac 100644 --- a/pkg/apis/apps/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apps/v1beta1/zz_generated.defaults.go b/pkg/apis/apps/v1beta1/zz_generated.defaults.go index 01e84f4e4f86..5d7f649f313b 100644 --- a/pkg/apis/apps/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/apps/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apps/v1beta2/zz_generated.conversion.go b/pkg/apis/apps/v1beta2/zz_generated.conversion.go index 075e9e36812a..7f80adb30a60 100644 --- a/pkg/apis/apps/v1beta2/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta2/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apps/v1beta2/zz_generated.defaults.go b/pkg/apis/apps/v1beta2/zz_generated.defaults.go index 76d66940c799..4560b3b8218f 100644 --- a/pkg/apis/apps/v1beta2/zz_generated.defaults.go +++ b/pkg/apis/apps/v1beta2/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/apps/zz_generated.deepcopy.go b/pkg/apis/apps/zz_generated.deepcopy.go index ff11b8fb2649..482d542445a0 100644 --- a/pkg/apis/apps/zz_generated.deepcopy.go +++ b/pkg/apis/apps/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authentication/v1/zz_generated.conversion.go b/pkg/apis/authentication/v1/zz_generated.conversion.go index 9bab47ac21de..24bbaa688181 100644 --- a/pkg/apis/authentication/v1/zz_generated.conversion.go +++ b/pkg/apis/authentication/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authentication/v1/zz_generated.defaults.go b/pkg/apis/authentication/v1/zz_generated.defaults.go index 25e259790e0f..e2ae4c314b00 100644 --- a/pkg/apis/authentication/v1/zz_generated.defaults.go +++ b/pkg/apis/authentication/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authentication/v1beta1/zz_generated.conversion.go b/pkg/apis/authentication/v1beta1/zz_generated.conversion.go index 95d65c5dab3e..0174d7b335db 100644 --- a/pkg/apis/authentication/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/authentication/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authentication/v1beta1/zz_generated.defaults.go b/pkg/apis/authentication/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/pkg/apis/authentication/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/authentication/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authentication/zz_generated.deepcopy.go b/pkg/apis/authentication/zz_generated.deepcopy.go index 1f485500439d..402f6e812def 100644 --- a/pkg/apis/authentication/zz_generated.deepcopy.go +++ b/pkg/apis/authentication/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authorization/v1/zz_generated.conversion.go b/pkg/apis/authorization/v1/zz_generated.conversion.go index 535176abe9e5..83b7fd9f8d12 100644 --- a/pkg/apis/authorization/v1/zz_generated.conversion.go +++ b/pkg/apis/authorization/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authorization/v1/zz_generated.defaults.go b/pkg/apis/authorization/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/pkg/apis/authorization/v1/zz_generated.defaults.go +++ b/pkg/apis/authorization/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authorization/v1beta1/zz_generated.conversion.go b/pkg/apis/authorization/v1beta1/zz_generated.conversion.go index a9d654f338ee..d8af485afe36 100644 --- a/pkg/apis/authorization/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/authorization/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authorization/v1beta1/zz_generated.defaults.go b/pkg/apis/authorization/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/pkg/apis/authorization/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/authorization/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/authorization/zz_generated.deepcopy.go b/pkg/apis/authorization/zz_generated.deepcopy.go index 31672762a4c1..dbd42caf5ba0 100644 --- a/pkg/apis/authorization/zz_generated.deepcopy.go +++ b/pkg/apis/authorization/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/autoscaling/v1/zz_generated.conversion.go b/pkg/apis/autoscaling/v1/zz_generated.conversion.go index 65374c74cc2e..7092cc587a5c 100644 --- a/pkg/apis/autoscaling/v1/zz_generated.conversion.go +++ b/pkg/apis/autoscaling/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/autoscaling/v1/zz_generated.defaults.go b/pkg/apis/autoscaling/v1/zz_generated.defaults.go index 5e0f8779f32b..cc20c613d950 100644 --- a/pkg/apis/autoscaling/v1/zz_generated.defaults.go +++ b/pkg/apis/autoscaling/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go b/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go index 5a7690572312..37ae8e6709a6 100644 --- a/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go +++ b/pkg/apis/autoscaling/v2beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go b/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go index dd7c9b2fa629..4d4abc79e0d3 100644 --- a/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go +++ b/pkg/apis/autoscaling/v2beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/autoscaling/v2beta2/zz_generated.conversion.go b/pkg/apis/autoscaling/v2beta2/zz_generated.conversion.go index ce94a2e64447..5111ec1ca969 100644 --- a/pkg/apis/autoscaling/v2beta2/zz_generated.conversion.go +++ b/pkg/apis/autoscaling/v2beta2/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/autoscaling/v2beta2/zz_generated.defaults.go b/pkg/apis/autoscaling/v2beta2/zz_generated.defaults.go index f41f351bf266..297048a4652d 100644 --- a/pkg/apis/autoscaling/v2beta2/zz_generated.defaults.go +++ b/pkg/apis/autoscaling/v2beta2/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/autoscaling/zz_generated.deepcopy.go b/pkg/apis/autoscaling/zz_generated.deepcopy.go index a7467c690455..9f2d6c2e5420 100644 --- a/pkg/apis/autoscaling/zz_generated.deepcopy.go +++ b/pkg/apis/autoscaling/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/batch/v1/zz_generated.conversion.go b/pkg/apis/batch/v1/zz_generated.conversion.go index ec49633b55e6..b67a2796dc71 100644 --- a/pkg/apis/batch/v1/zz_generated.conversion.go +++ b/pkg/apis/batch/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/batch/v1/zz_generated.defaults.go b/pkg/apis/batch/v1/zz_generated.defaults.go index afb907618dea..81f07ca1a116 100644 --- a/pkg/apis/batch/v1/zz_generated.defaults.go +++ b/pkg/apis/batch/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/batch/v1beta1/zz_generated.conversion.go b/pkg/apis/batch/v1beta1/zz_generated.conversion.go index 8439581df9d2..a6d7f5b17d41 100644 --- a/pkg/apis/batch/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/batch/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/batch/v1beta1/zz_generated.defaults.go b/pkg/apis/batch/v1beta1/zz_generated.defaults.go index 94f57743cd14..3d968b4eba86 100644 --- a/pkg/apis/batch/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/batch/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/batch/zz_generated.deepcopy.go b/pkg/apis/batch/zz_generated.deepcopy.go index 8b737c71ddb1..e11ec29b0463 100644 --- a/pkg/apis/batch/zz_generated.deepcopy.go +++ b/pkg/apis/batch/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/certificates/v1/zz_generated.conversion.go b/pkg/apis/certificates/v1/zz_generated.conversion.go index 8285aa030df4..6bf1e5b30e71 100644 --- a/pkg/apis/certificates/v1/zz_generated.conversion.go +++ b/pkg/apis/certificates/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/certificates/v1/zz_generated.defaults.go b/pkg/apis/certificates/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/pkg/apis/certificates/v1/zz_generated.defaults.go +++ b/pkg/apis/certificates/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/certificates/v1beta1/zz_generated.conversion.go b/pkg/apis/certificates/v1beta1/zz_generated.conversion.go index f8bfcb105f71..8cc0ea95f2d3 100644 --- a/pkg/apis/certificates/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/certificates/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/certificates/v1beta1/zz_generated.defaults.go b/pkg/apis/certificates/v1beta1/zz_generated.defaults.go index b3ff787cc3f9..3629ea290567 100644 --- a/pkg/apis/certificates/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/certificates/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/certificates/validation/validation_test.go b/pkg/apis/certificates/validation/validation_test.go index 32cade470706..bf6277cc43a5 100644 --- a/pkg/apis/certificates/validation/validation_test.go +++ b/pkg/apis/certificates/validation/validation_test.go @@ -24,6 +24,7 @@ import ( "encoding/pem" "fmt" "reflect" + "regexp" "strings" "testing" "time" @@ -974,7 +975,10 @@ func Test_validateCertificateSigningRequestOptions(t *testing.T) { // options that allow the csr to pass validation lenientOpts certificateValidationOptions - // expected errors when validating strictly + // regexes matching expected errors when validating strictly + strictRegexes []regexp.Regexp + + // expected errors (after filtering out errors matched by strictRegexes) when validating strictly strictErrs []string }{ // valid strict cases @@ -1127,8 +1131,8 @@ func Test_validateCertificateSigningRequestOptions(t *testing.T) { Certificate: invalidCertificateNonASN1Data, }, }, - lenientOpts: certificateValidationOptions{allowArbitraryCertificate: true}, - strictErrs: []string{`status.certificate: Invalid value: "": asn1: structure error: sequence tag mismatch`}, + lenientOpts: certificateValidationOptions{allowArbitraryCertificate: true}, + strictRegexes: []regexp.Regexp{*regexp.MustCompile(`status.certificate: Invalid value: "\": (asn1: structure error: sequence tag mismatch|x509: invalid RDNSequence)`)}, }, } @@ -1144,12 +1148,27 @@ func Test_validateCertificateSigningRequestOptions(t *testing.T) { for _, err := range validateCertificateSigningRequest(tt.csr, certificateValidationOptions{}) { gotErrs.Insert(err.Error()) } + + // filter errors matching strictRegexes and ensure every strictRegex matches at least one error + for _, expectedRegex := range tt.strictRegexes { + matched := false + for _, err := range gotErrs.List() { + if expectedRegex.MatchString(err) { + gotErrs.Delete(err) + matched = true + } + } + if !matched { + t.Errorf("missing expected error matching: %s", expectedRegex.String()) + } + } + wantErrs := sets.NewString(tt.strictErrs...) for _, missing := range wantErrs.Difference(gotErrs).List() { t.Errorf("missing expected strict error: %s", missing) } for _, unexpected := range gotErrs.Difference(wantErrs).List() { - t.Errorf("unexpected strict error: %s", unexpected) + t.Errorf("unexpected errors: %s", unexpected) } }) } diff --git a/pkg/apis/certificates/zz_generated.deepcopy.go b/pkg/apis/certificates/zz_generated.deepcopy.go index 53a5273b88f0..c5f73dad0c5e 100644 --- a/pkg/apis/certificates/zz_generated.deepcopy.go +++ b/pkg/apis/certificates/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/coordination/v1/zz_generated.conversion.go b/pkg/apis/coordination/v1/zz_generated.conversion.go index c74d3d7f1ce3..226c33f7a12d 100644 --- a/pkg/apis/coordination/v1/zz_generated.conversion.go +++ b/pkg/apis/coordination/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/coordination/v1/zz_generated.defaults.go b/pkg/apis/coordination/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/pkg/apis/coordination/v1/zz_generated.defaults.go +++ b/pkg/apis/coordination/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/coordination/v1beta1/zz_generated.conversion.go b/pkg/apis/coordination/v1beta1/zz_generated.conversion.go index aee7bb49f070..fd3f25dc26e9 100644 --- a/pkg/apis/coordination/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/coordination/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/coordination/v1beta1/zz_generated.defaults.go b/pkg/apis/coordination/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/pkg/apis/coordination/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/coordination/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/coordination/zz_generated.deepcopy.go b/pkg/apis/coordination/zz_generated.deepcopy.go index 219780bf8426..98d1e6b612e0 100644 --- a/pkg/apis/coordination/zz_generated.deepcopy.go +++ b/pkg/apis/coordination/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/core/v1/zz_generated.conversion.go b/pkg/apis/core/v1/zz_generated.conversion.go index 3f46c6ddc63d..9e4aa8425a93 100644 --- a/pkg/apis/core/v1/zz_generated.conversion.go +++ b/pkg/apis/core/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/core/v1/zz_generated.defaults.go b/pkg/apis/core/v1/zz_generated.defaults.go index d256ba8d36f3..f55ea22c40c3 100644 --- a/pkg/apis/core/v1/zz_generated.defaults.go +++ b/pkg/apis/core/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index 4ea4f0c7318c..a072d7cee284 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -3112,7 +3112,7 @@ func validatePodDNSConfig(dnsConfig *core.PodDNSConfig, dnsPolicy *core.DNSPolic allErrs = append(allErrs, field.Invalid(fldPath.Child("nameservers"), dnsConfig.Nameservers, fmt.Sprintf("must not have more than %v nameservers", MaxDNSNameservers))) } for i, ns := range dnsConfig.Nameservers { - if ip := net.ParseIP(ns); ip == nil { + if ip := netutils.ParseIPSloppy(ns); ip == nil { allErrs = append(allErrs, field.Invalid(fldPath.Child("nameservers").Index(i), ns, "must be valid IP address")) } } @@ -3246,7 +3246,7 @@ func validateOnlyAddedTolerations(newTolerations []core.Toleration, oldToleratio func ValidateHostAliases(hostAliases []core.HostAlias, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} for _, hostAlias := range hostAliases { - if ip := net.ParseIP(hostAlias.IP); ip == nil { + if ip := netutils.ParseIPSloppy(hostAlias.IP); ip == nil { allErrs = append(allErrs, field.Invalid(fldPath.Child("ip"), hostAlias.IP, "must be valid IP address")) } for _, hostname := range hostAlias.Hostnames { @@ -5840,7 +5840,7 @@ func validateEndpointAddress(address *core.EndpointAddress, fldPath *field.Path) // - https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml func ValidateNonSpecialIP(ipAddress string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - ip := net.ParseIP(ipAddress) + ip := netutils.ParseIPSloppy(ipAddress) if ip == nil { allErrs = append(allErrs, field.Invalid(fldPath, ipAddress, "must be a valid IP address")) return allErrs @@ -6160,7 +6160,7 @@ func ValidateLoadBalancerStatus(status *core.LoadBalancerStatus, fldPath *field. for i, ingress := range status.Ingress { idxPath := fldPath.Child("ingress").Index(i) if len(ingress.IP) > 0 { - if isIP := (net.ParseIP(ingress.IP) != nil); !isIP { + if isIP := (netutils.ParseIPSloppy(ingress.IP) != nil); !isIP { allErrs = append(allErrs, field.Invalid(idxPath.Child("ip"), ingress.IP, "must be a valid IP address")) } } @@ -6168,7 +6168,7 @@ func ValidateLoadBalancerStatus(status *core.LoadBalancerStatus, fldPath *field. for _, msg := range validation.IsDNS1123Subdomain(ingress.Hostname) { allErrs = append(allErrs, field.Invalid(idxPath.Child("hostname"), ingress.Hostname, msg)) } - if isIP := (net.ParseIP(ingress.Hostname) != nil); isIP { + if isIP := (netutils.ParseIPSloppy(ingress.Hostname) != nil); isIP { allErrs = append(allErrs, field.Invalid(idxPath.Child("hostname"), ingress.Hostname, "must be a DNS name, not an IP address")) } } @@ -6198,7 +6198,7 @@ func validateVolumeNodeAffinity(nodeAffinity *core.VolumeNodeAffinity, fldPath * // ValidateCIDR validates whether a CIDR matches the conventions expected by net.ParseCIDR func ValidateCIDR(cidr string) (*net.IPNet, error) { - _, net, err := net.ParseCIDR(cidr) + _, net, err := netutils.ParseCIDRSloppy(cidr) if err != nil { return nil, err } diff --git a/pkg/apis/core/zz_generated.deepcopy.go b/pkg/apis/core/zz_generated.deepcopy.go index 0e5fa25612a5..335db4aba31e 100644 --- a/pkg/apis/core/zz_generated.deepcopy.go +++ b/pkg/apis/core/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/discovery/v1/zz_generated.conversion.go b/pkg/apis/discovery/v1/zz_generated.conversion.go index 5894e48ff54f..1ccb7e8ee48c 100644 --- a/pkg/apis/discovery/v1/zz_generated.conversion.go +++ b/pkg/apis/discovery/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/discovery/v1/zz_generated.defaults.go b/pkg/apis/discovery/v1/zz_generated.defaults.go index d03030be9650..b92f28fa024b 100644 --- a/pkg/apis/discovery/v1/zz_generated.defaults.go +++ b/pkg/apis/discovery/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/discovery/v1beta1/zz_generated.conversion.go b/pkg/apis/discovery/v1beta1/zz_generated.conversion.go index e13697a9ed5b..1de9976bbd96 100644 --- a/pkg/apis/discovery/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/discovery/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/discovery/v1beta1/zz_generated.defaults.go b/pkg/apis/discovery/v1beta1/zz_generated.defaults.go index bfcd0afbf29e..c3742e81985c 100644 --- a/pkg/apis/discovery/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/discovery/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/discovery/zz_generated.deepcopy.go b/pkg/apis/discovery/zz_generated.deepcopy.go index 52bfe6957ccb..c2c0550eab13 100644 --- a/pkg/apis/discovery/zz_generated.deepcopy.go +++ b/pkg/apis/discovery/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/events/v1/zz_generated.conversion.go b/pkg/apis/events/v1/zz_generated.conversion.go index 679ef8e7c630..4cf267098f47 100644 --- a/pkg/apis/events/v1/zz_generated.conversion.go +++ b/pkg/apis/events/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/events/v1/zz_generated.defaults.go b/pkg/apis/events/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/pkg/apis/events/v1/zz_generated.defaults.go +++ b/pkg/apis/events/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/events/v1beta1/zz_generated.conversion.go b/pkg/apis/events/v1beta1/zz_generated.conversion.go index 1d1e972cd436..e58c1099e28f 100644 --- a/pkg/apis/events/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/events/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/events/v1beta1/zz_generated.defaults.go b/pkg/apis/events/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/pkg/apis/events/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/events/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/extensions/v1beta1/zz_generated.conversion.go b/pkg/apis/extensions/v1beta1/zz_generated.conversion.go index e2359f7365b0..9362b5821bba 100644 --- a/pkg/apis/extensions/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/extensions/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/extensions/v1beta1/zz_generated.defaults.go b/pkg/apis/extensions/v1beta1/zz_generated.defaults.go index 2d28b5779763..f6c4fe455889 100644 --- a/pkg/apis/extensions/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/extensions/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/extensions/zz_generated.deepcopy.go b/pkg/apis/extensions/zz_generated.deepcopy.go index 644000aaed9a..51b916f6a772 100644 --- a/pkg/apis/extensions/zz_generated.deepcopy.go +++ b/pkg/apis/extensions/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/flowcontrol/v1alpha1/zz_generated.conversion.go b/pkg/apis/flowcontrol/v1alpha1/zz_generated.conversion.go index e0b3ebd66260..93724931552d 100644 --- a/pkg/apis/flowcontrol/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/flowcontrol/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/flowcontrol/v1alpha1/zz_generated.defaults.go b/pkg/apis/flowcontrol/v1alpha1/zz_generated.defaults.go index d506ba8d6aa2..447f5249efee 100644 --- a/pkg/apis/flowcontrol/v1alpha1/zz_generated.defaults.go +++ b/pkg/apis/flowcontrol/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/flowcontrol/v1beta1/zz_generated.conversion.go b/pkg/apis/flowcontrol/v1beta1/zz_generated.conversion.go index 1474a689df9f..86b66135d293 100644 --- a/pkg/apis/flowcontrol/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/flowcontrol/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/flowcontrol/v1beta1/zz_generated.defaults.go b/pkg/apis/flowcontrol/v1beta1/zz_generated.defaults.go index 234386d8c7ab..1f724eb1c71e 100644 --- a/pkg/apis/flowcontrol/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/flowcontrol/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/flowcontrol/zz_generated.deepcopy.go b/pkg/apis/flowcontrol/zz_generated.deepcopy.go index 2e40a674d29b..e8a00dba6515 100644 --- a/pkg/apis/flowcontrol/zz_generated.deepcopy.go +++ b/pkg/apis/flowcontrol/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/imagepolicy/v1alpha1/zz_generated.conversion.go b/pkg/apis/imagepolicy/v1alpha1/zz_generated.conversion.go index 4e01b334b717..466f8edf560a 100644 --- a/pkg/apis/imagepolicy/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/imagepolicy/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/imagepolicy/v1alpha1/zz_generated.defaults.go b/pkg/apis/imagepolicy/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/pkg/apis/imagepolicy/v1alpha1/zz_generated.defaults.go +++ b/pkg/apis/imagepolicy/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/imagepolicy/zz_generated.deepcopy.go b/pkg/apis/imagepolicy/zz_generated.deepcopy.go index 4ba16c9e121a..d59c9ddcae25 100644 --- a/pkg/apis/imagepolicy/zz_generated.deepcopy.go +++ b/pkg/apis/imagepolicy/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/networking/v1/zz_generated.conversion.go b/pkg/apis/networking/v1/zz_generated.conversion.go index f18732652873..29b4789e8512 100644 --- a/pkg/apis/networking/v1/zz_generated.conversion.go +++ b/pkg/apis/networking/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/networking/v1/zz_generated.defaults.go b/pkg/apis/networking/v1/zz_generated.defaults.go index 14652c005ae4..d5f1290eb365 100644 --- a/pkg/apis/networking/v1/zz_generated.defaults.go +++ b/pkg/apis/networking/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/networking/v1beta1/zz_generated.conversion.go b/pkg/apis/networking/v1beta1/zz_generated.conversion.go index 459730570674..8c73bb5d2fca 100644 --- a/pkg/apis/networking/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/networking/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/networking/v1beta1/zz_generated.defaults.go b/pkg/apis/networking/v1beta1/zz_generated.defaults.go index 03edf68ef81f..ee9c3f4b20e9 100644 --- a/pkg/apis/networking/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/networking/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/networking/validation/validation.go b/pkg/apis/networking/validation/validation.go index 2091a2cff2eb..5e5f04633723 100644 --- a/pkg/apis/networking/validation/validation.go +++ b/pkg/apis/networking/validation/validation.go @@ -18,7 +18,6 @@ package validation import ( "fmt" - "net" "strings" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" @@ -36,6 +35,7 @@ import ( apivalidation "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/apis/networking" "k8s.io/kubernetes/pkg/features" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" ) @@ -341,7 +341,7 @@ func validateIngressRules(ingressRules []networking.IngressRule, fldPath *field. for i, ih := range ingressRules { wildcardHost := false if len(ih.Host) > 0 { - if isIP := (net.ParseIP(ih.Host) != nil); isIP { + if isIP := (netutils.ParseIPSloppy(ih.Host) != nil); isIP { allErrs = append(allErrs, field.Invalid(fldPath.Index(i).Child("host"), ih.Host, "must be a DNS name, not an IP address")) } // TODO: Ports and ips are allowed in the host part of a url diff --git a/pkg/apis/networking/zz_generated.deepcopy.go b/pkg/apis/networking/zz_generated.deepcopy.go index b19d0773325f..6ead9a76a8cb 100644 --- a/pkg/apis/networking/zz_generated.deepcopy.go +++ b/pkg/apis/networking/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/node/v1/zz_generated.conversion.go b/pkg/apis/node/v1/zz_generated.conversion.go index 2ae84d5c26b0..de408fbdf60e 100644 --- a/pkg/apis/node/v1/zz_generated.conversion.go +++ b/pkg/apis/node/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/node/v1alpha1/zz_generated.conversion.go b/pkg/apis/node/v1alpha1/zz_generated.conversion.go index ee08773cf749..bc5b438984df 100644 --- a/pkg/apis/node/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/node/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/node/v1beta1/zz_generated.conversion.go b/pkg/apis/node/v1beta1/zz_generated.conversion.go index 31404c9234d7..1ef600ab6d74 100644 --- a/pkg/apis/node/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/node/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/node/zz_generated.deepcopy.go b/pkg/apis/node/zz_generated.deepcopy.go index 4b585809a445..a56e0faaad31 100644 --- a/pkg/apis/node/zz_generated.deepcopy.go +++ b/pkg/apis/node/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/policy/v1/zz_generated.conversion.go b/pkg/apis/policy/v1/zz_generated.conversion.go index 21e6554ca38d..d3b7077bf015 100644 --- a/pkg/apis/policy/v1/zz_generated.conversion.go +++ b/pkg/apis/policy/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/policy/v1/zz_generated.defaults.go b/pkg/apis/policy/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/pkg/apis/policy/v1/zz_generated.defaults.go +++ b/pkg/apis/policy/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/policy/v1beta1/zz_generated.conversion.go b/pkg/apis/policy/v1beta1/zz_generated.conversion.go index 71ef27fcd51a..c816951d6afd 100644 --- a/pkg/apis/policy/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/policy/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/policy/v1beta1/zz_generated.defaults.go b/pkg/apis/policy/v1beta1/zz_generated.defaults.go index c0cd579f5743..5dbe17b7133e 100644 --- a/pkg/apis/policy/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/policy/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/policy/zz_generated.deepcopy.go b/pkg/apis/policy/zz_generated.deepcopy.go index 4d799ff8dc9e..02c4f484a4c4 100644 --- a/pkg/apis/policy/zz_generated.deepcopy.go +++ b/pkg/apis/policy/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/v1/zz_generated.conversion.go b/pkg/apis/rbac/v1/zz_generated.conversion.go index f7386d2ed417..424829d41fd3 100644 --- a/pkg/apis/rbac/v1/zz_generated.conversion.go +++ b/pkg/apis/rbac/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/v1/zz_generated.deepcopy.go b/pkg/apis/rbac/v1/zz_generated.deepcopy.go index 7bf8d137459f..a4ff45d65921 100644 --- a/pkg/apis/rbac/v1/zz_generated.deepcopy.go +++ b/pkg/apis/rbac/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/v1/zz_generated.defaults.go b/pkg/apis/rbac/v1/zz_generated.defaults.go index f0d53c17218e..ba7fdabd85be 100644 --- a/pkg/apis/rbac/v1/zz_generated.defaults.go +++ b/pkg/apis/rbac/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go b/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go index c2544881cc47..220a0bc6a02f 100644 --- a/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/rbac/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/v1alpha1/zz_generated.defaults.go b/pkg/apis/rbac/v1alpha1/zz_generated.defaults.go index 54977814ef82..93c541694cf2 100644 --- a/pkg/apis/rbac/v1alpha1/zz_generated.defaults.go +++ b/pkg/apis/rbac/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/v1beta1/zz_generated.conversion.go b/pkg/apis/rbac/v1beta1/zz_generated.conversion.go index fcf5ea04af82..350984bc83a4 100644 --- a/pkg/apis/rbac/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/rbac/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/v1beta1/zz_generated.defaults.go b/pkg/apis/rbac/v1beta1/zz_generated.defaults.go index 8eb65442419e..b4665dfe2580 100644 --- a/pkg/apis/rbac/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/rbac/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/rbac/zz_generated.deepcopy.go b/pkg/apis/rbac/zz_generated.deepcopy.go index 33518a9868c1..0f7023a2db3b 100644 --- a/pkg/apis/rbac/zz_generated.deepcopy.go +++ b/pkg/apis/rbac/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/scheduling/v1/zz_generated.conversion.go b/pkg/apis/scheduling/v1/zz_generated.conversion.go index 495c3a3458fa..ae142545db96 100644 --- a/pkg/apis/scheduling/v1/zz_generated.conversion.go +++ b/pkg/apis/scheduling/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/scheduling/v1/zz_generated.defaults.go b/pkg/apis/scheduling/v1/zz_generated.defaults.go index 4e502b516b3e..3d2ca7737101 100644 --- a/pkg/apis/scheduling/v1/zz_generated.defaults.go +++ b/pkg/apis/scheduling/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/scheduling/v1alpha1/zz_generated.conversion.go b/pkg/apis/scheduling/v1alpha1/zz_generated.conversion.go index dfcb61abcb35..ec75d81d75f7 100644 --- a/pkg/apis/scheduling/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/scheduling/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/scheduling/v1alpha1/zz_generated.defaults.go b/pkg/apis/scheduling/v1alpha1/zz_generated.defaults.go index 84c487666161..af14a4b9b6f3 100644 --- a/pkg/apis/scheduling/v1alpha1/zz_generated.defaults.go +++ b/pkg/apis/scheduling/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/scheduling/v1beta1/zz_generated.conversion.go b/pkg/apis/scheduling/v1beta1/zz_generated.conversion.go index d06661e826b3..bc029e8be5ca 100644 --- a/pkg/apis/scheduling/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/scheduling/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/scheduling/v1beta1/zz_generated.defaults.go b/pkg/apis/scheduling/v1beta1/zz_generated.defaults.go index a134b3b598d3..5380bf56ab8f 100644 --- a/pkg/apis/scheduling/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/scheduling/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/scheduling/zz_generated.deepcopy.go b/pkg/apis/scheduling/zz_generated.deepcopy.go index 43ff21471c6c..04ab256185d8 100644 --- a/pkg/apis/scheduling/zz_generated.deepcopy.go +++ b/pkg/apis/scheduling/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/storage/v1/zz_generated.conversion.go b/pkg/apis/storage/v1/zz_generated.conversion.go index 997f0c25e149..3342a2cc5461 100644 --- a/pkg/apis/storage/v1/zz_generated.conversion.go +++ b/pkg/apis/storage/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/storage/v1/zz_generated.defaults.go b/pkg/apis/storage/v1/zz_generated.defaults.go index 9d778356bf43..26dd21c3982c 100644 --- a/pkg/apis/storage/v1/zz_generated.defaults.go +++ b/pkg/apis/storage/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/storage/v1alpha1/zz_generated.conversion.go b/pkg/apis/storage/v1alpha1/zz_generated.conversion.go index 4adc66928770..5dad2b618291 100644 --- a/pkg/apis/storage/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/storage/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/storage/v1alpha1/zz_generated.defaults.go b/pkg/apis/storage/v1alpha1/zz_generated.defaults.go index b6fc9ff7787e..a3af949b3bd3 100644 --- a/pkg/apis/storage/v1alpha1/zz_generated.defaults.go +++ b/pkg/apis/storage/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/storage/v1beta1/zz_generated.conversion.go b/pkg/apis/storage/v1beta1/zz_generated.conversion.go index 9b2b880f0d64..be7360d829c6 100644 --- a/pkg/apis/storage/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/storage/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/storage/v1beta1/zz_generated.defaults.go b/pkg/apis/storage/v1beta1/zz_generated.defaults.go index ae2a504f1928..764c0d0eee44 100644 --- a/pkg/apis/storage/v1beta1/zz_generated.defaults.go +++ b/pkg/apis/storage/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/apis/storage/zz_generated.deepcopy.go b/pkg/apis/storage/zz_generated.deepcopy.go index a8e24544c34e..e480130b1963 100644 --- a/pkg/apis/storage/zz_generated.deepcopy.go +++ b/pkg/apis/storage/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/cloudprovider/providers/providers.go b/pkg/cloudprovider/providers/providers.go index 8213c4802ca1..a78450a0e416 100644 --- a/pkg/cloudprovider/providers/providers.go +++ b/pkg/cloudprovider/providers/providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/cloudprovider/providers/providers_test.go b/pkg/cloudprovider/providers/providers_test.go index 8b6599f8fe66..bffa5b01152a 100644 --- a/pkg/cloudprovider/providers/providers_test.go +++ b/pkg/cloudprovider/providers/providers_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go index c9e7d4664d18..865e97bb326f 100644 --- a/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/apis/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/apis/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/apis/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/apis/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/apis/config/v1alpha1/zz_generated.defaults.go b/pkg/controller/apis/config/v1alpha1/zz_generated.defaults.go index 5de65e84a3e4..bd27200c5a46 100644 --- a/pkg/controller/apis/config/v1alpha1/zz_generated.defaults.go +++ b/pkg/controller/apis/config/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/apis/config/zz_generated.deepcopy.go b/pkg/controller/apis/config/zz_generated.deepcopy.go index 013ebc36021e..696a4a4d5e23 100644 --- a/pkg/controller/apis/config/zz_generated.deepcopy.go +++ b/pkg/controller/apis/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.conversion.go index 5f503a8f968b..7e21b8043717 100644 --- a/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/certificates/signer/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/certificates/signer/config/zz_generated.deepcopy.go b/pkg/controller/certificates/signer/config/zz_generated.deepcopy.go index 31794ef2a0b4..0887ffceab5e 100644 --- a/pkg/controller/certificates/signer/config/zz_generated.deepcopy.go +++ b/pkg/controller/certificates/signer/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go index 1fb123d54083..64a18e06dc38 100644 --- a/pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/cronjob/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/cronjob/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/cronjob/config/zz_generated.deepcopy.go b/pkg/controller/cronjob/config/zz_generated.deepcopy.go index 2d08f74c1455..2826cbbc7cd8 100644 --- a/pkg/controller/cronjob/config/zz_generated.deepcopy.go +++ b/pkg/controller/cronjob/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/daemon/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/daemon/config/v1alpha1/zz_generated.conversion.go index d2c62089b465..3f10404cef2f 100644 --- a/pkg/controller/daemon/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/daemon/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/daemon/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/daemon/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/daemon/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/daemon/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/daemon/config/zz_generated.deepcopy.go b/pkg/controller/daemon/config/zz_generated.deepcopy.go index cbca99505cd7..fb29d354489f 100644 --- a/pkg/controller/daemon/config/zz_generated.deepcopy.go +++ b/pkg/controller/daemon/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/deployment/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/deployment/config/v1alpha1/zz_generated.conversion.go index 8de0639d4a03..f7034ff38c31 100644 --- a/pkg/controller/deployment/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/deployment/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/deployment/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/deployment/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/deployment/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/deployment/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/deployment/config/zz_generated.deepcopy.go b/pkg/controller/deployment/config/zz_generated.deepcopy.go index 53ed8de2e0b5..aa9f1fb58bdc 100644 --- a/pkg/controller/deployment/config/zz_generated.deepcopy.go +++ b/pkg/controller/deployment/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpoint/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/endpoint/config/v1alpha1/zz_generated.conversion.go index e053237dc859..57f359f25c35 100644 --- a/pkg/controller/endpoint/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/endpoint/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpoint/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/endpoint/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/endpoint/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/endpoint/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpoint/config/zz_generated.deepcopy.go b/pkg/controller/endpoint/config/zz_generated.deepcopy.go index b86208b59399..331e57e74f3f 100644 --- a/pkg/controller/endpoint/config/zz_generated.deepcopy.go +++ b/pkg/controller/endpoint/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpointslice/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/endpointslice/config/v1alpha1/zz_generated.conversion.go index ca06c6b39515..bcd7c8861318 100644 --- a/pkg/controller/endpointslice/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/endpointslice/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpointslice/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/endpointslice/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/endpointslice/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/endpointslice/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpointslice/config/zz_generated.deepcopy.go b/pkg/controller/endpointslice/config/zz_generated.deepcopy.go index 932bd674d11e..7c6ddee111d0 100644 --- a/pkg/controller/endpointslice/config/zz_generated.deepcopy.go +++ b/pkg/controller/endpointslice/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.conversion.go index 740bf6ff5a6b..b0aee2e9dbf9 100644 --- a/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/endpointslicemirroring/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpointslicemirroring/config/zz_generated.deepcopy.go b/pkg/controller/endpointslicemirroring/config/zz_generated.deepcopy.go index 1a0a424e21a4..c2269a444c1d 100644 --- a/pkg/controller/endpointslicemirroring/config/zz_generated.deepcopy.go +++ b/pkg/controller/endpointslicemirroring/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/endpointslicemirroring/utils.go b/pkg/controller/endpointslicemirroring/utils.go index 1af6115b999c..45888664b621 100644 --- a/pkg/controller/endpointslicemirroring/utils.go +++ b/pkg/controller/endpointslicemirroring/utils.go @@ -18,7 +18,6 @@ package endpointslicemirroring import ( "fmt" - "net" "strings" corev1 "k8s.io/api/core/v1" @@ -30,6 +29,7 @@ import ( "k8s.io/client-go/tools/leaderelection/resourcelock" "k8s.io/kubernetes/pkg/apis/discovery/validation" endpointutil "k8s.io/kubernetes/pkg/controller/util/endpoint" + netutils "k8s.io/utils/net" ) // addrTypePortMapKey is used to uniquely identify groups of endpoint ports and @@ -50,7 +50,7 @@ func (pk addrTypePortMapKey) addressType() discovery.AddressType { } func getAddressType(address string) *discovery.AddressType { - ip := net.ParseIP(address) + ip := netutils.ParseIPSloppy(address) if ip == nil { return nil } diff --git a/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.conversion.go index 3e999018941a..a5440f3418f6 100644 --- a/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/garbagecollector/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/garbagecollector/config/zz_generated.deepcopy.go b/pkg/controller/garbagecollector/config/zz_generated.deepcopy.go index 0ed34dba95f0..2bd27363d008 100644 --- a/pkg/controller/garbagecollector/config/zz_generated.deepcopy.go +++ b/pkg/controller/garbagecollector/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go b/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go index c4e24ba61b58..9c949e52d7dd 100644 --- a/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go +++ b/pkg/controller/garbagecollector/metaonly/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/job/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/job/config/v1alpha1/zz_generated.conversion.go index 0946a604160b..16e5d5e89926 100644 --- a/pkg/controller/job/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/job/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/job/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/job/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/job/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/job/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/job/config/zz_generated.deepcopy.go b/pkg/controller/job/config/zz_generated.deepcopy.go index 76680e7aad98..2f291c7dad57 100644 --- a/pkg/controller/job/config/zz_generated.deepcopy.go +++ b/pkg/controller/job/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/namespace/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/namespace/config/v1alpha1/zz_generated.conversion.go index 903a60f1d1e1..b70e9f9bb584 100644 --- a/pkg/controller/namespace/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/namespace/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/namespace/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/namespace/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/namespace/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/namespace/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/namespace/config/zz_generated.deepcopy.go b/pkg/controller/namespace/config/zz_generated.deepcopy.go index 9aa3f52af816..b777f21eb046 100644 --- a/pkg/controller/namespace/config/zz_generated.deepcopy.go +++ b/pkg/controller/namespace/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/nodeipam/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/nodeipam/config/v1alpha1/zz_generated.conversion.go index 1ba089f8055c..3f22261227db 100644 --- a/pkg/controller/nodeipam/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/nodeipam/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/nodeipam/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/nodeipam/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/nodeipam/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/nodeipam/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/nodeipam/config/zz_generated.deepcopy.go b/pkg/controller/nodeipam/config/zz_generated.deepcopy.go index 52ab9f1da3af..258b9df214ad 100644 --- a/pkg/controller/nodeipam/config/zz_generated.deepcopy.go +++ b/pkg/controller/nodeipam/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/nodeipam/ipam/adapter.go b/pkg/controller/nodeipam/ipam/adapter.go index cc78e12396f6..b722a1bdc747 100644 --- a/pkg/controller/nodeipam/ipam/adapter.go +++ b/pkg/controller/nodeipam/ipam/adapter.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -25,6 +26,7 @@ import ( "net" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -80,7 +82,7 @@ func (a *adapter) Alias(ctx context.Context, node *v1.Node) (*net.IPNet, error) klog.Warningf("Node %q has more than one alias assigned (%v), defaulting to the first", node.Name, cidrs) } - _, cidrRange, err := net.ParseCIDR(cidrs[0]) + _, cidrRange, err := netutils.ParseCIDRSloppy(cidrs[0]) if err != nil { return nil, err } diff --git a/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go b/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go index 52bb209d7d6e..b934baa4c561 100644 --- a/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go +++ b/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go @@ -24,6 +24,7 @@ import ( "k8s.io/component-base/metrics/testutil" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) func TestCIDRSetFullyAllocated(t *testing.T) { @@ -47,7 +48,7 @@ func TestCIDRSetFullyAllocated(t *testing.T) { }, } for _, tc := range cases { - _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(tc.clusterCIDRStr) a, err := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) @@ -198,7 +199,7 @@ func TestIndexToCIDRBlock(t *testing.T) { }, } for _, tc := range cases { - _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(tc.clusterCIDRStr) a, err := NewCIDRSet(clusterCIDR, tc.subnetMaskSize) if err != nil { t.Fatalf("error for %v ", tc.description) @@ -225,7 +226,7 @@ func TestCIDRSet_RandomishAllocation(t *testing.T) { }, } for _, tc := range cases { - _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(tc.clusterCIDRStr) a, err := NewCIDRSet(clusterCIDR, 24) if err != nil { t.Fatalf("Error allocating CIDRSet for %v", tc.description) @@ -286,7 +287,7 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { }, } for _, tc := range cases { - _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(tc.clusterCIDRStr) a, err := NewCIDRSet(clusterCIDR, 24) if err != nil { t.Fatalf("Error allocating CIDRSet for %v", tc.description) @@ -399,7 +400,7 @@ func TestDoubleOccupyRelease(t *testing.T) { // operations have been executed. numAllocatable24s := (1 << 8) - 3 - _, clusterCIDR, _ := net.ParseCIDR(clusterCIDRStr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(clusterCIDRStr) a, err := NewCIDRSet(clusterCIDR, 24) if err != nil { t.Fatalf("Error allocating CIDRSet") @@ -407,7 +408,7 @@ func TestDoubleOccupyRelease(t *testing.T) { // Execute the operations for _, op := range operations { - _, cidr, _ := net.ParseCIDR(op.cidrStr) + _, cidr, _ := netutils.ParseCIDRSloppy(op.cidrStr) switch op.operation { case "occupy": a.Occupy(cidr) @@ -557,7 +558,7 @@ func TestGetBitforCIDR(t *testing.T) { } for _, tc := range cases { - _, clusterCIDR, err := net.ParseCIDR(tc.clusterCIDRStr) + _, clusterCIDR, err := netutils.ParseCIDRSloppy(tc.clusterCIDRStr) if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) } @@ -566,7 +567,7 @@ func TestGetBitforCIDR(t *testing.T) { if err != nil { t.Fatalf("Error allocating CIDRSet for %v", tc.description) } - _, subnetCIDR, err := net.ParseCIDR(tc.subNetCIDRStr) + _, subnetCIDR, err := netutils.ParseCIDRSloppy(tc.subNetCIDRStr) if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) } @@ -727,7 +728,7 @@ func TestOccupy(t *testing.T) { } for _, tc := range cases { - _, clusterCIDR, err := net.ParseCIDR(tc.clusterCIDRStr) + _, clusterCIDR, err := netutils.ParseCIDRSloppy(tc.clusterCIDRStr) if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) } @@ -737,7 +738,7 @@ func TestOccupy(t *testing.T) { t.Fatalf("Error allocating CIDRSet for %v", tc.description) } - _, subnetCIDR, err := net.ParseCIDR(tc.subNetCIDRStr) + _, subnetCIDR, err := netutils.ParseCIDRSloppy(tc.subNetCIDRStr) if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) } @@ -796,7 +797,7 @@ func TestCIDRSetv6(t *testing.T) { } for _, tc := range cases { t.Run(tc.description, func(t *testing.T) { - _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(tc.clusterCIDRStr) a, err := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) if gotErr := err != nil; gotErr != tc.expectErr { t.Fatalf("NewCIDRSet(%v, %v) = %v, %v; gotErr = %t, want %t", clusterCIDR, tc.subNetMaskSize, a, err, gotErr, tc.expectErr) @@ -834,7 +835,7 @@ func TestCIDRSetv6(t *testing.T) { func TestCidrSetMetrics(t *testing.T) { cidr := "10.0.0.0/16" - _, clusterCIDR, _ := net.ParseCIDR(cidr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(cidr) // We have 256 free cidrs a, err := NewCIDRSet(clusterCIDR, 24) if err != nil { @@ -880,7 +881,7 @@ func TestCidrSetMetrics(t *testing.T) { func TestCidrSetMetricsHistogram(t *testing.T) { cidr := "10.0.0.0/16" - _, clusterCIDR, _ := net.ParseCIDR(cidr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(cidr) // We have 256 free cidrs a, err := NewCIDRSet(clusterCIDR, 24) if err != nil { @@ -890,7 +891,7 @@ func TestCidrSetMetricsHistogram(t *testing.T) { // Allocate half of the range // Occupy does not update the nextCandidate - _, halfClusterCIDR, _ := net.ParseCIDR("10.0.0.0/17") + _, halfClusterCIDR, _ := netutils.ParseCIDRSloppy("10.0.0.0/17") a.Occupy(halfClusterCIDR) em := testMetrics{ usage: 0.5, @@ -917,7 +918,7 @@ func TestCidrSetMetricsHistogram(t *testing.T) { func TestCidrSetMetricsDual(t *testing.T) { // create IPv4 cidrSet cidrIPv4 := "10.0.0.0/16" - _, clusterCIDRv4, _ := net.ParseCIDR(cidrIPv4) + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy(cidrIPv4) a, err := NewCIDRSet(clusterCIDRv4, 24) if err != nil { t.Fatalf("unexpected error creating CidrSet: %v", err) @@ -925,7 +926,7 @@ func TestCidrSetMetricsDual(t *testing.T) { clearMetrics(map[string]string{"clusterCIDR": cidrIPv4}) // create IPv6 cidrSet cidrIPv6 := "2001:db8::/48" - _, clusterCIDRv6, _ := net.ParseCIDR(cidrIPv6) + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy(cidrIPv6) b, err := NewCIDRSet(clusterCIDRv6, 64) if err != nil { t.Fatalf("unexpected error creating CidrSet: %v", err) @@ -1012,7 +1013,7 @@ func expectMetrics(t *testing.T, label string, em testMetrics) { // Benchmarks func benchmarkAllocateAllIPv6(cidr string, subnetMaskSize int, b *testing.B) { - _, clusterCIDR, _ := net.ParseCIDR(cidr) + _, clusterCIDR, _ := netutils.ParseCIDRSloppy(cidr) a, _ := NewCIDRSet(clusterCIDR, subnetMaskSize) for n := 0; n < b.N; n++ { // Allocate the whole range + 1 diff --git a/pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go b/pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go index 656216aec294..97815e58e731 100644 --- a/pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go +++ b/pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -318,7 +319,7 @@ func needPodCIDRsUpdate(node *v1.Node, podCIDRs []*net.IPNet) (bool, error) { if node.Spec.PodCIDR == "" { return true, nil } - _, nodePodCIDR, err := net.ParseCIDR(node.Spec.PodCIDR) + _, nodePodCIDR, err := netutils.ParseCIDRSloppy(node.Spec.PodCIDR) if err != nil { klog.ErrorS(err, "Found invalid node.Spec.PodCIDR", "node.Spec.PodCIDR", node.Spec.PodCIDR) // We will try to overwrite with new CIDR(s) diff --git a/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_nolegacyproviders.go b/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_nolegacyproviders.go index 4787b5b5e4a9..94fdcb5d18a6 100644 --- a/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_nolegacyproviders.go +++ b/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_nolegacyproviders.go @@ -1,3 +1,4 @@ +//go:build providerless // +build providerless /* diff --git a/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_test.go b/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_test.go index 75cfaf618b25..21b65d4539c4 100644 --- a/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_test.go +++ b/pkg/controller/nodeipam/ipam/cloud_cidr_allocator_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/controller/nodeipam/ipam/controller_legacyprovider.go b/pkg/controller/nodeipam/ipam/controller_legacyprovider.go index 9e37c6068845..e1ffa1b8df72 100644 --- a/pkg/controller/nodeipam/ipam/controller_legacyprovider.go +++ b/pkg/controller/nodeipam/ipam/controller_legacyprovider.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -25,6 +26,7 @@ import ( "time" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" "k8s.io/api/core/v1" informers "k8s.io/client-go/informers/core/v1" @@ -119,7 +121,7 @@ func (c *Controller) Start(nodeInformer informers.NodeInformer) error { } for _, node := range nodes.Items { if node.Spec.PodCIDR != "" { - _, cidrRange, err := net.ParseCIDR(node.Spec.PodCIDR) + _, cidrRange, err := netutils.ParseCIDRSloppy(node.Spec.PodCIDR) if err == nil { c.set.Occupy(cidrRange) klog.V(3).Infof("Occupying CIDR for node %q (%v)", node.Name, node.Spec.PodCIDR) diff --git a/pkg/controller/nodeipam/ipam/range_allocator.go b/pkg/controller/nodeipam/ipam/range_allocator.go index 695c19c4c49b..e310aafd70d3 100644 --- a/pkg/controller/nodeipam/ipam/range_allocator.go +++ b/pkg/controller/nodeipam/ipam/range_allocator.go @@ -23,6 +23,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/types" @@ -224,7 +225,7 @@ func (r *rangeAllocator) occupyCIDRs(node *v1.Node) error { return nil } for idx, cidr := range node.Spec.PodCIDRs { - _, podCIDR, err := net.ParseCIDR(cidr) + _, podCIDR, err := netutils.ParseCIDRSloppy(cidr) if err != nil { return fmt.Errorf("failed to parse node %s, CIDR %s", node.Name, node.Spec.PodCIDR) } @@ -286,7 +287,7 @@ func (r *rangeAllocator) ReleaseCIDR(node *v1.Node) error { } for idx, cidr := range node.Spec.PodCIDRs { - _, podCIDR, err := net.ParseCIDR(cidr) + _, podCIDR, err := netutils.ParseCIDRSloppy(cidr) if err != nil { return fmt.Errorf("failed to parse CIDR %s on Node %v: %v", cidr, node.Name, err) } diff --git a/pkg/controller/nodeipam/ipam/range_allocator_test.go b/pkg/controller/nodeipam/ipam/range_allocator_test.go index ff34d4b7a182..0e7c452e01f1 100644 --- a/pkg/controller/nodeipam/ipam/range_allocator_test.go +++ b/pkg/controller/nodeipam/ipam/range_allocator_test.go @@ -30,6 +30,7 @@ import ( "k8s.io/client-go/kubernetes/fake" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/testutil" + netutils "k8s.io/utils/net" ) const testNodePollInterval = 10 * time.Millisecond @@ -86,7 +87,7 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") return []*net.IPNet{clusterCIDRv4} }(), ServiceCIDR: nil, @@ -111,8 +112,8 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") - _, clusterCIDRv6, _ := net.ParseCIDR("ace:cab:deca::/8") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/8") return []*net.IPNet{clusterCIDRv4, clusterCIDRv6} }(), ServiceCIDR: nil, @@ -140,7 +141,7 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") return []*net.IPNet{clusterCIDRv4} }(), ServiceCIDR: nil, @@ -168,8 +169,8 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") - _, clusterCIDRv6, _ := net.ParseCIDR("ace:cab:deca::/8") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/8") return []*net.IPNet{clusterCIDRv4, clusterCIDRv6} }(), ServiceCIDR: nil, @@ -198,7 +199,7 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") return []*net.IPNet{clusterCIDRv4} }(), ServiceCIDR: nil, @@ -227,7 +228,7 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") return []*net.IPNet{clusterCIDRv4} }(), ServiceCIDR: nil, @@ -256,8 +257,8 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") - _, clusterCIDRv6, _ := net.ParseCIDR("ace:cab:deca::/8") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/8") return []*net.IPNet{clusterCIDRv4, clusterCIDRv6} }(), ServiceCIDR: nil, @@ -286,8 +287,8 @@ func TestOccupyPreExistingCIDR(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("10.10.0.0/16") - _, clusterCIDRv6, _ := net.ParseCIDR("ace:cab:deca::/8") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("10.10.0.0/16") + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/8") return []*net.IPNet{clusterCIDRv4, clusterCIDRv6} }(), ServiceCIDR: nil, @@ -341,7 +342,7 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDR, _ := net.ParseCIDR("127.123.234.0/24") + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/24") return []*net.IPNet{clusterCIDR} }(), ServiceCIDR: nil, @@ -366,11 +367,11 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDR, _ := net.ParseCIDR("127.123.234.0/24") + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/24") return []*net.IPNet{clusterCIDR} }(), ServiceCIDR: func() *net.IPNet { - _, serviceCIDR, _ := net.ParseCIDR("127.123.234.0/26") + _, serviceCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/26") return serviceCIDR }(), SecondaryServiceCIDR: nil, @@ -395,11 +396,11 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDR, _ := net.ParseCIDR("127.123.234.0/24") + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/24") return []*net.IPNet{clusterCIDR} }(), ServiceCIDR: func() *net.IPNet { - _, serviceCIDR, _ := net.ParseCIDR("127.123.234.0/26") + _, serviceCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/26") return serviceCIDR }(), SecondaryServiceCIDR: nil, @@ -426,12 +427,12 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("127.123.234.0/8") - _, clusterCIDRv6, _ := net.ParseCIDR("ace:cab:deca::/84") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("127.123.234.0/8") + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/84") return []*net.IPNet{clusterCIDRv4, clusterCIDRv6} }(), ServiceCIDR: func() *net.IPNet { - _, serviceCIDR, _ := net.ParseCIDR("127.123.234.0/26") + _, serviceCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/26") return serviceCIDR }(), SecondaryServiceCIDR: nil, @@ -452,12 +453,12 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("127.123.234.0/8") - _, clusterCIDRv6, _ := net.ParseCIDR("ace:cab:deca::/84") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("127.123.234.0/8") + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/84") return []*net.IPNet{clusterCIDRv6, clusterCIDRv4} }(), ServiceCIDR: func() *net.IPNet { - _, serviceCIDR, _ := net.ParseCIDR("127.123.234.0/26") + _, serviceCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/26") return serviceCIDR }(), SecondaryServiceCIDR: nil, @@ -478,13 +479,13 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDRv4, _ := net.ParseCIDR("127.123.234.0/8") - _, clusterCIDRv6, _ := net.ParseCIDR("ace:cab:deca::/84") - _, clusterCIDRv4_2, _ := net.ParseCIDR("10.0.0.0/8") + _, clusterCIDRv4, _ := netutils.ParseCIDRSloppy("127.123.234.0/8") + _, clusterCIDRv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/84") + _, clusterCIDRv4_2, _ := netutils.ParseCIDRSloppy("10.0.0.0/8") return []*net.IPNet{clusterCIDRv4, clusterCIDRv6, clusterCIDRv4_2} }(), ServiceCIDR: func() *net.IPNet { - _, serviceCIDR, _ := net.ParseCIDR("127.123.234.0/26") + _, serviceCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/26") return serviceCIDR }(), SecondaryServiceCIDR: nil, @@ -521,7 +522,7 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDR, _ := net.ParseCIDR("10.10.0.0/22") + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("10.10.0.0/22") return []*net.IPNet{clusterCIDR} }(), ServiceCIDR: nil, @@ -557,7 +558,7 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { // pre allocate the cidrs as per the test for idx, allocatedList := range tc.allocatedCIDRs { for _, allocated := range allocatedList { - _, cidr, err := net.ParseCIDR(allocated) + _, cidr, err := netutils.ParseCIDRSloppy(allocated) if err != nil { t.Fatalf("%v: unexpected error when parsing CIDR %v: %v", tc.description, allocated, err) } @@ -623,7 +624,7 @@ func TestAllocateOrOccupyCIDRFailure(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDR, _ := net.ParseCIDR("127.123.234.0/28") + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/28") return []*net.IPNet{clusterCIDR} }(), ServiceCIDR: nil, @@ -654,7 +655,7 @@ func TestAllocateOrOccupyCIDRFailure(t *testing.T) { // this is a bit of white box testing for setIdx, allocatedList := range tc.allocatedCIDRs { for _, allocated := range allocatedList { - _, cidr, err := net.ParseCIDR(allocated) + _, cidr, err := netutils.ParseCIDRSloppy(allocated) if err != nil { t.Fatalf("%v: unexpected error when parsing CIDR %v: %v", tc.description, cidr, err) } @@ -727,7 +728,7 @@ func TestReleaseCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDR, _ := net.ParseCIDR("127.123.234.0/28") + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/28") return []*net.IPNet{clusterCIDR} }(), ServiceCIDR: nil, @@ -759,7 +760,7 @@ func TestReleaseCIDRSuccess(t *testing.T) { }, allocatorParams: CIDRAllocatorParams{ ClusterCIDRs: func() []*net.IPNet { - _, clusterCIDR, _ := net.ParseCIDR("127.123.234.0/28") + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("127.123.234.0/28") return []*net.IPNet{clusterCIDR} }(), ServiceCIDR: nil, @@ -796,7 +797,7 @@ func TestReleaseCIDRSuccess(t *testing.T) { // this is a bit of white box testing for setIdx, allocatedList := range tc.allocatedCIDRs { for _, allocated := range allocatedList { - _, cidr, err := net.ParseCIDR(allocated) + _, cidr, err := netutils.ParseCIDRSloppy(allocated) if err != nil { t.Fatalf("%v: unexpected error when parsing CIDR %v: %v", tc.description, allocated, err) } diff --git a/pkg/controller/nodeipam/ipam/sync/sync.go b/pkg/controller/nodeipam/ipam/sync/sync.go index 3150aebe8ed8..0af19aa829ad 100644 --- a/pkg/controller/nodeipam/ipam/sync/sync.go +++ b/pkg/controller/nodeipam/ipam/sync/sync.go @@ -23,6 +23,7 @@ import ( "time" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" "k8s.io/api/core/v1" "k8s.io/kubernetes/pkg/controller/nodeipam/ipam/cidrset" @@ -281,7 +282,7 @@ func (op *updateOp) updateAliasFromNode(ctx context.Context, sync *NodeSync, nod return fmt.Errorf("cannot sync to cloud in mode %q", sync.mode) } - _, aliasRange, err := net.ParseCIDR(node.Spec.PodCIDR) + _, aliasRange, err := netutils.ParseCIDRSloppy(node.Spec.PodCIDR) if err != nil { klog.Errorf("Could not parse PodCIDR (%q) for node %q: %v", node.Spec.PodCIDR, node.Name, err) @@ -364,7 +365,7 @@ func (op *deleteOp) run(sync *NodeSync) error { return nil } - _, cidrRange, err := net.ParseCIDR(op.node.Spec.PodCIDR) + _, cidrRange, err := netutils.ParseCIDRSloppy(op.node.Spec.PodCIDR) if err != nil { klog.Errorf("Deleted node %q has an invalid podCIDR %q: %v", op.node.Name, op.node.Spec.PodCIDR, err) diff --git a/pkg/controller/nodeipam/ipam/sync/sync_test.go b/pkg/controller/nodeipam/ipam/sync/sync_test.go index 60ae1d53838c..fe0c4a9e6d37 100644 --- a/pkg/controller/nodeipam/ipam/sync/sync_test.go +++ b/pkg/controller/nodeipam/ipam/sync/sync_test.go @@ -28,12 +28,13 @@ import ( "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/controller/nodeipam/ipam/cidrset" "k8s.io/kubernetes/pkg/controller/nodeipam/ipam/test" + netutils "k8s.io/utils/net" "k8s.io/api/core/v1" ) var ( - _, clusterCIDRRange, _ = net.ParseCIDR("10.1.0.0/16") + _, clusterCIDRRange, _ = netutils.ParseCIDRSloppy("10.1.0.0/16") ) type fakeEvent struct { diff --git a/pkg/controller/nodeipam/ipam/test/utils.go b/pkg/controller/nodeipam/ipam/test/utils.go index 14fd66630869..42242e1899b1 100644 --- a/pkg/controller/nodeipam/ipam/test/utils.go +++ b/pkg/controller/nodeipam/ipam/test/utils.go @@ -18,12 +18,14 @@ package test import ( "net" + + netutils "k8s.io/utils/net" ) // MustParseCIDR returns the CIDR range parsed from s or panics if the string // cannot be parsed. func MustParseCIDR(s string) *net.IPNet { - _, ret, err := net.ParseCIDR(s) + _, ret, err := netutils.ParseCIDRSloppy(s) if err != nil { panic(err) } diff --git a/pkg/controller/nodeipam/legacyprovider.go b/pkg/controller/nodeipam/legacyprovider.go index e23f52aea8d3..accd4ae27f09 100644 --- a/pkg/controller/nodeipam/legacyprovider.go +++ b/pkg/controller/nodeipam/legacyprovider.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/controller/nodeipam/node_ipam_controller_test.go b/pkg/controller/nodeipam/node_ipam_controller_test.go index 117e7709f734..48e850b9e789 100644 --- a/pkg/controller/nodeipam/node_ipam_controller_test.go +++ b/pkg/controller/nodeipam/node_ipam_controller_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -89,8 +90,8 @@ func TestNewNodeIpamControllerWithCIDRMasks(t *testing.T) { } { t.Run(tc.desc, func(t *testing.T) { clusterCidrs, _ := netutils.ParseCIDRs(strings.Split(tc.clusterCIDR, ",")) - _, serviceCIDRIpNet, _ := net.ParseCIDR(tc.serviceCIDR) - _, secondaryServiceCIDRIpNet, _ := net.ParseCIDR(tc.secondaryServiceCIDR) + _, serviceCIDRIpNet, _ := netutils.ParseCIDRSloppy(tc.serviceCIDR) + _, secondaryServiceCIDRIpNet, _ := netutils.ParseCIDRSloppy(tc.secondaryServiceCIDR) if os.Getenv("EXIT_ON_FATAL") == "1" { // This is the subprocess which runs the actual code. diff --git a/pkg/controller/nodeipam/nolegacyprovider.go b/pkg/controller/nodeipam/nolegacyprovider.go index 98beb2949ff1..8496ccd13258 100644 --- a/pkg/controller/nodeipam/nolegacyprovider.go +++ b/pkg/controller/nodeipam/nolegacyprovider.go @@ -1,3 +1,4 @@ +//go:build providerless // +build providerless /* diff --git a/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.conversion.go index 73aeae316fa0..30e20e36353f 100644 --- a/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/nodelifecycle/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/nodelifecycle/config/zz_generated.deepcopy.go b/pkg/controller/nodelifecycle/config/zz_generated.deepcopy.go index 07adddfa72c4..0e0375c6cbff 100644 --- a/pkg/controller/nodelifecycle/config/zz_generated.deepcopy.go +++ b/pkg/controller/nodelifecycle/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.conversion.go index dbe6461804b7..f2cae9341f32 100644 --- a/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/podautoscaler/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/podautoscaler/config/zz_generated.deepcopy.go b/pkg/controller/podautoscaler/config/zz_generated.deepcopy.go index 57db8a1c7d86..1458d0f67d17 100644 --- a/pkg/controller/podautoscaler/config/zz_generated.deepcopy.go +++ b/pkg/controller/podautoscaler/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/podgc/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/podgc/config/v1alpha1/zz_generated.conversion.go index 8b5173157932..a433a287fcfe 100644 --- a/pkg/controller/podgc/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/podgc/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/podgc/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/podgc/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/podgc/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/podgc/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/podgc/config/zz_generated.deepcopy.go b/pkg/controller/podgc/config/zz_generated.deepcopy.go index 7a29d7c23eb6..02142e2afc00 100644 --- a/pkg/controller/podgc/config/zz_generated.deepcopy.go +++ b/pkg/controller/podgc/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/replicaset/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/replicaset/config/v1alpha1/zz_generated.conversion.go index ec1c29b95ecf..b1c6afa20a78 100644 --- a/pkg/controller/replicaset/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/replicaset/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/replicaset/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/replicaset/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/replicaset/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/replicaset/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/replicaset/config/zz_generated.deepcopy.go b/pkg/controller/replicaset/config/zz_generated.deepcopy.go index 7e2f5ef3e08a..9ef905c12877 100644 --- a/pkg/controller/replicaset/config/zz_generated.deepcopy.go +++ b/pkg/controller/replicaset/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/replication/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/replication/config/v1alpha1/zz_generated.conversion.go index 9dcccb9362d1..50b608d0d209 100644 --- a/pkg/controller/replication/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/replication/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/replication/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/replication/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/replication/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/replication/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/replication/config/zz_generated.deepcopy.go b/pkg/controller/replication/config/zz_generated.deepcopy.go index 9823dfebed1c..6e6267e014f2 100644 --- a/pkg/controller/replication/config/zz_generated.deepcopy.go +++ b/pkg/controller/replication/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/resourcequota/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/resourcequota/config/v1alpha1/zz_generated.conversion.go index 1a921f6d9104..2350adc47e01 100644 --- a/pkg/controller/resourcequota/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/resourcequota/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/resourcequota/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/resourcequota/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/resourcequota/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/resourcequota/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/resourcequota/config/zz_generated.deepcopy.go b/pkg/controller/resourcequota/config/zz_generated.deepcopy.go index 2ed0d872b3ca..bfa00aa2088e 100644 --- a/pkg/controller/resourcequota/config/zz_generated.deepcopy.go +++ b/pkg/controller/resourcequota/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.conversion.go index 718a6554716e..72b3fca95f14 100644 --- a/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/serviceaccount/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/serviceaccount/config/zz_generated.deepcopy.go b/pkg/controller/serviceaccount/config/zz_generated.deepcopy.go index 4723e322791a..72908efe91e0 100644 --- a/pkg/controller/serviceaccount/config/zz_generated.deepcopy.go +++ b/pkg/controller/serviceaccount/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/statefulset/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/statefulset/config/v1alpha1/zz_generated.conversion.go index e628175b71e6..427931cda60d 100644 --- a/pkg/controller/statefulset/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/statefulset/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/statefulset/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/statefulset/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/statefulset/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/statefulset/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/statefulset/config/zz_generated.deepcopy.go b/pkg/controller/statefulset/config/zz_generated.deepcopy.go index 36abbc4e424d..89f885d9586a 100644 --- a/pkg/controller/statefulset/config/zz_generated.deepcopy.go +++ b/pkg/controller/statefulset/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.conversion.go index 321ac122a252..3a9c001aa8fc 100644 --- a/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/ttlafterfinished/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/ttlafterfinished/config/zz_generated.deepcopy.go b/pkg/controller/ttlafterfinished/config/zz_generated.deepcopy.go index b7b90c02ae8c..d9e5efe46249 100644 --- a/pkg/controller/ttlafterfinished/config/zz_generated.deepcopy.go +++ b/pkg/controller/ttlafterfinished/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.conversion.go index b201199c971d..6c68adb4460e 100644 --- a/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/volume/attachdetach/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/volume/attachdetach/config/zz_generated.deepcopy.go b/pkg/controller/volume/attachdetach/config/zz_generated.deepcopy.go index 41bae4e2aab3..42316cddd8ca 100644 --- a/pkg/controller/volume/attachdetach/config/zz_generated.deepcopy.go +++ b/pkg/controller/volume/attachdetach/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.conversion.go b/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.conversion.go index e1cf08855b09..0d856d10f8cf 100644 --- a/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.deepcopy.go b/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/controller/volume/persistentvolume/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controller/volume/persistentvolume/config/zz_generated.deepcopy.go b/pkg/controller/volume/persistentvolume/config/zz_generated.deepcopy.go index 47ce776175bf..ea0bbfb8a589 100644 --- a/pkg/controller/volume/persistentvolume/config/zz_generated.deepcopy.go +++ b/pkg/controller/volume/persistentvolume/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/controlplane/controller_test.go b/pkg/controlplane/controller_test.go index f5d7452ed0b9..58a85688f658 100644 --- a/pkg/controlplane/controller_test.go +++ b/pkg/controlplane/controller_test.go @@ -17,7 +17,6 @@ limitations under the License. package controlplane import ( - "net" "reflect" "testing" @@ -28,6 +27,7 @@ import ( "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" "k8s.io/kubernetes/pkg/controlplane/reconcilers" + netutils "k8s.io/utils/net" ) func TestReconcileEndpoints(t *testing.T) { @@ -401,7 +401,7 @@ func TestReconcileEndpoints(t *testing.T) { } epAdapter := reconcilers.NewEndpointsAdapter(fakeClient.CoreV1(), nil) reconciler := reconcilers.NewMasterCountEndpointReconciler(test.additionalMasters+1, epAdapter) - err := reconciler.ReconcileEndpoints(test.serviceName, net.ParseIP(test.ip), test.endpointPorts, true) + err := reconciler.ReconcileEndpoints(test.serviceName, netutils.ParseIPSloppy(test.ip), test.endpointPorts, true) if err != nil { t.Errorf("case %q: unexpected error: %v", test.testName, err) } @@ -520,7 +520,7 @@ func TestReconcileEndpoints(t *testing.T) { } epAdapter := reconcilers.NewEndpointsAdapter(fakeClient.CoreV1(), nil) reconciler := reconcilers.NewMasterCountEndpointReconciler(test.additionalMasters+1, epAdapter) - err := reconciler.ReconcileEndpoints(test.serviceName, net.ParseIP(test.ip), test.endpointPorts, false) + err := reconciler.ReconcileEndpoints(test.serviceName, netutils.ParseIPSloppy(test.ip), test.endpointPorts, false) if err != nil { t.Errorf("case %q: unexpected error: %v", test.testName, err) } @@ -585,7 +585,7 @@ func TestEmptySubsets(t *testing.T) { endpointPorts := []corev1.EndpointPort{ {Name: "foo", Port: 8080, Protocol: "TCP"}, } - err := reconciler.RemoveEndpoints("foo", net.ParseIP("1.2.3.4"), endpointPorts) + err := reconciler.RemoveEndpoints("foo", netutils.ParseIPSloppy("1.2.3.4"), endpointPorts) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -631,7 +631,7 @@ func TestCreateOrUpdateMasterService(t *testing.T) { master := Controller{} fakeClient := fake.NewSimpleClientset() master.ServiceClient = fakeClient.CoreV1() - master.CreateOrUpdateMasterServiceIfNeeded(test.serviceName, net.ParseIP("1.2.3.4"), test.servicePorts, test.serviceType, false) + master.CreateOrUpdateMasterServiceIfNeeded(test.serviceName, netutils.ParseIPSloppy("1.2.3.4"), test.servicePorts, test.serviceType, false) creates := []core.CreateAction{} for _, action := range fakeClient.Actions() { if action.GetVerb() == "create" { @@ -913,7 +913,7 @@ func TestCreateOrUpdateMasterService(t *testing.T) { master := Controller{} fakeClient := fake.NewSimpleClientset(test.service) master.ServiceClient = fakeClient.CoreV1() - err := master.CreateOrUpdateMasterServiceIfNeeded(test.serviceName, net.ParseIP("1.2.3.4"), test.servicePorts, test.serviceType, true) + err := master.CreateOrUpdateMasterServiceIfNeeded(test.serviceName, netutils.ParseIPSloppy("1.2.3.4"), test.servicePorts, test.serviceType, true) if err != nil { t.Errorf("case %q: unexpected error: %v", test.testName, err) } @@ -972,7 +972,7 @@ func TestCreateOrUpdateMasterService(t *testing.T) { master := Controller{} fakeClient := fake.NewSimpleClientset(test.service) master.ServiceClient = fakeClient.CoreV1() - err := master.CreateOrUpdateMasterServiceIfNeeded(test.serviceName, net.ParseIP("1.2.3.4"), test.servicePorts, test.serviceType, false) + err := master.CreateOrUpdateMasterServiceIfNeeded(test.serviceName, netutils.ParseIPSloppy("1.2.3.4"), test.servicePorts, test.serviceType, false) if err != nil { t.Errorf("case %q: unexpected error: %v", test.testName, err) } diff --git a/pkg/controlplane/instance_test.go b/pkg/controlplane/instance_test.go index 22eba219409a..bd57ec46808d 100644 --- a/pkg/controlplane/instance_test.go +++ b/pkg/controlplane/instance_test.go @@ -57,6 +57,7 @@ import ( certificatesrest "k8s.io/kubernetes/pkg/registry/certificates/rest" corerest "k8s.io/kubernetes/pkg/registry/core/rest" "k8s.io/kubernetes/pkg/registry/registrytest" + netutils "k8s.io/utils/net" "github.com/stretchr/testify/assert" ) @@ -72,7 +73,7 @@ func setUp(t *testing.T) (*etcd3testing.EtcdTestServer, Config, *assert.Assertio APIServerServicePort: 443, MasterCount: 1, EndpointReconcilerType: reconcilers.MasterCountReconcilerType, - ServiceIPRange: net.IPNet{IP: net.ParseIP("10.0.0.0"), Mask: net.CIDRMask(24, 32)}, + ServiceIPRange: net.IPNet{IP: netutils.ParseIPSloppy("10.0.0.0"), Mask: net.CIDRMask(24, 32)}, }, } @@ -101,7 +102,7 @@ func setUp(t *testing.T) (*etcd3testing.EtcdTestServer, Config, *assert.Assertio config.GenericConfig.Version = &kubeVersion config.ExtraConfig.StorageFactory = storageFactory config.GenericConfig.LoopbackClientConfig = &restclient.Config{APIPath: "/api", ContentConfig: restclient.ContentConfig{NegotiatedSerializer: legacyscheme.Codecs}} - config.GenericConfig.PublicAddress = net.ParseIP("192.168.10.4") + config.GenericConfig.PublicAddress = netutils.ParseIPSloppy("192.168.10.4") config.GenericConfig.LegacyAPIGroupPrefixes = sets.NewString("/api") config.ExtraConfig.KubeletClientConfig = kubeletclient.KubeletClientConfig{Port: 10250} config.ExtraConfig.ProxyTransport = utilnet.SetTransportDefaults(&http.Transport{ diff --git a/pkg/controlplane/reconcilers/lease_test.go b/pkg/controlplane/reconcilers/lease_test.go index 21fdde8865f9..1d27f1c03611 100644 --- a/pkg/controlplane/reconcilers/lease_test.go +++ b/pkg/controlplane/reconcilers/lease_test.go @@ -23,7 +23,6 @@ https://github.com/openshift/origin/blob/bb340c5dd5ff72718be86fb194dedc0faed7f4c import ( "context" - "net" "reflect" "testing" @@ -31,6 +30,7 @@ import ( discoveryv1 "k8s.io/api/discovery/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes/fake" + netutils "k8s.io/utils/net" ) type fakeLeases struct { @@ -459,7 +459,7 @@ func TestLeaseEndpointReconciler(t *testing.T) { epAdapter := EndpointsAdapter{endpointClient: clientset.CoreV1()} r := NewLeaseEndpointReconciler(epAdapter, fakeLeases) - err := r.ReconcileEndpoints(test.serviceName, net.ParseIP(test.ip), test.endpointPorts, true) + err := r.ReconcileEndpoints(test.serviceName, netutils.ParseIPSloppy(test.ip), test.endpointPorts, true) if err != nil { t.Errorf("case %q: unexpected error: %v", test.testName, err) } @@ -560,7 +560,7 @@ func TestLeaseEndpointReconciler(t *testing.T) { } epAdapter := EndpointsAdapter{endpointClient: clientset.CoreV1()} r := NewLeaseEndpointReconciler(epAdapter, fakeLeases) - err := r.ReconcileEndpoints(test.serviceName, net.ParseIP(test.ip), test.endpointPorts, false) + err := r.ReconcileEndpoints(test.serviceName, netutils.ParseIPSloppy(test.ip), test.endpointPorts, false) if err != nil { t.Errorf("case %q: unexpected error: %v", test.testName, err) } @@ -680,7 +680,7 @@ func TestLeaseRemoveEndpoints(t *testing.T) { } epAdapter := EndpointsAdapter{endpointClient: clientset.CoreV1()} r := NewLeaseEndpointReconciler(epAdapter, fakeLeases) - err := r.RemoveEndpoints(test.serviceName, net.ParseIP(test.ip), test.endpointPorts) + err := r.RemoveEndpoints(test.serviceName, netutils.ParseIPSloppy(test.ip), test.endpointPorts) if err != nil { t.Errorf("case %q: unexpected error: %v", test.testName, err) } diff --git a/pkg/credentialprovider/azure/azure_acr_helper.go b/pkg/credentialprovider/azure/azure_acr_helper.go index ec4af71a28a2..de6aad3d810c 100644 --- a/pkg/credentialprovider/azure/azure_acr_helper.go +++ b/pkg/credentialprovider/azure/azure_acr_helper.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/credentialprovider/azure/azure_credentials.go b/pkg/credentialprovider/azure/azure_credentials.go index 2d9281482bf2..5f540e6d344d 100644 --- a/pkg/credentialprovider/azure/azure_credentials.go +++ b/pkg/credentialprovider/azure/azure_credentials.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/credentialprovider/azure/azure_credentials_test.go b/pkg/credentialprovider/azure/azure_credentials_test.go index edacfc98b514..80a21b79fa9d 100644 --- a/pkg/credentialprovider/azure/azure_credentials_test.go +++ b/pkg/credentialprovider/azure/azure_credentials_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go index a3c3c7f44196..6818f865fcaa 100644 --- a/pkg/generated/openapi/zz_generated.openapi.go +++ b/pkg/generated/openapi/zz_generated.openapi.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubeapiserver/options/options.go b/pkg/kubeapiserver/options/options.go index 1314e52c05f1..7f172208bcde 100644 --- a/pkg/kubeapiserver/options/options.go +++ b/pkg/kubeapiserver/options/options.go @@ -20,13 +20,14 @@ import ( "net" utilnet "k8s.io/apimachinery/pkg/util/net" + netutils "k8s.io/utils/net" ) // DefaultServiceNodePortRange is the default port range for NodePort services. var DefaultServiceNodePortRange = utilnet.PortRange{Base: 30000, Size: 2768} // DefaultServiceIPCIDR is a CIDR notation of IP range from which to allocate service cluster IPs -var DefaultServiceIPCIDR = net.IPNet{IP: net.ParseIP("10.0.0.0"), Mask: net.CIDRMask(24, 32)} +var DefaultServiceIPCIDR = net.IPNet{IP: netutils.ParseIPSloppy("10.0.0.0"), Mask: net.CIDRMask(24, 32)} // DefaultEtcdPathPrefix is the default key prefix of etcd for API Server const DefaultEtcdPathPrefix = "/registry" diff --git a/pkg/kubeapiserver/options/serving.go b/pkg/kubeapiserver/options/serving.go index 09d14703711c..29d9415d416c 100644 --- a/pkg/kubeapiserver/options/serving.go +++ b/pkg/kubeapiserver/options/serving.go @@ -18,16 +18,15 @@ limitations under the License. package options import ( - "net" - genericoptions "k8s.io/apiserver/pkg/server/options" + netutils "k8s.io/utils/net" ) // NewSecureServingOptions gives default values for the kube-apiserver which are not the options wanted by // "normal" API servers running on the platform func NewSecureServingOptions() *genericoptions.SecureServingOptionsWithLoopback { o := genericoptions.SecureServingOptions{ - BindAddress: net.ParseIP("0.0.0.0"), + BindAddress: netutils.ParseIPSloppy("0.0.0.0"), BindPort: 6443, Required: true, ServerCert: genericoptions.GeneratableKeyCert{ diff --git a/pkg/kubelet/apis/config/v1alpha1/zz_generated.conversion.go b/pkg/kubelet/apis/config/v1alpha1/zz_generated.conversion.go index b1be1643e13c..1757f327378a 100644 --- a/pkg/kubelet/apis/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/kubelet/apis/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubelet/apis/config/v1alpha1/zz_generated.deepcopy.go b/pkg/kubelet/apis/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/kubelet/apis/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/kubelet/apis/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubelet/apis/config/v1alpha1/zz_generated.defaults.go b/pkg/kubelet/apis/config/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/pkg/kubelet/apis/config/v1alpha1/zz_generated.defaults.go +++ b/pkg/kubelet/apis/config/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubelet/apis/config/v1beta1/defaults_linux.go b/pkg/kubelet/apis/config/v1beta1/defaults_linux.go index 7e1060a03e48..6d3ec77dc7cc 100644 --- a/pkg/kubelet/apis/config/v1beta1/defaults_linux.go +++ b/pkg/kubelet/apis/config/v1beta1/defaults_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/apis/config/v1beta1/defaults_others.go b/pkg/kubelet/apis/config/v1beta1/defaults_others.go index 74464a3c840d..2b8ac3d43066 100644 --- a/pkg/kubelet/apis/config/v1beta1/defaults_others.go +++ b/pkg/kubelet/apis/config/v1beta1/defaults_others.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go b/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go index 141b901a8029..913a8af98fbf 100644 --- a/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go +++ b/pkg/kubelet/apis/config/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubelet/apis/config/v1beta1/zz_generated.deepcopy.go b/pkg/kubelet/apis/config/v1beta1/zz_generated.deepcopy.go index 016d58c856a0..a47bc95e8a7d 100644 --- a/pkg/kubelet/apis/config/v1beta1/zz_generated.deepcopy.go +++ b/pkg/kubelet/apis/config/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubelet/apis/config/v1beta1/zz_generated.defaults.go b/pkg/kubelet/apis/config/v1beta1/zz_generated.defaults.go index 8a4efba40b0d..1f6771d8dc77 100644 --- a/pkg/kubelet/apis/config/v1beta1/zz_generated.defaults.go +++ b/pkg/kubelet/apis/config/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubelet/apis/config/validation/validation_others.go b/pkg/kubelet/apis/config/validation/validation_others.go index 0eb7fcd0f19b..29c708b46109 100644 --- a/pkg/kubelet/apis/config/validation/validation_others.go +++ b/pkg/kubelet/apis/config/validation/validation_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/apis/config/validation/validation_windows.go b/pkg/kubelet/apis/config/validation/validation_windows.go index c2203041a8dd..e31e1fbc6437 100644 --- a/pkg/kubelet/apis/config/validation/validation_windows.go +++ b/pkg/kubelet/apis/config/validation/validation_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/apis/config/zz_generated.deepcopy.go b/pkg/kubelet/apis/config/zz_generated.deepcopy.go index 67dba19b0208..5316a3efd0ca 100644 --- a/pkg/kubelet/apis/config/zz_generated.deepcopy.go +++ b/pkg/kubelet/apis/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/kubelet/cadvisor/cadvisor_cloudproviders.go b/pkg/kubelet/cadvisor/cadvisor_cloudproviders.go index c6444f241724..5ec414694d32 100644 --- a/pkg/kubelet/cadvisor/cadvisor_cloudproviders.go +++ b/pkg/kubelet/cadvisor/cadvisor_cloudproviders.go @@ -1,5 +1,5 @@ -// +build linux -// +build !providerless +//go:build linux && !providerless +// +build linux,!providerless /* Copyright 2021 The Kubernetes Authors. diff --git a/pkg/kubelet/cadvisor/cadvisor_linux.go b/pkg/kubelet/cadvisor/cadvisor_linux.go index 17c0e3d26cd1..174ef615b4cd 100644 --- a/pkg/kubelet/cadvisor/cadvisor_linux.go +++ b/pkg/kubelet/cadvisor/cadvisor_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cadvisor/cadvisor_linux_docker.go b/pkg/kubelet/cadvisor/cadvisor_linux_docker.go index 46802f7c52fe..cdd975efffdd 100644 --- a/pkg/kubelet/cadvisor/cadvisor_linux_docker.go +++ b/pkg/kubelet/cadvisor/cadvisor_linux_docker.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/cadvisor/cadvisor_linux_test.go b/pkg/kubelet/cadvisor/cadvisor_linux_test.go index cb87da73d4dd..4dc978f73086 100644 --- a/pkg/kubelet/cadvisor/cadvisor_linux_test.go +++ b/pkg/kubelet/cadvisor/cadvisor_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cadvisor/cadvisor_unsupported.go b/pkg/kubelet/cadvisor/cadvisor_unsupported.go index 36ac4d547f45..7f33ba9b03aa 100644 --- a/pkg/kubelet/cadvisor/cadvisor_unsupported.go +++ b/pkg/kubelet/cadvisor/cadvisor_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows /* diff --git a/pkg/kubelet/cadvisor/cadvisor_windows.go b/pkg/kubelet/cadvisor/cadvisor_windows.go index b6b1407ac9c0..a3fd930055b5 100644 --- a/pkg/kubelet/cadvisor/cadvisor_windows.go +++ b/pkg/kubelet/cadvisor/cadvisor_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/cadvisor/helpers_linux.go b/pkg/kubelet/cadvisor/helpers_linux.go index 13b0c235b481..ee6889b9d571 100644 --- a/pkg/kubelet/cadvisor/helpers_linux.go +++ b/pkg/kubelet/cadvisor/helpers_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cadvisor/helpers_unsupported.go b/pkg/kubelet/cadvisor/helpers_unsupported.go index a8cd6aeec64f..26e6bbc122f4 100644 --- a/pkg/kubelet/cadvisor/helpers_unsupported.go +++ b/pkg/kubelet/cadvisor/helpers_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/cadvisor/util_test.go b/pkg/kubelet/cadvisor/util_test.go index 9d0e7895e341..2fa09e54f2fb 100644 --- a/pkg/kubelet/cadvisor/util_test.go +++ b/pkg/kubelet/cadvisor/util_test.go @@ -1,3 +1,4 @@ +//go:build cgo && linux // +build cgo,linux /* diff --git a/pkg/kubelet/certificate/kubelet.go b/pkg/kubelet/certificate/kubelet.go index af2d21717dc8..cd747846ab4d 100644 --- a/pkg/kubelet/certificate/kubelet.go +++ b/pkg/kubelet/certificate/kubelet.go @@ -35,6 +35,7 @@ import ( "k8s.io/component-base/metrics/legacyregistry" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" "k8s.io/kubernetes/pkg/kubelet/metrics" + netutils "k8s.io/utils/net" ) // NewKubeletServerCertificateManager creates a certificate manager for the kubelet when retrieving a server certificate @@ -159,13 +160,13 @@ func addressesToHostnamesAndIPs(addresses []v1.NodeAddress) (dnsNames []string, switch address.Type { case v1.NodeHostName: - if ip := net.ParseIP(address.Address); ip != nil { + if ip := netutils.ParseIPSloppy(address.Address); ip != nil { seenIPs[address.Address] = true } else { seenDNSNames[address.Address] = true } case v1.NodeExternalIP, v1.NodeInternalIP: - if ip := net.ParseIP(address.Address); ip != nil { + if ip := netutils.ParseIPSloppy(address.Address); ip != nil { seenIPs[address.Address] = true } case v1.NodeExternalDNS, v1.NodeInternalDNS: @@ -177,7 +178,7 @@ func addressesToHostnamesAndIPs(addresses []v1.NodeAddress) (dnsNames []string, dnsNames = append(dnsNames, dnsName) } for ip := range seenIPs { - ips = append(ips, net.ParseIP(ip)) + ips = append(ips, netutils.ParseIPSloppy(ip)) } // return in stable order diff --git a/pkg/kubelet/certificate/kubelet_test.go b/pkg/kubelet/certificate/kubelet_test.go index 3d8778f4473b..ed7914b25821 100644 --- a/pkg/kubelet/certificate/kubelet_test.go +++ b/pkg/kubelet/certificate/kubelet_test.go @@ -22,6 +22,7 @@ import ( "testing" "k8s.io/api/core/v1" + netutils "k8s.io/utils/net" ) func TestAddressesToHostnamesAndIPs(t *testing.T) { @@ -62,7 +63,7 @@ func TestAddressesToHostnamesAndIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "1.1.1.1"}, }, wantDNSNames: []string{"hostname"}, - wantIPs: []net.IP{net.ParseIP("1.1.1.1")}, + wantIPs: []net.IP{netutils.ParseIPSloppy("1.1.1.1")}, }, { name: "order values", @@ -75,7 +76,7 @@ func TestAddressesToHostnamesAndIPs(t *testing.T) { {Type: v1.NodeInternalIP, Address: "3.3.3.3"}, }, wantDNSNames: []string{"hostname-1", "hostname-2", "hostname-3"}, - wantIPs: []net.IP{net.ParseIP("1.1.1.1"), net.ParseIP("2.2.2.2"), net.ParseIP("3.3.3.3")}, + wantIPs: []net.IP{netutils.ParseIPSloppy("1.1.1.1"), netutils.ParseIPSloppy("2.2.2.2"), netutils.ParseIPSloppy("3.3.3.3")}, }, { name: "handle IP and DNS hostnames", @@ -84,7 +85,7 @@ func TestAddressesToHostnamesAndIPs(t *testing.T) { {Type: v1.NodeHostName, Address: "1.1.1.1"}, }, wantDNSNames: []string{"hostname"}, - wantIPs: []net.IP{net.ParseIP("1.1.1.1")}, + wantIPs: []net.IP{netutils.ParseIPSloppy("1.1.1.1")}, }, } for _, tt := range tests { diff --git a/pkg/kubelet/cm/cgroup_manager_linux_test.go b/pkg/kubelet/cm/cgroup_manager_linux_test.go index 5c4a6b6392b6..4efeb97cf49f 100644 --- a/pkg/kubelet/cm/cgroup_manager_linux_test.go +++ b/pkg/kubelet/cm/cgroup_manager_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/cgroup_manager_test.go b/pkg/kubelet/cm/cgroup_manager_test.go index 3b356f539bd6..e763bec6de56 100644 --- a/pkg/kubelet/cm/cgroup_manager_test.go +++ b/pkg/kubelet/cm/cgroup_manager_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/cgroup_manager_unsupported.go b/pkg/kubelet/cm/cgroup_manager_unsupported.go index fb7116a4d6d7..527ddfc444af 100644 --- a/pkg/kubelet/cm/cgroup_manager_unsupported.go +++ b/pkg/kubelet/cm/cgroup_manager_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go index d7aa6270f2b9..c70a3f4f1a7e 100644 --- a/pkg/kubelet/cm/container_manager_linux.go +++ b/pkg/kubelet/cm/container_manager_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/container_manager_linux_test.go b/pkg/kubelet/cm/container_manager_linux_test.go index 41015ffdbda6..b38e64881dbb 100644 --- a/pkg/kubelet/cm/container_manager_linux_test.go +++ b/pkg/kubelet/cm/container_manager_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/container_manager_unsupported.go b/pkg/kubelet/cm/container_manager_unsupported.go index dd0fafc6eb8c..1a0587c36dca 100644 --- a/pkg/kubelet/cm/container_manager_unsupported.go +++ b/pkg/kubelet/cm/container_manager_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows /* diff --git a/pkg/kubelet/cm/container_manager_windows.go b/pkg/kubelet/cm/container_manager_windows.go index 17fa16cdd9f0..ec56fcf2c73b 100644 --- a/pkg/kubelet/cm/container_manager_windows.go +++ b/pkg/kubelet/cm/container_manager_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/cm/helpers_linux_test.go b/pkg/kubelet/cm/helpers_linux_test.go index bdd01ea1b4b3..30f174021539 100644 --- a/pkg/kubelet/cm/helpers_linux_test.go +++ b/pkg/kubelet/cm/helpers_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/helpers_unsupported.go b/pkg/kubelet/cm/helpers_unsupported.go index 12ed082b479f..323f4642b584 100644 --- a/pkg/kubelet/cm/helpers_unsupported.go +++ b/pkg/kubelet/cm/helpers_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/cm/internal_container_lifecycle_linux.go b/pkg/kubelet/cm/internal_container_lifecycle_linux.go index 9cf41620b8c2..e731a4e5872c 100644 --- a/pkg/kubelet/cm/internal_container_lifecycle_linux.go +++ b/pkg/kubelet/cm/internal_container_lifecycle_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/internal_container_lifecycle_unsupported.go b/pkg/kubelet/cm/internal_container_lifecycle_unsupported.go index 676bf9c4c1d7..0b898cfa90b3 100644 --- a/pkg/kubelet/cm/internal_container_lifecycle_unsupported.go +++ b/pkg/kubelet/cm/internal_container_lifecycle_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows /* diff --git a/pkg/kubelet/cm/internal_container_lifecycle_windows.go b/pkg/kubelet/cm/internal_container_lifecycle_windows.go index 0384d4d2ef42..fb64faf7623e 100644 --- a/pkg/kubelet/cm/internal_container_lifecycle_windows.go +++ b/pkg/kubelet/cm/internal_container_lifecycle_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/cm/node_container_manager_linux.go b/pkg/kubelet/cm/node_container_manager_linux.go index 877e9ab68659..3217be598730 100644 --- a/pkg/kubelet/cm/node_container_manager_linux.go +++ b/pkg/kubelet/cm/node_container_manager_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/node_container_manager_linux_test.go b/pkg/kubelet/cm/node_container_manager_linux_test.go index 44120235743b..d4fa6c12ad4e 100644 --- a/pkg/kubelet/cm/node_container_manager_linux_test.go +++ b/pkg/kubelet/cm/node_container_manager_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/pod_container_manager_linux_test.go b/pkg/kubelet/cm/pod_container_manager_linux_test.go index 62c9f203a008..6e505c0f2168 100644 --- a/pkg/kubelet/cm/pod_container_manager_linux_test.go +++ b/pkg/kubelet/cm/pod_container_manager_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/pod_container_manager_unsupported.go b/pkg/kubelet/cm/pod_container_manager_unsupported.go index d62eb7fa4e8f..77fc910e5fd8 100644 --- a/pkg/kubelet/cm/pod_container_manager_unsupported.go +++ b/pkg/kubelet/cm/pod_container_manager_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/cm/qos_container_manager_linux_test.go b/pkg/kubelet/cm/qos_container_manager_linux_test.go index 29452de852f8..212362331999 100644 --- a/pkg/kubelet/cm/qos_container_manager_linux_test.go +++ b/pkg/kubelet/cm/qos_container_manager_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/cm/util/cgroups_unsupported.go b/pkg/kubelet/cm/util/cgroups_unsupported.go index 870299d8b4b3..b655f41388c0 100644 --- a/pkg/kubelet/cm/util/cgroups_unsupported.go +++ b/pkg/kubelet/cm/util/cgroups_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/config/file_linux.go b/pkg/kubelet/config/file_linux.go index ad292780c8a7..048c7c7ceffe 100644 --- a/pkg/kubelet/config/file_linux.go +++ b/pkg/kubelet/config/file_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/config/file_linux_test.go b/pkg/kubelet/config/file_linux_test.go index e3cab80ea490..1d234c226de6 100644 --- a/pkg/kubelet/config/file_linux_test.go +++ b/pkg/kubelet/config/file_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/config/file_unsupported.go b/pkg/kubelet/config/file_unsupported.go index 7a262f421d92..7d5c77c28d79 100644 --- a/pkg/kubelet/config/file_unsupported.go +++ b/pkg/kubelet/config/file_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/cri/remote/fake/endpoint.go b/pkg/kubelet/cri/remote/fake/endpoint.go index 52ef573bf5e2..62961ea29f14 100644 --- a/pkg/kubelet/cri/remote/fake/endpoint.go +++ b/pkg/kubelet/cri/remote/fake/endpoint.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/cri/remote/fake/endpoint_windows.go b/pkg/kubelet/cri/remote/fake/endpoint_windows.go index cb43296bccb9..b119a5c37fe4 100644 --- a/pkg/kubelet/cri/remote/fake/endpoint_windows.go +++ b/pkg/kubelet/cri/remote/fake/endpoint_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/cri/remote/util/util_unix.go b/pkg/kubelet/cri/remote/util/util_unix.go index e5e2d7bedeab..28f1f2c2597d 100644 --- a/pkg/kubelet/cri/remote/util/util_unix.go +++ b/pkg/kubelet/cri/remote/util/util_unix.go @@ -1,3 +1,4 @@ +//go:build freebsd || linux || darwin // +build freebsd linux darwin /* diff --git a/pkg/kubelet/cri/remote/util/util_unix_test.go b/pkg/kubelet/cri/remote/util/util_unix_test.go index fea4e409f5ed..c536f96bd6c6 100644 --- a/pkg/kubelet/cri/remote/util/util_unix_test.go +++ b/pkg/kubelet/cri/remote/util/util_unix_test.go @@ -1,3 +1,4 @@ +//go:build freebsd || linux || darwin // +build freebsd linux darwin /* diff --git a/pkg/kubelet/cri/remote/util/util_unsupported.go b/pkg/kubelet/cri/remote/util/util_unsupported.go index dbf86a5a43b8..054c36230efa 100644 --- a/pkg/kubelet/cri/remote/util/util_unsupported.go +++ b/pkg/kubelet/cri/remote/util/util_unsupported.go @@ -1,3 +1,4 @@ +//go:build !freebsd && !linux && !windows && !darwin // +build !freebsd,!linux,!windows,!darwin /* diff --git a/pkg/kubelet/cri/remote/util/util_windows.go b/pkg/kubelet/cri/remote/util/util_windows.go index c770755002dc..763fdd80a0d9 100644 --- a/pkg/kubelet/cri/remote/util/util_windows.go +++ b/pkg/kubelet/cri/remote/util/util_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/cri/remote/util/util_windows_test.go b/pkg/kubelet/cri/remote/util/util_windows_test.go index 7bf2ada2decd..88bdd74137de 100644 --- a/pkg/kubelet/cri/remote/util/util_windows_test.go +++ b/pkg/kubelet/cri/remote/util/util_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/dockershim/cm/container_manager.go b/pkg/kubelet/dockershim/cm/container_manager.go index 088bb6bbae95..f2255cd9ec06 100644 --- a/pkg/kubelet/dockershim/cm/container_manager.go +++ b/pkg/kubelet/dockershim/cm/container_manager.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/cm/container_manager_linux.go b/pkg/kubelet/dockershim/cm/container_manager_linux.go index aa32936e7261..759e27f26c5f 100644 --- a/pkg/kubelet/dockershim/cm/container_manager_linux.go +++ b/pkg/kubelet/dockershim/cm/container_manager_linux.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/cm/container_manager_unsupported.go b/pkg/kubelet/dockershim/cm/container_manager_unsupported.go index 3cf286fa8dcc..6c9bd3544468 100644 --- a/pkg/kubelet/dockershim/cm/container_manager_unsupported.go +++ b/pkg/kubelet/dockershim/cm/container_manager_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows && !dockerless // +build !linux,!windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/cm/container_manager_windows.go b/pkg/kubelet/dockershim/cm/container_manager_windows.go index 3d42314a61f5..135c20c15d61 100644 --- a/pkg/kubelet/dockershim/cm/container_manager_windows.go +++ b/pkg/kubelet/dockershim/cm/container_manager_windows.go @@ -1,3 +1,4 @@ +//go:build windows && !dockerless // +build windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/convert.go b/pkg/kubelet/dockershim/convert.go index 0ca99cf72623..dcbe9d073335 100644 --- a/pkg/kubelet/dockershim/convert.go +++ b/pkg/kubelet/dockershim/convert.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/convert_test.go b/pkg/kubelet/dockershim/convert_test.go index a9b07eecab07..f663fe0122dc 100644 --- a/pkg/kubelet/dockershim/convert_test.go +++ b/pkg/kubelet/dockershim/convert_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/doc.go b/pkg/kubelet/dockershim/doc.go index 152464bc85c9..7d97c554a5d0 100644 --- a/pkg/kubelet/dockershim/doc.go +++ b/pkg/kubelet/dockershim/doc.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_checkpoint.go b/pkg/kubelet/dockershim/docker_checkpoint.go index 387b934c6dce..37ac73050be1 100644 --- a/pkg/kubelet/dockershim/docker_checkpoint.go +++ b/pkg/kubelet/dockershim/docker_checkpoint.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_checkpoint_test.go b/pkg/kubelet/dockershim/docker_checkpoint_test.go index 9d64217e1e37..0649e78b0d3c 100644 --- a/pkg/kubelet/dockershim/docker_checkpoint_test.go +++ b/pkg/kubelet/dockershim/docker_checkpoint_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_container.go b/pkg/kubelet/dockershim/docker_container.go index 2171e60bee49..898931a3733e 100644 --- a/pkg/kubelet/dockershim/docker_container.go +++ b/pkg/kubelet/dockershim/docker_container.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_container_test.go b/pkg/kubelet/dockershim/docker_container_test.go index b1c436a99212..071864cbe1b1 100644 --- a/pkg/kubelet/dockershim/docker_container_test.go +++ b/pkg/kubelet/dockershim/docker_container_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_container_unsupported.go b/pkg/kubelet/dockershim/docker_container_unsupported.go index a9ed72bd0039..597002bbe4d3 100644 --- a/pkg/kubelet/dockershim/docker_container_unsupported.go +++ b/pkg/kubelet/dockershim/docker_container_unsupported.go @@ -1,3 +1,4 @@ +//go:build !windows && !dockerless // +build !windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_container_windows.go b/pkg/kubelet/dockershim/docker_container_windows.go index 57a7f8d8313b..e76b4fd30800 100644 --- a/pkg/kubelet/dockershim/docker_container_windows.go +++ b/pkg/kubelet/dockershim/docker_container_windows.go @@ -1,3 +1,4 @@ +//go:build windows && !dockerless // +build windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_container_windows_test.go b/pkg/kubelet/dockershim/docker_container_windows_test.go index e523d0ab9e2d..c7af28187743 100644 --- a/pkg/kubelet/dockershim/docker_container_windows_test.go +++ b/pkg/kubelet/dockershim/docker_container_windows_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_image.go b/pkg/kubelet/dockershim/docker_image.go index 0ddf3aa9f0e0..1982adedbd09 100644 --- a/pkg/kubelet/dockershim/docker_image.go +++ b/pkg/kubelet/dockershim/docker_image.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_image_linux.go b/pkg/kubelet/dockershim/docker_image_linux.go index 021717c36d60..88d88099e3b1 100644 --- a/pkg/kubelet/dockershim/docker_image_linux.go +++ b/pkg/kubelet/dockershim/docker_image_linux.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_image_test.go b/pkg/kubelet/dockershim/docker_image_test.go index 16b0ac124b5f..5a0e15cc225e 100644 --- a/pkg/kubelet/dockershim/docker_image_test.go +++ b/pkg/kubelet/dockershim/docker_image_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_image_unsupported.go b/pkg/kubelet/dockershim/docker_image_unsupported.go index 282e8e7296e2..02420213e54a 100644 --- a/pkg/kubelet/dockershim/docker_image_unsupported.go +++ b/pkg/kubelet/dockershim/docker_image_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows && !dockerless // +build !linux,!windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_image_windows.go b/pkg/kubelet/dockershim/docker_image_windows.go index 2a74adf7e7e6..185254169165 100644 --- a/pkg/kubelet/dockershim/docker_image_windows.go +++ b/pkg/kubelet/dockershim/docker_image_windows.go @@ -1,3 +1,4 @@ +//go:build windows && !dockerless // +build windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_legacy_service.go b/pkg/kubelet/dockershim/docker_legacy_service.go index ec10637cfc50..b2b6529ad9fb 100644 --- a/pkg/kubelet/dockershim/docker_legacy_service.go +++ b/pkg/kubelet/dockershim/docker_legacy_service.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_logs.go b/pkg/kubelet/dockershim/docker_logs.go index 760ff6540287..d68903ef15c0 100644 --- a/pkg/kubelet/dockershim/docker_logs.go +++ b/pkg/kubelet/dockershim/docker_logs.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_sandbox.go b/pkg/kubelet/dockershim/docker_sandbox.go index c9f0d5e0c4d5..2d2c274162f7 100644 --- a/pkg/kubelet/dockershim/docker_sandbox.go +++ b/pkg/kubelet/dockershim/docker_sandbox.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_sandbox_linux_test.go b/pkg/kubelet/dockershim/docker_sandbox_linux_test.go index ace2749a9d5e..2c6acfbf440d 100644 --- a/pkg/kubelet/dockershim/docker_sandbox_linux_test.go +++ b/pkg/kubelet/dockershim/docker_sandbox_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_sandbox_test.go b/pkg/kubelet/dockershim/docker_sandbox_test.go index 9d385a5f089f..91feb858b7c8 100644 --- a/pkg/kubelet/dockershim/docker_sandbox_test.go +++ b/pkg/kubelet/dockershim/docker_sandbox_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_service.go b/pkg/kubelet/dockershim/docker_service.go index e402ef0c3bb4..b364a19152c5 100644 --- a/pkg/kubelet/dockershim/docker_service.go +++ b/pkg/kubelet/dockershim/docker_service.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_service_test.go b/pkg/kubelet/dockershim/docker_service_test.go index 27ced99a0723..9a1ff86562d0 100644 --- a/pkg/kubelet/dockershim/docker_service_test.go +++ b/pkg/kubelet/dockershim/docker_service_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_stats.go b/pkg/kubelet/dockershim/docker_stats.go index c68df6279bc8..dcc4727d3976 100644 --- a/pkg/kubelet/dockershim/docker_stats.go +++ b/pkg/kubelet/dockershim/docker_stats.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_stats_linux.go b/pkg/kubelet/dockershim/docker_stats_linux.go index 811bb066aaf5..14c96f693454 100644 --- a/pkg/kubelet/dockershim/docker_stats_linux.go +++ b/pkg/kubelet/dockershim/docker_stats_linux.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_stats_test.go b/pkg/kubelet/dockershim/docker_stats_test.go index 5710931dde23..f5318f68b128 100644 --- a/pkg/kubelet/dockershim/docker_stats_test.go +++ b/pkg/kubelet/dockershim/docker_stats_test.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_stats_unsupported.go b/pkg/kubelet/dockershim/docker_stats_unsupported.go index 560e243671bf..51808d4cb5cc 100644 --- a/pkg/kubelet/dockershim/docker_stats_unsupported.go +++ b/pkg/kubelet/dockershim/docker_stats_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows && !dockerless // +build !linux,!windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_stats_windows.go b/pkg/kubelet/dockershim/docker_stats_windows.go index 451a183aab04..1831fd81195d 100644 --- a/pkg/kubelet/dockershim/docker_stats_windows.go +++ b/pkg/kubelet/dockershim/docker_stats_windows.go @@ -1,3 +1,4 @@ +//go:build windows && !dockerless // +build windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_streaming.go b/pkg/kubelet/dockershim/docker_streaming.go index c7d68ddeb6e7..0320fa8977ef 100644 --- a/pkg/kubelet/dockershim/docker_streaming.go +++ b/pkg/kubelet/dockershim/docker_streaming.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/docker_streaming_others.go b/pkg/kubelet/dockershim/docker_streaming_others.go index e4648706e6b7..eb041c1073c1 100644 --- a/pkg/kubelet/dockershim/docker_streaming_others.go +++ b/pkg/kubelet/dockershim/docker_streaming_others.go @@ -1,3 +1,4 @@ +//go:build !windows && !dockerless // +build !windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/docker_streaming_windows.go b/pkg/kubelet/dockershim/docker_streaming_windows.go index 8872e2a6df53..cad09a9980dd 100644 --- a/pkg/kubelet/dockershim/docker_streaming_windows.go +++ b/pkg/kubelet/dockershim/docker_streaming_windows.go @@ -1,3 +1,4 @@ +//go:build windows && !dockerless // +build windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/dockershim_nodocker.go b/pkg/kubelet/dockershim/dockershim_nodocker.go index 1f5720a10aff..9cb89fa79065 100644 --- a/pkg/kubelet/dockershim/dockershim_nodocker.go +++ b/pkg/kubelet/dockershim/dockershim_nodocker.go @@ -1,3 +1,4 @@ +//go:build dockerless // +build dockerless /* diff --git a/pkg/kubelet/dockershim/exec.go b/pkg/kubelet/dockershim/exec.go index 8a59a22b0b39..6c8aac5989e4 100644 --- a/pkg/kubelet/dockershim/exec.go +++ b/pkg/kubelet/dockershim/exec.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/exec_test.go b/pkg/kubelet/dockershim/exec_test.go index e6935fe6d7a0..d72315ade90e 100644 --- a/pkg/kubelet/dockershim/exec_test.go +++ b/pkg/kubelet/dockershim/exec_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/helpers.go b/pkg/kubelet/dockershim/helpers.go index 44cc003601a0..ca3db5e18188 100644 --- a/pkg/kubelet/dockershim/helpers.go +++ b/pkg/kubelet/dockershim/helpers.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/helpers_linux.go b/pkg/kubelet/dockershim/helpers_linux.go index 0020d1886d0f..154c503a1cac 100644 --- a/pkg/kubelet/dockershim/helpers_linux.go +++ b/pkg/kubelet/dockershim/helpers_linux.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/helpers_linux_test.go b/pkg/kubelet/dockershim/helpers_linux_test.go index 76ad4bb85f3a..ada9f565ee65 100644 --- a/pkg/kubelet/dockershim/helpers_linux_test.go +++ b/pkg/kubelet/dockershim/helpers_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/helpers_test.go b/pkg/kubelet/dockershim/helpers_test.go index ff2e09db13bc..1c156921c773 100644 --- a/pkg/kubelet/dockershim/helpers_test.go +++ b/pkg/kubelet/dockershim/helpers_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/helpers_unsupported.go b/pkg/kubelet/dockershim/helpers_unsupported.go index b82894721c9a..3c655c5551f0 100644 --- a/pkg/kubelet/dockershim/helpers_unsupported.go +++ b/pkg/kubelet/dockershim/helpers_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows && !dockerless // +build !linux,!windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/helpers_windows.go b/pkg/kubelet/dockershim/helpers_windows.go index dcc258154f08..1fd8155bec4d 100644 --- a/pkg/kubelet/dockershim/helpers_windows.go +++ b/pkg/kubelet/dockershim/helpers_windows.go @@ -1,3 +1,4 @@ +//go:build windows && !dockerless // +build windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/client.go b/pkg/kubelet/dockershim/libdocker/client.go index c5886f83aa7a..8f7e5b53970a 100644 --- a/pkg/kubelet/dockershim/libdocker/client.go +++ b/pkg/kubelet/dockershim/libdocker/client.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/fake_client.go b/pkg/kubelet/dockershim/libdocker/fake_client.go index 177290a711be..f669c4624ec3 100644 --- a/pkg/kubelet/dockershim/libdocker/fake_client.go +++ b/pkg/kubelet/dockershim/libdocker/fake_client.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/helpers.go b/pkg/kubelet/dockershim/libdocker/helpers.go index af171493b6cd..57918629ad62 100644 --- a/pkg/kubelet/dockershim/libdocker/helpers.go +++ b/pkg/kubelet/dockershim/libdocker/helpers.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/helpers_test.go b/pkg/kubelet/dockershim/libdocker/helpers_test.go index 2a31b6583666..e70f00552543 100644 --- a/pkg/kubelet/dockershim/libdocker/helpers_test.go +++ b/pkg/kubelet/dockershim/libdocker/helpers_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/instrumented_client.go b/pkg/kubelet/dockershim/libdocker/instrumented_client.go index d6c80e3dee76..1bd9b77ee072 100644 --- a/pkg/kubelet/dockershim/libdocker/instrumented_client.go +++ b/pkg/kubelet/dockershim/libdocker/instrumented_client.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/kube_docker_client.go b/pkg/kubelet/dockershim/libdocker/kube_docker_client.go index 3dfe4cf0145b..7df051f8174f 100644 --- a/pkg/kubelet/dockershim/libdocker/kube_docker_client.go +++ b/pkg/kubelet/dockershim/libdocker/kube_docker_client.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/kube_docker_client_test.go b/pkg/kubelet/dockershim/libdocker/kube_docker_client_test.go index d004f38c6f5e..42dab7a7d841 100644 --- a/pkg/kubelet/dockershim/libdocker/kube_docker_client_test.go +++ b/pkg/kubelet/dockershim/libdocker/kube_docker_client_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/libdocker/testing/mock_client.go b/pkg/kubelet/dockershim/libdocker/testing/mock_client.go index 5bffdb13f398..b4350320bfcc 100644 --- a/pkg/kubelet/dockershim/libdocker/testing/mock_client.go +++ b/pkg/kubelet/dockershim/libdocker/testing/mock_client.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/metrics/metrics.go b/pkg/kubelet/dockershim/metrics/metrics.go index 73fd251707c6..be8d65b83eaf 100644 --- a/pkg/kubelet/dockershim/metrics/metrics.go +++ b/pkg/kubelet/dockershim/metrics/metrics.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/naming.go b/pkg/kubelet/dockershim/naming.go index 47e55a057330..faf35b6bf68b 100644 --- a/pkg/kubelet/dockershim/naming.go +++ b/pkg/kubelet/dockershim/naming.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/naming_test.go b/pkg/kubelet/dockershim/naming_test.go index 12b30f56c12c..16c3f6b7ad0a 100644 --- a/pkg/kubelet/dockershim/naming_test.go +++ b/pkg/kubelet/dockershim/naming_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/cni/cni.go b/pkg/kubelet/dockershim/network/cni/cni.go index 17fb268c4fa0..fd9d1dbb19fe 100644 --- a/pkg/kubelet/dockershim/network/cni/cni.go +++ b/pkg/kubelet/dockershim/network/cni/cni.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/cni/cni_others.go b/pkg/kubelet/dockershim/network/cni/cni_others.go index 3c2c4852b71e..66446d302104 100644 --- a/pkg/kubelet/dockershim/network/cni/cni_others.go +++ b/pkg/kubelet/dockershim/network/cni/cni_others.go @@ -1,3 +1,4 @@ +//go:build !windows && !dockerless // +build !windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/network/cni/cni_test.go b/pkg/kubelet/dockershim/network/cni/cni_test.go index c29e3695b2d3..71704cc52ced 100644 --- a/pkg/kubelet/dockershim/network/cni/cni_test.go +++ b/pkg/kubelet/dockershim/network/cni/cni_test.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/network/cni/cni_windows.go b/pkg/kubelet/dockershim/network/cni/cni_windows.go index e9952ddb9836..f1b4aca6fe5f 100644 --- a/pkg/kubelet/dockershim/network/cni/cni_windows.go +++ b/pkg/kubelet/dockershim/network/cni/cni_windows.go @@ -1,3 +1,4 @@ +//go:build windows && !dockerless // +build windows,!dockerless /* diff --git a/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go b/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go index a454f2c1dfb8..550137ef0e91 100644 --- a/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go +++ b/pkg/kubelet/dockershim/network/cni/testing/mock_cni.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/hairpin/hairpin.go b/pkg/kubelet/dockershim/network/hairpin/hairpin.go index 2b9e68dfd2f0..ca6fc3bb7fa3 100644 --- a/pkg/kubelet/dockershim/network/hairpin/hairpin.go +++ b/pkg/kubelet/dockershim/network/hairpin/hairpin.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/hairpin/hairpin_test.go b/pkg/kubelet/dockershim/network/hairpin/hairpin_test.go index 72e76b4e6d67..9930d569287b 100644 --- a/pkg/kubelet/dockershim/network/hairpin/hairpin_test.go +++ b/pkg/kubelet/dockershim/network/hairpin/hairpin_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/hostport/fake_iptables.go b/pkg/kubelet/dockershim/network/hostport/fake_iptables.go index e4715c2be58a..c869e9aa64dc 100644 --- a/pkg/kubelet/dockershim/network/hostport/fake_iptables.go +++ b/pkg/kubelet/dockershim/network/hostport/fake_iptables.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* @@ -21,12 +22,12 @@ package hostport import ( "bytes" "fmt" - "net" "strings" "time" "k8s.io/apimachinery/pkg/util/sets" utiliptables "k8s.io/kubernetes/pkg/util/iptables" + netutils "k8s.io/utils/net" ) type fakeChain struct { @@ -192,7 +193,7 @@ func normalizeRule(rule string) (string, error) { arg := remaining[:end] // Normalize un-prefixed IP addresses like iptables does - if net.ParseIP(arg) != nil { + if netutils.ParseIPSloppy(arg) != nil { arg += "/32" } diff --git a/pkg/kubelet/dockershim/network/hostport/fake_iptables_test.go b/pkg/kubelet/dockershim/network/hostport/fake_iptables_test.go index a503b6d822ed..41dd7ba73900 100644 --- a/pkg/kubelet/dockershim/network/hostport/fake_iptables_test.go +++ b/pkg/kubelet/dockershim/network/hostport/fake_iptables_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/hostport/hostport.go b/pkg/kubelet/dockershim/network/hostport/hostport.go index 5891ba55d50d..cb68abdc0172 100644 --- a/pkg/kubelet/dockershim/network/hostport/hostport.go +++ b/pkg/kubelet/dockershim/network/hostport/hostport.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/hostport/hostport_manager.go b/pkg/kubelet/dockershim/network/hostport/hostport_manager.go index 9dc44e7d57d7..3caa2007b62c 100644 --- a/pkg/kubelet/dockershim/network/hostport/hostport_manager.go +++ b/pkg/kubelet/dockershim/network/hostport/hostport_manager.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/hostport/hostport_manager_test.go b/pkg/kubelet/dockershim/network/hostport/hostport_manager_test.go index 1613b0d633a4..1f0046a17a99 100644 --- a/pkg/kubelet/dockershim/network/hostport/hostport_manager_test.go +++ b/pkg/kubelet/dockershim/network/hostport/hostport_manager_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* @@ -20,7 +21,6 @@ package hostport import ( "bytes" - "net" "strings" "testing" @@ -28,6 +28,7 @@ import ( v1 "k8s.io/api/core/v1" utiliptables "k8s.io/kubernetes/pkg/util/iptables" "k8s.io/utils/exec" + netutils "k8s.io/utils/net" ) func TestOpenCloseHostports(t *testing.T) { @@ -249,7 +250,7 @@ func TestHostportManager(t *testing.T) { mapping: &PodPortMapping{ Name: "pod1", Namespace: "ns1", - IP: net.ParseIP("10.1.1.2"), + IP: netutils.ParseIPSloppy("10.1.1.2"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -276,7 +277,7 @@ func TestHostportManager(t *testing.T) { mapping: &PodPortMapping{ Name: "pod2", Namespace: "ns1", - IP: net.ParseIP("10.1.1.3"), + IP: netutils.ParseIPSloppy("10.1.1.3"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -303,7 +304,7 @@ func TestHostportManager(t *testing.T) { mapping: &PodPortMapping{ Name: "pod3", Namespace: "ns1", - IP: net.ParseIP("10.1.1.4"), + IP: netutils.ParseIPSloppy("10.1.1.4"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -320,7 +321,7 @@ func TestHostportManager(t *testing.T) { mapping: &PodPortMapping{ Name: "pod3", Namespace: "ns1", - IP: net.ParseIP("192.168.12.12"), + IP: netutils.ParseIPSloppy("192.168.12.12"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -337,7 +338,7 @@ func TestHostportManager(t *testing.T) { mapping: &PodPortMapping{ Name: "pod4", Namespace: "ns1", - IP: net.ParseIP("2001:beef::2"), + IP: netutils.ParseIPSloppy("2001:beef::2"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -356,7 +357,7 @@ func TestHostportManager(t *testing.T) { mapping: &PodPortMapping{ Name: "pod5", Namespace: "ns5", - IP: net.ParseIP("10.1.1.5"), + IP: netutils.ParseIPSloppy("10.1.1.5"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -380,7 +381,7 @@ func TestHostportManager(t *testing.T) { mapping: &PodPortMapping{ Name: "pod6", Namespace: "ns1", - IP: net.ParseIP("10.1.1.2"), + IP: netutils.ParseIPSloppy("10.1.1.2"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -555,7 +556,7 @@ func TestHostportManagerIPv6(t *testing.T) { mapping: &PodPortMapping{ Name: "pod1", Namespace: "ns1", - IP: net.ParseIP("2001:beef::2"), + IP: netutils.ParseIPSloppy("2001:beef::2"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -581,7 +582,7 @@ func TestHostportManagerIPv6(t *testing.T) { mapping: &PodPortMapping{ Name: "pod2", Namespace: "ns1", - IP: net.ParseIP("2001:beef::3"), + IP: netutils.ParseIPSloppy("2001:beef::3"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -607,7 +608,7 @@ func TestHostportManagerIPv6(t *testing.T) { mapping: &PodPortMapping{ Name: "pod3", Namespace: "ns1", - IP: net.ParseIP("2001:beef::4"), + IP: netutils.ParseIPSloppy("2001:beef::4"), HostNetwork: false, PortMappings: []*PortMapping{ { @@ -623,7 +624,7 @@ func TestHostportManagerIPv6(t *testing.T) { mapping: &PodPortMapping{ Name: "pod4", Namespace: "ns2", - IP: net.ParseIP("192.168.2.2"), + IP: netutils.ParseIPSloppy("192.168.2.2"), HostNetwork: false, PortMappings: []*PortMapping{ { diff --git a/pkg/kubelet/dockershim/network/hostport/hostport_test.go b/pkg/kubelet/dockershim/network/hostport/hostport_test.go index c3f368528362..575a0b2bcd97 100644 --- a/pkg/kubelet/dockershim/network/hostport/hostport_test.go +++ b/pkg/kubelet/dockershim/network/hostport/hostport_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/kubenet/kubenet.go b/pkg/kubelet/dockershim/network/kubenet/kubenet.go index 558cf0bdfbe5..159e7f75aee6 100644 --- a/pkg/kubelet/dockershim/network/kubenet/kubenet.go +++ b/pkg/kubelet/dockershim/network/kubenet/kubenet.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go b/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go index 2f82a157d25e..852fe73928df 100644 --- a/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go +++ b/pkg/kubelet/dockershim/network/kubenet/kubenet_linux.go @@ -1,3 +1,4 @@ +//go:build linux && !dockerless // +build linux,!dockerless /* @@ -259,7 +260,7 @@ func (plugin *kubenetNetworkPlugin) Event(name string, details map[string]interf } for idx, currentPodCIDR := range podCIDRs { - _, cidr, err := net.ParseCIDR(currentPodCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(currentPodCIDR) if nil != err { klog.InfoS("Failed to generate CNI network config with cidr at the index", "podCIDR", currentPodCIDR, "index", idx, "err", err) return @@ -451,7 +452,7 @@ func (plugin *kubenetNetworkPlugin) addPortMapping(id kubecontainer.ContainerID, Namespace: namespace, Name: name, PortMappings: portMappings, - IP: net.ParseIP(ip), + IP: netutils.ParseIPSloppy(ip), HostNetwork: false, } if netutils.IsIPv6(pm.IP) { @@ -635,7 +636,7 @@ func (plugin *kubenetNetworkPlugin) getNetworkStatus(id kubecontainer.ContainerI ips := make([]net.IP, 0, len(iplist)) for _, ip := range iplist { - ips = append(ips, net.ParseIP(ip)) + ips = append(ips, netutils.ParseIPSloppy(ip)) } return &network.PodNetworkStatus{ diff --git a/pkg/kubelet/dockershim/network/kubenet/kubenet_linux_test.go b/pkg/kubelet/dockershim/network/kubenet/kubenet_linux_test.go index 460e78960c9d..0fba86638e78 100644 --- a/pkg/kubelet/dockershim/network/kubenet/kubenet_linux_test.go +++ b/pkg/kubelet/dockershim/network/kubenet/kubenet_linux_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* @@ -40,6 +41,7 @@ import ( sysctltest "k8s.io/kubernetes/pkg/util/sysctl/testing" "k8s.io/utils/exec" fakeexec "k8s.io/utils/exec/testing" + netutils "k8s.io/utils/net" ) // test it fulfills the NetworkPlugin interface @@ -337,7 +339,7 @@ func TestGetRoutesConfig(t *testing.T) { } { var cidrs []*net.IPNet for _, c := range test.cidrs { - _, cidr, err := net.ParseCIDR(c) + _, cidr, err := netutils.ParseCIDRSloppy(c) assert.NoError(t, err) cidrs = append(cidrs, cidr) } @@ -378,7 +380,7 @@ func TestGetRangesConfig(t *testing.T) { } { var cidrs []*net.IPNet for _, c := range test.cidrs { - _, cidr, err := net.ParseCIDR(c) + _, cidr, err := netutils.ParseCIDRSloppy(c) assert.NoError(t, err) cidrs = append(cidrs, cidr) } diff --git a/pkg/kubelet/dockershim/network/kubenet/kubenet_unsupported.go b/pkg/kubelet/dockershim/network/kubenet/kubenet_unsupported.go index 05d9c66fcf20..c9adf1c6d3d5 100644 --- a/pkg/kubelet/dockershim/network/kubenet/kubenet_unsupported.go +++ b/pkg/kubelet/dockershim/network/kubenet/kubenet_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !dockerless // +build !linux,!dockerless /* diff --git a/pkg/kubelet/dockershim/network/metrics/metrics.go b/pkg/kubelet/dockershim/network/metrics/metrics.go index db086e4b955f..318feabe31aa 100644 --- a/pkg/kubelet/dockershim/network/metrics/metrics.go +++ b/pkg/kubelet/dockershim/network/metrics/metrics.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/network.go b/pkg/kubelet/dockershim/network/network.go index a609c8cf8d9f..82869c7aaf5b 100644 --- a/pkg/kubelet/dockershim/network/network.go +++ b/pkg/kubelet/dockershim/network/network.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/plugins.go b/pkg/kubelet/dockershim/network/plugins.go index ce715f5d05af..aa6b1bb1aae5 100644 --- a/pkg/kubelet/dockershim/network/plugins.go +++ b/pkg/kubelet/dockershim/network/plugins.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* @@ -36,6 +37,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/dockershim/network/metrics" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilexec "k8s.io/utils/exec" + netutils "k8s.io/utils/net" utilfeature "k8s.io/apiserver/pkg/util/feature" kubefeatures "k8s.io/kubernetes/pkg/features" @@ -248,7 +250,7 @@ func getOnePodIP(execer utilexec.Interface, nsenterPath, netnsPath, interfaceNam if len(fields) < 4 { return nil, fmt.Errorf("unexpected address output %s ", lines[0]) } - ip, _, err := net.ParseCIDR(fields[3]) + ip, _, err := netutils.ParseCIDRSloppy(fields[3]) if err != nil { return nil, fmt.Errorf("CNI failed to parse ip from output %s due to %v", output, err) } diff --git a/pkg/kubelet/dockershim/network/plugins_test.go b/pkg/kubelet/dockershim/network/plugins_test.go index 17e60a1e7544..286cd6f44b75 100644 --- a/pkg/kubelet/dockershim/network/plugins_test.go +++ b/pkg/kubelet/dockershim/network/plugins_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/testing/fake_host.go b/pkg/kubelet/dockershim/network/testing/fake_host.go index 6b07d0e6ad84..c3d415be03a6 100644 --- a/pkg/kubelet/dockershim/network/testing/fake_host.go +++ b/pkg/kubelet/dockershim/network/testing/fake_host.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/testing/mock_network_plugin.go b/pkg/kubelet/dockershim/network/testing/mock_network_plugin.go index 59fbb7b027ec..f38214c17946 100644 --- a/pkg/kubelet/dockershim/network/testing/mock_network_plugin.go +++ b/pkg/kubelet/dockershim/network/testing/mock_network_plugin.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/network/testing/plugins_test.go b/pkg/kubelet/dockershim/network/testing/plugins_test.go index 8943197afe1c..ccf2b431fd6e 100644 --- a/pkg/kubelet/dockershim/network/testing/plugins_test.go +++ b/pkg/kubelet/dockershim/network/testing/plugins_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* @@ -20,7 +21,6 @@ package testing import ( "fmt" - "net" "sync" "testing" @@ -29,6 +29,7 @@ import ( kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/dockershim/network" sysctltest "k8s.io/kubernetes/pkg/util/sysctl/testing" + netutils "k8s.io/utils/net" "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" @@ -96,7 +97,7 @@ func TestPluginManager(t *testing.T) { containerID := kubecontainer.ContainerID{ID: podName} fnp.EXPECT().SetUpPod("", podName, containerID).Return(nil).Times(4) - fnp.EXPECT().GetPodNetworkStatus("", podName, containerID).Return(&network.PodNetworkStatus{IP: net.ParseIP("1.2.3.4")}, nil).Times(4) + fnp.EXPECT().GetPodNetworkStatus("", podName, containerID).Return(&network.PodNetworkStatus{IP: netutils.ParseIPSloppy("1.2.3.4")}, nil).Times(4) fnp.EXPECT().TearDownPod("", podName, containerID).Return(nil).Times(4) for x := 0; x < 4; x++ { @@ -173,7 +174,7 @@ func (p *hookableFakeNetworkPlugin) TearDownPod(string, string, kubecontainer.Co } func (p *hookableFakeNetworkPlugin) GetPodNetworkStatus(string, string, kubecontainer.ContainerID) (*network.PodNetworkStatus, error) { - return &network.PodNetworkStatus{IP: net.ParseIP("10.1.2.3")}, nil + return &network.PodNetworkStatus{IP: netutils.ParseIPSloppy("10.1.2.3")}, nil } func (p *hookableFakeNetworkPlugin) Status() error { diff --git a/pkg/kubelet/dockershim/remote/docker_server.go b/pkg/kubelet/dockershim/remote/docker_server.go index c9bd69ca417d..433f53890e00 100644 --- a/pkg/kubelet/dockershim/remote/docker_server.go +++ b/pkg/kubelet/dockershim/remote/docker_server.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/security_context.go b/pkg/kubelet/dockershim/security_context.go index 6c6d313f271d..25a12c450eb8 100644 --- a/pkg/kubelet/dockershim/security_context.go +++ b/pkg/kubelet/dockershim/security_context.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/security_context_test.go b/pkg/kubelet/dockershim/security_context_test.go index d89fc1b7477a..01f46fa1b526 100644 --- a/pkg/kubelet/dockershim/security_context_test.go +++ b/pkg/kubelet/dockershim/security_context_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/selinux_util.go b/pkg/kubelet/dockershim/selinux_util.go index 00565596273c..4d299a7f9347 100644 --- a/pkg/kubelet/dockershim/selinux_util.go +++ b/pkg/kubelet/dockershim/selinux_util.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/dockershim/selinux_util_test.go b/pkg/kubelet/dockershim/selinux_util_test.go index 99eb6a437d10..d1e47dbcd145 100644 --- a/pkg/kubelet/dockershim/selinux_util_test.go +++ b/pkg/kubelet/dockershim/selinux_util_test.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/eviction/threshold_notifier_unsupported.go b/pkg/kubelet/eviction/threshold_notifier_unsupported.go index 0b334caa0b29..073ca5dc16d2 100644 --- a/pkg/kubelet/eviction/threshold_notifier_unsupported.go +++ b/pkg/kubelet/eviction/threshold_notifier_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 0a361f5157d4..8c438a234411 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -38,6 +38,7 @@ import ( libcontaineruserns "github.com/opencontainers/runc/libcontainer/userns" "k8s.io/mount-utils" "k8s.io/utils/integer" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -517,7 +518,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, clusterDNS := make([]net.IP, 0, len(kubeCfg.ClusterDNS)) for _, ipEntry := range kubeCfg.ClusterDNS { - ip := net.ParseIP(ipEntry) + ip := netutils.ParseIPSloppy(ipEntry) if ip == nil { klog.InfoS("Invalid clusterDNS IP", "IP", ipEntry) } else { diff --git a/pkg/kubelet/kubelet_dockerless_test.go b/pkg/kubelet/kubelet_dockerless_test.go index d96bb2504a09..3a494fd9a315 100644 --- a/pkg/kubelet/kubelet_dockerless_test.go +++ b/pkg/kubelet/kubelet_dockerless_test.go @@ -1,3 +1,4 @@ +//go:build dockerless // +build dockerless /* diff --git a/pkg/kubelet/kubelet_dockershim.go b/pkg/kubelet/kubelet_dockershim.go index 522625bba228..edc486949e84 100644 --- a/pkg/kubelet/kubelet_dockershim.go +++ b/pkg/kubelet/kubelet_dockershim.go @@ -1,3 +1,4 @@ +//go:build !dockerless // +build !dockerless /* diff --git a/pkg/kubelet/kubelet_dockershim_nodocker.go b/pkg/kubelet/kubelet_dockershim_nodocker.go index 7ee122f0c4f7..85dbc4497915 100644 --- a/pkg/kubelet/kubelet_dockershim_nodocker.go +++ b/pkg/kubelet/kubelet_dockershim_nodocker.go @@ -1,3 +1,4 @@ +//go:build dockerless // +build dockerless /* diff --git a/pkg/kubelet/kubelet_network_linux.go b/pkg/kubelet/kubelet_network_linux.go index 421112cb9cf8..ec999bc7dc65 100644 --- a/pkg/kubelet/kubelet_network_linux.go +++ b/pkg/kubelet/kubelet_network_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/kubelet_network_others.go b/pkg/kubelet/kubelet_network_others.go index bf0a3ba52fce..666849166c77 100644 --- a/pkg/kubelet/kubelet_network_others.go +++ b/pkg/kubelet/kubelet_network_others.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/kubelet_network_test.go b/pkg/kubelet/kubelet_network_test.go index 8ba8e4415e1b..408c31741fbd 100644 --- a/pkg/kubelet/kubelet_network_test.go +++ b/pkg/kubelet/kubelet_network_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/kubelet_node_status_others.go b/pkg/kubelet/kubelet_node_status_others.go index ab1e3647265e..2b4d8b595740 100644 --- a/pkg/kubelet/kubelet_node_status_others.go +++ b/pkg/kubelet/kubelet_node_status_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/kubelet_node_status_test.go b/pkg/kubelet/kubelet_node_status_test.go index aa9c56b6d382..eef40762b2c5 100644 --- a/pkg/kubelet/kubelet_node_status_test.go +++ b/pkg/kubelet/kubelet_node_status_test.go @@ -58,6 +58,7 @@ import ( kubeletvolume "k8s.io/kubernetes/pkg/kubelet/volumemanager" taintutil "k8s.io/kubernetes/pkg/util/taints" "k8s.io/kubernetes/pkg/volume/util" + netutils "k8s.io/utils/net" ) const ( @@ -2484,7 +2485,7 @@ func TestValidateNodeIPParam(t *testing.T) { tests = append(tests, successTest) } for _, test := range tests { - err := validateNodeIP(net.ParseIP(test.nodeIP)) + err := validateNodeIP(netutils.ParseIPSloppy(test.nodeIP)) if test.success { assert.NoError(t, err, "test %s", test.testName) } else { diff --git a/pkg/kubelet/kubelet_node_status_windows.go b/pkg/kubelet/kubelet_node_status_windows.go index 53d523bcc88d..524159278e22 100644 --- a/pkg/kubelet/kubelet_node_status_windows.go +++ b/pkg/kubelet/kubelet_node_status_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/kubelet_pods_linux_test.go b/pkg/kubelet/kubelet_pods_linux_test.go index 21074ebb5616..4d4d69fb6e0e 100644 --- a/pkg/kubelet/kubelet_pods_linux_test.go +++ b/pkg/kubelet/kubelet_pods_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/kubelet_pods_test.go b/pkg/kubelet/kubelet_pods_test.go index a6b3ba2d7ea3..17dc3a38d67e 100644 --- a/pkg/kubelet/kubelet_pods_test.go +++ b/pkg/kubelet/kubelet_pods_test.go @@ -42,6 +42,7 @@ import ( core "k8s.io/client-go/testing" "k8s.io/client-go/tools/record" featuregatetesting "k8s.io/component-base/featuregate/testing" + netutils "k8s.io/utils/net" // TODO: remove this import if // api.Registry.GroupOrDie(v1.GroupName).GroupVersions[0].String() is changed @@ -3515,7 +3516,7 @@ func TestGenerateAPIPodStatusPodIPs(t *testing.T) { defer testKubelet.Cleanup() kl := testKubelet.kubelet if tc.nodeIP != "" { - kl.nodeIPs = []net.IP{net.ParseIP(tc.nodeIP)} + kl.nodeIPs = []net.IP{netutils.ParseIPSloppy(tc.nodeIP)} } pod := podWithUIDNameNs("12345", "test-pod", "test-namespace") @@ -3619,7 +3620,7 @@ func TestSortPodIPs(t *testing.T) { defer testKubelet.Cleanup() kl := testKubelet.kubelet if tc.nodeIP != "" { - kl.nodeIPs = []net.IP{net.ParseIP(tc.nodeIP)} + kl.nodeIPs = []net.IP{netutils.ParseIPSloppy(tc.nodeIP)} } podIPs := kl.sortPodIPs(tc.podIPs) diff --git a/pkg/kubelet/kubelet_server_journal_linux.go b/pkg/kubelet/kubelet_server_journal_linux.go index 519ef209d3b7..1be62a290edb 100644 --- a/pkg/kubelet/kubelet_server_journal_linux.go +++ b/pkg/kubelet/kubelet_server_journal_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux package kubelet diff --git a/pkg/kubelet/kubelet_server_journal_others.go b/pkg/kubelet/kubelet_server_journal_others.go index b92583b40b20..4219aecf2ec7 100644 --- a/pkg/kubelet/kubelet_server_journal_others.go +++ b/pkg/kubelet/kubelet_server_journal_others.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows package kubelet diff --git a/pkg/kubelet/kubelet_server_journal_windows.go b/pkg/kubelet/kubelet_server_journal_windows.go index 695693f62015..1d85bc4aa0cd 100644 --- a/pkg/kubelet/kubelet_server_journal_windows.go +++ b/pkg/kubelet/kubelet_server_journal_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows package kubelet diff --git a/pkg/kubelet/kubelet_volumes_linux_test.go b/pkg/kubelet/kubelet_volumes_linux_test.go index bf5c629966e9..027dc5148d3c 100644 --- a/pkg/kubelet/kubelet_volumes_linux_test.go +++ b/pkg/kubelet/kubelet_volumes_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/kuberuntime/helpers_linux.go b/pkg/kubelet/kuberuntime/helpers_linux.go index 204bc4e9ffba..2a476a526599 100644 --- a/pkg/kubelet/kuberuntime/helpers_linux.go +++ b/pkg/kubelet/kuberuntime/helpers_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/kuberuntime/helpers_unsupported.go b/pkg/kubelet/kuberuntime/helpers_unsupported.go index cc1e88a5beff..1f5c8093a1b1 100644 --- a/pkg/kubelet/kuberuntime/helpers_unsupported.go +++ b/pkg/kubelet/kuberuntime/helpers_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go index ecea5f70e1ad..58b7ae248fac 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go index da8d529b7533..dac510a3c0af 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_unsupported.go b/pkg/kubelet/kuberuntime/kuberuntime_container_unsupported.go index 72e234c91435..730b8437666f 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_container_unsupported.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_container_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows /* diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go b/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go index d295bc809314..51604dbfa7c2 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go index 95832f9f13e6..f5ada096d16b 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go @@ -18,7 +18,6 @@ package kuberuntime import ( "fmt" - "net" "net/url" "runtime" "sort" @@ -33,6 +32,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/kubelet/util" "k8s.io/kubernetes/pkg/kubelet/util/format" + netutils "k8s.io/utils/net" ) // createPodSandbox creates a pod sandbox and returns (podSandBoxID, message, error). @@ -298,7 +298,7 @@ func (m *kubeGenericRuntimeManager) determinePodSandboxIPs(podNamespace, podName // pick primary IP if len(podSandbox.Network.Ip) != 0 { - if net.ParseIP(podSandbox.Network.Ip) == nil { + if netutils.ParseIPSloppy(podSandbox.Network.Ip) == nil { klog.InfoS("Pod Sandbox reported an unparseable primary IP", "pod", klog.KRef(podNamespace, podName), "IP", podSandbox.Network.Ip) return nil } @@ -307,7 +307,7 @@ func (m *kubeGenericRuntimeManager) determinePodSandboxIPs(podNamespace, podName // pick additional ips, if cri reported them for _, podIP := range podSandbox.Network.AdditionalIps { - if nil == net.ParseIP(podIP.Ip) { + if nil == netutils.ParseIPSloppy(podIP.Ip) { klog.InfoS("Pod Sandbox reported an unparseable additional IP", "pod", klog.KRef(podNamespace, podName), "IP", podIP.Ip) return nil } diff --git a/pkg/kubelet/kuberuntime/security_context_others.go b/pkg/kubelet/kuberuntime/security_context_others.go index 3ea7526b094b..c7a86a2b56c2 100644 --- a/pkg/kubelet/kuberuntime/security_context_others.go +++ b/pkg/kubelet/kuberuntime/security_context_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/kuberuntime/security_context_others_test.go b/pkg/kubelet/kuberuntime/security_context_others_test.go index fe84a152c010..a1a772188853 100644 --- a/pkg/kubelet/kuberuntime/security_context_others_test.go +++ b/pkg/kubelet/kuberuntime/security_context_others_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/kuberuntime/security_context_windows.go b/pkg/kubelet/kuberuntime/security_context_windows.go index 343757c0098e..87b777f5e0ad 100644 --- a/pkg/kubelet/kuberuntime/security_context_windows.go +++ b/pkg/kubelet/kuberuntime/security_context_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/kuberuntime/security_context_windows_test.go b/pkg/kubelet/kuberuntime/security_context_windows_test.go index fd438050ba2a..6cca733b5d97 100644 --- a/pkg/kubelet/kuberuntime/security_context_windows_test.go +++ b/pkg/kubelet/kuberuntime/security_context_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/network/dns/dns_test.go b/pkg/kubelet/network/dns/dns_test.go index fb84ca11678a..8d781b8deb7a 100644 --- a/pkg/kubelet/network/dns/dns_test.go +++ b/pkg/kubelet/network/dns/dns_test.go @@ -35,6 +35,7 @@ import ( runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/features" + netutils "k8s.io/utils/net" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -350,7 +351,7 @@ func TestGetPodDNSType(t *testing.T) { } testClusterDNSDomain := "TEST" clusterNS := "203.0.113.1" - testClusterDNS := []net.IP{net.ParseIP(clusterNS)} + testClusterDNS := []net.IP{netutils.ParseIPSloppy(clusterNS)} configurer := NewConfigurer(recorder, nodeRef, nil, nil, testClusterDNSDomain, "") @@ -477,7 +478,7 @@ func testGetPodDNS(t *testing.T) { } clusterNS := "203.0.113.1" testClusterDNSDomain := "kubernetes.io" - testClusterDNS := []net.IP{net.ParseIP(clusterNS)} + testClusterDNS := []net.IP{netutils.ParseIPSloppy(clusterNS)} configurer := NewConfigurer(recorder, nodeRef, nil, testClusterDNS, testClusterDNSDomain, "") @@ -606,7 +607,7 @@ func TestGetPodDNSCustom(t *testing.T) { t.Fatal(err) } - configurer := NewConfigurer(recorder, nodeRef, nil, []net.IP{net.ParseIP(testClusterNameserver)}, testClusterDNSDomain, tmpfile.Name()) + configurer := NewConfigurer(recorder, nodeRef, nil, []net.IP{netutils.ParseIPSloppy(testClusterNameserver)}, testClusterDNSDomain, tmpfile.Name()) testCases := []struct { desc string diff --git a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux.go b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux.go index 27c2cee090f9..4a86f4526fdf 100644 --- a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux.go +++ b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go index 9d1338a7e97d..0cb0ed5dafa6 100644 --- a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go +++ b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_others.go b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_others.go index 44228f8be585..ac7e83def195 100644 --- a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_others.go +++ b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_others.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/nodeshutdown/systemd/inhibit_linux.go b/pkg/kubelet/nodeshutdown/systemd/inhibit_linux.go index 8d3e36a4297f..69919db9b02a 100644 --- a/pkg/kubelet/nodeshutdown/systemd/inhibit_linux.go +++ b/pkg/kubelet/nodeshutdown/systemd/inhibit_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/nodeshutdown/systemd/inhibit_linux_test.go b/pkg/kubelet/nodeshutdown/systemd/inhibit_linux_test.go index b38123bfea02..61271170ebb2 100644 --- a/pkg/kubelet/nodeshutdown/systemd/inhibit_linux_test.go +++ b/pkg/kubelet/nodeshutdown/systemd/inhibit_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/nodeshutdown/systemd/inhibit_others.go b/pkg/kubelet/nodeshutdown/systemd/inhibit_others.go index 7176fef327bc..f077b00afc51 100644 --- a/pkg/kubelet/nodeshutdown/systemd/inhibit_others.go +++ b/pkg/kubelet/nodeshutdown/systemd/inhibit_others.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/nodestatus/setters.go b/pkg/kubelet/nodestatus/setters.go index 0ff7f6fced94..c062327ba8e5 100644 --- a/pkg/kubelet/nodestatus/setters.go +++ b/pkg/kubelet/nodestatus/setters.go @@ -42,6 +42,7 @@ import ( kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/events" "k8s.io/kubernetes/pkg/volume" + netutils "k8s.io/utils/net" "k8s.io/klog/v2" ) @@ -149,13 +150,13 @@ func NodeAddress(nodeIPs []net.IP, // typically Kubelet.nodeIPs // prefer addresses of the matching family sortedAddresses := make([]v1.NodeAddress, 0, len(cloudNodeAddresses)) for _, nodeAddress := range cloudNodeAddresses { - ip := net.ParseIP(nodeAddress.Address) + ip := netutils.ParseIPSloppy(nodeAddress.Address) if ip == nil || isPreferredIPFamily(ip) { sortedAddresses = append(sortedAddresses, nodeAddress) } } for _, nodeAddress := range cloudNodeAddresses { - ip := net.ParseIP(nodeAddress.Address) + ip := netutils.ParseIPSloppy(nodeAddress.Address) if ip != nil && !isPreferredIPFamily(ip) { sortedAddresses = append(sortedAddresses, nodeAddress) } @@ -219,7 +220,7 @@ func NodeAddress(nodeIPs []net.IP, // typically Kubelet.nodeIPs // unless nodeIP is "::", in which case it is reversed. if nodeIPSpecified { ipAddr = nodeIP - } else if addr := net.ParseIP(hostname); addr != nil { + } else if addr := netutils.ParseIPSloppy(hostname); addr != nil { ipAddr = addr } else { var addrs []net.IP diff --git a/pkg/kubelet/nodestatus/setters_test.go b/pkg/kubelet/nodestatus/setters_test.go index 0547446adbac..f4b0e0181df4 100644 --- a/pkg/kubelet/nodestatus/setters_test.go +++ b/pkg/kubelet/nodestatus/setters_test.go @@ -44,6 +44,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/util/sliceutils" "k8s.io/kubernetes/pkg/volume" volumetest "k8s.io/kubernetes/pkg/volume/testing" + netutils "k8s.io/utils/net" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -66,7 +67,7 @@ func TestNodeAddress(t *testing.T) { }{ { name: "A single InternalIP", - nodeIP: net.ParseIP("10.1.1.1"), + nodeIP: netutils.ParseIPSloppy("10.1.1.1"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeHostName, Address: testKubeletHostname}, @@ -79,7 +80,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "NodeIP is external", - nodeIP: net.ParseIP("55.55.55.55"), + nodeIP: netutils.ParseIPSloppy("55.55.55.55"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeExternalIP, Address: "55.55.55.55"}, @@ -95,7 +96,7 @@ func TestNodeAddress(t *testing.T) { { // Accommodating #45201 and #49202 name: "InternalIP and ExternalIP are the same", - nodeIP: net.ParseIP("55.55.55.55"), + nodeIP: netutils.ParseIPSloppy("55.55.55.55"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "44.44.44.44"}, {Type: v1.NodeExternalIP, Address: "44.44.44.44"}, @@ -112,7 +113,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "An Internal/ExternalIP, an Internal/ExternalDNS", - nodeIP: net.ParseIP("10.1.1.1"), + nodeIP: netutils.ParseIPSloppy("10.1.1.1"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeExternalIP, Address: "55.55.55.55"}, @@ -131,7 +132,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "An Internal with multiple internal IPs", - nodeIP: net.ParseIP("10.1.1.1"), + nodeIP: netutils.ParseIPSloppy("10.1.1.1"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeInternalIP, Address: "10.2.2.2"}, @@ -148,7 +149,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "An InternalIP that isn't valid: should error", - nodeIP: net.ParseIP("10.2.2.2"), + nodeIP: netutils.ParseIPSloppy("10.2.2.2"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeExternalIP, Address: "55.55.55.55"}, @@ -181,7 +182,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "cloud reports hostname, nodeIP is set, no override", - nodeIP: net.ParseIP("10.1.1.1"), + nodeIP: netutils.ParseIPSloppy("10.1.1.1"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeExternalIP, Address: "55.55.55.55"}, @@ -211,7 +212,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "cloud provider is external", - nodeIP: net.ParseIP("10.0.0.1"), + nodeIP: netutils.ParseIPSloppy("10.0.0.1"), nodeAddresses: []v1.NodeAddress{}, externalCloudProvider: true, expectedAddresses: []v1.NodeAddress{ @@ -250,7 +251,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "cloud doesn't report hostname, nodeIP is set, no override, detected hostname match", - nodeIP: net.ParseIP("10.1.1.1"), + nodeIP: netutils.ParseIPSloppy("10.1.1.1"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeExternalIP, Address: "55.55.55.55"}, @@ -266,7 +267,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "cloud doesn't report hostname, nodeIP is set, no override, detected hostname match with same type as nodeIP", - nodeIP: net.ParseIP("10.1.1.1"), + nodeIP: netutils.ParseIPSloppy("10.1.1.1"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeInternalIP, Address: testKubeletHostname}, // cloud-reported address value matches detected hostname @@ -323,7 +324,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "Dual-stack cloud, IPv4 first, request IPv4", - nodeIP: net.ParseIP("0.0.0.0"), + nodeIP: netutils.ParseIPSloppy("0.0.0.0"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeInternalIP, Address: "fc01:1234::5678"}, @@ -338,7 +339,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "Dual-stack cloud, IPv6 first, request IPv4", - nodeIP: net.ParseIP("0.0.0.0"), + nodeIP: netutils.ParseIPSloppy("0.0.0.0"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "fc01:1234::5678"}, {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, @@ -353,7 +354,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "Dual-stack cloud, IPv4 first, request IPv6", - nodeIP: net.ParseIP("::"), + nodeIP: netutils.ParseIPSloppy("::"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeInternalIP, Address: "fc01:1234::5678"}, @@ -368,7 +369,7 @@ func TestNodeAddress(t *testing.T) { }, { name: "Dual-stack cloud, IPv6 first, request IPv6", - nodeIP: net.ParseIP("::"), + nodeIP: netutils.ParseIPSloppy("::"), nodeAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "fc01:1234::5678"}, {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, @@ -448,7 +449,7 @@ func TestNodeAddress_NoCloudProvider(t *testing.T) { }{ { name: "Single --node-ip", - nodeIPs: []net.IP{net.ParseIP("10.1.1.1")}, + nodeIPs: []net.IP{netutils.ParseIPSloppy("10.1.1.1")}, expectedAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeHostName, Address: testKubeletHostname}, @@ -456,7 +457,7 @@ func TestNodeAddress_NoCloudProvider(t *testing.T) { }, { name: "Dual --node-ips", - nodeIPs: []net.IP{net.ParseIP("10.1.1.1"), net.ParseIP("fd01::1234")}, + nodeIPs: []net.IP{netutils.ParseIPSloppy("10.1.1.1"), netutils.ParseIPSloppy("fd01::1234")}, expectedAddresses: []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: "10.1.1.1"}, {Type: v1.NodeInternalIP, Address: "fd01::1234"}, diff --git a/pkg/kubelet/oom/oom_watcher_linux.go b/pkg/kubelet/oom/oom_watcher_linux.go index e5c7ab47a225..15f682cbccc0 100644 --- a/pkg/kubelet/oom/oom_watcher_linux.go +++ b/pkg/kubelet/oom/oom_watcher_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/oom/oom_watcher_unsupported.go b/pkg/kubelet/oom/oom_watcher_unsupported.go index 47e97fad57d6..972d41303095 100644 --- a/pkg/kubelet/oom/oom_watcher_unsupported.go +++ b/pkg/kubelet/oom/oom_watcher_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/server/server.go b/pkg/kubelet/server/server.go index 7caf30f70437..dd3295b8fac0 100644 --- a/pkg/kubelet/server/server.go +++ b/pkg/kubelet/server/server.go @@ -41,6 +41,7 @@ import ( "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/kubelet/metrics/collectors" "k8s.io/utils/clock" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -144,7 +145,7 @@ func ListenAndServeKubeletServer( tlsOptions *TLSOptions, auth AuthInterface) { - address := net.ParseIP(kubeCfg.Address) + address := netutils.ParseIPSloppy(kubeCfg.Address) port := uint(kubeCfg.Port) klog.InfoS("Starting to listen", "address", address, "port", port) handler := NewServer(host, resourceAnalyzer, auth, kubeCfg) diff --git a/pkg/kubelet/server/stats/summary_sys_containers.go b/pkg/kubelet/server/stats/summary_sys_containers.go index bfbe6484344d..3edbffa5836b 100644 --- a/pkg/kubelet/server/stats/summary_sys_containers.go +++ b/pkg/kubelet/server/stats/summary_sys_containers.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/server/stats/summary_sys_containers_windows.go b/pkg/kubelet/server/stats/summary_sys_containers_windows.go index 1e833c995d24..520e0018b599 100644 --- a/pkg/kubelet/server/stats/summary_sys_containers_windows.go +++ b/pkg/kubelet/server/stats/summary_sys_containers_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/server/stats/summary_test.go b/pkg/kubelet/server/stats/summary_test.go index 74ebcb1dae44..bdc5ceb5a02e 100644 --- a/pkg/kubelet/server/stats/summary_test.go +++ b/pkg/kubelet/server/stats/summary_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/server/stats/summary_windows_test.go b/pkg/kubelet/server/stats/summary_windows_test.go index 18d41ac75c60..335c233fbb93 100644 --- a/pkg/kubelet/server/stats/summary_windows_test.go +++ b/pkg/kubelet/server/stats/summary_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/stats/cri_stats_provider_others.go b/pkg/kubelet/stats/cri_stats_provider_others.go index 78a3f5db12db..80762538f4ca 100644 --- a/pkg/kubelet/stats/cri_stats_provider_others.go +++ b/pkg/kubelet/stats/cri_stats_provider_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/kubelet/stats/cri_stats_provider_windows.go b/pkg/kubelet/stats/cri_stats_provider_windows.go index 617a1f455466..68b2609e6940 100644 --- a/pkg/kubelet/stats/cri_stats_provider_windows.go +++ b/pkg/kubelet/stats/cri_stats_provider_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/stats/pidlimit/pidlimit_linux.go b/pkg/kubelet/stats/pidlimit/pidlimit_linux.go index f02d92f56515..12141974299a 100644 --- a/pkg/kubelet/stats/pidlimit/pidlimit_linux.go +++ b/pkg/kubelet/stats/pidlimit/pidlimit_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/stats/pidlimit/pidlimit_unsupported.go b/pkg/kubelet/stats/pidlimit/pidlimit_unsupported.go index 314a8061a522..805c276d997c 100644 --- a/pkg/kubelet/stats/pidlimit/pidlimit_unsupported.go +++ b/pkg/kubelet/stats/pidlimit/pidlimit_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/kubelet/util/boottime_util_darwin.go b/pkg/kubelet/util/boottime_util_darwin.go index 09d3b8865da0..b6a1cc38c813 100644 --- a/pkg/kubelet/util/boottime_util_darwin.go +++ b/pkg/kubelet/util/boottime_util_darwin.go @@ -1,3 +1,4 @@ +//go:build darwin // +build darwin /* diff --git a/pkg/kubelet/util/boottime_util_freebsd.go b/pkg/kubelet/util/boottime_util_freebsd.go index ae1128cc6726..7d605d7611c1 100644 --- a/pkg/kubelet/util/boottime_util_freebsd.go +++ b/pkg/kubelet/util/boottime_util_freebsd.go @@ -1,3 +1,4 @@ +//go:build freebsd // +build freebsd /* diff --git a/pkg/kubelet/util/boottime_util_freebsd_test.go b/pkg/kubelet/util/boottime_util_freebsd_test.go index 442b8058b260..b79eda6cb6a4 100644 --- a/pkg/kubelet/util/boottime_util_freebsd_test.go +++ b/pkg/kubelet/util/boottime_util_freebsd_test.go @@ -1,3 +1,4 @@ +//go:build freebsd // +build freebsd /* diff --git a/pkg/kubelet/util/boottime_util_linux.go b/pkg/kubelet/util/boottime_util_linux.go index c39b70f7c882..b48ef392eeb0 100644 --- a/pkg/kubelet/util/boottime_util_linux.go +++ b/pkg/kubelet/util/boottime_util_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/util/boottime_util_linux_test.go b/pkg/kubelet/util/boottime_util_linux_test.go index 1b85e0737a04..4fce0acdeb30 100644 --- a/pkg/kubelet/util/boottime_util_linux_test.go +++ b/pkg/kubelet/util/boottime_util_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/kubelet/util/util_unix.go b/pkg/kubelet/util/util_unix.go index dafc22471b7e..30ef357cecaf 100644 --- a/pkg/kubelet/util/util_unix.go +++ b/pkg/kubelet/util/util_unix.go @@ -1,3 +1,4 @@ +//go:build freebsd || linux || darwin // +build freebsd linux darwin /* diff --git a/pkg/kubelet/util/util_unix_test.go b/pkg/kubelet/util/util_unix_test.go index 1234a0a0ad2f..f8e208b7867e 100644 --- a/pkg/kubelet/util/util_unix_test.go +++ b/pkg/kubelet/util/util_unix_test.go @@ -1,3 +1,4 @@ +//go:build freebsd || linux || darwin // +build freebsd linux darwin /* diff --git a/pkg/kubelet/util/util_unsupported.go b/pkg/kubelet/util/util_unsupported.go index dbf86a5a43b8..054c36230efa 100644 --- a/pkg/kubelet/util/util_unsupported.go +++ b/pkg/kubelet/util/util_unsupported.go @@ -1,3 +1,4 @@ +//go:build !freebsd && !linux && !windows && !darwin // +build !freebsd,!linux,!windows,!darwin /* diff --git a/pkg/kubelet/util/util_windows.go b/pkg/kubelet/util/util_windows.go index b0aec540e3ec..6c7f0652ff30 100644 --- a/pkg/kubelet/util/util_windows.go +++ b/pkg/kubelet/util/util_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/util/util_windows_test.go b/pkg/kubelet/util/util_windows_test.go index 19d05054b072..0828ae5a437f 100644 --- a/pkg/kubelet/util/util_windows_test.go +++ b/pkg/kubelet/util/util_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/winstats/network_stats.go b/pkg/kubelet/winstats/network_stats.go index 242269820a99..0a9d21a3a98c 100644 --- a/pkg/kubelet/winstats/network_stats.go +++ b/pkg/kubelet/winstats/network_stats.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/winstats/perfcounter_nodestats.go b/pkg/kubelet/winstats/perfcounter_nodestats.go index 11bd9153a417..e1b3d413f29a 100644 --- a/pkg/kubelet/winstats/perfcounter_nodestats.go +++ b/pkg/kubelet/winstats/perfcounter_nodestats.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/winstats/perfcounters.go b/pkg/kubelet/winstats/perfcounters.go index 861ab8879918..4096672657e8 100644 --- a/pkg/kubelet/winstats/perfcounters.go +++ b/pkg/kubelet/winstats/perfcounters.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/winstats/version.go b/pkg/kubelet/winstats/version.go index 7f38cc1cea7e..58398de9a3cf 100644 --- a/pkg/kubelet/winstats/version.go +++ b/pkg/kubelet/winstats/version.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/winstats/winstats.go b/pkg/kubelet/winstats/winstats.go index b55560a7333d..84fe6212ea5a 100644 --- a/pkg/kubelet/winstats/winstats.go +++ b/pkg/kubelet/winstats/winstats.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubelet/winstats/winstats_test.go b/pkg/kubelet/winstats/winstats_test.go index 50dc98d68c6b..3fd9972e627f 100644 --- a/pkg/kubelet/winstats/winstats_test.go +++ b/pkg/kubelet/winstats/winstats_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/kubemark/hollow_proxy.go b/pkg/kubemark/hollow_proxy.go index c3e7a845bc8b..4c2cee5cb5d6 100644 --- a/pkg/kubemark/hollow_proxy.go +++ b/pkg/kubemark/hollow_proxy.go @@ -18,7 +18,6 @@ package kubemark import ( "fmt" - "net" "time" v1 "k8s.io/api/core/v1" @@ -35,6 +34,7 @@ import ( utilnode "k8s.io/kubernetes/pkg/util/node" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilexec "k8s.io/utils/exec" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" "k8s.io/klog/v2" @@ -83,7 +83,7 @@ func NewHollowProxyOrDie( nodeIP := utilnode.GetNodeIP(client, nodeName) if nodeIP == nil { klog.V(0).Infof("can't determine this node's IP, assuming 127.0.0.1") - nodeIP = net.ParseIP("127.0.0.1") + nodeIP = netutils.ParseIPSloppy("127.0.0.1") } // Real proxier with fake iptables, sysctl, etc underneath it. //var err error diff --git a/pkg/proxy/apis/config/v1alpha1/defaults.go b/pkg/proxy/apis/config/v1alpha1/defaults.go index f80e1836a623..30d677d7f0fd 100644 --- a/pkg/proxy/apis/config/v1alpha1/defaults.go +++ b/pkg/proxy/apis/config/v1alpha1/defaults.go @@ -18,7 +18,6 @@ package v1alpha1 import ( "fmt" - "net" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -28,6 +27,7 @@ import ( "k8s.io/kubernetes/pkg/cluster/ports" "k8s.io/kubernetes/pkg/kubelet/qos" proxyutil "k8s.io/kubernetes/pkg/proxy/util" + netutils "k8s.io/utils/net" "k8s.io/utils/pointer" ) @@ -131,7 +131,7 @@ func SetDefaults_KubeProxyConfiguration(obj *kubeproxyconfigv1alpha1.KubeProxyCo // based on the given bind address. IPv6 addresses are enclosed in square // brackets for appending port. func getDefaultAddresses(bindAddress string) (defaultHealthzAddress, defaultMetricsAddress string) { - if net.ParseIP(bindAddress).To4() != nil { + if netutils.ParseIPSloppy(bindAddress).To4() != nil { return "0.0.0.0", "127.0.0.1" } return "[::]", "[::1]" diff --git a/pkg/proxy/apis/config/v1alpha1/zz_generated.conversion.go b/pkg/proxy/apis/config/v1alpha1/zz_generated.conversion.go index a2db00348b0d..4aee5d357a39 100644 --- a/pkg/proxy/apis/config/v1alpha1/zz_generated.conversion.go +++ b/pkg/proxy/apis/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/proxy/apis/config/v1alpha1/zz_generated.deepcopy.go b/pkg/proxy/apis/config/v1alpha1/zz_generated.deepcopy.go index 0ec19467c404..61f6555edfc5 100644 --- a/pkg/proxy/apis/config/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/proxy/apis/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/proxy/apis/config/v1alpha1/zz_generated.defaults.go b/pkg/proxy/apis/config/v1alpha1/zz_generated.defaults.go index 90ac9c91af57..a4e7946ec04b 100644 --- a/pkg/proxy/apis/config/v1alpha1/zz_generated.defaults.go +++ b/pkg/proxy/apis/config/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/proxy/apis/config/validation/validation.go b/pkg/proxy/apis/config/validation/validation.go index 8c49dd18ebd7..5d179769a500 100644 --- a/pkg/proxy/apis/config/validation/validation.go +++ b/pkg/proxy/apis/config/validation/validation.go @@ -66,7 +66,7 @@ func Validate(config *kubeproxyconfig.KubeProxyConfiguration) field.ErrorList { allErrs = append(allErrs, field.Invalid(newPath.Child("ConfigSyncPeriod"), config.ConfigSyncPeriod, "must be greater than 0")) } - if net.ParseIP(config.BindAddress) == nil { + if netutils.ParseIPSloppy(config.BindAddress) == nil { allErrs = append(allErrs, field.Invalid(newPath.Child("BindAddress"), config.BindAddress, "not a valid textual representation of an IP address")) } @@ -94,7 +94,7 @@ func Validate(config *kubeproxyconfig.KubeProxyConfiguration) field.ErrorList { allErrs = append(allErrs, field.Invalid(newPath.Child("ClusterCIDR"), config.ClusterCIDR, "only one CIDR allowed (e.g. 10.100.0.0/16 or fde4:8dba:82e1::/48)")) // if we are here means that len(cidrs) == 1, we need to validate it default: - if _, _, err := net.ParseCIDR(config.ClusterCIDR); err != nil { + if _, _, err := netutils.ParseCIDRSloppy(config.ClusterCIDR); err != nil { allErrs = append(allErrs, field.Invalid(newPath.Child("ClusterCIDR"), config.ClusterCIDR, "must be a valid CIDR block (e.g. 10.100.0.0/16 or fde4:8dba:82e1::/48)")) } } @@ -228,7 +228,7 @@ func validateHostPort(input string, fldPath *field.Path) field.ErrorList { return allErrs } - if ip := net.ParseIP(hostIP); ip == nil { + if ip := netutils.ParseIPSloppy(hostIP); ip == nil { allErrs = append(allErrs, field.Invalid(fldPath, hostIP, "must be a valid IP")) } @@ -275,7 +275,7 @@ func validateKubeProxyNodePortAddress(nodePortAddresses []string, fldPath *field allErrs := field.ErrorList{} for i := range nodePortAddresses { - if _, _, err := net.ParseCIDR(nodePortAddresses[i]); err != nil { + if _, _, err := netutils.ParseCIDRSloppy(nodePortAddresses[i]); err != nil { allErrs = append(allErrs, field.Invalid(fldPath.Index(i), nodePortAddresses[i], "must be a valid CIDR")) } } @@ -305,7 +305,7 @@ func validateIPVSExcludeCIDRs(excludeCIDRs []string, fldPath *field.Path) field. allErrs := field.ErrorList{} for i := range excludeCIDRs { - if _, _, err := net.ParseCIDR(excludeCIDRs[i]); err != nil { + if _, _, err := netutils.ParseCIDRSloppy(excludeCIDRs[i]); err != nil { allErrs = append(allErrs, field.Invalid(fldPath.Index(i), excludeCIDRs[i], "must be a valid CIDR")) } } diff --git a/pkg/proxy/apis/config/zz_generated.deepcopy.go b/pkg/proxy/apis/config/zz_generated.deepcopy.go index d35f7989c128..82d3e3cafea9 100644 --- a/pkg/proxy/apis/config/zz_generated.deepcopy.go +++ b/pkg/proxy/apis/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/proxy/iptables/proxier.go b/pkg/proxy/iptables/proxier.go index a94d90022d9d..8605b536bfad 100644 --- a/pkg/proxy/iptables/proxier.go +++ b/pkg/proxy/iptables/proxier.go @@ -53,7 +53,7 @@ import ( utiliptables "k8s.io/kubernetes/pkg/util/iptables" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" utilexec "k8s.io/utils/exec" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) const ( @@ -189,7 +189,7 @@ type Proxier struct { mu sync.Mutex // protects the following fields serviceMap proxy.ServiceMap endpointsMap proxy.EndpointsMap - portsMap map[utilnet.LocalPort]utilnet.Closeable + portsMap map[netutils.LocalPort]netutils.Closeable nodeLabels map[string]string // endpointSlicesSynced, and servicesSynced are set to true // when corresponding objects are synced after startup. This is used to avoid @@ -208,7 +208,7 @@ type Proxier struct { localDetector proxyutiliptables.LocalTrafficDetector hostname string nodeIP net.IP - portMapper utilnet.PortOpener + portMapper netutils.PortOpener recorder events.EventRecorder serviceHealthServer healthcheck.ServiceHealthServer @@ -295,7 +295,7 @@ func NewProxier(ipt utiliptables.Interface, } proxier := &Proxier{ - portsMap: make(map[utilnet.LocalPort]utilnet.Closeable), + portsMap: make(map[netutils.LocalPort]netutils.Closeable), serviceMap: make(proxy.ServiceMap), serviceChanges: proxy.NewServiceChangeTracker(newServiceInfo, ipFamily, recorder, nil), endpointsMap: make(proxy.EndpointsMap), @@ -308,7 +308,7 @@ func NewProxier(ipt utiliptables.Interface, localDetector: localDetector, hostname: hostname, nodeIP: nodeIP, - portMapper: &utilnet.ListenPortOpener, + portMapper: &netutils.ListenPortOpener, recorder: recorder, serviceHealthServer: serviceHealthServer, healthzServer: healthzServer, @@ -966,7 +966,7 @@ func (proxier *Proxier) syncProxyRules() { activeNATChains := map[utiliptables.Chain]bool{} // use a map as a set // Accumulate the set of local ports that we will be holding open once this update is complete - replacementPortsMap := map[utilnet.LocalPort]utilnet.Closeable{} + replacementPortsMap := map[netutils.LocalPort]netutils.Closeable{} // We are creating those slices ones here to avoid memory reallocations // in every loop. Note that reuse the memory, instead of doing: @@ -1006,10 +1006,10 @@ func (proxier *Proxier) syncProxyRules() { klog.ErrorS(nil, "Failed to cast serviceInfo", "svcName", svcName.String()) continue } - isIPv6 := utilnet.IsIPv6(svcInfo.ClusterIP()) - localPortIPFamily := utilnet.IPv4 + isIPv6 := netutils.IsIPv6(svcInfo.ClusterIP()) + localPortIPFamily := netutils.IPv4 if isIPv6 { - localPortIPFamily = utilnet.IPv6 + localPortIPFamily = netutils.IPv6 } protocol := strings.ToLower(string(svcInfo.Protocol())) svcNameString := svcInfo.serviceNameString @@ -1082,13 +1082,13 @@ func (proxier *Proxier) syncProxyRules() { // If the "external" IP happens to be an IP that is local to this // machine, hold the local port open so no other process can open it // (because the socket might open but it would never work). - if (svcInfo.Protocol() != v1.ProtocolSCTP) && localAddrSet.Has(net.ParseIP(externalIP)) { - lp := utilnet.LocalPort{ + if (svcInfo.Protocol() != v1.ProtocolSCTP) && localAddrSet.Has(netutils.ParseIPSloppy(externalIP)) { + lp := netutils.LocalPort{ Description: "externalIP for " + svcNameString, IP: externalIP, IPFamily: localPortIPFamily, Port: svcInfo.Port(), - Protocol: utilnet.Protocol(svcInfo.Protocol()), + Protocol: netutils.Protocol(svcInfo.Protocol()), } if proxier.portsMap[lp] != nil { klog.V(4).InfoS("Port was open before and is still needed", "port", lp.String()) @@ -1117,7 +1117,7 @@ func (proxier *Proxier) syncProxyRules() { args = append(args[:0], "-m", "comment", "--comment", fmt.Sprintf(`"%s external IP"`, svcNameString), "-m", protocol, "-p", protocol, - "-d", utilproxy.ToCIDR(net.ParseIP(externalIP)), + "-d", utilproxy.ToCIDR(netutils.ParseIPSloppy(externalIP)), "--dport", strconv.Itoa(svcInfo.Port()), ) @@ -1144,7 +1144,7 @@ func (proxier *Proxier) syncProxyRules() { "-A", string(kubeExternalServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s has no endpoints"`, svcNameString), "-m", protocol, "-p", protocol, - "-d", utilproxy.ToCIDR(net.ParseIP(externalIP)), + "-d", utilproxy.ToCIDR(netutils.ParseIPSloppy(externalIP)), "--dport", strconv.Itoa(svcInfo.Port()), "-j", "REJECT", ) @@ -1171,7 +1171,7 @@ func (proxier *Proxier) syncProxyRules() { "-A", string(kubeServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s loadbalancer IP"`, svcNameString), "-m", protocol, "-p", protocol, - "-d", utilproxy.ToCIDR(net.ParseIP(ingress)), + "-d", utilproxy.ToCIDR(netutils.ParseIPSloppy(ingress)), "--dport", strconv.Itoa(svcInfo.Port()), ) // jump to service firewall chain @@ -1199,7 +1199,7 @@ func (proxier *Proxier) syncProxyRules() { allowFromNode := false for _, src := range svcInfo.LoadBalancerSourceRanges() { utilproxy.WriteLine(proxier.natRules, append(args, "-s", src, "-j", string(chosenChain))...) - _, cidr, err := net.ParseCIDR(src) + _, cidr, err := netutils.ParseCIDRSloppy(src) if err != nil { klog.ErrorS(err, "Error parsing CIDR in LoadBalancerSourceRanges, dropping it", "cidr", cidr) } else if cidr.Contains(proxier.nodeIP) { @@ -1210,7 +1210,7 @@ func (proxier *Proxier) syncProxyRules() { // loadbalancer's backend hosts. In this case, request will not hit the loadbalancer but loop back directly. // Need to add the following rule to allow request on host. if allowFromNode { - utilproxy.WriteLine(proxier.natRules, append(args, "-s", utilproxy.ToCIDR(net.ParseIP(ingress)), "-j", string(chosenChain))...) + utilproxy.WriteLine(proxier.natRules, append(args, "-s", utilproxy.ToCIDR(netutils.ParseIPSloppy(ingress)), "-j", string(chosenChain))...) } } @@ -1223,7 +1223,7 @@ func (proxier *Proxier) syncProxyRules() { "-A", string(kubeExternalServicesChain), "-m", "comment", "--comment", fmt.Sprintf(`"%s has no endpoints"`, svcNameString), "-m", protocol, "-p", protocol, - "-d", utilproxy.ToCIDR(net.ParseIP(ingress)), + "-d", utilproxy.ToCIDR(netutils.ParseIPSloppy(ingress)), "--dport", strconv.Itoa(svcInfo.Port()), "-j", "REJECT", ) @@ -1241,14 +1241,14 @@ func (proxier *Proxier) syncProxyRules() { continue } - lps := make([]utilnet.LocalPort, 0) + lps := make([]netutils.LocalPort, 0) for address := range nodeAddresses { - lp := utilnet.LocalPort{ + lp := netutils.LocalPort{ Description: "nodePort for " + svcNameString, IP: address, IPFamily: localPortIPFamily, Port: svcInfo.NodePort(), - Protocol: utilnet.Protocol(svcInfo.Protocol()), + Protocol: netutils.Protocol(svcInfo.Protocol()), } if utilproxy.IsZeroCIDR(address) { // Empty IP address means all @@ -1441,7 +1441,7 @@ func (proxier *Proxier) syncProxyRules() { args = proxier.appendServiceCommentLocked(args, svcNameString) // Handle traffic that loops back to the originator with SNAT. utilproxy.WriteLine(proxier.natRules, append(args, - "-s", utilproxy.ToCIDR(net.ParseIP(epIP)), + "-s", utilproxy.ToCIDR(netutils.ParseIPSloppy(epIP)), "-j", string(KubeMarkMasqChain))...) // Update client-affinity lists. if svcInfo.SessionAffinityType() == v1.ServiceAffinityClientIP { @@ -1564,7 +1564,7 @@ func (proxier *Proxier) syncProxyRules() { break } // Ignore IP addresses with incorrect version - if isIPv6 && !utilnet.IsIPv6String(address) || !isIPv6 && utilnet.IsIPv6String(address) { + if isIPv6 && !netutils.IsIPv6String(address) || !isIPv6 && netutils.IsIPv6String(address) { klog.ErrorS(nil, "IP has incorrect IP version", "ip", address) continue } diff --git a/pkg/proxy/iptables/proxier_test.go b/pkg/proxy/iptables/proxier_test.go index 325f2a71aae2..32400ec2b567 100644 --- a/pkg/proxy/iptables/proxier_test.go +++ b/pkg/proxy/iptables/proxier_test.go @@ -51,7 +51,7 @@ import ( iptablestest "k8s.io/kubernetes/pkg/util/iptables/testing" "k8s.io/utils/exec" fakeexec "k8s.io/utils/exec/testing" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" ) @@ -285,7 +285,7 @@ func TestDeleteEndpointConnectionsIPv4(t *testing.T) { var expExecs int if conntrack.IsClearConntrackNeeded(tc.protocol) { isIPv6 := func(ip string) bool { - netIP := net.ParseIP(ip) + netIP := netutils.ParseIPSloppy(ip) return netIP.To4() == nil } endpointIP := utilproxy.IPPart(tc.endpoint) @@ -428,7 +428,7 @@ func TestDeleteEndpointConnectionsIPv6(t *testing.T) { var expExecs int if conntrack.IsClearConntrackNeeded(tc.protocol) { isIPv6 := func(ip string) bool { - netIP := net.ParseIP(ip) + netIP := netutils.ParseIPSloppy(ip) return netIP.To4() == nil } endpointIP := utilproxy.IPPart(tc.endpoint) @@ -471,12 +471,12 @@ func (f *fakeCloseable) Close() error { // fakePortOpener implements portOpener. type fakePortOpener struct { - openPorts []*utilnet.LocalPort + openPorts []*netutils.LocalPort } // OpenLocalPort fakes out the listen() and bind() used by syncProxyRules // to lock a local port. -func (f *fakePortOpener) OpenLocalPort(lp *utilnet.LocalPort) (utilnet.Closeable, error) { +func (f *fakePortOpener) OpenLocalPort(lp *netutils.LocalPort) (netutils.Closeable, error) { f.openPorts = append(f.openPorts, lp) return &fakeCloseable{}, nil } @@ -501,8 +501,8 @@ func NewFakeProxier(ipt utiliptables.Interface) *Proxier { masqueradeMark: "0x4000", localDetector: detectLocal, hostname: testHostname, - portsMap: make(map[utilnet.LocalPort]utilnet.Closeable), - portMapper: &fakePortOpener{[]*utilnet.LocalPort{}}, + portsMap: make(map[netutils.LocalPort]netutils.Closeable), + portMapper: &fakePortOpener{[]*netutils.LocalPort{}}, serviceHealthServer: healthcheck.NewFakeServiceHealthServer(), precomputedProbabilities: make([]string, 0, 1001), iptablesData: bytes.NewBuffer(nil), @@ -1123,9 +1123,9 @@ func TestNodePort(t *testing.T) { ) itf := net.Interface{Index: 0, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0} - addrs := []net.Addr{&net.IPNet{IP: net.ParseIP("127.0.0.1"), Mask: net.CIDRMask(16, 32)}} + addrs := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("127.0.0.1"), Mask: net.CIDRMask(16, 32)}} itf1 := net.Interface{Index: 1, MTU: 0, Name: "eth1", HardwareAddr: nil, Flags: 0} - addrs1 := []net.Addr{&net.IPNet{IP: net.ParseIP("::1/128"), Mask: net.CIDRMask(128, 128)}} + addrs1 := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("::1/128"), Mask: net.CIDRMask(128, 128)}} fp.networkInterfacer.(*utilproxytest.FakeNetwork).AddInterfaceAddr(&itf, addrs) fp.networkInterfacer.(*utilproxytest.FakeNetwork).AddInterfaceAddr(&itf1, addrs1) fp.nodePortAddresses = []string{} @@ -1175,9 +1175,9 @@ func TestHealthCheckNodePort(t *testing.T) { ) itf := net.Interface{Index: 0, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0} - addrs := []net.Addr{&net.IPNet{IP: net.ParseIP("127.0.0.1"), Mask: net.CIDRMask(16, 32)}} + addrs := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("127.0.0.1"), Mask: net.CIDRMask(16, 32)}} itf1 := net.Interface{Index: 1, MTU: 0, Name: "eth1", HardwareAddr: nil, Flags: 0} - addrs1 := []net.Addr{&net.IPNet{IP: net.ParseIP("::1"), Mask: net.CIDRMask(128, 128)}} + addrs1 := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("::1"), Mask: net.CIDRMask(128, 128)}} fp.networkInterfacer.(*utilproxytest.FakeNetwork).AddInterfaceAddr(&itf, addrs) fp.networkInterfacer.(*utilproxytest.FakeNetwork).AddInterfaceAddr(&itf1, addrs1) fp.nodePortAddresses = []string{"127.0.0.1/16"} @@ -1615,7 +1615,7 @@ func onlyLocalNodePorts(t *testing.T, fp *Proxier, ipt *iptablestest.FakeIPTable ) itf := net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0} - addrs := []net.Addr{&net.IPNet{IP: net.ParseIP("10.20.30.51"), Mask: net.CIDRMask(24, 32)}} + addrs := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("10.20.30.51"), Mask: net.CIDRMask(24, 32)}} fp.networkInterfacer.(*utilproxytest.FakeNetwork).AddInterfaceAddr(&itf, addrs) fp.nodePortAddresses = []string{"10.20.30.0/24"} diff --git a/pkg/proxy/ipvs/graceful_termination_test.go b/pkg/proxy/ipvs/graceful_termination_test.go index 626bef565bf4..b48e1342824c 100644 --- a/pkg/proxy/ipvs/graceful_termination_test.go +++ b/pkg/proxy/ipvs/graceful_termination_test.go @@ -17,12 +17,12 @@ limitations under the License. package ipvs import ( - "net" "reflect" "testing" utilipvs "k8s.io/kubernetes/pkg/util/ipvs" utilipvstest "k8s.io/kubernetes/pkg/util/ipvs/testing" + netutils "k8s.io/utils/net" ) func Test_GracefulDeleteRS(t *testing.T) { @@ -37,12 +37,12 @@ func Test_GracefulDeleteRS(t *testing.T) { { name: "graceful delete, no connections results in deleting the real server immediatetly", vs: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, rs: &utilipvs.RealServer{ - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 0, @@ -55,7 +55,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -67,7 +67,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "tcp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 0, @@ -83,7 +83,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -101,12 +101,12 @@ func Test_GracefulDeleteRS(t *testing.T) { { name: "graceful delete, real server has active connections, weight should be 0 but don't delete", vs: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, rs: &utilipvs.RealServer{ - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 10, @@ -119,7 +119,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -131,7 +131,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "tcp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 10, @@ -147,7 +147,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -159,7 +159,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "tcp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 0, ActiveConn: 10, @@ -173,12 +173,12 @@ func Test_GracefulDeleteRS(t *testing.T) { { name: "graceful delete, real server has in-active connections, weight should be 0 but don't delete", vs: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, rs: &utilipvs.RealServer{ - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 0, @@ -191,7 +191,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -203,7 +203,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "tcp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 0, @@ -219,7 +219,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -231,7 +231,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "tcp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 0, ActiveConn: 0, @@ -245,12 +245,12 @@ func Test_GracefulDeleteRS(t *testing.T) { { name: "graceful delete, real server has connections, but udp connections are deleted immediately", vs: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "udp", Port: uint16(80), }, rs: &utilipvs.RealServer{ - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 10, @@ -263,7 +263,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "udp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "udp", Port: uint16(80), }, @@ -275,7 +275,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "udp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 10, @@ -291,7 +291,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "udp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "udp", Port: uint16(80), }, @@ -309,12 +309,12 @@ func Test_GracefulDeleteRS(t *testing.T) { { name: "graceful delete, real server mismatch should be no-op", vs: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, rs: &utilipvs.RealServer{ - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(81), // port mismatched Weight: 100, ActiveConn: 0, @@ -327,7 +327,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -339,7 +339,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "tcp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 0, @@ -355,7 +355,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Port: 80, Protocol: "tcp", }: { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: "tcp", Port: uint16(80), }, @@ -367,7 +367,7 @@ func Test_GracefulDeleteRS(t *testing.T) { Protocol: "tcp", }: { { - Address: net.ParseIP("10.0.0.1"), + Address: netutils.ParseIPSloppy("10.0.0.1"), Port: uint16(80), Weight: 100, ActiveConn: 0, diff --git a/pkg/proxy/ipvs/netlink_linux.go b/pkg/proxy/ipvs/netlink_linux.go index 156c1f0733c2..ceb643bb76e3 100644 --- a/pkg/proxy/ipvs/netlink_linux.go +++ b/pkg/proxy/ipvs/netlink_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* @@ -20,9 +21,9 @@ package ipvs import ( "fmt" - "net" "k8s.io/apimachinery/pkg/util/sets" + netutils "k8s.io/utils/net" "github.com/vishvananda/netlink" "golang.org/x/sys/unix" @@ -44,7 +45,7 @@ func (h *netlinkHandle) EnsureAddressBind(address, devName string) (exist bool, if err != nil { return false, fmt.Errorf("error get interface: %s, err: %v", devName, err) } - addr := net.ParseIP(address) + addr := netutils.ParseIPSloppy(address) if addr == nil { return false, fmt.Errorf("error parse ip address: %s", address) } @@ -64,7 +65,7 @@ func (h *netlinkHandle) UnbindAddress(address, devName string) error { if err != nil { return fmt.Errorf("error get interface: %s, err: %v", devName, err) } - addr := net.ParseIP(address) + addr := netutils.ParseIPSloppy(address) if addr == nil { return fmt.Errorf("error parse ip address: %s", address) } diff --git a/pkg/proxy/ipvs/netlink_unsupported.go b/pkg/proxy/ipvs/netlink_unsupported.go index 1c709cd2b607..06add05fa2f0 100644 --- a/pkg/proxy/ipvs/netlink_unsupported.go +++ b/pkg/proxy/ipvs/netlink_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/proxy/ipvs/proxier.go b/pkg/proxy/ipvs/proxier.go index 9b1a076f7a9b..f67d62006648 100644 --- a/pkg/proxy/ipvs/proxier.go +++ b/pkg/proxy/ipvs/proxier.go @@ -34,7 +34,7 @@ import ( "k8s.io/klog/v2" utilexec "k8s.io/utils/exec" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1" @@ -222,7 +222,7 @@ type Proxier struct { mu sync.Mutex // protects the following fields serviceMap proxy.ServiceMap endpointsMap proxy.EndpointsMap - portsMap map[utilnet.LocalPort]utilnet.Closeable + portsMap map[netutils.LocalPort]netutils.Closeable nodeLabels map[string]string // endpointSlicesSynced, and servicesSynced are set to true when // corresponding objects are synced after startup. This is used to avoid updating @@ -248,7 +248,7 @@ type Proxier struct { localDetector proxyutiliptables.LocalTrafficDetector hostname string nodeIP net.IP - portMapper utilnet.PortOpener + portMapper netutils.PortOpener recorder events.EventRecorder serviceHealthServer healthcheck.ServiceHealthServer @@ -312,7 +312,7 @@ func (r *realIPGetter) NodeIPs() (ips []net.IP, err error) { } // translate ip string to IP for _, ipStr := range nodeAddress.UnsortedList() { - a := net.ParseIP(ipStr) + a := netutils.ParseIPSloppy(ipStr) if a.IsLoopback() { continue } @@ -451,11 +451,11 @@ func NewProxier(ipt utiliptables.Interface, } // excludeCIDRs has been validated before, here we just parse it to IPNet list - parsedExcludeCIDRs, _ := utilnet.ParseCIDRs(excludeCIDRs) + parsedExcludeCIDRs, _ := netutils.ParseCIDRs(excludeCIDRs) proxier := &Proxier{ ipFamily: ipFamily, - portsMap: make(map[utilnet.LocalPort]utilnet.Closeable), + portsMap: make(map[netutils.LocalPort]netutils.Closeable), serviceMap: make(proxy.ServiceMap), serviceChanges: proxy.NewServiceChangeTracker(newServiceInfo, ipFamily, recorder, nil), endpointsMap: make(proxy.EndpointsMap), @@ -470,7 +470,7 @@ func NewProxier(ipt utiliptables.Interface, localDetector: localDetector, hostname: hostname, nodeIP: nodeIP, - portMapper: &utilnet.ListenPortOpener, + portMapper: &netutils.ListenPortOpener, recorder: recorder, serviceHealthServer: serviceHealthServer, healthzServer: healthzServer, @@ -558,7 +558,7 @@ func NewDualStackProxier( func filterCIDRs(wantIPv6 bool, cidrs []string) []string { var filteredCIDRs []string for _, cidr := range cidrs { - if utilnet.IsIPv6CIDRString(cidr) == wantIPv6 { + if netutils.IsIPv6CIDRString(cidr) == wantIPv6 { filteredCIDRs = append(filteredCIDRs, cidr) } } @@ -1077,7 +1077,7 @@ func (proxier *Proxier) syncProxyRules() { } // Accumulate the set of local ports that we will be holding open once this update is complete - replacementPortsMap := map[utilnet.LocalPort]utilnet.Closeable{} + replacementPortsMap := map[netutils.LocalPort]netutils.Closeable{} // activeIPVSServices represents IPVS service successfully created in this round of sync activeIPVSServices := map[string]bool{} // currentIPVSServices represent IPVS services listed from the system @@ -1115,7 +1115,7 @@ func (proxier *Proxier) syncProxyRules() { } else { nodeAddresses = nodeAddrSet.List() for _, address := range nodeAddresses { - a := net.ParseIP(address) + a := netutils.ParseIPSloppy(address) if a.IsLoopback() { continue } @@ -1134,7 +1134,7 @@ func (proxier *Proxier) syncProxyRules() { // filter node IPs by proxier ipfamily idx := 0 for _, nodeIP := range nodeIPs { - if (proxier.ipFamily == v1.IPv6Protocol) == utilnet.IsIPv6(nodeIP) { + if (proxier.ipFamily == v1.IPv6Protocol) == netutils.IsIPv6(nodeIP) { nodeIPs[idx] = nodeIP idx++ } @@ -1151,10 +1151,10 @@ func (proxier *Proxier) syncProxyRules() { klog.ErrorS(nil, "Failed to cast serviceInfo", "svcName", svcName.String()) continue } - isIPv6 := utilnet.IsIPv6(svcInfo.ClusterIP()) - localPortIPFamily := utilnet.IPv4 + isIPv6 := netutils.IsIPv6(svcInfo.ClusterIP()) + localPortIPFamily := netutils.IPv4 if isIPv6 { - localPortIPFamily = utilnet.IPv6 + localPortIPFamily = netutils.IPv6 } protocol := strings.ToLower(string(svcInfo.Protocol())) // Precompute svcNameString; with many services the many calls @@ -1240,14 +1240,14 @@ func (proxier *Proxier) syncProxyRules() { // If the "external" IP happens to be an IP that is local to this // machine, hold the local port open so no other process can open it // (because the socket might open but it would never work). - if (svcInfo.Protocol() != v1.ProtocolSCTP) && localAddrSet.Has(net.ParseIP(externalIP)) { + if (svcInfo.Protocol() != v1.ProtocolSCTP) && localAddrSet.Has(netutils.ParseIPSloppy(externalIP)) { // We do not start listening on SCTP ports, according to our agreement in the SCTP support KEP - lp := utilnet.LocalPort{ + lp := netutils.LocalPort{ Description: "externalIP for " + svcNameString, IP: externalIP, IPFamily: localPortIPFamily, Port: svcInfo.Port(), - Protocol: utilnet.Protocol(svcInfo.Protocol()), + Protocol: netutils.Protocol(svcInfo.Protocol()), } if proxier.portsMap[lp] != nil { klog.V(4).InfoS("Port was open before and is still needed", "port", lp.String()) @@ -1297,7 +1297,7 @@ func (proxier *Proxier) syncProxyRules() { // ipvs call serv := &utilipvs.VirtualServer{ - Address: net.ParseIP(externalIP), + Address: netutils.ParseIPSloppy(externalIP), Port: uint16(svcInfo.Port()), Protocol: string(svcInfo.Protocol()), Scheduler: proxier.ipvsScheduler, @@ -1372,7 +1372,7 @@ func (proxier *Proxier) syncProxyRules() { proxier.ipsetList[kubeLoadBalancerSourceCIDRSet].activeEntries.Insert(entry.String()) // ignore error because it has been validated - _, cidr, _ := net.ParseCIDR(src) + _, cidr, _ := netutils.ParseCIDRSloppy(src) if cidr.Contains(proxier.nodeIP) { allowFromNode = true } @@ -1399,7 +1399,7 @@ func (proxier *Proxier) syncProxyRules() { // ipvs call serv := &utilipvs.VirtualServer{ - Address: net.ParseIP(ingress), + Address: netutils.ParseIPSloppy(ingress), Port: uint16(svcInfo.Port()), Protocol: string(svcInfo.Protocol()), Scheduler: proxier.ipvsScheduler, @@ -1427,14 +1427,14 @@ func (proxier *Proxier) syncProxyRules() { continue } - var lps []utilnet.LocalPort + var lps []netutils.LocalPort for _, address := range nodeAddresses { - lp := utilnet.LocalPort{ + lp := netutils.LocalPort{ Description: "nodePort for " + svcNameString, IP: address, IPFamily: localPortIPFamily, Port: svcInfo.NodePort(), - Protocol: utilnet.Protocol(svcInfo.Protocol()), + Protocol: netutils.Protocol(svcInfo.Protocol()), } if utilproxy.IsZeroCIDR(address) { // Empty IP address means all @@ -1470,7 +1470,7 @@ func (proxier *Proxier) syncProxyRules() { } klog.V(2).InfoS("Opened local port", "port", lp.String()) - if lp.Protocol == utilnet.UDP { + if lp.Protocol == netutils.UDP { conntrack.ClearEntriesForPort(proxier.exec, lp.Port, isIPv6, v1.ProtocolUDP) } replacementPortsMap[lp] = socket @@ -2111,7 +2111,7 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode } newDest := &utilipvs.RealServer{ - Address: net.ParseIP(ip), + Address: netutils.ParseIPSloppy(ip), Port: uint16(portNum), Weight: 1, } @@ -2154,7 +2154,7 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode } delDest := &utilipvs.RealServer{ - Address: net.ParseIP(ip), + Address: netutils.ParseIPSloppy(ip), Port: uint16(portNum), } @@ -2169,13 +2169,13 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode } func (proxier *Proxier) cleanLegacyService(activeServices map[string]bool, currentServices map[string]*utilipvs.VirtualServer, legacyBindAddrs map[string]bool) { - isIPv6 := utilnet.IsIPv6(proxier.nodeIP) + isIPv6 := netutils.IsIPv6(proxier.nodeIP) for cs := range currentServices { svc := currentServices[cs] if proxier.isIPInExcludeCIDRs(svc.Address) { continue } - if utilnet.IsIPv6(svc.Address) != isIPv6 { + if netutils.IsIPv6(svc.Address) != isIPv6 { // Not our family continue } @@ -2210,9 +2210,9 @@ func (proxier *Proxier) isIPInExcludeCIDRs(ip net.IP) bool { func (proxier *Proxier) getLegacyBindAddr(activeBindAddrs map[string]bool, currentBindAddrs []string) map[string]bool { legacyAddrs := make(map[string]bool) - isIPv6 := utilnet.IsIPv6(proxier.nodeIP) + isIPv6 := netutils.IsIPv6(proxier.nodeIP) for _, addr := range currentBindAddrs { - addrIsIPv6 := utilnet.IsIPv6(net.ParseIP(addr)) + addrIsIPv6 := netutils.IsIPv6(netutils.ParseIPSloppy(addr)) if addrIsIPv6 && !isIPv6 || !addrIsIPv6 && isIPv6 { continue } diff --git a/pkg/proxy/ipvs/proxier_test.go b/pkg/proxy/ipvs/proxier_test.go index e87966540542..a7bd9e51fa86 100644 --- a/pkg/proxy/ipvs/proxier_test.go +++ b/pkg/proxy/ipvs/proxier_test.go @@ -50,9 +50,8 @@ import ( ipvstest "k8s.io/kubernetes/pkg/util/ipvs/testing" "k8s.io/utils/exec" fakeexec "k8s.io/utils/exec/testing" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" - - utilnet "k8s.io/utils/net" ) const testHostname = "test-hostname" @@ -72,12 +71,12 @@ func (f *fakeIPGetter) BindedIPs() (sets.String, error) { // fakePortOpener implements portOpener. type fakePortOpener struct { - openPorts []*utilnet.LocalPort + openPorts []*netutils.LocalPort } // OpenLocalPort fakes out the listen() and bind() used by syncProxyRules // to lock a local port. -func (f *fakePortOpener) OpenLocalPort(lp *utilnet.LocalPort) (utilnet.Closeable, error) { +func (f *fakePortOpener) OpenLocalPort(lp *netutils.LocalPort) (netutils.Closeable, error) { f.openPorts = append(f.openPorts, lp) return nil, nil } @@ -113,7 +112,7 @@ func NewFakeProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, ipset u // filter node IPs by proxier ipfamily idx := 0 for _, nodeIP := range nodeIPs { - if (ipFamily == v1.IPv6Protocol) == utilnet.IsIPv6(nodeIP) { + if (ipFamily == v1.IPv6Protocol) == netutils.IsIPv6(nodeIP) { nodeIPs[idx] = nodeIP idx++ } @@ -153,8 +152,8 @@ func NewFakeProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, ipset u strictARP: false, localDetector: proxyutiliptables.NewNoOpLocalDetector(), hostname: testHostname, - portsMap: make(map[utilnet.LocalPort]utilnet.Closeable), - portMapper: &fakePortOpener{[]*utilnet.LocalPort{}}, + portsMap: make(map[netutils.LocalPort]netutils.Closeable), + portMapper: &fakePortOpener{[]*netutils.LocalPort{}}, serviceHealthServer: healthcheck.NewFakeServiceHealthServer(), ipvsScheduler: DefaultScheduler, ipGetter: &fakeIPGetter{nodeIPs: nodeIPs}, @@ -513,8 +512,8 @@ func TestNodePortIPv4(t *testing.T) { }), }, nodeIPs: []net.IP{ - net.ParseIP("100.101.102.103"), - net.ParseIP("2001:db8::1:1"), + netutils.ParseIPSloppy("100.101.102.103"), + netutils.ParseIPSloppy("2001:db8::1:1"), }, nodePortAddresses: []string{}, expectedIPVS: &ipvstest.FakeIPVS{ @@ -524,7 +523,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 80, Protocol: "TCP", }: { - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "TCP", Port: uint16(80), Scheduler: "rr", @@ -534,7 +533,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 3001, Protocol: "TCP", }: { - Address: net.ParseIP("100.101.102.103"), + Address: netutils.ParseIPSloppy("100.101.102.103"), Protocol: "TCP", Port: uint16(3001), Scheduler: "rr", @@ -547,7 +546,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "TCP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -558,7 +557,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "TCP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -594,7 +593,7 @@ func TestNodePortIPv4(t *testing.T) { }), }, nodeIPs: []net.IP{ - net.ParseIP("100.101.102.103"), + netutils.ParseIPSloppy("100.101.102.103"), }, nodePortAddresses: []string{"0.0.0.0/0"}, expectedIPVS: &ipvstest.FakeIPVS{ @@ -604,7 +603,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 80, Protocol: "UDP", }: { - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "UDP", Port: uint16(80), Scheduler: "rr", @@ -614,7 +613,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 3001, Protocol: "UDP", }: { - Address: net.ParseIP("100.101.102.103"), + Address: netutils.ParseIPSloppy("100.101.102.103"), Protocol: "UDP", Port: uint16(3001), Scheduler: "rr", @@ -627,7 +626,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "UDP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -638,7 +637,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "UDP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -677,7 +676,7 @@ func TestNodePortIPv4(t *testing.T) { }, endpoints: []*discovery.EndpointSlice{}, nodeIPs: []net.IP{ - net.ParseIP("100.101.102.103"), + netutils.ParseIPSloppy("100.101.102.103"), }, nodePortAddresses: []string{}, expectedIPVS: &ipvstest.FakeIPVS{ @@ -687,7 +686,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 80, Protocol: "TCP", }: { - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "TCP", Port: uint16(80), Scheduler: "rr", @@ -697,7 +696,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 3001, Protocol: "TCP", }: { - Address: net.ParseIP("100.101.102.103"), + Address: netutils.ParseIPSloppy("100.101.102.103"), Protocol: "TCP", Port: uint16(3001), Scheduler: "rr", @@ -745,12 +744,12 @@ func TestNodePortIPv4(t *testing.T) { }), }, nodeIPs: []net.IP{ - net.ParseIP("100.101.102.103"), - net.ParseIP("100.101.102.104"), - net.ParseIP("100.101.102.105"), - net.ParseIP("2001:db8::1:1"), - net.ParseIP("2001:db8::1:2"), - net.ParseIP("2001:db8::1:3"), + netutils.ParseIPSloppy("100.101.102.103"), + netutils.ParseIPSloppy("100.101.102.104"), + netutils.ParseIPSloppy("100.101.102.105"), + netutils.ParseIPSloppy("2001:db8::1:1"), + netutils.ParseIPSloppy("2001:db8::1:2"), + netutils.ParseIPSloppy("2001:db8::1:3"), }, nodePortAddresses: []string{}, expectedIPVS: &ipvstest.FakeIPVS{ @@ -760,7 +759,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 80, Protocol: "SCTP", }: { - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "SCTP", Port: uint16(80), Scheduler: "rr", @@ -770,7 +769,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 3001, Protocol: "SCTP", }: { - Address: net.ParseIP("100.101.102.103"), + Address: netutils.ParseIPSloppy("100.101.102.103"), Protocol: "SCTP", Port: uint16(3001), Scheduler: "rr", @@ -780,7 +779,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 3001, Protocol: "SCTP", }: { - Address: net.ParseIP("100.101.102.104"), + Address: netutils.ParseIPSloppy("100.101.102.104"), Protocol: "SCTP", Port: uint16(3001), Scheduler: "rr", @@ -790,7 +789,7 @@ func TestNodePortIPv4(t *testing.T) { Port: 3001, Protocol: "SCTP", }: { - Address: net.ParseIP("100.101.102.105"), + Address: netutils.ParseIPSloppy("100.101.102.105"), Protocol: "SCTP", Port: uint16(3001), Scheduler: "rr", @@ -803,7 +802,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "SCTP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -814,7 +813,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "SCTP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -825,7 +824,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "SCTP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -836,7 +835,7 @@ func TestNodePortIPv4(t *testing.T) { Protocol: "SCTP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -951,8 +950,8 @@ func TestNodePortIPv6(t *testing.T) { }), }, nodeIPs: []net.IP{ - net.ParseIP("100.101.102.103"), - net.ParseIP("2001:db8::1:1"), + netutils.ParseIPSloppy("100.101.102.103"), + netutils.ParseIPSloppy("2001:db8::1:1"), }, nodePortAddresses: []string{}, expectedIPVS: &ipvstest.FakeIPVS{ @@ -962,7 +961,7 @@ func TestNodePortIPv6(t *testing.T) { Port: 3001, Protocol: "TCP", }: { - Address: net.ParseIP("2001:db8::1:1"), + Address: netutils.ParseIPSloppy("2001:db8::1:1"), Protocol: "TCP", Port: uint16(3001), Scheduler: "rr", @@ -972,7 +971,7 @@ func TestNodePortIPv6(t *testing.T) { Port: 80, Protocol: "TCP", }: { - Address: net.ParseIP("2020::1"), + Address: netutils.ParseIPSloppy("2020::1"), Protocol: "TCP", Port: uint16(80), Scheduler: "rr", @@ -985,7 +984,7 @@ func TestNodePortIPv6(t *testing.T) { Protocol: "TCP", }: { { - Address: net.ParseIP("1002:ab8::2:10"), + Address: netutils.ParseIPSloppy("1002:ab8::2:10"), Port: uint16(80), Weight: 1, }, @@ -997,7 +996,7 @@ func TestNodePortIPv6(t *testing.T) { Protocol: "TCP", }: { { - Address: net.ParseIP("1002:ab8::2:10"), + Address: netutils.ParseIPSloppy("1002:ab8::2:10"), Port: uint16(80), Weight: 1, }, @@ -1034,7 +1033,7 @@ func TestNodePortIPv6(t *testing.T) { }), }, nodeIPs: []net.IP{ - net.ParseIP("100.101.102.103"), + netutils.ParseIPSloppy("100.101.102.103"), }, nodePortAddresses: []string{"0.0.0.0/0"}, /*since this is a node with only IPv4, proxier should not do anything */ @@ -1062,8 +1061,8 @@ func TestNodePortIPv6(t *testing.T) { }, endpoints: []*discovery.EndpointSlice{}, nodeIPs: []net.IP{ - net.ParseIP("100.101.102.103"), - net.ParseIP("2001:db8::1:1"), + netutils.ParseIPSloppy("100.101.102.103"), + netutils.ParseIPSloppy("2001:db8::1:1"), }, nodePortAddresses: []string{}, expectedIPVS: &ipvstest.FakeIPVS{ @@ -1073,7 +1072,7 @@ func TestNodePortIPv6(t *testing.T) { Port: 3001, Protocol: "TCP", }: { - Address: net.ParseIP("2001:db8::1:1"), + Address: netutils.ParseIPSloppy("2001:db8::1:1"), Protocol: "TCP", Port: uint16(3001), Scheduler: "rr", @@ -1083,7 +1082,7 @@ func TestNodePortIPv6(t *testing.T) { Port: 80, Protocol: "TCP", }: { - Address: net.ParseIP("2020::1"), + Address: netutils.ParseIPSloppy("2020::1"), Protocol: "TCP", Port: uint16(80), Scheduler: "rr", @@ -1132,8 +1131,8 @@ func TestNodePortIPv6(t *testing.T) { }), }, nodeIPs: []net.IP{ - net.ParseIP("2001:db8::1:1"), - net.ParseIP("2001:db8::1:2"), + netutils.ParseIPSloppy("2001:db8::1:1"), + netutils.ParseIPSloppy("2001:db8::1:2"), }, nodePortAddresses: []string{}, expectedIPVS: &ipvstest.FakeIPVS{ @@ -1143,7 +1142,7 @@ func TestNodePortIPv6(t *testing.T) { Port: 3001, Protocol: "SCTP", }: { - Address: net.ParseIP("2001:db8::1:1"), + Address: netutils.ParseIPSloppy("2001:db8::1:1"), Protocol: "SCTP", Port: uint16(3001), Scheduler: "rr", @@ -1153,7 +1152,7 @@ func TestNodePortIPv6(t *testing.T) { Port: 3001, Protocol: "SCTP", }: { - Address: net.ParseIP("2001:db8::1:2"), + Address: netutils.ParseIPSloppy("2001:db8::1:2"), Protocol: "SCTP", Port: uint16(3001), Scheduler: "rr", @@ -1163,7 +1162,7 @@ func TestNodePortIPv6(t *testing.T) { Port: 80, Protocol: "SCTP", }: { - Address: net.ParseIP("2020::1"), + Address: netutils.ParseIPSloppy("2020::1"), Protocol: "SCTP", Port: uint16(80), Scheduler: "rr", @@ -1176,7 +1175,7 @@ func TestNodePortIPv6(t *testing.T) { Protocol: "SCTP", }: { { - Address: net.ParseIP("2001::1"), + Address: netutils.ParseIPSloppy("2001::1"), Port: uint16(80), Weight: 1, }, @@ -1187,7 +1186,7 @@ func TestNodePortIPv6(t *testing.T) { Protocol: "SCTP", }: { { - Address: net.ParseIP("2001::1"), + Address: netutils.ParseIPSloppy("2001::1"), Port: uint16(80), Weight: 1, }, @@ -1198,7 +1197,7 @@ func TestNodePortIPv6(t *testing.T) { Protocol: "SCTP", }: { { - Address: net.ParseIP("2001::1"), + Address: netutils.ParseIPSloppy("2001::1"), Port: uint16(80), Weight: 1, }, @@ -1313,7 +1312,7 @@ func TestIPv4Proxier(t *testing.T) { Port: 80, Protocol: "TCP", }: { - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "TCP", Port: uint16(80), Scheduler: "rr", @@ -1326,7 +1325,7 @@ func TestIPv4Proxier(t *testing.T) { Protocol: "TCP", }: { { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(80), Weight: 1, }, @@ -1354,7 +1353,7 @@ func TestIPv4Proxier(t *testing.T) { Port: 80, Protocol: "TCP", }: { - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "TCP", Port: uint16(80), Scheduler: "rr", @@ -1451,7 +1450,7 @@ func TestIPv6Proxier(t *testing.T) { Port: 8080, Protocol: "TCP", }: { - Address: net.ParseIP("1002:ab8::2:1"), + Address: netutils.ParseIPSloppy("1002:ab8::2:1"), Protocol: "TCP", Port: uint16(8080), Scheduler: "rr", @@ -1464,7 +1463,7 @@ func TestIPv6Proxier(t *testing.T) { Protocol: "TCP", }: { { - Address: net.ParseIP("1009:ab8::5:6"), + Address: netutils.ParseIPSloppy("1009:ab8::5:6"), Port: uint16(8080), Weight: 1, }, @@ -1492,7 +1491,7 @@ func TestIPv6Proxier(t *testing.T) { Port: 80, Protocol: "TCP", }: { - Address: net.ParseIP("2001::1"), + Address: netutils.ParseIPSloppy("2001::1"), Protocol: "TCP", Port: uint16(80), Scheduler: "rr", @@ -1832,7 +1831,7 @@ func TestLoadBalancer(t *testing.T) { } func TestOnlyLocalNodePorts(t *testing.T) { - nodeIP := net.ParseIP("100.101.102.103") + nodeIP := netutils.ParseIPSloppy("100.101.102.103") ipt, fp := buildFakeProxier() svcIP := "10.20.30.41" @@ -1882,9 +1881,9 @@ func TestOnlyLocalNodePorts(t *testing.T) { ) itf := net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0} - addrs := []net.Addr{&net.IPNet{IP: net.ParseIP("100.101.102.103"), Mask: net.CIDRMask(24, 32)}} + addrs := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("100.101.102.103"), Mask: net.CIDRMask(24, 32)}} itf1 := net.Interface{Index: 1, MTU: 0, Name: "eth1", HardwareAddr: nil, Flags: 0} - addrs1 := []net.Addr{&net.IPNet{IP: net.ParseIP("2001:db8::"), Mask: net.CIDRMask(64, 128)}} + addrs1 := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("2001:db8::"), Mask: net.CIDRMask(64, 128)}} fp.networkInterfacer.(*proxyutiltest.FakeNetwork).AddInterfaceAddr(&itf, addrs) fp.networkInterfacer.(*proxyutiltest.FakeNetwork).AddInterfaceAddr(&itf1, addrs1) fp.nodePortAddresses = []string{"100.101.102.0/24", "2001:db8::0/64"} @@ -1962,9 +1961,9 @@ func TestHealthCheckNodePort(t *testing.T) { ) itf := net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0} - addrs := []net.Addr{&net.IPNet{IP: net.ParseIP("100.101.102.103"), Mask: net.CIDRMask(24, 32)}} + addrs := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("100.101.102.103"), Mask: net.CIDRMask(24, 32)}} itf1 := net.Interface{Index: 1, MTU: 0, Name: "eth1", HardwareAddr: nil, Flags: 0} - addrs1 := []net.Addr{&net.IPNet{IP: net.ParseIP("2001:db8::"), Mask: net.CIDRMask(64, 128)}} + addrs1 := []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("2001:db8::"), Mask: net.CIDRMask(64, 128)}} fp.networkInterfacer.(*proxyutiltest.FakeNetwork).AddInterfaceAddr(&itf, addrs) fp.networkInterfacer.(*proxyutiltest.FakeNetwork).AddInterfaceAddr(&itf1, addrs1) fp.nodePortAddresses = []string{"100.101.102.0/24", "2001:db8::0/64"} @@ -2528,7 +2527,7 @@ func TestSessionAffinity(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - nodeIP := net.ParseIP("100.101.102.103") + nodeIP := netutils.ParseIPSloppy("100.101.102.103") fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIP}, nil, v1.IPv4Protocol) svcIP := "10.20.30.41" svcPort := 80 @@ -3432,7 +3431,7 @@ func Test_syncService(t *testing.T) { { // case 0, old virtual server is same as new virtual server oldVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolTCP), Port: 80, Scheduler: "rr", @@ -3440,7 +3439,7 @@ func Test_syncService(t *testing.T) { }, svcName: "foo", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolTCP), Port: 80, Scheduler: "rr", @@ -3452,7 +3451,7 @@ func Test_syncService(t *testing.T) { { // case 1, old virtual server is different from new virtual server oldVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolTCP), Port: 8080, Scheduler: "rr", @@ -3460,7 +3459,7 @@ func Test_syncService(t *testing.T) { }, svcName: "bar", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolTCP), Port: 8080, Scheduler: "rr", @@ -3472,7 +3471,7 @@ func Test_syncService(t *testing.T) { { // case 2, old virtual server is different from new virtual server oldVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolTCP), Port: 8080, Scheduler: "rr", @@ -3480,7 +3479,7 @@ func Test_syncService(t *testing.T) { }, svcName: "bar", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolTCP), Port: 8080, Scheduler: "wlc", @@ -3494,7 +3493,7 @@ func Test_syncService(t *testing.T) { oldVirtualServer: nil, svcName: "baz", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolUDP), Port: 53, Scheduler: "rr", @@ -3506,7 +3505,7 @@ func Test_syncService(t *testing.T) { { // case 4, SCTP, old virtual server is same as new virtual server oldVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 80, Scheduler: "rr", @@ -3514,7 +3513,7 @@ func Test_syncService(t *testing.T) { }, svcName: "foo", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 80, Scheduler: "rr", @@ -3526,7 +3525,7 @@ func Test_syncService(t *testing.T) { { // case 5, old virtual server is different from new virtual server oldVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 8080, Scheduler: "rr", @@ -3534,7 +3533,7 @@ func Test_syncService(t *testing.T) { }, svcName: "bar", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 8080, Scheduler: "rr", @@ -3546,7 +3545,7 @@ func Test_syncService(t *testing.T) { { // case 6, old virtual server is different from new virtual server oldVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 8080, Scheduler: "rr", @@ -3554,7 +3553,7 @@ func Test_syncService(t *testing.T) { }, svcName: "bar", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 8080, Scheduler: "wlc", @@ -3568,7 +3567,7 @@ func Test_syncService(t *testing.T) { oldVirtualServer: nil, svcName: "baz", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 53, Scheduler: "rr", @@ -3580,7 +3579,7 @@ func Test_syncService(t *testing.T) { { // case 8, virtual server address already binded, skip sync oldVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 53, Scheduler: "rr", @@ -3588,7 +3587,7 @@ func Test_syncService(t *testing.T) { }, svcName: "baz", newVirtualServer: &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: string(v1.ProtocolSCTP), Port: 53, Scheduler: "rr", @@ -3720,7 +3719,7 @@ func TestCleanLegacyService(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - excludeCIDRs, _ := utilnet.ParseCIDRs([]string{"3.3.3.0/24", "4.4.4.0/24"}) + excludeCIDRs, _ := netutils.ParseCIDRs([]string{"3.3.3.0/24", "4.4.4.0/24"}) fp := NewFakeProxier(ipt, ipvs, ipset, nil, excludeCIDRs, v1.IPv4Protocol) // All ipvs services that were processed in the latest sync loop. @@ -3729,7 +3728,7 @@ func TestCleanLegacyService(t *testing.T) { currentServices := map[string]*utilipvs.VirtualServer{ // Created by kube-proxy. "ipvs0": { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: string(v1.ProtocolUDP), Port: 53, Scheduler: "rr", @@ -3737,7 +3736,7 @@ func TestCleanLegacyService(t *testing.T) { }, // Created by kube-proxy. "ipvs1": { - Address: net.ParseIP("2.2.2.2"), + Address: netutils.ParseIPSloppy("2.2.2.2"), Protocol: string(v1.ProtocolUDP), Port: 54, Scheduler: "rr", @@ -3745,7 +3744,7 @@ func TestCleanLegacyService(t *testing.T) { }, // Created by an external party. "ipvs2": { - Address: net.ParseIP("3.3.3.3"), + Address: netutils.ParseIPSloppy("3.3.3.3"), Protocol: string(v1.ProtocolUDP), Port: 55, Scheduler: "rr", @@ -3753,7 +3752,7 @@ func TestCleanLegacyService(t *testing.T) { }, // Created by an external party. "ipvs3": { - Address: net.ParseIP("4.4.4.4"), + Address: netutils.ParseIPSloppy("4.4.4.4"), Protocol: string(v1.ProtocolUDP), Port: 56, Scheduler: "rr", @@ -3761,7 +3760,7 @@ func TestCleanLegacyService(t *testing.T) { }, // Created by an external party. "ipvs4": { - Address: net.ParseIP("5.5.5.5"), + Address: netutils.ParseIPSloppy("5.5.5.5"), Protocol: string(v1.ProtocolUDP), Port: 57, Scheduler: "rr", @@ -3769,7 +3768,7 @@ func TestCleanLegacyService(t *testing.T) { }, // Created by kube-proxy, but now stale. "ipvs5": { - Address: net.ParseIP("6.6.6.6"), + Address: netutils.ParseIPSloppy("6.6.6.6"), Protocol: string(v1.ProtocolUDP), Port: 58, Scheduler: "rr", @@ -3812,7 +3811,7 @@ func TestCleanLegacyService(t *testing.T) { // check that address "1.1.1.1", "2.2.2.2", "3.3.3.3", "4.4.4.4" are bound, ignore ipv6 addresses remainingAddrsMap := make(map[string]bool) for _, a := range remainingAddrs { - if net.ParseIP(a).To4() == nil { + if netutils.ParseIPSloppy(a).To4() == nil { continue } remainingAddrsMap[a] = true @@ -3834,21 +3833,21 @@ func TestCleanLegacyServiceWithRealServers(t *testing.T) { // All ipvs services in the system. currentServices := map[string]*utilipvs.VirtualServer{ "ipvs0": { // deleted with real servers - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: string(v1.ProtocolUDP), Port: 53, Scheduler: "rr", Flags: utilipvs.FlagHashed, }, "ipvs1": { // deleted no real server - Address: net.ParseIP("2.2.2.2"), + Address: netutils.ParseIPSloppy("2.2.2.2"), Protocol: string(v1.ProtocolUDP), Port: 54, Scheduler: "rr", Flags: utilipvs.FlagHashed, }, "ipvs2": { // not deleted - Address: net.ParseIP("3.3.3.3"), + Address: netutils.ParseIPSloppy("3.3.3.3"), Protocol: string(v1.ProtocolUDP), Port: 54, Scheduler: "rr", @@ -3859,13 +3858,13 @@ func TestCleanLegacyServiceWithRealServers(t *testing.T) { // "ipvs0" has a real server, but it should still be deleted since the Service is deleted realServers := map[*utilipvs.VirtualServer]*utilipvs.RealServer{ { - Address: net.ParseIP("1.1.1.1"), + Address: netutils.ParseIPSloppy("1.1.1.1"), Protocol: string(v1.ProtocolUDP), Port: 53, Scheduler: "rr", Flags: utilipvs.FlagHashed, }: { - Address: net.ParseIP("10.180.0.1"), + Address: netutils.ParseIPSloppy("10.180.0.1"), Port: uint16(53), Weight: 1, }, @@ -3905,7 +3904,7 @@ func TestCleanLegacyServiceWithRealServers(t *testing.T) { // check that address is "3.3.3.3" remainingAddrsMap := make(map[string]bool) for _, a := range remainingAddrs { - if net.ParseIP(a).To4() == nil { + if netutils.ParseIPSloppy(a).To4() == nil { continue } remainingAddrsMap[a] = true @@ -3921,12 +3920,12 @@ func TestCleanLegacyRealServersExcludeCIDRs(t *testing.T) { ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) gtm := NewGracefulTerminationManager(ipvs) - excludeCIDRs, _ := utilnet.ParseCIDRs([]string{"4.4.4.4/32"}) + excludeCIDRs, _ := netutils.ParseCIDRs([]string{"4.4.4.4/32"}) fp := NewFakeProxier(ipt, ipvs, ipset, nil, excludeCIDRs, v1.IPv4Protocol) fp.gracefuldeleteManager = gtm vs := &utilipvs.VirtualServer{ - Address: net.ParseIP("4.4.4.4"), + Address: netutils.ParseIPSloppy("4.4.4.4"), Protocol: string(v1.ProtocolUDP), Port: 56, Scheduler: "rr", @@ -3937,13 +3936,13 @@ func TestCleanLegacyRealServersExcludeCIDRs(t *testing.T) { rss := []*utilipvs.RealServer{ { - Address: net.ParseIP("10.10.10.10"), + Address: netutils.ParseIPSloppy("10.10.10.10"), Port: 56, ActiveConn: 0, InactiveConn: 0, }, { - Address: net.ParseIP("11.11.11.11"), + Address: netutils.ParseIPSloppy("11.11.11.11"), Port: 56, ActiveConn: 0, InactiveConn: 0, @@ -3976,9 +3975,9 @@ func TestCleanLegacyService6(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - excludeCIDRs, _ := utilnet.ParseCIDRs([]string{"3000::/64", "4000::/64"}) + excludeCIDRs, _ := netutils.ParseCIDRs([]string{"3000::/64", "4000::/64"}) fp := NewFakeProxier(ipt, ipvs, ipset, nil, excludeCIDRs, v1.IPv4Protocol) - fp.nodeIP = net.ParseIP("::1") + fp.nodeIP = netutils.ParseIPSloppy("::1") // All ipvs services that were processed in the latest sync loop. activeServices := map[string]bool{"ipvs0": true, "ipvs1": true} @@ -3986,7 +3985,7 @@ func TestCleanLegacyService6(t *testing.T) { currentServices := map[string]*utilipvs.VirtualServer{ // Created by kube-proxy. "ipvs0": { - Address: net.ParseIP("1000::1"), + Address: netutils.ParseIPSloppy("1000::1"), Protocol: string(v1.ProtocolUDP), Port: 53, Scheduler: "rr", @@ -3994,7 +3993,7 @@ func TestCleanLegacyService6(t *testing.T) { }, // Created by kube-proxy. "ipvs1": { - Address: net.ParseIP("1000::2"), + Address: netutils.ParseIPSloppy("1000::2"), Protocol: string(v1.ProtocolUDP), Port: 54, Scheduler: "rr", @@ -4002,7 +4001,7 @@ func TestCleanLegacyService6(t *testing.T) { }, // Created by an external party. "ipvs2": { - Address: net.ParseIP("3000::1"), + Address: netutils.ParseIPSloppy("3000::1"), Protocol: string(v1.ProtocolUDP), Port: 55, Scheduler: "rr", @@ -4010,7 +4009,7 @@ func TestCleanLegacyService6(t *testing.T) { }, // Created by an external party. "ipvs3": { - Address: net.ParseIP("4000::1"), + Address: netutils.ParseIPSloppy("4000::1"), Protocol: string(v1.ProtocolUDP), Port: 56, Scheduler: "rr", @@ -4018,7 +4017,7 @@ func TestCleanLegacyService6(t *testing.T) { }, // Created by an external party. "ipvs4": { - Address: net.ParseIP("5000::1"), + Address: netutils.ParseIPSloppy("5000::1"), Protocol: string(v1.ProtocolUDP), Port: 57, Scheduler: "rr", @@ -4026,7 +4025,7 @@ func TestCleanLegacyService6(t *testing.T) { }, // Created by kube-proxy, but now stale. "ipvs5": { - Address: net.ParseIP("1000::6"), + Address: netutils.ParseIPSloppy("1000::6"), Protocol: string(v1.ProtocolUDP), Port: 58, Scheduler: "rr", @@ -4069,7 +4068,7 @@ func TestCleanLegacyService6(t *testing.T) { // check that address "1000::1", "1000::2", "3000::1", "4000::1" are still bound, ignore ipv4 addresses remainingAddrsMap := make(map[string]bool) for _, a := range remainingAddrs { - if net.ParseIP(a).To4() != nil { + if netutils.ParseIPSloppy(a).To4() != nil { continue } remainingAddrsMap[a] = true diff --git a/pkg/proxy/service.go b/pkg/proxy/service.go index 95e9bfa015ce..bd08fbea6c2a 100644 --- a/pkg/proxy/service.go +++ b/pkg/proxy/service.go @@ -25,6 +25,7 @@ import ( "k8s.io/client-go/tools/events" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" @@ -155,7 +156,7 @@ func (sct *ServiceChangeTracker) newBaseServiceInfo(port *v1.ServicePort, servic clusterIP := utilproxy.GetClusterIPByFamily(sct.ipFamily, service) info := &BaseServiceInfo{ - clusterIP: net.ParseIP(clusterIP), + clusterIP: netutils.ParseIPSloppy(clusterIP), port: int(port.Port), protocol: port.Protocol, nodePort: int(port.NodePort), diff --git a/pkg/proxy/service_test.go b/pkg/proxy/service_test.go index dbb98bf0e017..0f35b5dc3860 100644 --- a/pkg/proxy/service_test.go +++ b/pkg/proxy/service_test.go @@ -17,7 +17,6 @@ limitations under the License. package proxy import ( - "net" "reflect" "testing" "time" @@ -29,13 +28,14 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" + netutils "k8s.io/utils/net" ) const testHostname = "test-hostname" func makeTestServiceInfo(clusterIP string, port int, protocol string, healthcheckNodePort int, svcInfoFuncs ...func(*BaseServiceInfo)) *BaseServiceInfo { info := &BaseServiceInfo{ - clusterIP: net.ParseIP(clusterIP), + clusterIP: netutils.ParseIPSloppy(clusterIP), port: port, protocol: v1.Protocol(protocol), } diff --git a/pkg/proxy/userspace/proxier.go b/pkg/proxy/userspace/proxier.go index 381fa842a2f9..13789d36f534 100644 --- a/pkg/proxy/userspace/proxier.go +++ b/pkg/proxy/userspace/proxier.go @@ -527,7 +527,7 @@ func (proxier *Proxier) mergeService(service *v1.Service) sets.String { continue } - serviceIP := net.ParseIP(service.Spec.ClusterIP) + serviceIP := netutils.ParseIPSloppy(service.Spec.ClusterIP) klog.V(1).InfoS("Adding new service", "serviceName", serviceName, "addr", net.JoinHostPort(serviceIP.String(), strconv.Itoa(int(servicePort.Port))), "protocol", servicePort.Protocol) info, err = proxier.addServiceOnPortInternal(serviceName, servicePort.Protocol, proxyPort, proxier.udpIdleTimeout) if err != nil { @@ -711,7 +711,7 @@ func sameConfig(info *ServiceInfo, service *v1.Service, port *v1.ServicePort) bo if info.protocol != port.Protocol || info.portal.port != int(port.Port) || info.nodePort != int(port.NodePort) { return false } - if !info.portal.ip.Equal(net.ParseIP(service.Spec.ClusterIP)) { + if !info.portal.ip.Equal(netutils.ParseIPSloppy(service.Spec.ClusterIP)) { return false } if !ipsEqual(info.externalIPs, service.Spec.ExternalIPs) { @@ -744,14 +744,14 @@ func (proxier *Proxier) openPortal(service proxy.ServicePortName, info *ServiceI return err } for _, publicIP := range info.externalIPs { - err = proxier.openOnePortal(portal{net.ParseIP(publicIP), info.portal.port, true}, info.protocol, proxier.listenIP, info.proxyPort, service) + err = proxier.openOnePortal(portal{netutils.ParseIPSloppy(publicIP), info.portal.port, true}, info.protocol, proxier.listenIP, info.proxyPort, service) if err != nil { return err } } for _, ingress := range info.loadBalancerStatus.Ingress { if ingress.IP != "" { - err = proxier.openOnePortal(portal{net.ParseIP(ingress.IP), info.portal.port, false}, info.protocol, proxier.listenIP, info.proxyPort, service) + err = proxier.openOnePortal(portal{netutils.ParseIPSloppy(ingress.IP), info.portal.port, false}, info.protocol, proxier.listenIP, info.proxyPort, service) if err != nil { return err } @@ -923,11 +923,11 @@ func (proxier *Proxier) closePortal(service proxy.ServicePortName, info *Service // Collect errors and report them all at the end. el := proxier.closeOnePortal(info.portal, info.protocol, proxier.listenIP, info.proxyPort, service) for _, publicIP := range info.externalIPs { - el = append(el, proxier.closeOnePortal(portal{net.ParseIP(publicIP), info.portal.port, true}, info.protocol, proxier.listenIP, info.proxyPort, service)...) + el = append(el, proxier.closeOnePortal(portal{netutils.ParseIPSloppy(publicIP), info.portal.port, true}, info.protocol, proxier.listenIP, info.proxyPort, service)...) } for _, ingress := range info.loadBalancerStatus.Ingress { if ingress.IP != "" { - el = append(el, proxier.closeOnePortal(portal{net.ParseIP(ingress.IP), info.portal.port, false}, info.protocol, proxier.listenIP, info.proxyPort, service)...) + el = append(el, proxier.closeOnePortal(portal{netutils.ParseIPSloppy(ingress.IP), info.portal.port, false}, info.protocol, proxier.listenIP, info.proxyPort, service)...) } } if info.nodePort != 0 { @@ -1116,11 +1116,11 @@ func iptablesFlush(ipt iptables.Interface) error { } // Used below. -var zeroIPv4 = net.ParseIP("0.0.0.0") -var localhostIPv4 = net.ParseIP("127.0.0.1") +var zeroIPv4 = netutils.ParseIPSloppy("0.0.0.0") +var localhostIPv4 = netutils.ParseIPSloppy("127.0.0.1") -var zeroIPv6 = net.ParseIP("::") -var localhostIPv6 = net.ParseIP("::1") +var zeroIPv6 = netutils.ParseIPSloppy("::") +var localhostIPv6 = netutils.ParseIPSloppy("::1") // Build a slice of iptables args that are common to from-container and from-host portal rules. func iptablesCommonPortalArgs(destIP net.IP, addPhysicalInterfaceMatch bool, addDstLocalMatch bool, destPort int, protocol v1.Protocol, service proxy.ServicePortName) []string { diff --git a/pkg/proxy/userspace/proxier_test.go b/pkg/proxy/userspace/proxier_test.go index a9eca6689625..fd89886b1dce 100644 --- a/pkg/proxy/userspace/proxier_test.go +++ b/pkg/proxy/userspace/proxier_test.go @@ -39,6 +39,7 @@ import ( ipttest "k8s.io/kubernetes/pkg/util/iptables/testing" "k8s.io/utils/exec" fakeexec "k8s.io/utils/exec/testing" + netutils "k8s.io/utils/net" ) const ( @@ -328,7 +329,7 @@ func TestTCPProxy(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -353,7 +354,7 @@ func TestUDPProxy(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -378,7 +379,7 @@ func TestUDPProxyTimeout(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -417,7 +418,7 @@ func TestMultiPortProxy(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -440,7 +441,7 @@ func TestMultiPortOnServiceAdd(t *testing.T) { lb := NewLoadBalancerRR() fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -473,7 +474,7 @@ func TestTCPProxyStop(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -505,7 +506,7 @@ func TestUDPProxyStop(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -537,7 +538,7 @@ func TestTCPProxyUpdateDelete(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -569,7 +570,7 @@ func TestUDPProxyUpdateDelete(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -602,7 +603,7 @@ func TestTCPProxyUpdateDeleteUpdate(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -640,7 +641,7 @@ func TestUDPProxyUpdateDeleteUpdate(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -678,7 +679,7 @@ func TestTCPProxyUpdatePort(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -716,7 +717,7 @@ func TestUDPProxyUpdatePort(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -754,7 +755,7 @@ func TestProxyUpdatePublicIPs(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -793,7 +794,7 @@ func TestProxyUpdatePortal(t *testing.T) { fexec := makeFakeExec() - p, err := createProxier(lb, net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(lb, netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Second, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } @@ -851,7 +852,7 @@ func TestOnServiceAddChangeMap(t *testing.T) { fexec := makeFakeExec() // Use long minSyncPeriod so we can test that immediate syncs work - p, err := createProxier(NewLoadBalancerRR(), net.ParseIP("0.0.0.0"), ipttest.NewFake(), fexec, net.ParseIP("127.0.0.1"), nil, time.Minute, time.Minute, udpIdleTimeoutForTest, newProxySocket) + p, err := createProxier(NewLoadBalancerRR(), netutils.ParseIPSloppy("0.0.0.0"), ipttest.NewFake(), fexec, netutils.ParseIPSloppy("127.0.0.1"), nil, time.Minute, time.Minute, udpIdleTimeoutForTest, newProxySocket) if err != nil { t.Fatal(err) } diff --git a/pkg/proxy/userspace/rlimit.go b/pkg/proxy/userspace/rlimit.go index f8f120def51a..4b67c884819a 100644 --- a/pkg/proxy/userspace/rlimit.go +++ b/pkg/proxy/userspace/rlimit.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/proxy/userspace/rlimit_windows.go b/pkg/proxy/userspace/rlimit_windows.go index b0a1dd2e3ed0..dfe495e6e208 100644 --- a/pkg/proxy/userspace/rlimit_windows.go +++ b/pkg/proxy/userspace/rlimit_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/proxy/util/endpoints.go b/pkg/proxy/util/endpoints.go index 0e017c54b11a..28d0d9da71d0 100644 --- a/pkg/proxy/util/endpoints.go +++ b/pkg/proxy/util/endpoints.go @@ -22,13 +22,14 @@ import ( "strconv" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) // IPPart returns just the IP part of an IP or IP:port or endpoint string. If the IP // part is an IPv6 address enclosed in brackets (e.g. "[fd00:1::5]:9999"), // then the brackets are stripped as well. func IPPart(s string) string { - if ip := net.ParseIP(s); ip != nil { + if ip := netutils.ParseIPSloppy(s); ip != nil { // IP address without port return s } @@ -39,7 +40,7 @@ func IPPart(s string) string { return "" } // Check if host string is a valid IP address - ip := net.ParseIP(host) + ip := netutils.ParseIPSloppy(host) if ip == nil { klog.Errorf("invalid IP part '%s'", host) return "" diff --git a/pkg/proxy/util/endpoints_test.go b/pkg/proxy/util/endpoints_test.go index 2d23b5b0b5d9..f248e46e91ee 100644 --- a/pkg/proxy/util/endpoints_test.go +++ b/pkg/proxy/util/endpoints_test.go @@ -17,8 +17,9 @@ limitations under the License. package util import ( - "net" "testing" + + netutils "k8s.io/utils/net" ) func TestIPPart(t *testing.T) { @@ -112,7 +113,7 @@ func TestToCIDR(t *testing.T) { } for _, tc := range testCases { - ip := net.ParseIP(tc.ip) + ip := netutils.ParseIPSloppy(tc.ip) addr := ToCIDR(ip) if addr != tc.expectedAddr { t.Errorf("Unexpected host address for %s: Expected: %s, Got %s", tc.ip, tc.expectedAddr, addr) diff --git a/pkg/proxy/util/iptables/traffic.go b/pkg/proxy/util/iptables/traffic.go index d630bedf5ad6..28e019673ab7 100644 --- a/pkg/proxy/util/iptables/traffic.go +++ b/pkg/proxy/util/iptables/traffic.go @@ -18,11 +18,10 @@ package iptables import ( "fmt" - "net" "k8s.io/klog/v2" utiliptables "k8s.io/kubernetes/pkg/util/iptables" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) // LocalTrafficDetector in a interface to take action (jump) based on whether traffic originated locally @@ -66,10 +65,10 @@ type detectLocalByCIDR struct { // NewDetectLocalByCIDR implements the LocalTrafficDetector interface using a CIDR. This can be used when a single CIDR // range can be used to capture the notion of local traffic. func NewDetectLocalByCIDR(cidr string, ipt utiliptables.Interface) (LocalTrafficDetector, error) { - if utilnet.IsIPv6CIDRString(cidr) != ipt.IsIPv6() { + if netutils.IsIPv6CIDRString(cidr) != ipt.IsIPv6() { return nil, fmt.Errorf("CIDR %s has incorrect IP version: expect isIPv6=%t", cidr, ipt.IsIPv6()) } - _, _, err := net.ParseCIDR(cidr) + _, _, err := netutils.ParseCIDRSloppy(cidr) if err != nil { return nil, err } diff --git a/pkg/proxy/util/utils.go b/pkg/proxy/util/utils.go index c1286029a014..12ab03c63764 100644 --- a/pkg/proxy/util/utils.go +++ b/pkg/proxy/util/utils.go @@ -32,7 +32,7 @@ import ( "k8s.io/client-go/tools/events" helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" utilsysctl "k8s.io/kubernetes/pkg/util/sysctl" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" "k8s.io/klog/v2" ) @@ -88,7 +88,7 @@ func IsZeroCIDR(cidr string) bool { // IsProxyableIP checks if a given IP address is permitted to be proxied func IsProxyableIP(ip string) error { - netIP := net.ParseIP(ip) + netIP := netutils.ParseIPSloppy(ip) if netIP == nil { return ErrAddressNotAllowed } @@ -146,7 +146,7 @@ func GetLocalAddrs() ([]net.IP, error) { } for _, addr := range addrs { - ip, _, err := net.ParseCIDR(addr.String()) + ip, _, err := netutils.ParseCIDRSloppy(addr.String()) if err != nil { return nil, err } @@ -159,7 +159,7 @@ func GetLocalAddrs() ([]net.IP, error) { // GetLocalAddrSet return a local IPSet. // If failed to get local addr, will assume no local ips. -func GetLocalAddrSet() utilnet.IPSet { +func GetLocalAddrSet() netutils.IPSet { localAddrs, err := GetLocalAddrs() if err != nil { klog.ErrorS(err, "Failed to get local addresses assuming no local IPs") @@ -167,7 +167,7 @@ func GetLocalAddrSet() utilnet.IPSet { klog.InfoS("No local addresses were found") } - localAddrSet := utilnet.IPSet{} + localAddrSet := netutils.IPSet{} localAddrSet.Insert(localAddrs...) return localAddrSet } @@ -220,7 +220,7 @@ func GetNodeAddresses(cidrs []string, nw NetworkInterfacer) (sets.String, error) continue } - _, ipNet, _ := net.ParseCIDR(cidr) + _, ipNet, _ := netutils.ParseCIDRSloppy(cidr) for _, addr := range addrs { var ip net.IP // nw.InterfaceAddrs may return net.IPAddr or net.IPNet on windows, and it will return net.IPNet on linux. @@ -234,10 +234,10 @@ func GetNodeAddresses(cidrs []string, nw NetworkInterfacer) (sets.String, error) } if ipNet.Contains(ip) { - if utilnet.IsIPv6(ip) && !uniqueAddressList.Has(IPv6ZeroCIDR) { + if netutils.IsIPv6(ip) && !uniqueAddressList.Has(IPv6ZeroCIDR) { uniqueAddressList.Insert(ip.String()) } - if !utilnet.IsIPv6(ip) && !uniqueAddressList.Has(IPv4ZeroCIDR) { + if !netutils.IsIPv6(ip) && !uniqueAddressList.Has(IPv4ZeroCIDR) { uniqueAddressList.Insert(ip.String()) } } @@ -295,23 +295,23 @@ func MapCIDRsByIPFamily(cidrStrings []string) map[v1.IPFamily][]string { } func getIPFamilyFromIP(ipStr string) (v1.IPFamily, error) { - netIP := net.ParseIP(ipStr) + netIP := netutils.ParseIPSloppy(ipStr) if netIP == nil { return "", ErrAddressNotAllowed } - if utilnet.IsIPv6(netIP) { + if netutils.IsIPv6(netIP) { return v1.IPv6Protocol, nil } return v1.IPv4Protocol, nil } func getIPFamilyFromCIDR(cidrStr string) (v1.IPFamily, error) { - _, netCIDR, err := net.ParseCIDR(cidrStr) + _, netCIDR, err := netutils.ParseCIDRSloppy(cidrStr) if err != nil { return "", ErrAddressNotAllowed } - if utilnet.IsIPv6CIDR(netCIDR) { + if netutils.IsIPv6CIDR(netCIDR) { return v1.IPv6Protocol, nil } return v1.IPv4Protocol, nil @@ -335,7 +335,7 @@ func AppendPortIfNeeded(addr string, port int32) string { } // Simply return for invalid case. This should be caught by validation instead. - ip := net.ParseIP(addr) + ip := netutils.ParseIPSloppy(addr) if ip == nil { return addr } @@ -441,7 +441,7 @@ func GetClusterIPByFamily(ipFamily v1.IPFamily, service *v1.Service) string { } IsIPv6Family := (ipFamily == v1.IPv6Protocol) - if IsIPv6Family == utilnet.IsIPv6String(service.Spec.ClusterIP) { + if IsIPv6Family == netutils.IsIPv6String(service.Spec.ClusterIP) { return service.Spec.ClusterIP } @@ -492,7 +492,7 @@ func WriteBytesLine(buf *bytes.Buffer, bytes []byte) { // RevertPorts is closing ports in replacementPortsMap but not in originalPortsMap. In other words, it only // closes the ports opened in this sync. -func RevertPorts(replacementPortsMap, originalPortsMap map[utilnet.LocalPort]utilnet.Closeable) { +func RevertPorts(replacementPortsMap, originalPortsMap map[netutils.LocalPort]netutils.Closeable) { for k, v := range replacementPortsMap { // Only close newly opened local ports - leave ones that were open before this update if originalPortsMap[k] == nil { diff --git a/pkg/proxy/util/utils_test.go b/pkg/proxy/util/utils_test.go index a0ee3761ee57..dff2dbb97beb 100644 --- a/pkg/proxy/util/utils_test.go +++ b/pkg/proxy/util/utils_test.go @@ -30,7 +30,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/sets" fake "k8s.io/kubernetes/pkg/proxy/util/testing" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) func TestValidateWorks(t *testing.T) { @@ -141,7 +141,7 @@ func (r *dummyResolver) LookupIPAddr(ctx context.Context, host string) ([]net.IP } resp := []net.IPAddr{} for _, ipString := range r.ips { - resp = append(resp, net.IPAddr{IP: net.ParseIP(ipString)}) + resp = append(resp, net.IPAddr{IP: netutils.ParseIPSloppy(ipString)}) } return resp, nil } @@ -187,13 +187,13 @@ func TestIsAllowedHost(t *testing.T) { for i := range testCases { var denyList []*net.IPNet for _, cidrStr := range testCases[i].denied { - _, ipNet, err := net.ParseCIDR(cidrStr) + _, ipNet, err := netutils.ParseCIDRSloppy(cidrStr) if err != nil { t.Fatalf("bad IP for test case: %v: %v", cidrStr, err) } denyList = append(denyList, ipNet) } - got := IsAllowedHost(net.ParseIP(testCases[i].ip), denyList) + got := IsAllowedHost(netutils.ParseIPSloppy(testCases[i].ip), denyList) if testCases[i].want != got { t.Errorf("case %d: expected %v, got %v", i, testCases[i].want, got) } @@ -281,7 +281,7 @@ func TestShouldSkipService(t *testing.T) { func TestNewFilteredDialContext(t *testing.T) { - _, cidr, _ := net.ParseCIDR("1.1.1.1/28") + _, cidr, _ := netutils.ParseCIDRSloppy("1.1.1.1/28") testCases := []struct { name string @@ -324,7 +324,7 @@ func TestNewFilteredDialContext(t *testing.T) { opts: &FilteredDialOptions{AllowLocalLoopback: false}, dial: "127.0.0.1:8080", expectResolve: "127.0.0.1", - resolveTo: []net.IPAddr{{IP: net.ParseIP("127.0.0.1")}}, + resolveTo: []net.IPAddr{{IP: netutils.ParseIPSloppy("127.0.0.1")}}, expectWrappedDial: false, expectErr: "address not allowed", }, @@ -333,7 +333,7 @@ func TestNewFilteredDialContext(t *testing.T) { opts: &FilteredDialOptions{AllowLocalLoopback: false, DialHostCIDRDenylist: []*net.IPNet{cidr}}, dial: "foo.com:8080", expectResolve: "foo.com", - resolveTo: []net.IPAddr{{IP: net.ParseIP("1.1.1.1")}}, + resolveTo: []net.IPAddr{{IP: netutils.ParseIPSloppy("1.1.1.1")}}, expectWrappedDial: false, expectErr: "address not allowed", }, @@ -342,7 +342,7 @@ func TestNewFilteredDialContext(t *testing.T) { opts: &FilteredDialOptions{AllowLocalLoopback: false, DialHostCIDRDenylist: []*net.IPNet{cidr}}, dial: "foo.com:8080", expectResolve: "foo.com", - resolveTo: []net.IPAddr{{IP: net.ParseIP("2.2.2.2")}}, + resolveTo: []net.IPAddr{{IP: netutils.ParseIPSloppy("2.2.2.2")}}, expectWrappedDial: true, expectErr: "", }, @@ -417,11 +417,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, }, { itf: net.Interface{Index: 2, MTU: 0, Name: "eth1", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("100.200.201.1"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("100.200.201.1"), Mask: net.CIDRMask(24, 32)}}, }, }, expected: sets.NewString("10.20.30.51"), @@ -432,11 +432,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, }, }, expected: sets.NewString("0.0.0.0/0"), @@ -447,11 +447,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("2001:db8::1"), Mask: net.CIDRMask(32, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("2001:db8::1"), Mask: net.CIDRMask(32, 128)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("::1"), Mask: net.CIDRMask(128, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("::1"), Mask: net.CIDRMask(128, 128)}}, }, }, expected: sets.NewString("2001:db8::1", "::1"), @@ -462,11 +462,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("2001:db8::1"), Mask: net.CIDRMask(32, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("2001:db8::1"), Mask: net.CIDRMask(32, 128)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("::1"), Mask: net.CIDRMask(128, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("::1"), Mask: net.CIDRMask(128, 128)}}, }, }, expected: sets.NewString("::/0"), @@ -477,11 +477,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, }, }, expected: sets.NewString("127.0.0.1"), @@ -492,7 +492,7 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("127.0.1.1"), Mask: net.CIDRMask(8, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("127.0.1.1"), Mask: net.CIDRMask(8, 32)}}, }, }, expected: sets.NewString("127.0.1.1"), @@ -503,11 +503,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("10.20.30.51"), Mask: net.CIDRMask(24, 32)}}, }, { itf: net.Interface{Index: 2, MTU: 0, Name: "eth1", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("100.200.201.1"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("100.200.201.1"), Mask: net.CIDRMask(24, 32)}}, }, }, expected: sets.NewString("10.20.30.51", "100.200.201.1"), @@ -518,11 +518,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("192.168.1.2"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("192.168.1.2"), Mask: net.CIDRMask(24, 32)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, }, }, expected: nil, @@ -534,11 +534,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("192.168.1.2"), Mask: net.CIDRMask(24, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("192.168.1.2"), Mask: net.CIDRMask(24, 32)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("127.0.0.1"), Mask: net.CIDRMask(8, 32)}}, }, }, expected: sets.NewString("0.0.0.0/0", "::/0"), @@ -549,11 +549,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("2001:db8::1"), Mask: net.CIDRMask(32, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("2001:db8::1"), Mask: net.CIDRMask(32, 128)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("::1"), Mask: net.CIDRMask(128, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("::1"), Mask: net.CIDRMask(128, 128)}}, }, }, expected: sets.NewString("0.0.0.0/0", "::/0"), @@ -564,7 +564,7 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("1.2.3.4"), Mask: net.CIDRMask(30, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("1.2.3.4"), Mask: net.CIDRMask(30, 32)}}, }, }, expected: sets.NewString("0.0.0.0/0"), @@ -575,11 +575,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("1.2.3.4"), Mask: net.CIDRMask(30, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("1.2.3.4"), Mask: net.CIDRMask(30, 32)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("::1"), Mask: net.CIDRMask(128, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("::1"), Mask: net.CIDRMask(128, 128)}}, }, }, expected: sets.NewString("0.0.0.0/0", "::1"), @@ -590,11 +590,11 @@ func TestGetNodeAddresses(t *testing.T) { itfAddrsPairs: []InterfaceAddrsPair{ { itf: net.Interface{Index: 0, MTU: 0, Name: "eth0", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("1.2.3.4"), Mask: net.CIDRMask(30, 32)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("1.2.3.4"), Mask: net.CIDRMask(30, 32)}}, }, { itf: net.Interface{Index: 1, MTU: 0, Name: "lo", HardwareAddr: nil, Flags: 0}, - addrs: []net.Addr{&net.IPNet{IP: net.ParseIP("::1"), Mask: net.CIDRMask(128, 128)}}, + addrs: []net.Addr{&net.IPNet{IP: netutils.ParseIPSloppy("::1"), Mask: net.CIDRMask(128, 128)}}, }, }, expected: sets.NewString("::/0", "1.2.3.4"), @@ -1063,22 +1063,22 @@ func (c *fakeClosable) Close() error { func TestRevertPorts(t *testing.T) { testCases := []struct { - replacementPorts []utilnet.LocalPort - existingPorts []utilnet.LocalPort + replacementPorts []netutils.LocalPort + existingPorts []netutils.LocalPort expectToBeClose []bool }{ { - replacementPorts: []utilnet.LocalPort{ + replacementPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5002}, {Port: 5003}, }, - existingPorts: []utilnet.LocalPort{}, + existingPorts: []netutils.LocalPort{}, expectToBeClose: []bool{true, true, true}, }, { - replacementPorts: []utilnet.LocalPort{}, - existingPorts: []utilnet.LocalPort{ + replacementPorts: []netutils.LocalPort{}, + existingPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5002}, {Port: 5003}, @@ -1086,12 +1086,12 @@ func TestRevertPorts(t *testing.T) { expectToBeClose: []bool{}, }, { - replacementPorts: []utilnet.LocalPort{ + replacementPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5002}, {Port: 5003}, }, - existingPorts: []utilnet.LocalPort{ + existingPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5002}, {Port: 5003}, @@ -1099,24 +1099,24 @@ func TestRevertPorts(t *testing.T) { expectToBeClose: []bool{false, false, false}, }, { - replacementPorts: []utilnet.LocalPort{ + replacementPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5002}, {Port: 5003}, }, - existingPorts: []utilnet.LocalPort{ + existingPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5003}, }, expectToBeClose: []bool{false, true, false}, }, { - replacementPorts: []utilnet.LocalPort{ + replacementPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5002}, {Port: 5003}, }, - existingPorts: []utilnet.LocalPort{ + existingPorts: []netutils.LocalPort{ {Port: 5001}, {Port: 5002}, {Port: 5003}, @@ -1127,11 +1127,11 @@ func TestRevertPorts(t *testing.T) { } for i, tc := range testCases { - replacementPortsMap := make(map[utilnet.LocalPort]utilnet.Closeable) + replacementPortsMap := make(map[netutils.LocalPort]netutils.Closeable) for _, lp := range tc.replacementPorts { replacementPortsMap[lp] = &fakeClosable{} } - existingPortsMap := make(map[utilnet.LocalPort]utilnet.Closeable) + existingPortsMap := make(map[netutils.LocalPort]netutils.Closeable) for _, lp := range tc.existingPorts { existingPortsMap[lp] = &fakeClosable{} } diff --git a/pkg/proxy/winkernel/hnsV1.go b/pkg/proxy/winkernel/hnsV1.go index 6c9c8c684649..eee6a1f5e449 100644 --- a/pkg/proxy/winkernel/hnsV1.go +++ b/pkg/proxy/winkernel/hnsV1.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* @@ -21,10 +22,11 @@ package winkernel import ( "encoding/json" "fmt" + "strings" + "github.com/Microsoft/hcsshim" "k8s.io/klog/v2" - "net" - "strings" + netutils "k8s.io/utils/net" ) type HostNetworkService interface { @@ -113,7 +115,7 @@ func (hns hnsV1) createEndpoint(ep *endpointsInfo, networkName string) (*endpoin } hnsEndpoint := &hcsshim.HNSEndpoint{ MacAddress: ep.macAddress, - IPAddress: net.ParseIP(ep.ip), + IPAddress: netutils.ParseIPSloppy(ep.ip), } var createdEndpoint *hcsshim.HNSEndpoint diff --git a/pkg/proxy/winkernel/hnsV2.go b/pkg/proxy/winkernel/hnsV2.go index 298ad544f18b..87dd7cae49a9 100644 --- a/pkg/proxy/winkernel/hnsV2.go +++ b/pkg/proxy/winkernel/hnsV2.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/proxy/winkernel/hns_test.go b/pkg/proxy/winkernel/hns_test.go index d576329c8021..efa8dca806d7 100644 --- a/pkg/proxy/winkernel/hns_test.go +++ b/pkg/proxy/winkernel/hns_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/proxy/winkernel/proxier.go b/pkg/proxy/winkernel/proxier.go index e49fd514e880..dfd2996cb7bb 100644 --- a/pkg/proxy/winkernel/proxier.go +++ b/pkg/proxy/winkernel/proxier.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* @@ -52,7 +53,7 @@ import ( "k8s.io/kubernetes/pkg/proxy/metaproxier" "k8s.io/kubernetes/pkg/proxy/metrics" "k8s.io/kubernetes/pkg/util/async" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) // KernelCompatTester tests whether the required kernel capabilities are @@ -424,7 +425,7 @@ func (proxier *Proxier) newEndpointInfo(baseInfo *proxy.BaseEndpointInfo) proxy. ip: baseInfo.IP(), port: uint16(portNumber), isLocal: baseInfo.GetIsLocal(), - macAddress: conjureMac("02-11", net.ParseIP(baseInfo.IP())), + macAddress: conjureMac("02-11", netutils.ParseIPSloppy(baseInfo.IP())), refCount: new(uint16), hnsID: "", hns: proxier.hns, @@ -510,7 +511,7 @@ func (proxier *Proxier) newServiceInfo(port *v1.ServicePort, service *v1.Service } for _, ingress := range service.Status.LoadBalancer.Ingress { - if net.ParseIP(ingress.IP) != nil { + if netutils.ParseIPSloppy(ingress.IP) != nil { info.loadBalancerIngressIPs = append(info.loadBalancerIngressIPs, &loadBalancerIngressInfo{ip: ingress.IP}) } } @@ -520,11 +521,11 @@ func (proxier *Proxier) newServiceInfo(port *v1.ServicePort, service *v1.Service func (network hnsNetworkInfo) findRemoteSubnetProviderAddress(ip string) string { var providerAddress string for _, rs := range network.remoteSubnets { - _, ipNet, err := net.ParseCIDR(rs.destinationPrefix) + _, ipNet, err := netutils.ParseCIDRSloppy(rs.destinationPrefix) if err != nil { klog.ErrorS(err, "Failed to parse CIDR") } - if ipNet.Contains(net.ParseIP(ip)) { + if ipNet.Contains(netutils.ParseIPSloppy(ip)) { providerAddress = rs.providerAddress } if ip == rs.providerAddress { @@ -634,7 +635,7 @@ func NewProxier( if nodeIP == nil { klog.InfoS("invalid nodeIP, initializing kube-proxy with 127.0.0.1 as nodeIP") - nodeIP = net.ParseIP("127.0.0.1") + nodeIP = netutils.ParseIPSloppy("127.0.0.1") } if len(clusterCIDR) == 0 { @@ -705,7 +706,7 @@ func NewProxier( for _, inter := range interfaces { addresses, _ := inter.Addrs() for _, addr := range addresses { - addrIP, _, _ := net.ParseCIDR(addr.String()) + addrIP, _, _ := netutils.ParseCIDRSloppy(addr.String()) if addrIP.String() == nodeIP.String() { klog.V(2).InfoS("record Host MAC address", "addr", inter.HardwareAddr.String()) hostMac = inter.HardwareAddr.String() @@ -717,7 +718,7 @@ func NewProxier( } } - isIPv6 := utilnet.IsIPv6(nodeIP) + isIPv6 := netutils.IsIPv6(nodeIP) proxier := &Proxier{ endPointsRefCount: make(endPointsReferenceCountMap), serviceMap: make(proxy.ServiceMap), @@ -1179,7 +1180,7 @@ func (proxier *Proxier) syncProxyRules() { hnsEndpoint := &endpointsInfo{ ip: ep.ip, isLocal: false, - macAddress: conjureMac("02-11", net.ParseIP(ep.ip)), + macAddress: conjureMac("02-11", netutils.ParseIPSloppy(ep.ip)), providerAddress: providerAddress, } diff --git a/pkg/proxy/winkernel/proxier_test.go b/pkg/proxy/winkernel/proxier_test.go index 86b435b01eff..51c4840542b0 100644 --- a/pkg/proxy/winkernel/proxier_test.go +++ b/pkg/proxy/winkernel/proxier_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* @@ -33,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" ) @@ -73,9 +75,9 @@ func (hns fakeHNS) getEndpointByID(id string) (*endpointsInfo, error) { } func (hns fakeHNS) getEndpointByIpAddress(ip string, networkName string) (*endpointsInfo, error) { - _, ipNet, _ := net.ParseCIDR(destinationPrefix) + _, ipNet, _ := netutils.ParseCIDRSloppy(destinationPrefix) - if ipNet.Contains(net.ParseIP(ip)) { + if ipNet.Contains(netutils.ParseIPSloppy(ip)) { return &endpointsInfo{ ip: ip, isLocal: false, @@ -144,7 +146,7 @@ func NewFakeProxier(syncPeriod time.Duration, minSyncPeriod time.Duration, clust func TestCreateServiceVip(t *testing.T) { syncPeriod := 30 * time.Second - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), NETWORK_TYPE_OVERLAY) + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), NETWORK_TYPE_OVERLAY) if proxier == nil { t.Error() } @@ -199,7 +201,7 @@ func TestCreateServiceVip(t *testing.T) { func TestCreateRemoteEndpointOverlay(t *testing.T) { syncPeriod := 30 * time.Second - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), NETWORK_TYPE_OVERLAY) + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), NETWORK_TYPE_OVERLAY) if proxier == nil { t.Error() } @@ -264,7 +266,7 @@ func TestCreateRemoteEndpointOverlay(t *testing.T) { func TestCreateRemoteEndpointL2Bridge(t *testing.T) { syncPeriod := 30 * time.Second - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), "L2Bridge") + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), "L2Bridge") if proxier == nil { t.Error() } @@ -328,7 +330,7 @@ func TestCreateRemoteEndpointL2Bridge(t *testing.T) { func TestSharedRemoteEndpointDelete(t *testing.T) { syncPeriod := 30 * time.Second tcpProtocol := v1.ProtocolTCP - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), "L2Bridge") + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), "L2Bridge") if proxier == nil { t.Error() } @@ -470,7 +472,7 @@ func TestSharedRemoteEndpointDelete(t *testing.T) { } func TestSharedRemoteEndpointUpdate(t *testing.T) { syncPeriod := 30 * time.Second - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), "L2Bridge") + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), "L2Bridge") if proxier == nil { t.Error() } @@ -645,7 +647,7 @@ func TestSharedRemoteEndpointUpdate(t *testing.T) { func TestCreateLoadBalancer(t *testing.T) { syncPeriod := 30 * time.Second tcpProtocol := v1.ProtocolTCP - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), NETWORK_TYPE_OVERLAY) + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), NETWORK_TYPE_OVERLAY) if proxier == nil { t.Error() } @@ -703,7 +705,7 @@ func TestCreateLoadBalancer(t *testing.T) { func TestCreateDsrLoadBalancer(t *testing.T) { syncPeriod := 30 * time.Second - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), NETWORK_TYPE_OVERLAY) + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), NETWORK_TYPE_OVERLAY) if proxier == nil { t.Error() } @@ -765,7 +767,7 @@ func TestCreateDsrLoadBalancer(t *testing.T) { func TestEndpointSlice(t *testing.T) { syncPeriod := 30 * time.Second - proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), NETWORK_TYPE_OVERLAY) + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", netutils.ParseIPSloppy("10.0.0.1"), NETWORK_TYPE_OVERLAY) if proxier == nil { t.Error() } diff --git a/pkg/proxy/winuserspace/proxier.go b/pkg/proxy/winuserspace/proxier.go index 3a4dff95c1f8..0713542f2618 100644 --- a/pkg/proxy/winuserspace/proxier.go +++ b/pkg/proxy/winuserspace/proxier.go @@ -26,6 +26,7 @@ import ( "time" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" @@ -106,8 +107,8 @@ var ( ) // Used below. -var localhostIPv4 = net.ParseIP("127.0.0.1") -var localhostIPv6 = net.ParseIP("::1") +var localhostIPv4 = netutils.ParseIPSloppy("127.0.0.1") +var localhostIPv6 = netutils.ParseIPSloppy("::1") // NewProxier returns a new Proxier given a LoadBalancer and an address on // which to listen. It is assumed that there is only a single Proxier active @@ -208,7 +209,7 @@ func (proxier *Proxier) setServiceInfo(service ServicePortPortalName, info *serv func (proxier *Proxier) addServicePortPortal(servicePortPortalName ServicePortPortalName, protocol v1.Protocol, listenIP string, port int, timeout time.Duration) (*serviceInfo, error) { var serviceIP net.IP if listenIP != allAvailableInterfaces { - if serviceIP = net.ParseIP(listenIP); serviceIP == nil { + if serviceIP = netutils.ParseIPSloppy(listenIP); serviceIP == nil { return nil, fmt.Errorf("could not parse ip '%q'", listenIP) } // add the IP address. Node port binds to all interfaces. @@ -259,7 +260,7 @@ func (proxier *Proxier) closeServicePortPortal(servicePortPortalName ServicePort // close the PortalProxy by deleting the service IP address if info.portal.ip != allAvailableInterfaces { - serviceIP := net.ParseIP(info.portal.ip) + serviceIP := netutils.ParseIPSloppy(info.portal.ip) args := proxier.netshIPv4AddressDeleteArgs(serviceIP) if err := proxier.netsh.DeleteIPAddress(args); err != nil { return err diff --git a/pkg/proxy/winuserspace/proxier_test.go b/pkg/proxy/winuserspace/proxier_test.go index f24d6f2507d3..e4eea5348f6d 100644 --- a/pkg/proxy/winuserspace/proxier_test.go +++ b/pkg/proxy/winuserspace/proxier_test.go @@ -36,6 +36,7 @@ import ( "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/kubernetes/pkg/proxy" netshtest "k8s.io/kubernetes/pkg/util/netsh/testing" + netutils "k8s.io/utils/net" ) const ( @@ -251,7 +252,7 @@ func TestTCPProxy(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -278,7 +279,7 @@ func TestUDPProxy(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -305,7 +306,7 @@ func TestUDPProxyTimeout(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -344,7 +345,7 @@ func TestMultiPortProxy(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -374,7 +375,7 @@ func TestMultiPortOnServiceAdd(t *testing.T) { serviceX := proxy.ServicePortName{NamespacedName: types.NamespacedName{Namespace: "testnamespace", Name: "echo"}, Port: "x"} listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -440,7 +441,7 @@ func TestTCPProxyStop(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -484,7 +485,7 @@ func TestUDPProxyStop(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -522,7 +523,7 @@ func TestTCPProxyUpdateDelete(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -567,7 +568,7 @@ func TestUDPProxyUpdateDelete(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -612,7 +613,7 @@ func TestTCPProxyUpdateDeleteUpdate(t *testing.T) { lb.OnEndpointsAdd(endpoint) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -674,7 +675,7 @@ func TestUDPProxyUpdateDeleteUpdate(t *testing.T) { lb.OnEndpointsAdd(endpoint) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -735,7 +736,7 @@ func TestTCPProxyUpdatePort(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -783,7 +784,7 @@ func TestUDPProxyUpdatePort(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -828,7 +829,7 @@ func TestProxyUpdatePublicIPs(t *testing.T) { }) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } @@ -881,7 +882,7 @@ func TestProxyUpdatePortal(t *testing.T) { lb.OnEndpointsAdd(endpoint) listenIP := "0.0.0.0" - p, err := createProxier(lb, net.ParseIP(listenIP), netshtest.NewFake(), net.ParseIP("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) + p, err := createProxier(lb, netutils.ParseIPSloppy(listenIP), netshtest.NewFake(), netutils.ParseIPSloppy("127.0.0.1"), time.Minute, udpIdleTimeoutForTest) if err != nil { t.Fatal(err) } diff --git a/pkg/registry/core/service/ipallocator/allocator.go b/pkg/registry/core/service/ipallocator/allocator.go index 7e57dc23d5bf..8a7e5974d98a 100644 --- a/pkg/registry/core/service/ipallocator/allocator.go +++ b/pkg/registry/core/service/ipallocator/allocator.go @@ -24,7 +24,7 @@ import ( api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/service/allocator" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) // Interface manages the allocation of IP addresses out of a range. Interface @@ -83,12 +83,12 @@ type Range struct { // NewAllocatorCIDRRange creates a Range over a net.IPNet, calling allocatorFactory to construct the backing store. func NewAllocatorCIDRRange(cidr *net.IPNet, allocatorFactory allocator.AllocatorFactory) (*Range, error) { - max := utilnet.RangeSize(cidr) - base := utilnet.BigForIP(cidr.IP) + max := netutils.RangeSize(cidr) + base := netutils.BigForIP(cidr.IP) rangeSpec := cidr.String() var family api.IPFamily - if utilnet.IsIPv6CIDR(cidr) { + if netutils.IsIPv6CIDR(cidr) { family = api.IPv6Protocol // Limit the max size, since the allocator keeps a bitmap of that size. if max > 65536 { @@ -124,7 +124,7 @@ func NewCIDRRange(cidr *net.IPNet) (*Range, error) { // NewFromSnapshot allocates a Range and initializes it from a snapshot. func NewFromSnapshot(snap *api.RangeAllocation) (*Range, error) { - _, ipnet, err := net.ParseCIDR(snap.Range) + _, ipnet, err := netutils.ParseCIDRSloppy(snap.Range) if err != nil { return nil, err } @@ -190,7 +190,7 @@ func (r *Range) AllocateNext() (net.IP, error) { if !ok { return nil, ErrFull } - return utilnet.AddIPOffset(r.base, offset), nil + return netutils.AddIPOffset(r.base, offset), nil } // Release releases the IP back to the pool. Releasing an @@ -208,7 +208,7 @@ func (r *Range) Release(ip net.IP) error { // ForEach calls the provided function for each allocated IP. func (r *Range) ForEach(fn func(net.IP)) { r.alloc.ForEach(func(offset int) { - ip, _ := utilnet.GetIndexedIP(r.net, offset+1) // +1 because Range doesn't store IP 0 + ip, _ := netutils.GetIndexedIP(r.net, offset+1) // +1 because Range doesn't store IP 0 fn(ip) }) } @@ -274,5 +274,5 @@ func (r *Range) contains(ip net.IP) (bool, int) { // calculateIPOffset calculates the integer offset of ip from base such that // base + offset = ip. It requires ip >= base. func calculateIPOffset(base *big.Int, ip net.IP) int { - return int(big.NewInt(0).Sub(utilnet.BigForIP(ip), base).Int64()) + return int(big.NewInt(0).Sub(netutils.BigForIP(ip), base).Int64()) } diff --git a/pkg/registry/core/service/ipallocator/allocator_test.go b/pkg/registry/core/service/ipallocator/allocator_test.go index db43f65ef5f3..2f596e42cef4 100644 --- a/pkg/registry/core/service/ipallocator/allocator_test.go +++ b/pkg/registry/core/service/ipallocator/allocator_test.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" api "k8s.io/kubernetes/pkg/apis/core" + netutils "k8s.io/utils/net" ) func TestAllocate(t *testing.T) { @@ -64,7 +65,7 @@ func TestAllocate(t *testing.T) { }, } for _, tc := range testCases { - _, cidr, err := net.ParseCIDR(tc.cidr) + _, cidr, err := netutils.ParseCIDRSloppy(tc.cidr) if err != nil { t.Fatal(err) } @@ -109,7 +110,7 @@ func TestAllocate(t *testing.T) { t.Fatal(err) } - released := net.ParseIP(tc.released) + released := netutils.ParseIPSloppy(tc.released) if err := r.Release(released); err != nil { t.Fatal(err) } @@ -131,12 +132,12 @@ func TestAllocate(t *testing.T) { t.Fatal(err) } for _, outOfRange := range tc.outOfRange { - err = r.Allocate(net.ParseIP(outOfRange)) + err = r.Allocate(netutils.ParseIPSloppy(outOfRange)) if _, ok := err.(*ErrNotInRange); !ok { t.Fatal(err) } } - if err := r.Allocate(net.ParseIP(tc.alreadyAllocated)); err != ErrAllocated { + if err := r.Allocate(netutils.ParseIPSloppy(tc.alreadyAllocated)); err != ErrAllocated { t.Fatal(err) } if f := r.Free(); f != 1 { @@ -158,7 +159,7 @@ func TestAllocate(t *testing.T) { } func TestAllocateTiny(t *testing.T) { - _, cidr, err := net.ParseCIDR("192.168.1.0/32") + _, cidr, err := netutils.ParseCIDRSloppy("192.168.1.0/32") if err != nil { t.Fatal(err) } @@ -175,7 +176,7 @@ func TestAllocateTiny(t *testing.T) { } func TestAllocateSmall(t *testing.T) { - _, cidr, err := net.ParseCIDR("192.168.1.240/30") + _, cidr, err := netutils.ParseCIDRSloppy("192.168.1.240/30") if err != nil { t.Fatal(err) } @@ -198,10 +199,10 @@ func TestAllocateSmall(t *testing.T) { found.Insert(ip.String()) } for s := range found { - if !r.Has(net.ParseIP(s)) { + if !r.Has(netutils.ParseIPSloppy(s)) { t.Fatalf("missing: %s", s) } - if err := r.Allocate(net.ParseIP(s)); err != ErrAllocated { + if err := r.Allocate(netutils.ParseIPSloppy(s)); err != ErrAllocated { t.Fatal(err) } } @@ -219,7 +220,7 @@ func TestAllocateSmall(t *testing.T) { } func TestForEach(t *testing.T) { - _, cidr, err := net.ParseCIDR("192.168.1.0/24") + _, cidr, err := netutils.ParseCIDRSloppy("192.168.1.0/24") if err != nil { t.Fatal(err) } @@ -237,7 +238,7 @@ func TestForEach(t *testing.T) { t.Fatal(err) } for ips := range tc { - ip := net.ParseIP(ips) + ip := netutils.ParseIPSloppy(ips) if err := r.Allocate(ip); err != nil { t.Errorf("[%d] error allocating IP %v: %v", i, ip, err) } @@ -259,7 +260,7 @@ func TestForEach(t *testing.T) { } func TestSnapshot(t *testing.T) { - _, cidr, err := net.ParseCIDR("192.168.1.0/24") + _, cidr, err := netutils.ParseCIDRSloppy("192.168.1.0/24") if err != nil { t.Fatal(err) } @@ -282,7 +283,7 @@ func TestSnapshot(t *testing.T) { t.Fatal(err) } - _, network, err := net.ParseCIDR(dst.Range) + _, network, err := netutils.ParseCIDRSloppy(dst.Range) if err != nil { t.Fatal(err) } @@ -291,7 +292,7 @@ func TestSnapshot(t *testing.T) { t.Fatalf("mismatched networks: %s : %s", network, cidr) } - _, otherCidr, err := net.ParseCIDR("192.168.2.0/24") + _, otherCidr, err := netutils.ParseCIDRSloppy("192.168.2.0/24") if err != nil { t.Fatal(err) } @@ -321,7 +322,7 @@ func TestSnapshot(t *testing.T) { } func TestNewFromSnapshot(t *testing.T) { - _, cidr, err := net.ParseCIDR("192.168.0.0/24") + _, cidr, err := netutils.ParseCIDRSloppy("192.168.0.0/24") if err != nil { t.Fatal(err) } diff --git a/pkg/registry/core/service/ipallocator/controller/repair.go b/pkg/registry/core/service/ipallocator/controller/repair.go index 97447dcc1637..39421d1020b1 100644 --- a/pkg/registry/core/service/ipallocator/controller/repair.go +++ b/pkg/registry/core/service/ipallocator/controller/repair.go @@ -35,7 +35,7 @@ import ( "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/registry/core/rangeallocation" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" - netutil "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) // Repair is a controller loop that periodically examines all service ClusterIP allocations @@ -82,7 +82,7 @@ func NewRepair(interval time.Duration, serviceClient corev1client.ServicesGetter primary := v1.IPv4Protocol secondary := v1.IPv6Protocol - if netutil.IsIPv6(network.IP) { + if netutils.IsIPv6(network.IP) { primary = v1.IPv6Protocol } @@ -196,7 +196,7 @@ func (c *Repair) runOnce() error { } getFamilyByIP := func(ip net.IP) v1.IPFamily { - if netutil.IsIPv6(ip) { + if netutils.IsIPv6(ip) { return v1.IPv6Protocol } return v1.IPv4Protocol @@ -210,7 +210,7 @@ func (c *Repair) runOnce() error { } for _, ip := range svc.Spec.ClusterIPs { - ip := net.ParseIP(ip) + ip := netutils.ParseIPSloppy(ip) if ip == nil { // cluster IP is corrupt c.recorder.Eventf(&svc, v1.EventTypeWarning, "ClusterIPNotValid", "Cluster IP %s is not a valid IP; please recreate service", ip) diff --git a/pkg/registry/core/service/ipallocator/controller/repair_test.go b/pkg/registry/core/service/ipallocator/controller/repair_test.go index 5f41441fc9a8..b1b79cca5c7f 100644 --- a/pkg/registry/core/service/ipallocator/controller/repair_test.go +++ b/pkg/registry/core/service/ipallocator/controller/repair_test.go @@ -28,6 +28,7 @@ import ( "k8s.io/client-go/kubernetes/fake" api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" + netutils "k8s.io/utils/net" utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" @@ -60,7 +61,7 @@ func TestRepair(t *testing.T) { ipregistry := &mockRangeRegistry{ item: &api.RangeAllocation{Range: "192.168.1.0/24"}, } - _, cidr, _ := net.ParseCIDR(ipregistry.item.Range) + _, cidr, _ := netutils.ParseCIDRSloppy(ipregistry.item.Range) r := NewRepair(0, fakeClient.CoreV1(), fakeClient.CoreV1(), cidr, ipregistry, nil, nil) if err := r.RunOnce(); err != nil { @@ -81,12 +82,12 @@ func TestRepair(t *testing.T) { } func TestRepairLeak(t *testing.T) { - _, cidr, _ := net.ParseCIDR("192.168.1.0/24") + _, cidr, _ := netutils.ParseCIDRSloppy("192.168.1.0/24") previous, err := ipallocator.NewCIDRRange(cidr) if err != nil { t.Fatal(err) } - previous.Allocate(net.ParseIP("192.168.1.10")) + previous.Allocate(netutils.ParseIPSloppy("192.168.1.10")) var dst api.RangeAllocation err = previous.Snapshot(&dst) @@ -115,7 +116,7 @@ func TestRepairLeak(t *testing.T) { if err != nil { t.Fatal(err) } - if !after.Has(net.ParseIP("192.168.1.10")) { + if !after.Has(netutils.ParseIPSloppy("192.168.1.10")) { t.Errorf("expected ipallocator to still have leaked IP") } } @@ -127,13 +128,13 @@ func TestRepairLeak(t *testing.T) { if err != nil { t.Fatal(err) } - if after.Has(net.ParseIP("192.168.1.10")) { + if after.Has(netutils.ParseIPSloppy("192.168.1.10")) { t.Errorf("expected ipallocator to not have leaked IP") } } func TestRepairWithExisting(t *testing.T) { - _, cidr, _ := net.ParseCIDR("192.168.1.0/24") + _, cidr, _ := netutils.ParseCIDRSloppy("192.168.1.0/24") previous, err := ipallocator.NewCIDRRange(cidr) if err != nil { t.Fatal(err) @@ -211,7 +212,7 @@ func TestRepairWithExisting(t *testing.T) { if err != nil { t.Fatal(err) } - if !after.Has(net.ParseIP("192.168.1.1")) || !after.Has(net.ParseIP("192.168.1.100")) { + if !after.Has(netutils.ParseIPSloppy("192.168.1.1")) || !after.Has(netutils.ParseIPSloppy("192.168.1.100")) { t.Errorf("unexpected ipallocator state: %#v", after) } if free := after.Free(); free != 252 { @@ -220,7 +221,7 @@ func TestRepairWithExisting(t *testing.T) { } func makeRangeRegistry(t *testing.T, cidrRange string) *mockRangeRegistry { - _, cidr, _ := net.ParseCIDR(cidrRange) + _, cidr, _ := netutils.ParseCIDRSloppy(cidrRange) previous, err := ipallocator.NewCIDRRange(cidr) if err != nil { t.Fatal(err) @@ -247,7 +248,7 @@ func makeFakeClientSet() *fake.Clientset { return fake.NewSimpleClientset() } func makeIPNet(cidr string) *net.IPNet { - _, net, _ := net.ParseCIDR(cidr) + _, net, _ := netutils.ParseCIDRSloppy(cidr) return net } func TestShouldWorkOnSecondary(t *testing.T) { @@ -337,8 +338,8 @@ func TestRepairDualStack(t *testing.T) { item: &api.RangeAllocation{Range: "2000::/108"}, } - _, cidr, _ := net.ParseCIDR(ipregistry.item.Range) - _, secondaryCIDR, _ := net.ParseCIDR(secondaryIPRegistry.item.Range) + _, cidr, _ := netutils.ParseCIDRSloppy(ipregistry.item.Range) + _, secondaryCIDR, _ := netutils.ParseCIDRSloppy(secondaryIPRegistry.item.Range) r := NewRepair(0, fakeClient.CoreV1(), fakeClient.CoreV1(), cidr, ipregistry, secondaryCIDR, secondaryIPRegistry) if err := r.RunOnce(); err != nil { @@ -369,20 +370,20 @@ func TestRepairDualStack(t *testing.T) { func TestRepairLeakDualStack(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() - _, cidr, _ := net.ParseCIDR("192.168.1.0/24") + _, cidr, _ := netutils.ParseCIDRSloppy("192.168.1.0/24") previous, err := ipallocator.NewCIDRRange(cidr) if err != nil { t.Fatal(err) } - previous.Allocate(net.ParseIP("192.168.1.10")) + previous.Allocate(netutils.ParseIPSloppy("192.168.1.10")) - _, secondaryCIDR, _ := net.ParseCIDR("2000::/108") + _, secondaryCIDR, _ := netutils.ParseCIDRSloppy("2000::/108") secondaryPrevious, err := ipallocator.NewCIDRRange(secondaryCIDR) if err != nil { t.Fatal(err) } - secondaryPrevious.Allocate(net.ParseIP("2000::1")) + secondaryPrevious.Allocate(netutils.ParseIPSloppy("2000::1")) var dst api.RangeAllocation err = previous.Snapshot(&dst) @@ -427,14 +428,14 @@ func TestRepairLeakDualStack(t *testing.T) { if err != nil { t.Fatal(err) } - if !after.Has(net.ParseIP("192.168.1.10")) { + if !after.Has(netutils.ParseIPSloppy("192.168.1.10")) { t.Errorf("expected ipallocator to still have leaked IP") } secondaryAfter, err := ipallocator.NewFromSnapshot(secondaryIPRegistry.updated) if err != nil { t.Fatal(err) } - if !secondaryAfter.Has(net.ParseIP("2000::1")) { + if !secondaryAfter.Has(netutils.ParseIPSloppy("2000::1")) { t.Errorf("expected ipallocator to still have leaked IP") } } @@ -447,14 +448,14 @@ func TestRepairLeakDualStack(t *testing.T) { if err != nil { t.Fatal(err) } - if after.Has(net.ParseIP("192.168.1.10")) { + if after.Has(netutils.ParseIPSloppy("192.168.1.10")) { t.Errorf("expected ipallocator to not have leaked IP") } secondaryAfter, err := ipallocator.NewFromSnapshot(secondaryIPRegistry.updated) if err != nil { t.Fatal(err) } - if secondaryAfter.Has(net.ParseIP("2000::1")) { + if secondaryAfter.Has(netutils.ParseIPSloppy("2000::1")) { t.Errorf("expected ipallocator to not have leaked IP") } } @@ -466,13 +467,13 @@ func TestRepairWithExistingDualStack(t *testing.T) { // this will work every where except alloc & validation defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() - _, cidr, _ := net.ParseCIDR("192.168.1.0/24") + _, cidr, _ := netutils.ParseCIDRSloppy("192.168.1.0/24") previous, err := ipallocator.NewCIDRRange(cidr) if err != nil { t.Fatal(err) } - _, secondaryCIDR, _ := net.ParseCIDR("2000::/108") + _, secondaryCIDR, _ := netutils.ParseCIDRSloppy("2000::/108") secondaryPrevious, err := ipallocator.NewCIDRRange(secondaryCIDR) if err != nil { t.Fatal(err) @@ -613,7 +614,7 @@ func TestRepairWithExistingDualStack(t *testing.T) { t.Fatal(err) } - if !after.Has(net.ParseIP("192.168.1.1")) || !after.Has(net.ParseIP("192.168.1.100")) { + if !after.Has(netutils.ParseIPSloppy("192.168.1.1")) || !after.Has(netutils.ParseIPSloppy("192.168.1.100")) { t.Errorf("unexpected ipallocator state: %#v", after) } if free := after.Free(); free != 251 { @@ -624,7 +625,7 @@ func TestRepairWithExistingDualStack(t *testing.T) { if err != nil { t.Fatal(err) } - if !secondaryAfter.Has(net.ParseIP("2000::1")) || !secondaryAfter.Has(net.ParseIP("2000::2")) { + if !secondaryAfter.Has(netutils.ParseIPSloppy("2000::1")) || !secondaryAfter.Has(netutils.ParseIPSloppy("2000::2")) { t.Errorf("unexpected ipallocator state: %#v", secondaryAfter) } if free := secondaryAfter.Free(); free != 65533 { diff --git a/pkg/registry/core/service/ipallocator/storage/storage_test.go b/pkg/registry/core/service/ipallocator/storage/storage_test.go index eb9bbafc2d1a..a97f9287127e 100644 --- a/pkg/registry/core/service/ipallocator/storage/storage_test.go +++ b/pkg/registry/core/service/ipallocator/storage/storage_test.go @@ -18,7 +18,6 @@ package storage import ( "context" - "net" "strings" "testing" @@ -32,11 +31,12 @@ import ( allocatorstore "k8s.io/kubernetes/pkg/registry/core/service/allocator/storage" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/registrytest" + netutils "k8s.io/utils/net" ) func newStorage(t *testing.T) (*etcd3testing.EtcdTestServer, ipallocator.Interface, allocator.Interface, storage.Interface, factory.DestroyFunc) { etcdStorage, server := registrytest.NewEtcdStorage(t, "") - _, cidr, err := net.ParseCIDR("192.168.1.0/24") + _, cidr, err := netutils.ParseCIDRSloppy("192.168.1.0/24") if err != nil { t.Fatal(err) } @@ -66,7 +66,7 @@ func newStorage(t *testing.T) (*etcd3testing.EtcdTestServer, ipallocator.Interfa } func validNewRangeAllocation() *api.RangeAllocation { - _, cidr, _ := net.ParseCIDR("192.168.1.0/24") + _, cidr, _ := netutils.ParseCIDRSloppy("192.168.1.0/24") return &api.RangeAllocation{ Range: cidr.String(), } @@ -79,7 +79,7 @@ func key() string { func TestEmpty(t *testing.T) { _, storage, _, _, destroyFunc := newStorage(t) defer destroyFunc() - if err := storage.Allocate(net.ParseIP("192.168.1.2")); !strings.Contains(err.Error(), "cannot allocate resources of type serviceipallocations at this time") { + if err := storage.Allocate(netutils.ParseIPSloppy("192.168.1.2")); !strings.Contains(err.Error(), "cannot allocate resources of type serviceipallocations at this time") { t.Fatal(err) } } @@ -87,7 +87,7 @@ func TestEmpty(t *testing.T) { func TestErrors(t *testing.T) { _, storage, _, _, destroyFunc := newStorage(t) defer destroyFunc() - err := storage.Allocate(net.ParseIP("192.168.0.0")) + err := storage.Allocate(netutils.ParseIPSloppy("192.168.0.0")) if _, ok := err.(*ipallocator.ErrNotInRange); !ok { t.Fatal(err) } @@ -100,7 +100,7 @@ func TestStore(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - if err := storage.Allocate(net.ParseIP("192.168.1.2")); err != nil { + if err := storage.Allocate(netutils.ParseIPSloppy("192.168.1.2")); err != nil { t.Fatal(err) } ok, err := backing.Allocate(1) @@ -110,7 +110,7 @@ func TestStore(t *testing.T) { if ok { t.Fatal("Expected allocation to fail") } - if err := storage.Allocate(net.ParseIP("192.168.1.2")); err != ipallocator.ErrAllocated { + if err := storage.Allocate(netutils.ParseIPSloppy("192.168.1.2")); err != ipallocator.ErrAllocated { t.Fatal(err) } } diff --git a/pkg/registry/core/service/storage/rest.go b/pkg/registry/core/service/storage/rest.go index be029edc5572..313a41417eb3 100644 --- a/pkg/registry/core/service/storage/rest.go +++ b/pkg/registry/core/service/storage/rest.go @@ -45,7 +45,7 @@ import ( registry "k8s.io/kubernetes/pkg/registry/core/service" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/core/service/portallocator" - netutil "k8s.io/utils/net" + netutils "k8s.io/utils/net" "sigs.k8s.io/structured-merge-diff/v4/fieldpath" ) @@ -108,7 +108,7 @@ func NewREST( // detect this cluster default Service IPFamily (ipfamily of --service-cluster-ip-range[0]) serviceIPFamily := api.IPv4Protocol cidr := serviceIPs.CIDR() - if netutil.IsIPv6CIDR(&cidr) { + if netutils.IsIPv6CIDR(&cidr) { serviceIPFamily = api.IPv6Protocol } @@ -612,7 +612,7 @@ func (rs *REST) allocClusterIPs(service *api.Service, toAlloc map[api.IPFamily]s } allocated[family] = allocatedIP.String() } else { - parsedIP := net.ParseIP(ip) + parsedIP := netutils.ParseIPSloppy(ip) if err := allocator.Allocate(parsedIP); err != nil { el := field.ErrorList{field.Invalid(field.NewPath("spec", "clusterIPs"), service.Spec.ClusterIPs, fmt.Sprintf("failed to allocate IP %v: %v", ip, err))} return allocated, errors.NewInvalid(api.Kind("Service"), service.Name, el) @@ -638,7 +638,7 @@ func (rs *REST) releaseClusterIPs(toRelease map[api.IPFamily]string) (map[api.IP continue } - parsedIP := net.ParseIP(ip) + parsedIP := netutils.ParseIPSloppy(ip) if err := allocator.Release(parsedIP); err != nil { return released, err } @@ -825,7 +825,7 @@ func (rs *REST) releaseServiceClusterIP(service *api.Service) (released map[api. // we need to do that to handle cases where allocator is no longer configured on // cluster - if netutil.IsIPv6String(service.Spec.ClusterIP) { + if netutils.IsIPv6String(service.Spec.ClusterIP) { toRelease[api.IPv6Protocol] = service.Spec.ClusterIP } else { toRelease[api.IPv4Protocol] = service.Spec.ClusterIP @@ -852,7 +852,7 @@ func (rs *REST) releaseServiceClusterIPs(service *api.Service) (released map[api toRelease := make(map[api.IPFamily]string) for _, ip := range service.Spec.ClusterIPs { - if netutil.IsIPv6String(ip) { + if netutils.IsIPv6String(ip) { toRelease[api.IPv6Protocol] = ip } else { toRelease[api.IPv4Protocol] = ip @@ -974,7 +974,7 @@ func (rs *REST) tryDefaultValidateServiceClusterIPFields(oldService, service *ap // we have previously validated for ip correctness and if family exist it will match ip family // so the following is safe to do - isIPv6 := netutil.IsIPv6String(ip) + isIPv6 := netutils.IsIPv6String(ip) // Family is not specified yet. if i >= len(service.Spec.IPFamilies) { diff --git a/pkg/registry/core/service/storage/rest_test.go b/pkg/registry/core/service/storage/rest_test.go index 66ad616982b2..8e2dfdf0f1b9 100644 --- a/pkg/registry/core/service/storage/rest_test.go +++ b/pkg/registry/core/service/storage/rest_test.go @@ -49,7 +49,7 @@ import ( "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/core/service/portallocator" "k8s.io/kubernetes/pkg/registry/registrytest" - netutil "k8s.io/utils/net" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" "sigs.k8s.io/structured-merge-diff/v4/fieldpath" ) @@ -245,14 +245,14 @@ func NewTestRESTWithPods(t *testing.T, endpoints []*api.Endpoints, pods []api.Po } func makeIPNet(t *testing.T) *net.IPNet { - _, net, err := net.ParseCIDR("1.2.3.0/24") + _, net, err := netutils.ParseCIDRSloppy("1.2.3.0/24") if err != nil { t.Error(err) } return net } func makeIPNet6(t *testing.T) *net.IPNet { - _, net, err := net.ParseCIDR("2000::/108") + _, net, err := netutils.ParseCIDRSloppy("2000::/108") if err != nil { t.Error(err) } @@ -261,7 +261,7 @@ func makeIPNet6(t *testing.T) *net.IPNet { func ipIsAllocated(t *testing.T, alloc ipallocator.Interface, ipstr string) bool { t.Helper() - ip := net.ParseIP(ipstr) + ip := netutils.ParseIPSloppy(ipstr) if ip == nil { t.Errorf("error parsing IP %q", ipstr) return false @@ -334,7 +334,7 @@ func TestServiceRegistryCreate(t *testing.T) { allocator := storage.serviceIPAllocatorsByFamily[family] c := allocator.CIDR() cidr := &c - if !cidr.Contains(net.ParseIP(createdService.Spec.ClusterIPs[i])) { + if !cidr.Contains(netutils.ParseIPSloppy(createdService.Spec.ClusterIPs[i])) { t.Errorf("Unexpected ClusterIP: %s", createdService.Spec.ClusterIPs[i]) } } @@ -1309,7 +1309,7 @@ func TestServiceRegistryIPAllocation(t *testing.T) { if createdSvc1.Name != "foo" { t.Errorf("Expected foo, but got %v", createdSvc1.Name) } - if !makeIPNet(t).Contains(net.ParseIP(createdSvc1.Spec.ClusterIPs[0])) { + if !makeIPNet(t).Contains(netutils.ParseIPSloppy(createdSvc1.Spec.ClusterIPs[0])) { t.Errorf("Unexpected ClusterIP: %s", createdSvc1.Spec.ClusterIPs[0]) } @@ -1323,7 +1323,7 @@ func TestServiceRegistryIPAllocation(t *testing.T) { if createdSvc2.Name != "bar" { t.Errorf("Expected bar, but got %v", createdSvc2.Name) } - if !makeIPNet(t).Contains(net.ParseIP(createdSvc2.Spec.ClusterIPs[0])) { + if !makeIPNet(t).Contains(netutils.ParseIPSloppy(createdSvc2.Spec.ClusterIPs[0])) { t.Errorf("Unexpected ClusterIP: %s", createdSvc2.Spec.ClusterIPs[0]) } @@ -1362,7 +1362,7 @@ func TestServiceRegistryIPReallocation(t *testing.T) { if createdSvc1.Name != "foo" { t.Errorf("Expected foo, but got %v", createdSvc1.Name) } - if !makeIPNet(t).Contains(net.ParseIP(createdSvc1.Spec.ClusterIPs[0])) { + if !makeIPNet(t).Contains(netutils.ParseIPSloppy(createdSvc1.Spec.ClusterIPs[0])) { t.Errorf("Unexpected ClusterIP: %s", createdSvc1.Spec.ClusterIPs[0]) } @@ -1381,7 +1381,7 @@ func TestServiceRegistryIPReallocation(t *testing.T) { if createdSvc2.Name != "bar" { t.Errorf("Expected bar, but got %v", createdSvc2.Name) } - if !makeIPNet(t).Contains(net.ParseIP(createdSvc2.Spec.ClusterIPs[0])) { + if !makeIPNet(t).Contains(netutils.ParseIPSloppy(createdSvc2.Spec.ClusterIPs[0])) { t.Errorf("Unexpected ClusterIP: %s", createdSvc2.Spec.ClusterIPs[0]) } } @@ -1400,7 +1400,7 @@ func TestServiceRegistryIPUpdate(t *testing.T) { if createdService.Spec.Ports[0].Port != svc.Spec.Ports[0].Port { t.Errorf("Expected port %d, but got %v", svc.Spec.Ports[0].Port, createdService.Spec.Ports[0].Port) } - if !makeIPNet(t).Contains(net.ParseIP(createdService.Spec.ClusterIPs[0])) { + if !makeIPNet(t).Contains(netutils.ParseIPSloppy(createdService.Spec.ClusterIPs[0])) { t.Errorf("Unexpected ClusterIP: %s", createdService.Spec.ClusterIPs[0]) } @@ -1451,7 +1451,7 @@ func TestServiceRegistryIPLoadBalancer(t *testing.T) { if createdService.Spec.Ports[0].Port != svc.Spec.Ports[0].Port { t.Errorf("Expected port %d, but got %v", svc.Spec.Ports[0].Port, createdService.Spec.Ports[0].Port) } - if !makeIPNet(t).Contains(net.ParseIP(createdService.Spec.ClusterIPs[0])) { + if !makeIPNet(t).Contains(netutils.ParseIPSloppy(createdService.Spec.ClusterIPs[0])) { t.Errorf("Unexpected ClusterIP: %s", createdService.Spec.ClusterIPs[0]) } @@ -1797,7 +1797,7 @@ func TestInitClusterIP(t *testing.T) { if !ok { t.Fatalf("test is incorrect, allocator does not exist on rest") } - if err := allocator.Allocate(net.ParseIP(ip)); err != nil { + if err := allocator.Allocate(netutils.ParseIPSloppy(ip)); err != nil { t.Fatalf("test is incorrect, allocator failed to pre allocate IP with error:%v", err) } } @@ -1821,7 +1821,7 @@ func TestInitClusterIP(t *testing.T) { if newSvc.Spec.ClusterIPs[0] != api.ClusterIPNone { for _, ip := range newSvc.Spec.ClusterIPs { family := api.IPv4Protocol - if netutil.IsIPv6String(ip) { + if netutils.IsIPv6String(ip) { family = api.IPv6Protocol } allocator := storage.serviceIPAllocatorsByFamily[family] @@ -2225,7 +2225,7 @@ func TestServiceUpgrade(t *testing.T) { // allocated IP for family, ip := range testCase.allocateIPsBeforeUpdate { alloc := storage.serviceIPAllocatorsByFamily[family] - if err := alloc.Allocate(net.ParseIP(ip)); err != nil { + if err := alloc.Allocate(netutils.ParseIPSloppy(ip)); err != nil { t.Fatalf("test is incorrect, unable to preallocate ip:%v", ip) } } @@ -3653,7 +3653,7 @@ func isValidClusterIPFields(t *testing.T, storage *REST, pre *api.Service, post } // ips must match families for i, ip := range post.Spec.ClusterIPs { - isIPv6 := netutil.IsIPv6String(ip) + isIPv6 := netutils.IsIPv6String(ip) if isIPv6 && post.Spec.IPFamilies[i] != api.IPv6Protocol { t.Fatalf("ips does not match assigned families %+v %+v", post.Spec.ClusterIPs, post.Spec.IPFamilies) } diff --git a/pkg/registry/core/service/storage/storage_test.go b/pkg/registry/core/service/storage/storage_test.go index 9aab79788a59..b9f3d5534bee 100644 --- a/pkg/registry/core/service/storage/storage_test.go +++ b/pkg/registry/core/service/storage/storage_test.go @@ -17,7 +17,6 @@ limitations under the License. package storage import ( - "net" "reflect" "testing" @@ -31,6 +30,7 @@ import ( etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing" api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/registry/registrytest" + netutils "k8s.io/utils/net" utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" @@ -421,7 +421,7 @@ func TestServiceDefaultOnRead(t *testing.T) { ResourcePrefix: "services", } - _, cidr, err := net.ParseCIDR("10.0.0.0/24") + _, cidr, err := netutils.ParseCIDRSloppy("10.0.0.0/24") if err != nil { t.Fatalf("failed to parse CIDR") } @@ -479,7 +479,7 @@ func TestServiceDefaulting(t *testing.T) { ResourcePrefix: "services", } - _, cidr, err := net.ParseCIDR(primaryCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(primaryCIDR) if err != nil { t.Fatalf("failed to parse CIDR %s", primaryCIDR) } diff --git a/pkg/registry/core/service/strategy_test.go b/pkg/registry/core/service/strategy_test.go index 91c4b6e50ede..b1bcefbbc8c7 100644 --- a/pkg/registry/core/service/strategy_test.go +++ b/pkg/registry/core/service/strategy_test.go @@ -17,7 +17,6 @@ limitations under the License. package service import ( - "net" "reflect" "testing" @@ -34,11 +33,12 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/features" + netutils "k8s.io/utils/net" utilpointer "k8s.io/utils/pointer" ) func newStrategy(cidr string, hasSecondary bool) (testStrategy Strategy, testStatusStrategy Strategy) { - _, testCIDR, err := net.ParseCIDR(cidr) + _, testCIDR, err := netutils.ParseCIDRSloppy(cidr) if err != nil { panic("invalid CIDR") } diff --git a/pkg/scheduler/apis/config/v1/zz_generated.conversion.go b/pkg/scheduler/apis/config/v1/zz_generated.conversion.go index 79c3a50a8a2b..677a54672e7e 100644 --- a/pkg/scheduler/apis/config/v1/zz_generated.conversion.go +++ b/pkg/scheduler/apis/config/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1/zz_generated.deepcopy.go b/pkg/scheduler/apis/config/v1/zz_generated.deepcopy.go index 89e533d99309..87181b43048c 100644 --- a/pkg/scheduler/apis/config/v1/zz_generated.deepcopy.go +++ b/pkg/scheduler/apis/config/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1/zz_generated.defaults.go b/pkg/scheduler/apis/config/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/pkg/scheduler/apis/config/v1/zz_generated.defaults.go +++ b/pkg/scheduler/apis/config/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1beta1/defaults.go b/pkg/scheduler/apis/config/v1beta1/defaults.go index 8afd5b6cb8f0..8ccec6c810f8 100644 --- a/pkg/scheduler/apis/config/v1beta1/defaults.go +++ b/pkg/scheduler/apis/config/v1beta1/defaults.go @@ -28,6 +28,7 @@ import ( "k8s.io/kube-scheduler/config/v1beta1" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/scheduler/apis/config" + netutils "k8s.io/utils/net" "k8s.io/utils/pointer" ) @@ -143,7 +144,7 @@ func SetDefaults_KubeSchedulerConfiguration(obj *v1beta1.KubeSchedulerConfigurat } else { // Something went wrong splitting the host/port, could just be a missing port so check if the // existing value is a valid IP address. If so, use that with the default scheduler port - if host := net.ParseIP(*obj.HealthzBindAddress); host != nil { + if host := netutils.ParseIPSloppy(*obj.HealthzBindAddress); host != nil { hostPort := net.JoinHostPort(*obj.HealthzBindAddress, strconv.Itoa(config.DefaultInsecureSchedulerPort)) obj.HealthzBindAddress = &hostPort } else { @@ -165,7 +166,7 @@ func SetDefaults_KubeSchedulerConfiguration(obj *v1beta1.KubeSchedulerConfigurat } else { // Something went wrong splitting the host/port, could just be a missing port so check if the // existing value is a valid IP address. If so, use that with the default scheduler port - if host := net.ParseIP(*obj.MetricsBindAddress); host != nil { + if host := netutils.ParseIPSloppy(*obj.MetricsBindAddress); host != nil { hostPort := net.JoinHostPort(*obj.MetricsBindAddress, strconv.Itoa(config.DefaultInsecureSchedulerPort)) obj.MetricsBindAddress = &hostPort } else { diff --git a/pkg/scheduler/apis/config/v1beta1/zz_generated.conversion.go b/pkg/scheduler/apis/config/v1beta1/zz_generated.conversion.go index 3545e7693313..692a2cd42b95 100644 --- a/pkg/scheduler/apis/config/v1beta1/zz_generated.conversion.go +++ b/pkg/scheduler/apis/config/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1beta1/zz_generated.deepcopy.go b/pkg/scheduler/apis/config/v1beta1/zz_generated.deepcopy.go index 016d58c856a0..a47bc95e8a7d 100644 --- a/pkg/scheduler/apis/config/v1beta1/zz_generated.deepcopy.go +++ b/pkg/scheduler/apis/config/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1beta1/zz_generated.defaults.go b/pkg/scheduler/apis/config/v1beta1/zz_generated.defaults.go index 0dfb227138ad..c605842954f1 100644 --- a/pkg/scheduler/apis/config/v1beta1/zz_generated.defaults.go +++ b/pkg/scheduler/apis/config/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1beta2/defaults.go b/pkg/scheduler/apis/config/v1beta2/defaults.go index 8d577e15bcbb..d42be645b344 100644 --- a/pkg/scheduler/apis/config/v1beta2/defaults.go +++ b/pkg/scheduler/apis/config/v1beta2/defaults.go @@ -28,6 +28,7 @@ import ( "k8s.io/kube-scheduler/config/v1beta2" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/scheduler/apis/config" + netutils "k8s.io/utils/net" "k8s.io/utils/pointer" ) @@ -141,7 +142,7 @@ func SetDefaults_KubeSchedulerConfiguration(obj *v1beta2.KubeSchedulerConfigurat } else { // Something went wrong splitting the host/port, could just be a missing port so check if the // existing value is a valid IP address. If so, use that with the default scheduler port - if host := net.ParseIP(*obj.HealthzBindAddress); host != nil { + if host := netutils.ParseIPSloppy(*obj.HealthzBindAddress); host != nil { hostPort := net.JoinHostPort(*obj.HealthzBindAddress, strconv.Itoa(config.DefaultInsecureSchedulerPort)) obj.HealthzBindAddress = &hostPort } @@ -160,7 +161,7 @@ func SetDefaults_KubeSchedulerConfiguration(obj *v1beta2.KubeSchedulerConfigurat } else { // Something went wrong splitting the host/port, could just be a missing port so check if the // existing value is a valid IP address. If so, use that with the default scheduler port - if host := net.ParseIP(*obj.MetricsBindAddress); host != nil { + if host := netutils.ParseIPSloppy(*obj.MetricsBindAddress); host != nil { hostPort := net.JoinHostPort(*obj.MetricsBindAddress, strconv.Itoa(config.DefaultInsecureSchedulerPort)) obj.MetricsBindAddress = &hostPort } diff --git a/pkg/scheduler/apis/config/v1beta2/zz_generated.conversion.go b/pkg/scheduler/apis/config/v1beta2/zz_generated.conversion.go index c66b8ec66ae6..fc71ad79c43c 100644 --- a/pkg/scheduler/apis/config/v1beta2/zz_generated.conversion.go +++ b/pkg/scheduler/apis/config/v1beta2/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1beta2/zz_generated.deepcopy.go b/pkg/scheduler/apis/config/v1beta2/zz_generated.deepcopy.go index 8465e09932a5..e38909ba4a91 100644 --- a/pkg/scheduler/apis/config/v1beta2/zz_generated.deepcopy.go +++ b/pkg/scheduler/apis/config/v1beta2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/v1beta2/zz_generated.defaults.go b/pkg/scheduler/apis/config/v1beta2/zz_generated.defaults.go index 0cd004b846d7..359ee6437660 100644 --- a/pkg/scheduler/apis/config/v1beta2/zz_generated.defaults.go +++ b/pkg/scheduler/apis/config/v1beta2/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/apis/config/zz_generated.deepcopy.go b/pkg/scheduler/apis/config/zz_generated.deepcopy.go index a3ae3ffe6fd8..59a74d79fb6c 100644 --- a/pkg/scheduler/apis/config/zz_generated.deepcopy.go +++ b/pkg/scheduler/apis/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/pkg/scheduler/internal/cache/debugger/signal.go b/pkg/scheduler/internal/cache/debugger/signal.go index 9a56b04d8d77..df5c83cea0d0 100644 --- a/pkg/scheduler/internal/cache/debugger/signal.go +++ b/pkg/scheduler/internal/cache/debugger/signal.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/pkg/security/apparmor/validate_disabled.go b/pkg/security/apparmor/validate_disabled.go index 875054a9418b..91a82c2ef82d 100644 --- a/pkg/security/apparmor/validate_disabled.go +++ b/pkg/security/apparmor/validate_disabled.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/bandwidth/linux.go b/pkg/util/bandwidth/linux.go index c105fdea5c24..4f0805aa6910 100644 --- a/pkg/util/bandwidth/linux.go +++ b/pkg/util/bandwidth/linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* @@ -30,6 +31,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/utils/exec" + netutils "k8s.io/utils/net" "k8s.io/klog/v2" ) @@ -103,7 +105,7 @@ func (t *tcShaper) nextClassID() (int, error) { // Convert a CIDR from text to a hex representation // Strips any masked parts of the IP, so 1.2.3.4/16 becomes hex(1.2.0.0)/ffffffff func hexCIDR(cidr string) (string, error) { - ip, ipnet, err := net.ParseCIDR(cidr) + ip, ipnet, err := netutils.ParseCIDRSloppy(cidr) if err != nil { return "", err } diff --git a/pkg/util/bandwidth/linux_test.go b/pkg/util/bandwidth/linux_test.go index 782adb096a6c..91f6cb101f2b 100644 --- a/pkg/util/bandwidth/linux_test.go +++ b/pkg/util/bandwidth/linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/bandwidth/unsupported.go b/pkg/util/bandwidth/unsupported.go index 914f435d9538..e3c288015fcf 100644 --- a/pkg/util/bandwidth/unsupported.go +++ b/pkg/util/bandwidth/unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/coverage/coverage.go b/pkg/util/coverage/coverage.go index 808da83c3ebc..df64854a6102 100644 --- a/pkg/util/coverage/coverage.go +++ b/pkg/util/coverage/coverage.go @@ -1,3 +1,4 @@ +//go:build coverage // +build coverage /* diff --git a/pkg/util/coverage/coverage_disabled.go b/pkg/util/coverage/coverage_disabled.go index 2e2f12f6347c..f1c89a4d544a 100644 --- a/pkg/util/coverage/coverage_disabled.go +++ b/pkg/util/coverage/coverage_disabled.go @@ -1,3 +1,4 @@ +//go:build !coverage // +build !coverage /* diff --git a/pkg/util/flag/flags.go b/pkg/util/flag/flags.go index 9a4241d67bbb..9113769fcf98 100644 --- a/pkg/util/flag/flags.go +++ b/pkg/util/flag/flags.go @@ -30,7 +30,7 @@ import ( utilnet "k8s.io/apimachinery/pkg/util/net" corev1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" - utilsnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) // TODO(mikedanese): remove these flag wrapper types when we remove command line flags @@ -53,7 +53,7 @@ func (v IPVar) Set(s string) error { v.Val = nil return nil } - if net.ParseIP(s) == nil { + if netutils.ParseIPSloppy(s) == nil { return fmt.Errorf("%q is not a valid IP address", s) } if v.Val == nil { @@ -96,7 +96,7 @@ func (v IPPortVar) Set(s string) error { // Both IP and IP:port are valid. // Attempt to parse into IP first. - if net.ParseIP(s) != nil { + if netutils.ParseIPSloppy(s) != nil { *v.Val = s return nil } @@ -106,10 +106,10 @@ func (v IPPortVar) Set(s string) error { if err != nil { return fmt.Errorf("%q is not in a valid format (ip or ip:port): %v", s, err) } - if net.ParseIP(host) == nil { + if netutils.ParseIPSloppy(host) == nil { return fmt.Errorf("%q is not a valid IP address", host) } - if _, err := utilsnet.ParsePort(port, true); err != nil { + if _, err := netutils.ParsePort(port, true); err != nil { return fmt.Errorf("%q is not a valid number", port) } *v.Val = s diff --git a/pkg/util/flock/flock_other.go b/pkg/util/flock/flock_other.go index 069a5b3a2cb1..33c7a0799ce8 100644 --- a/pkg/util/flock/flock_other.go +++ b/pkg/util/flock/flock_other.go @@ -1,3 +1,4 @@ +//go:build !linux && !darwin && !freebsd && !openbsd && !netbsd && !dragonfly // +build !linux,!darwin,!freebsd,!openbsd,!netbsd,!dragonfly /* diff --git a/pkg/util/flock/flock_unix.go b/pkg/util/flock/flock_unix.go index 3dae621b736d..d44c1a8d5695 100644 --- a/pkg/util/flock/flock_unix.go +++ b/pkg/util/flock/flock_unix.go @@ -1,3 +1,4 @@ +//go:build linux || darwin || freebsd || openbsd || netbsd || dragonfly // +build linux darwin freebsd openbsd netbsd dragonfly /* diff --git a/pkg/util/ipset/ipset.go b/pkg/util/ipset/ipset.go index 52b646c231dd..3481480dedd6 100644 --- a/pkg/util/ipset/ipset.go +++ b/pkg/util/ipset/ipset.go @@ -19,13 +19,13 @@ package ipset import ( "bytes" "fmt" - "net" "regexp" "strconv" "strings" "k8s.io/klog/v2" utilexec "k8s.io/utils/exec" + netutils "k8s.io/utils/net" ) // Interface is an injectable interface for running ipset commands. Implementations must be goroutine-safe. @@ -183,7 +183,7 @@ func (e *Entry) Validate(set *IPSet) bool { } // IP2 can not be empty for `hash:ip,port,ip` type ip set - if net.ParseIP(e.IP2) == nil { + if netutils.ParseIPSloppy(e.IP2) == nil { klog.Errorf("Error parsing entry %v second ip address %v for ipset %v", e, e.IP2, set) return false } @@ -194,7 +194,7 @@ func (e *Entry) Validate(set *IPSet) bool { } // Net can not be empty for `hash:ip,port,net` type ip set - if _, ipNet, err := net.ParseCIDR(e.Net); ipNet == nil { + if _, ipNet, err := netutils.ParseCIDRSloppy(e.Net); ipNet == nil { klog.Errorf("Error parsing entry %v ip net %v for ipset %v, error: %v", e, e.Net, set, err) return false } @@ -250,7 +250,7 @@ func (e *Entry) checkIPandProtocol(set *IPSet) bool { return false } - if net.ParseIP(e.IP) == nil { + if netutils.ParseIPSloppy(e.IP) == nil { klog.Errorf("Error parsing entry %v ip address %v for ipset %v", e, e.IP, set) return false } diff --git a/pkg/util/iptables/iptables_linux.go b/pkg/util/iptables/iptables_linux.go index 6ee6260305a9..e30791730756 100644 --- a/pkg/util/iptables/iptables_linux.go +++ b/pkg/util/iptables/iptables_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/iptables/iptables_test.go b/pkg/util/iptables/iptables_test.go index ba3de85a50a8..042df17382f6 100644 --- a/pkg/util/iptables/iptables_test.go +++ b/pkg/util/iptables/iptables_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/iptables/iptables_unsupported.go b/pkg/util/iptables/iptables_unsupported.go index 17e61d762eb3..0c7c5ee3e651 100644 --- a/pkg/util/iptables/iptables_unsupported.go +++ b/pkg/util/iptables/iptables_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/iptables/monitor_test.go b/pkg/util/iptables/monitor_test.go index a9d915e90e50..e604abbb9d1b 100644 --- a/pkg/util/iptables/monitor_test.go +++ b/pkg/util/iptables/monitor_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/ipvs/ipvs_linux.go b/pkg/util/ipvs/ipvs_linux.go index f76dba48a508..914d2d9afbee 100644 --- a/pkg/util/ipvs/ipvs_linux.go +++ b/pkg/util/ipvs/ipvs_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/ipvs/ipvs_linux_test.go b/pkg/util/ipvs/ipvs_linux_test.go index f1b7559a5703..f58918f33e2e 100644 --- a/pkg/util/ipvs/ipvs_linux_test.go +++ b/pkg/util/ipvs/ipvs_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* @@ -20,11 +21,12 @@ package ipvs import ( "fmt" - "net" "reflect" "syscall" "testing" + netutils "k8s.io/utils/net" + libipvs "github.com/moby/ipvs" ) @@ -65,7 +67,7 @@ func Test_toVirtualServer(t *testing.T) { PEName: "", }, VirtualServer{ - Address: net.ParseIP("0.0.0.0"), + Address: netutils.ParseIPSloppy("0.0.0.0"), Protocol: "TCP", Port: 80, Scheduler: "", @@ -85,11 +87,11 @@ func Test_toVirtualServer(t *testing.T) { Timeout: 100, Netmask: 128, AddressFamily: syscall.AF_INET6, - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), PEName: "", }, VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "UDP", Port: 33434, Scheduler: "wlc", @@ -109,11 +111,11 @@ func Test_toVirtualServer(t *testing.T) { Timeout: 0, Netmask: 0xffffffff, AddressFamily: syscall.AF_INET, - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), PEName: "", }, VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "", Port: 0, Scheduler: "lc", @@ -137,7 +139,7 @@ func Test_toVirtualServer(t *testing.T) { PEName: "", }, VirtualServer{ - Address: net.ParseIP("::0"), + Address: netutils.ParseIPSloppy("::0"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -161,7 +163,7 @@ func Test_toVirtualServer(t *testing.T) { PEName: "", }, VirtualServer{ - Address: net.ParseIP("0.0.0.0"), + Address: netutils.ParseIPSloppy("0.0.0.0"), Protocol: "SCTP", Port: 80, Scheduler: "", @@ -204,11 +206,11 @@ func Test_toIPVSService(t *testing.T) { Timeout: 0, Netmask: 0xffffffff, AddressFamily: syscall.AF_INET, - Address: net.ParseIP("0.0.0.0"), + Address: netutils.ParseIPSloppy("0.0.0.0"), PEName: "", }, VirtualServer{ - Address: net.ParseIP("0.0.0.0"), + Address: netutils.ParseIPSloppy("0.0.0.0"), Protocol: "TCP", Port: 80, Scheduler: "", @@ -226,11 +228,11 @@ func Test_toIPVSService(t *testing.T) { Timeout: 100, Netmask: 128, AddressFamily: syscall.AF_INET6, - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), PEName: "", }, VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "UDP", Port: 33434, Scheduler: "wlc", @@ -248,11 +250,11 @@ func Test_toIPVSService(t *testing.T) { Timeout: 0, Netmask: 0xffffffff, AddressFamily: syscall.AF_INET, - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), PEName: "", }, VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "", Port: 0, Scheduler: "lc", @@ -270,11 +272,11 @@ func Test_toIPVSService(t *testing.T) { Timeout: 0, Netmask: 128, AddressFamily: syscall.AF_INET6, - Address: net.ParseIP("::0"), + Address: netutils.ParseIPSloppy("::0"), PEName: "", }, VirtualServer{ - Address: net.ParseIP("::0"), + Address: netutils.ParseIPSloppy("::0"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -305,10 +307,10 @@ func Test_toRealServer(t *testing.T) { Port: 54321, ConnectionFlags: 0, Weight: 1, - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), }, RealServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Port: 54321, Weight: 1, }, @@ -318,10 +320,10 @@ func Test_toRealServer(t *testing.T) { Port: 53, ConnectionFlags: 0, Weight: 1, - Address: net.ParseIP("2002::cafe"), + Address: netutils.ParseIPSloppy("2002::cafe"), }, RealServer{ - Address: net.ParseIP("2002::cafe"), + Address: netutils.ParseIPSloppy("2002::cafe"), Port: 53, Weight: 1, }, @@ -345,7 +347,7 @@ func Test_toIPVSDestination(t *testing.T) { }{ { RealServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Port: 54321, Weight: 1, }, @@ -353,12 +355,12 @@ func Test_toIPVSDestination(t *testing.T) { Port: 54321, ConnectionFlags: 0, Weight: 1, - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), }, }, { RealServer{ - Address: net.ParseIP("2002::cafe"), + Address: netutils.ParseIPSloppy("2002::cafe"), Port: 53, Weight: 1, }, @@ -366,7 +368,7 @@ func Test_toIPVSDestination(t *testing.T) { Port: 53, ConnectionFlags: 0, Weight: 1, - Address: net.ParseIP("2002::cafe"), + Address: netutils.ParseIPSloppy("2002::cafe"), }, }, } diff --git a/pkg/util/ipvs/ipvs_test.go b/pkg/util/ipvs/ipvs_test.go index 408966818f37..64a10b2a5cd9 100644 --- a/pkg/util/ipvs/ipvs_test.go +++ b/pkg/util/ipvs/ipvs_test.go @@ -17,12 +17,12 @@ limitations under the License. package ipvs import ( - "net" "reflect" "sort" "testing" "k8s.io/apimachinery/pkg/util/version" + netutils "k8s.io/utils/net" ) func TestVirtualServerEqual(t *testing.T) { @@ -34,7 +34,7 @@ func TestVirtualServerEqual(t *testing.T) { }{ { svcA: &VirtualServer{ - Address: net.ParseIP("10.20.30.40"), + Address: netutils.ParseIPSloppy("10.20.30.40"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -42,7 +42,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -54,7 +54,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -62,7 +62,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("2017::beef"), + Address: netutils.ParseIPSloppy("2017::beef"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -74,7 +74,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "TCP", Port: 0, Scheduler: "wrr", @@ -82,7 +82,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("2012::beeef"), + Address: netutils.ParseIPSloppy("2012::beeef"), Protocol: "UDP", Port: 0, Scheduler: "wrr", @@ -94,7 +94,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "TCP", Port: 80, Scheduler: "wrr", @@ -102,7 +102,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "TCP", Port: 8080, Scheduler: "wrr", @@ -114,7 +114,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "TCP", Port: 80, Scheduler: "rr", @@ -122,7 +122,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "TCP", Port: 80, Scheduler: "wlc", @@ -134,7 +134,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "TCP", Port: 80, Scheduler: "rr", @@ -142,7 +142,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "TCP", Port: 80, Scheduler: "rr", @@ -154,7 +154,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -162,7 +162,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "", Port: 0, Scheduler: "wrr", @@ -174,7 +174,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "TCP", Port: 80, Scheduler: "rr", @@ -182,7 +182,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 10800, }, svcB: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "TCP", Port: 80, Scheduler: "rr", @@ -194,7 +194,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "TCP", Port: 0, Scheduler: "wrr", @@ -202,7 +202,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 0, }, svcB: &VirtualServer{ - Address: net.ParseIP("2012::beeef"), + Address: netutils.ParseIPSloppy("2012::beeef"), Protocol: "SCTP", Port: 0, Scheduler: "wrr", @@ -214,7 +214,7 @@ func TestVirtualServerEqual(t *testing.T) { }, { svcA: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "SCTP", Port: 80, Scheduler: "rr", @@ -222,7 +222,7 @@ func TestVirtualServerEqual(t *testing.T) { Timeout: 10800, }, svcB: &VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Protocol: "SCTP", Port: 80, Scheduler: "rr", @@ -251,11 +251,11 @@ func TestRealServerEqual(t *testing.T) { }{ { rsA: &RealServer{ - Address: net.ParseIP("10.20.30.40"), + Address: netutils.ParseIPSloppy("10.20.30.40"), Port: 80, }, rsB: &RealServer{ - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Port: 80, }, equal: false, @@ -263,11 +263,11 @@ func TestRealServerEqual(t *testing.T) { }, { rsA: &RealServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Port: 80, }, rsB: &RealServer{ - Address: net.ParseIP("2017::beef"), + Address: netutils.ParseIPSloppy("2017::beef"), Port: 80, }, equal: false, @@ -275,11 +275,11 @@ func TestRealServerEqual(t *testing.T) { }, { rsA: &RealServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Port: 80, }, rsB: &RealServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Port: 8080, }, equal: false, @@ -287,11 +287,11 @@ func TestRealServerEqual(t *testing.T) { }, { rsA: &RealServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Port: 3080, }, rsB: &RealServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Port: 3080, }, equal: true, @@ -299,11 +299,11 @@ func TestRealServerEqual(t *testing.T) { }, { rsA: &RealServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Port: 3080, }, rsB: &RealServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Port: 3080, }, equal: true, @@ -326,7 +326,7 @@ func TestFrontendServiceString(t *testing.T) { }{ { svc: &VirtualServer{ - Address: net.ParseIP("10.20.30.40"), + Address: netutils.ParseIPSloppy("10.20.30.40"), Protocol: "TCP", Port: 80, }, @@ -334,7 +334,7 @@ func TestFrontendServiceString(t *testing.T) { }, { svc: &VirtualServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Protocol: "UDP", Port: 8080, }, @@ -342,7 +342,7 @@ func TestFrontendServiceString(t *testing.T) { }, { svc: &VirtualServer{ - Address: net.ParseIP("10.20.30.41"), + Address: netutils.ParseIPSloppy("10.20.30.41"), Protocol: "ESP", Port: 1234, }, @@ -364,14 +364,14 @@ func TestFrontendDestinationString(t *testing.T) { }{ { svc: &RealServer{ - Address: net.ParseIP("10.20.30.40"), + Address: netutils.ParseIPSloppy("10.20.30.40"), Port: 80, }, expected: "10.20.30.40:80", }, { svc: &RealServer{ - Address: net.ParseIP("2012::beef"), + Address: netutils.ParseIPSloppy("2012::beef"), Port: 8080, }, expected: "[2012::beef]:8080", diff --git a/pkg/util/ipvs/ipvs_unsupported.go b/pkg/util/ipvs/ipvs_unsupported.go index 31a86eb25c54..3fc846baefc0 100644 --- a/pkg/util/ipvs/ipvs_unsupported.go +++ b/pkg/util/ipvs/ipvs_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/ipvs/kernelcheck_unsupported.go b/pkg/util/ipvs/kernelcheck_unsupported.go index 6247bff8513d..7f1657465c7e 100644 --- a/pkg/util/ipvs/kernelcheck_unsupported.go +++ b/pkg/util/ipvs/kernelcheck_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/ipvs/testing/fake_test.go b/pkg/util/ipvs/testing/fake_test.go index 1d576151bb14..e84890876437 100644 --- a/pkg/util/ipvs/testing/fake_test.go +++ b/pkg/util/ipvs/testing/fake_test.go @@ -17,10 +17,10 @@ limitations under the License. package testing import ( - "net" "testing" utilipvs "k8s.io/kubernetes/pkg/util/ipvs" + netutils "k8s.io/utils/net" ) func TestVirtualServer(t *testing.T) { @@ -28,7 +28,7 @@ func TestVirtualServer(t *testing.T) { fake := NewFake() // Add a virtual server vs1 := &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Port: uint16(80), Protocol: string("TCP"), Flags: utilipvs.FlagHashed, @@ -47,7 +47,7 @@ func TestVirtualServer(t *testing.T) { } // Update virtual server vs12 := &utilipvs.VirtualServer{ - Address: net.ParseIP("1.2.3.4"), + Address: netutils.ParseIPSloppy("1.2.3.4"), Port: uint16(80), Protocol: string("TCP"), Flags: utilipvs.FlagPersistent, @@ -66,7 +66,7 @@ func TestVirtualServer(t *testing.T) { } // Add another virtual server vs2 := &utilipvs.VirtualServer{ - Address: net.ParseIP("10::40"), + Address: netutils.ParseIPSloppy("10::40"), Port: uint16(8080), Protocol: string("UDP"), } @@ -76,7 +76,7 @@ func TestVirtualServer(t *testing.T) { } // Add another virtual server vs3 := &utilipvs.VirtualServer{ - Address: net.ParseIP("10::40"), + Address: netutils.ParseIPSloppy("10::40"), Port: uint16(7777), Protocol: string("SCTP"), } @@ -122,14 +122,14 @@ func TestRealServer(t *testing.T) { fake := NewFake() // Add a virtual server vs := &utilipvs.VirtualServer{ - Address: net.ParseIP("10.20.30.40"), + Address: netutils.ParseIPSloppy("10.20.30.40"), Port: uint16(80), Protocol: string("TCP"), } rss := []*utilipvs.RealServer{ - {Address: net.ParseIP("172.16.2.1"), Port: 8080, Weight: 1}, - {Address: net.ParseIP("172.16.2.2"), Port: 8080, Weight: 2}, - {Address: net.ParseIP("172.16.2.3"), Port: 8080, Weight: 3}, + {Address: netutils.ParseIPSloppy("172.16.2.1"), Port: 8080, Weight: 1}, + {Address: netutils.ParseIPSloppy("172.16.2.2"), Port: 8080, Weight: 2}, + {Address: netutils.ParseIPSloppy("172.16.2.3"), Port: 8080, Weight: 3}, } err := fake.AddVirtualServer(vs) if err != nil { @@ -173,7 +173,7 @@ func TestRealServer(t *testing.T) { } // Test delete real server that not exist rs := &utilipvs.RealServer{ - Address: net.ParseIP("172.16.2.4"), + Address: netutils.ParseIPSloppy("172.16.2.4"), Port: uint16(8080), Weight: 1, } diff --git a/pkg/util/node/node.go b/pkg/util/node/node.go index 1f0e2f0f56cb..ff11b087a64b 100644 --- a/pkg/util/node/node.go +++ b/pkg/util/node/node.go @@ -37,7 +37,7 @@ import ( clientset "k8s.io/client-go/kubernetes" v1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/kubernetes/pkg/features" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) const ( @@ -103,7 +103,7 @@ func GetNodeHostIPs(node *v1.Node) ([]net.IP, error) { allIPs := make([]net.IP, 0, len(node.Status.Addresses)) for _, addr := range node.Status.Addresses { if addr.Type == v1.NodeInternalIP { - ip := net.ParseIP(addr.Address) + ip := netutils.ParseIPSloppy(addr.Address) if ip != nil { allIPs = append(allIPs, ip) } @@ -111,7 +111,7 @@ func GetNodeHostIPs(node *v1.Node) ([]net.IP, error) { } for _, addr := range node.Status.Addresses { if addr.Type == v1.NodeExternalIP { - ip := net.ParseIP(addr.Address) + ip := netutils.ParseIPSloppy(addr.Address) if ip != nil { allIPs = append(allIPs, ip) } @@ -124,7 +124,7 @@ func GetNodeHostIPs(node *v1.Node) ([]net.IP, error) { nodeIPs := []net.IP{allIPs[0]} if utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) { for _, ip := range allIPs { - if utilnet.IsIPv6(ip) != utilnet.IsIPv6(nodeIPs[0]) { + if netutils.IsIPv6(ip) != netutils.IsIPv6(nodeIPs[0]) { nodeIPs = append(nodeIPs, ip) break } diff --git a/pkg/util/node/node_test.go b/pkg/util/node/node_test.go index 21be30520d84..c5c089873d14 100644 --- a/pkg/util/node/node_test.go +++ b/pkg/util/node/node_test.go @@ -26,6 +26,7 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/features" + netutils "k8s.io/utils/net" ) func TestGetPreferredAddress(t *testing.T) { @@ -120,7 +121,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "4.3.2.1"}, {Type: v1.NodeExternalIP, Address: "4.3.2.2"}, }, - expectIPs: []net.IP{net.ParseIP("1.2.3.4")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("1.2.3.4")}, }, { name: "IPv4-only, external-first", @@ -129,7 +130,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "4.3.2.2"}, {Type: v1.NodeInternalIP, Address: "1.2.3.4"}, }, - expectIPs: []net.IP{net.ParseIP("1.2.3.4")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("1.2.3.4")}, }, { name: "IPv4-only, no internal", @@ -137,7 +138,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "4.3.2.1"}, {Type: v1.NodeExternalIP, Address: "4.3.2.2"}, }, - expectIPs: []net.IP{net.ParseIP("4.3.2.1")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("4.3.2.1")}, }, { name: "dual-stack node, single-stack cluster", @@ -148,7 +149,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeInternalIP, Address: "a:b::c:d"}, {Type: v1.NodeExternalIP, Address: "d:c::b:a"}, }, - expectIPs: []net.IP{net.ParseIP("1.2.3.4")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("1.2.3.4")}, }, { name: "dual-stack node, dual-stack cluster", @@ -160,7 +161,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "d:c::b:a"}, }, dualStack: true, - expectIPs: []net.IP{net.ParseIP("1.2.3.4"), net.ParseIP("a:b::c:d")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("1.2.3.4"), netutils.ParseIPSloppy("a:b::c:d")}, }, { name: "dual-stack node, different order, single-stack cluster", @@ -171,7 +172,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "4.3.2.2"}, {Type: v1.NodeExternalIP, Address: "d:c::b:a"}, }, - expectIPs: []net.IP{net.ParseIP("1.2.3.4")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("1.2.3.4")}, }, { name: "dual-stack node, different order, dual-stack cluster", @@ -183,7 +184,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "d:c::b:a"}, }, dualStack: true, - expectIPs: []net.IP{net.ParseIP("1.2.3.4"), net.ParseIP("a:b::c:d")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("1.2.3.4"), netutils.ParseIPSloppy("a:b::c:d")}, }, { name: "dual-stack node, IPv6-first, no internal IPv4, single-stack cluster", @@ -193,7 +194,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "4.3.2.1"}, {Type: v1.NodeExternalIP, Address: "4.3.2.2"}, }, - expectIPs: []net.IP{net.ParseIP("a:b::c:d")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("a:b::c:d")}, }, { name: "dual-stack node, IPv6-first, no internal IPv4, dual-stack cluster", @@ -204,7 +205,7 @@ func TestGetNodeHostIPs(t *testing.T) { {Type: v1.NodeExternalIP, Address: "4.3.2.2"}, }, dualStack: true, - expectIPs: []net.IP{net.ParseIP("a:b::c:d"), net.ParseIP("4.3.2.1")}, + expectIPs: []net.IP{netutils.ParseIPSloppy("a:b::c:d"), netutils.ParseIPSloppy("4.3.2.1")}, }, } diff --git a/pkg/util/oom/oom_linux.go b/pkg/util/oom/oom_linux.go index f81eab99bd0e..b2ab36119897 100644 --- a/pkg/util/oom/oom_linux.go +++ b/pkg/util/oom/oom_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/oom/oom_linux_test.go b/pkg/util/oom/oom_linux_test.go index daf6f38f4739..4a823d13f3a2 100644 --- a/pkg/util/oom/oom_linux_test.go +++ b/pkg/util/oom/oom_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/oom/oom_unsupported.go b/pkg/util/oom/oom_unsupported.go index cb362a85a5f9..1e4b926e24e7 100644 --- a/pkg/util/oom/oom_unsupported.go +++ b/pkg/util/oom/oom_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/procfs/procfs_linux.go b/pkg/util/procfs/procfs_linux.go index fdb6ea76eae1..371a1d1285ab 100644 --- a/pkg/util/procfs/procfs_linux.go +++ b/pkg/util/procfs/procfs_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/procfs/procfs_linux_test.go b/pkg/util/procfs/procfs_linux_test.go index 71ef8f4142db..8951ca1bb55f 100644 --- a/pkg/util/procfs/procfs_linux_test.go +++ b/pkg/util/procfs/procfs_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/procfs/procfs_unsupported.go b/pkg/util/procfs/procfs_unsupported.go index d5d5e12cd8f3..7ff7a49fa0b0 100644 --- a/pkg/util/procfs/procfs_unsupported.go +++ b/pkg/util/procfs/procfs_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/rlimit/rlimit_linux.go b/pkg/util/rlimit/rlimit_linux.go index ef14f8838111..3a42a14ff908 100644 --- a/pkg/util/rlimit/rlimit_linux.go +++ b/pkg/util/rlimit/rlimit_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/rlimit/rlimit_unsupported.go b/pkg/util/rlimit/rlimit_unsupported.go index 44011948342f..96eb9904278c 100644 --- a/pkg/util/rlimit/rlimit_unsupported.go +++ b/pkg/util/rlimit/rlimit_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/util/selinux/selinux_linux.go b/pkg/util/selinux/selinux_linux.go index 33ae35884fee..96525ed2ee53 100644 --- a/pkg/util/selinux/selinux_linux.go +++ b/pkg/util/selinux/selinux_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/util/selinux/selinux_unsupported.go b/pkg/util/selinux/selinux_unsupported.go index 4c8f5f0b28c2..fb54d5a7b37f 100644 --- a/pkg/util/selinux/selinux_unsupported.go +++ b/pkg/util/selinux/selinux_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/volume/awsebs/attacher.go b/pkg/volume/awsebs/attacher.go index e235edab5e02..2e560bc7a6a4 100644 --- a/pkg/volume/awsebs/attacher.go +++ b/pkg/volume/awsebs/attacher.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/awsebs/attacher_linux.go b/pkg/volume/awsebs/attacher_linux.go index 43c5182d3432..450d2f0a5f48 100644 --- a/pkg/volume/awsebs/attacher_linux.go +++ b/pkg/volume/awsebs/attacher_linux.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build linux +//go:build !providerless && linux +// +build !providerless,linux /* Copyright 2019 The Kubernetes Authors. diff --git a/pkg/volume/awsebs/attacher_test.go b/pkg/volume/awsebs/attacher_test.go index b3cd81362569..72414f9a7932 100644 --- a/pkg/volume/awsebs/attacher_test.go +++ b/pkg/volume/awsebs/attacher_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/awsebs/attacher_unsupported.go b/pkg/volume/awsebs/attacher_unsupported.go index e5874ad71b1a..c0a3de1c812b 100644 --- a/pkg/volume/awsebs/attacher_unsupported.go +++ b/pkg/volume/awsebs/attacher_unsupported.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build !linux,!windows +//go:build !providerless && !linux && !windows +// +build !providerless,!linux,!windows /* Copyright 2019 The Kubernetes Authors. diff --git a/pkg/volume/awsebs/attacher_windows.go b/pkg/volume/awsebs/attacher_windows.go index 7d00e07a915d..c24b28fdc2ad 100644 --- a/pkg/volume/awsebs/attacher_windows.go +++ b/pkg/volume/awsebs/attacher_windows.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build windows +//go:build !providerless && windows +// +build !providerless,windows /* Copyright 2019 The Kubernetes Authors. diff --git a/pkg/volume/awsebs/aws_ebs.go b/pkg/volume/awsebs/aws_ebs.go index f83cae056253..5d5745e38831 100644 --- a/pkg/volume/awsebs/aws_ebs.go +++ b/pkg/volume/awsebs/aws_ebs.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/awsebs/aws_ebs_block.go b/pkg/volume/awsebs/aws_ebs_block.go index 34c4e2869726..c25808c4a930 100644 --- a/pkg/volume/awsebs/aws_ebs_block.go +++ b/pkg/volume/awsebs/aws_ebs_block.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/awsebs/aws_ebs_block_test.go b/pkg/volume/awsebs/aws_ebs_block_test.go index cb60f225a9cb..0598766e68b0 100644 --- a/pkg/volume/awsebs/aws_ebs_block_test.go +++ b/pkg/volume/awsebs/aws_ebs_block_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/awsebs/aws_ebs_test.go b/pkg/volume/awsebs/aws_ebs_test.go index 1de3c53ab278..1ac8fcacd65f 100644 --- a/pkg/volume/awsebs/aws_ebs_test.go +++ b/pkg/volume/awsebs/aws_ebs_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/awsebs/aws_util.go b/pkg/volume/awsebs/aws_util.go index 9bd14064b57d..d7804f1f581d 100644 --- a/pkg/volume/awsebs/aws_util.go +++ b/pkg/volume/awsebs/aws_util.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azure_file/azure_file.go b/pkg/volume/azure_file/azure_file.go index 0f9f1321d66b..bcf4e273f2c3 100644 --- a/pkg/volume/azure_file/azure_file.go +++ b/pkg/volume/azure_file/azure_file.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azure_file/azure_file_test.go b/pkg/volume/azure_file/azure_file_test.go index 8e16d1752f24..a1546621ca87 100644 --- a/pkg/volume/azure_file/azure_file_test.go +++ b/pkg/volume/azure_file/azure_file_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azure_file/azure_provision.go b/pkg/volume/azure_file/azure_provision.go index b90da1646ce1..799bc8576da7 100644 --- a/pkg/volume/azure_file/azure_provision.go +++ b/pkg/volume/azure_file/azure_provision.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azure_file/azure_util.go b/pkg/volume/azure_file/azure_util.go index fc66547a5fd5..f44757aaef5e 100644 --- a/pkg/volume/azure_file/azure_util.go +++ b/pkg/volume/azure_file/azure_util.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/attacher.go b/pkg/volume/azuredd/attacher.go index 9104f5c83210..7f62a279e8b2 100644 --- a/pkg/volume/azuredd/attacher.go +++ b/pkg/volume/azuredd/attacher.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/attacher_test.go b/pkg/volume/azuredd/attacher_test.go index 3783802c6bc3..d95bf8c9f78b 100644 --- a/pkg/volume/azuredd/attacher_test.go +++ b/pkg/volume/azuredd/attacher_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_common.go b/pkg/volume/azuredd/azure_common.go index 74a92e3cd2f0..9635a7125caf 100644 --- a/pkg/volume/azuredd/azure_common.go +++ b/pkg/volume/azuredd/azure_common.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_common_linux.go b/pkg/volume/azuredd/azure_common_linux.go index b046f52e6b1b..02e03b3d4e84 100644 --- a/pkg/volume/azuredd/azure_common_linux.go +++ b/pkg/volume/azuredd/azure_common_linux.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build linux +//go:build !providerless && linux +// +build !providerless,linux /* Copyright 2017 The Kubernetes Authors. diff --git a/pkg/volume/azuredd/azure_common_test.go b/pkg/volume/azuredd/azure_common_test.go index 2dfb87253d28..7fb26556a18c 100644 --- a/pkg/volume/azuredd/azure_common_test.go +++ b/pkg/volume/azuredd/azure_common_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_common_unsupported.go b/pkg/volume/azuredd/azure_common_unsupported.go index 320bdf3b4225..48126cba0a37 100644 --- a/pkg/volume/azuredd/azure_common_unsupported.go +++ b/pkg/volume/azuredd/azure_common_unsupported.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build !linux,!windows +//go:build !providerless && !linux && !windows +// +build !providerless,!linux,!windows /* Copyright 2017 The Kubernetes Authors. diff --git a/pkg/volume/azuredd/azure_common_windows.go b/pkg/volume/azuredd/azure_common_windows.go index 7efc7f89a00e..3a1bc4873970 100644 --- a/pkg/volume/azuredd/azure_common_windows.go +++ b/pkg/volume/azuredd/azure_common_windows.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build windows +//go:build !providerless && windows +// +build !providerless,windows /* Copyright 2017 The Kubernetes Authors. diff --git a/pkg/volume/azuredd/azure_dd.go b/pkg/volume/azuredd/azure_dd.go index b4cdce4167ba..e839474483c9 100644 --- a/pkg/volume/azuredd/azure_dd.go +++ b/pkg/volume/azuredd/azure_dd.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_dd_block.go b/pkg/volume/azuredd/azure_dd_block.go index 1217e4a01961..e6d6ce6ac116 100644 --- a/pkg/volume/azuredd/azure_dd_block.go +++ b/pkg/volume/azuredd/azure_dd_block.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_dd_block_test.go b/pkg/volume/azuredd/azure_dd_block_test.go index ba632f7e589c..8781f2afc55a 100644 --- a/pkg/volume/azuredd/azure_dd_block_test.go +++ b/pkg/volume/azuredd/azure_dd_block_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_dd_max_disk_count.go b/pkg/volume/azuredd/azure_dd_max_disk_count.go index ff58ea711ebe..534bb89679a4 100644 --- a/pkg/volume/azuredd/azure_dd_max_disk_count.go +++ b/pkg/volume/azuredd/azure_dd_max_disk_count.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_dd_test.go b/pkg/volume/azuredd/azure_dd_test.go index c9ad23d4c114..d3f11a944766 100644 --- a/pkg/volume/azuredd/azure_dd_test.go +++ b/pkg/volume/azuredd/azure_dd_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_mounter.go b/pkg/volume/azuredd/azure_mounter.go index 38d1e59403c4..647533510fff 100644 --- a/pkg/volume/azuredd/azure_mounter.go +++ b/pkg/volume/azuredd/azure_mounter.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_provision.go b/pkg/volume/azuredd/azure_provision.go index 87271bcf2ea7..dcb1127febb3 100644 --- a/pkg/volume/azuredd/azure_provision.go +++ b/pkg/volume/azuredd/azure_provision.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/azuredd/azure_provision_test.go b/pkg/volume/azuredd/azure_provision_test.go index a681110b1b86..de0151f76033 100644 --- a/pkg/volume/azuredd/azure_provision_test.go +++ b/pkg/volume/azuredd/azure_provision_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/cinder/attacher.go b/pkg/volume/cinder/attacher.go index a8777952c55f..94d1ede04037 100644 --- a/pkg/volume/cinder/attacher.go +++ b/pkg/volume/cinder/attacher.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/cinder/attacher_test.go b/pkg/volume/cinder/attacher_test.go index 87b862bd3447..dd884d72b689 100644 --- a/pkg/volume/cinder/attacher_test.go +++ b/pkg/volume/cinder/attacher_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/cinder/cinder.go b/pkg/volume/cinder/cinder.go index dee9c3de13f7..f917d2bc9d9b 100644 --- a/pkg/volume/cinder/cinder.go +++ b/pkg/volume/cinder/cinder.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/cinder/cinder_block.go b/pkg/volume/cinder/cinder_block.go index ae3ab169b8e1..edb1891fdf9e 100644 --- a/pkg/volume/cinder/cinder_block.go +++ b/pkg/volume/cinder/cinder_block.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/cinder/cinder_block_test.go b/pkg/volume/cinder/cinder_block_test.go index c4edfc3c0ef4..0b0aa20321d1 100644 --- a/pkg/volume/cinder/cinder_block_test.go +++ b/pkg/volume/cinder/cinder_block_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/cinder/cinder_test.go b/pkg/volume/cinder/cinder_test.go index c72c76ee4dce..61c9bc27ac95 100644 --- a/pkg/volume/cinder/cinder_test.go +++ b/pkg/volume/cinder/cinder_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/cinder/cinder_util.go b/pkg/volume/cinder/cinder_util.go index 2fe0c1071a48..3d0dc45796b2 100644 --- a/pkg/volume/cinder/cinder_util.go +++ b/pkg/volume/cinder/cinder_util.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/emptydir/empty_dir_linux.go b/pkg/volume/emptydir/empty_dir_linux.go index 10f273b2a389..381ad4bf6665 100644 --- a/pkg/volume/emptydir/empty_dir_linux.go +++ b/pkg/volume/emptydir/empty_dir_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/emptydir/empty_dir_test.go b/pkg/volume/emptydir/empty_dir_test.go index 8451099b08c4..3c5e942290a1 100644 --- a/pkg/volume/emptydir/empty_dir_test.go +++ b/pkg/volume/emptydir/empty_dir_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/emptydir/empty_dir_unsupported.go b/pkg/volume/emptydir/empty_dir_unsupported.go index 75dac70ba501..106d296d9925 100644 --- a/pkg/volume/emptydir/empty_dir_unsupported.go +++ b/pkg/volume/emptydir/empty_dir_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/volume/gcepd/attacher.go b/pkg/volume/gcepd/attacher.go index 595b7d2f3d65..2a6349a51126 100644 --- a/pkg/volume/gcepd/attacher.go +++ b/pkg/volume/gcepd/attacher.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/gcepd/attacher_test.go b/pkg/volume/gcepd/attacher_test.go index 103ffc8ab7ce..3e7af5b7ee9e 100644 --- a/pkg/volume/gcepd/attacher_test.go +++ b/pkg/volume/gcepd/attacher_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/gcepd/gce_pd.go b/pkg/volume/gcepd/gce_pd.go index 686a17f619c4..dfc7a30f5601 100644 --- a/pkg/volume/gcepd/gce_pd.go +++ b/pkg/volume/gcepd/gce_pd.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/gcepd/gce_pd_block.go b/pkg/volume/gcepd/gce_pd_block.go index 59c9c524653d..bde10beb16c2 100644 --- a/pkg/volume/gcepd/gce_pd_block.go +++ b/pkg/volume/gcepd/gce_pd_block.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/gcepd/gce_pd_block_test.go b/pkg/volume/gcepd/gce_pd_block_test.go index f03bd32f064d..bab0b5bac51b 100644 --- a/pkg/volume/gcepd/gce_pd_block_test.go +++ b/pkg/volume/gcepd/gce_pd_block_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/gcepd/gce_pd_test.go b/pkg/volume/gcepd/gce_pd_test.go index e5be6f9c2789..4ad7aec7b2da 100644 --- a/pkg/volume/gcepd/gce_pd_test.go +++ b/pkg/volume/gcepd/gce_pd_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/gcepd/gce_util.go b/pkg/volume/gcepd/gce_util.go index 290630ae87ea..03d6f7683025 100644 --- a/pkg/volume/gcepd/gce_util.go +++ b/pkg/volume/gcepd/gce_util.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/gcepd/gce_util_test.go b/pkg/volume/gcepd/gce_util_test.go index ec9445d7a841..4dfb81d5d47e 100644 --- a/pkg/volume/gcepd/gce_util_test.go +++ b/pkg/volume/gcepd/gce_util_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/glusterfs/glusterfs.go b/pkg/volume/glusterfs/glusterfs.go index 2e731c7da87d..2a91164836d2 100644 --- a/pkg/volume/glusterfs/glusterfs.go +++ b/pkg/volume/glusterfs/glusterfs.go @@ -22,7 +22,6 @@ import ( "fmt" "math" "math/rand" - "net" "net/http" "os" "path/filepath" @@ -35,6 +34,7 @@ import ( gapi "github.com/heketi/heketi/pkg/glusterfs/api" "k8s.io/klog/v2" "k8s.io/mount-utils" + netutils "k8s.io/utils/net" utilstrings "k8s.io/utils/strings" v1 "k8s.io/api/core/v1" @@ -992,7 +992,7 @@ func getClusterNodes(cli *gcli.Client, cluster string) (dynamicHostIps []string, } ipaddr := dstrings.Join(nodeInfo.NodeAddRequest.Hostnames.Storage, "") // IP validates if a string is a valid IP address. - ip := net.ParseIP(ipaddr) + ip := netutils.ParseIPSloppy(ipaddr) if ip == nil { return nil, fmt.Errorf("glusterfs server node ip address %s must be a valid IP address, (e.g. 10.9.8.7)", ipaddr) } diff --git a/pkg/volume/local/local_linux_test.go b/pkg/volume/local/local_linux_test.go index 14f91435ffe7..08daebf04e20 100644 --- a/pkg/volume/local/local_linux_test.go +++ b/pkg/volume/local/local_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux || darwin // +build linux darwin /* diff --git a/pkg/volume/local/local_test.go b/pkg/volume/local/local_test.go index 799782396bbd..31a9d3fa7780 100644 --- a/pkg/volume/local/local_test.go +++ b/pkg/volume/local/local_test.go @@ -1,3 +1,4 @@ +//go:build linux || darwin || windows // +build linux darwin windows /* diff --git a/pkg/volume/metrics_du_test.go b/pkg/volume/metrics_du_test.go index 55570f2b321e..0e9ad7fb668d 100644 --- a/pkg/volume/metrics_du_test.go +++ b/pkg/volume/metrics_du_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/atomic_writer_test.go b/pkg/volume/util/atomic_writer_test.go index 7382672fdacc..653e8d0a0439 100644 --- a/pkg/volume/util/atomic_writer_test.go +++ b/pkg/volume/util/atomic_writer_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/device_util_linux.go b/pkg/volume/util/device_util_linux.go index cba90ffd2fd9..ae7078b23ab0 100644 --- a/pkg/volume/util/device_util_linux.go +++ b/pkg/volume/util/device_util_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/device_util_linux_test.go b/pkg/volume/util/device_util_linux_test.go index f86b395bc173..ae1ee047e7a9 100644 --- a/pkg/volume/util/device_util_linux_test.go +++ b/pkg/volume/util/device_util_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/device_util_unsupported.go b/pkg/volume/util/device_util_unsupported.go index 3be3418e5d44..ea4786aff6f4 100644 --- a/pkg/volume/util/device_util_unsupported.go +++ b/pkg/volume/util/device_util_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/volume/util/fs/fs.go b/pkg/volume/util/fs/fs.go index 77adf3747856..acfc42785361 100644 --- a/pkg/volume/util/fs/fs.go +++ b/pkg/volume/util/fs/fs.go @@ -1,3 +1,4 @@ +//go:build linux || darwin // +build linux darwin /* diff --git a/pkg/volume/util/fs/fs_unsupported.go b/pkg/volume/util/fs/fs_unsupported.go index 6a098cb3f55f..f66df0d0666f 100644 --- a/pkg/volume/util/fs/fs_unsupported.go +++ b/pkg/volume/util/fs/fs_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !darwin && !windows // +build !linux,!darwin,!windows /* diff --git a/pkg/volume/util/fs/fs_windows.go b/pkg/volume/util/fs/fs_windows.go index 356b2e223bff..57bb4bc26470 100644 --- a/pkg/volume/util/fs/fs_windows.go +++ b/pkg/volume/util/fs/fs_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/volume/util/fsquota/common/quota_linux_common.go b/pkg/volume/util/fsquota/common/quota_linux_common.go index c7232e8de63d..8275a7f1c837 100644 --- a/pkg/volume/util/fsquota/common/quota_linux_common.go +++ b/pkg/volume/util/fsquota/common/quota_linux_common.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/fsquota/common/quota_linux_common_impl.go b/pkg/volume/util/fsquota/common/quota_linux_common_impl.go index ad9a53ad54d3..7f24ca1cd7db 100644 --- a/pkg/volume/util/fsquota/common/quota_linux_common_impl.go +++ b/pkg/volume/util/fsquota/common/quota_linux_common_impl.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/fsquota/project.go b/pkg/volume/util/fsquota/project.go index e6c7d82e8f81..3861f990590e 100644 --- a/pkg/volume/util/fsquota/project.go +++ b/pkg/volume/util/fsquota/project.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/fsquota/quota_linux.go b/pkg/volume/util/fsquota/quota_linux.go index d1ad9f772e03..2da7d2639978 100644 --- a/pkg/volume/util/fsquota/quota_linux.go +++ b/pkg/volume/util/fsquota/quota_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/fsquota/quota_linux_test.go b/pkg/volume/util/fsquota/quota_linux_test.go index d031f8fc0afb..7cf51ca362d1 100644 --- a/pkg/volume/util/fsquota/quota_linux_test.go +++ b/pkg/volume/util/fsquota/quota_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/fsquota/quota_unsupported.go b/pkg/volume/util/fsquota/quota_unsupported.go index b8c4ead4e3ee..8579f5389300 100644 --- a/pkg/volume/util/fsquota/quota_unsupported.go +++ b/pkg/volume/util/fsquota/quota_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/volume/util/hostutil/hostutil_linux.go b/pkg/volume/util/hostutil/hostutil_linux.go index ab1c523358bf..03748508ba65 100644 --- a/pkg/volume/util/hostutil/hostutil_linux.go +++ b/pkg/volume/util/hostutil/hostutil_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/hostutil/hostutil_linux_test.go b/pkg/volume/util/hostutil/hostutil_linux_test.go index 54cf990319bd..4ae76e28f6a4 100644 --- a/pkg/volume/util/hostutil/hostutil_linux_test.go +++ b/pkg/volume/util/hostutil/hostutil_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/hostutil/hostutil_unsupported.go b/pkg/volume/util/hostutil/hostutil_unsupported.go index 132ea3d0907a..c54a7b23f916 100644 --- a/pkg/volume/util/hostutil/hostutil_unsupported.go +++ b/pkg/volume/util/hostutil/hostutil_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows /* diff --git a/pkg/volume/util/hostutil/hostutil_windows.go b/pkg/volume/util/hostutil/hostutil_windows.go index bd44dc54a44f..bd59624b8708 100644 --- a/pkg/volume/util/hostutil/hostutil_windows.go +++ b/pkg/volume/util/hostutil/hostutil_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/volume/util/hostutil/hostutil_windows_test.go b/pkg/volume/util/hostutil/hostutil_windows_test.go index 48d71c8558d1..16c7dc373623 100644 --- a/pkg/volume/util/hostutil/hostutil_windows_test.go +++ b/pkg/volume/util/hostutil/hostutil_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/volume/util/subpath/subpath_linux.go b/pkg/volume/util/subpath/subpath_linux.go index 263bd8f9d09e..7da8ca10a95e 100644 --- a/pkg/volume/util/subpath/subpath_linux.go +++ b/pkg/volume/util/subpath/subpath_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/subpath/subpath_linux_test.go b/pkg/volume/util/subpath/subpath_linux_test.go index 1140e89b5e55..86f24da11ff1 100644 --- a/pkg/volume/util/subpath/subpath_linux_test.go +++ b/pkg/volume/util/subpath/subpath_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/subpath/subpath_unsupported.go b/pkg/volume/util/subpath/subpath_unsupported.go index c9ff2bc072e0..21493426da8f 100644 --- a/pkg/volume/util/subpath/subpath_unsupported.go +++ b/pkg/volume/util/subpath/subpath_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows /* diff --git a/pkg/volume/util/subpath/subpath_windows.go b/pkg/volume/util/subpath/subpath_windows.go index 3428e6395469..e7f77d07f755 100644 --- a/pkg/volume/util/subpath/subpath_windows.go +++ b/pkg/volume/util/subpath/subpath_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/volume/util/subpath/subpath_windows_test.go b/pkg/volume/util/subpath/subpath_windows_test.go index 10d319df2f1b..0896ef67ee74 100644 --- a/pkg/volume/util/subpath/subpath_windows_test.go +++ b/pkg/volume/util/subpath/subpath_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/pkg/volume/util/volumepathhandler/volume_path_handler_linux.go b/pkg/volume/util/volumepathhandler/volume_path_handler_linux.go index 2e4fb78ffb01..b0031961a3be 100644 --- a/pkg/volume/util/volumepathhandler/volume_path_handler_linux.go +++ b/pkg/volume/util/volumepathhandler/volume_path_handler_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/util/volumepathhandler/volume_path_handler_unsupported.go b/pkg/volume/util/volumepathhandler/volume_path_handler_unsupported.go index f4411c6cdb7a..66fb2fe1f42a 100644 --- a/pkg/volume/util/volumepathhandler/volume_path_handler_unsupported.go +++ b/pkg/volume/util/volumepathhandler/volume_path_handler_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/volume/volume_linux.go b/pkg/volume/volume_linux.go index bf9fcfcdacd8..ac2300f81327 100644 --- a/pkg/volume/volume_linux.go +++ b/pkg/volume/volume_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/volume_linux_test.go b/pkg/volume/volume_linux_test.go index fc141f50cf16..e0524a3d9a21 100644 --- a/pkg/volume/volume_linux_test.go +++ b/pkg/volume/volume_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/pkg/volume/volume_unsupported.go b/pkg/volume/volume_unsupported.go index dcd2065b5734..20c56d4b63e2 100644 --- a/pkg/volume/volume_unsupported.go +++ b/pkg/volume/volume_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/pkg/volume/vsphere_volume/attacher.go b/pkg/volume/vsphere_volume/attacher.go index 98aa601184a6..c7971375ff3c 100644 --- a/pkg/volume/vsphere_volume/attacher.go +++ b/pkg/volume/vsphere_volume/attacher.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/vsphere_volume/attacher_test.go b/pkg/volume/vsphere_volume/attacher_test.go index 0cdd4b2a9a59..b89034acc1e2 100644 --- a/pkg/volume/vsphere_volume/attacher_test.go +++ b/pkg/volume/vsphere_volume/attacher_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/vsphere_volume/vsphere_volume.go b/pkg/volume/vsphere_volume/vsphere_volume.go index 9b4a3c1d4ebc..a8b644a727c7 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume.go +++ b/pkg/volume/vsphere_volume/vsphere_volume.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/vsphere_volume/vsphere_volume_block.go b/pkg/volume/vsphere_volume/vsphere_volume_block.go index 721c252ebc9a..bca09984ce76 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_block.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_block.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/vsphere_volume/vsphere_volume_block_test.go b/pkg/volume/vsphere_volume/vsphere_volume_block_test.go index f4036531ea8a..0381e59c763c 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_block_test.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_block_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/vsphere_volume/vsphere_volume_test.go b/pkg/volume/vsphere_volume/vsphere_volume_test.go index be93cfb076d7..6bf2a2f03f06 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_test.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/vsphere_volume/vsphere_volume_util.go b/pkg/volume/vsphere_volume/vsphere_volume_util.go index d24ff640b3e3..501a30c275f9 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_util.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_util.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/pkg/volume/vsphere_volume/vsphere_volume_util_linux.go b/pkg/volume/vsphere_volume/vsphere_volume_util_linux.go index 7c8254eb9d75..3eae389d883d 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_util_linux.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_util_linux.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build linux +//go:build !providerless && linux +// +build !providerless,linux /* Copyright 2019 The Kubernetes Authors. diff --git a/pkg/volume/vsphere_volume/vsphere_volume_util_unsupported.go b/pkg/volume/vsphere_volume/vsphere_volume_util_unsupported.go index 10de28ce16ca..1b7c901adcac 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_util_unsupported.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_util_unsupported.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build !linux,!windows +//go:build !providerless && !linux && !windows +// +build !providerless,!linux,!windows /* Copyright 2019 The Kubernetes Authors. diff --git a/pkg/volume/vsphere_volume/vsphere_volume_util_windows.go b/pkg/volume/vsphere_volume/vsphere_volume_util_windows.go index dd088c57ea29..b9f2b6c590b6 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_util_windows.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_util_windows.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build windows +//go:build !providerless && windows +// +build !providerless,windows /* Copyright 2019 The Kubernetes Authors. diff --git a/pkg/windows/service/service.go b/pkg/windows/service/service.go index cd50e924e05a..7f7699f7c7ae 100644 --- a/pkg/windows/service/service.go +++ b/pkg/windows/service/service.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.conversion.go b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.conversion.go index 1591501d11b9..37e1166fdf2a 100644 --- a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.conversion.go +++ b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go index d7a182db1a38..111ea6b14181 100644 --- a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go +++ b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.defaults.go b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.defaults.go index fbf617bbf1db..cc845eda04d6 100644 --- a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.defaults.go +++ b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go index 56614f05b982..4e7f40b05816 100644 --- a/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go +++ b/plugin/pkg/admission/eventratelimit/apis/eventratelimit/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go index ceb0ed0ba83c..9e20ef177a17 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go index 008c428fc76a..97d97041182c 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go index ea467c145bf1..ded33ff4e804 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/plugin/pkg/admission/serviceaccount/admission_test.go b/plugin/pkg/admission/serviceaccount/admission_test.go index 67e517fecfff..dc1b8d8371fa 100644 --- a/plugin/pkg/admission/serviceaccount/admission_test.go +++ b/plugin/pkg/admission/serviceaccount/admission_test.go @@ -748,6 +748,11 @@ func TestAddImagePullSecrets(t *testing.T) { {Name: "bar"}, }, } + originalSA := sa.DeepCopy() + expected := []api.LocalObjectReference{ + {Name: "foo"}, + {Name: "bar"}, + } // Add the default service account for the ns with a secret reference into the cache informerFactory.Core().V1().ServiceAccounts().Informer().GetStore().Add(sa) @@ -758,10 +763,10 @@ func TestAddImagePullSecrets(t *testing.T) { t.Errorf("Unexpected error: %v", err) } - assert.EqualValues(t, sa.ImagePullSecrets, pod.Spec.ImagePullSecrets, "expected %v, got %v", sa.ImagePullSecrets, pod.Spec.ImagePullSecrets) + assert.EqualValues(t, expected, pod.Spec.ImagePullSecrets, "expected %v, got %v", expected, pod.Spec.ImagePullSecrets) pod.Spec.ImagePullSecrets[1] = api.LocalObjectReference{Name: "baz"} - if reflect.DeepEqual(sa.ImagePullSecrets, pod.Spec.ImagePullSecrets) { + if !reflect.DeepEqual(originalSA, sa) { t.Errorf("accidentally mutated the ServiceAccount.ImagePullSecrets: %v", sa.ImagePullSecrets) } } diff --git a/staging/publishing/import-restrictions.yaml b/staging/publishing/import-restrictions.yaml index a857f456b411..d26e8a64f568 100644 --- a/staging/publishing/import-restrictions.yaml +++ b/staging/publishing/import-restrictions.yaml @@ -35,6 +35,7 @@ allowedImports: - k8s.io/apimachinery - k8s.io/kube-openapi + - k8s.io/utils/net - k8s.io/klog - baseImportPath: "./vendor/k8s.io/api/" @@ -150,6 +151,7 @@ - k8s.io/component-base - k8s.io/kube-openapi - k8s.io/sample-apiserver + - k8s.io/utils/net - k8s.io/klog - baseImportPath: "./vendor/k8s.io/apiextensions-apiserver/" @@ -274,5 +276,5 @@ - k8s.io/pod-security-admission - k8s.io/component-base/featuregate - k8s.io/component-base/logs - - k8s.io/component-base/cli/flag + - k8s.io/component-base/cli/flag - k8s.io/utils diff --git a/staging/src/k8s.io/api/admission/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/admission/v1/zz_generated.deepcopy.go index f7369471a8c2..d35688285138 100644 --- a/staging/src/k8s.io/api/admission/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/admission/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go index 4f3dd45beaa9..8234b322f92e 100644 --- a/staging/src/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/admission/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/admission/v1beta1/zz_generated.prerelease-lifecycle.go index 8fc1cde0a6b7..f96e8a4433ba 100644 --- a/staging/src/k8s.io/api/admission/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/admission/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go index 3afb7467377c..cff7377a5574 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go index c4570d0311b7..23ddb1fa2c1e 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go index bfd93a05ad3b..09a92f47689e 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/apiserverinternal/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apiserverinternal/v1alpha1/zz_generated.deepcopy.go index 7e82a9070fd9..44dffa75128e 100644 --- a/staging/src/k8s.io/api/apiserverinternal/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apiserverinternal/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go index 0c80548521d5..ff8fba0463be 100644 --- a/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apps/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go index fb27612419e7..cd47542ded14 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.prerelease-lifecycle.go index f3850fc90cf2..1e2233e31791 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go index 0a84d1b08a8a..b4e955afaf1b 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.prerelease-lifecycle.go index 3368a18964de..1ead8a4c138d 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go index aca99c42b765..2af533191ba3 100644 --- a/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/authentication/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go index a5d82a8100a5..059ec1a86478 100644 --- a/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.prerelease-lifecycle.go index 9b5744db787e..e448106e419c 100644 --- a/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/authentication/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go index 1d11b38b082c..f1d49eb386ec 100644 --- a/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/authorization/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go index 58b2dfe753e4..13f09cf2d278 100644 --- a/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.prerelease-lifecycle.go index fcb75dd914b3..f9817df5833a 100644 --- a/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/authorization/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go index 05ae6ebda726..603e6aa8cbaa 100644 --- a/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go index f10c7884d0d0..610e81f81a7c 100644 --- a/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go index f6baef699754..67d38d05170b 100644 --- a/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go index 81642822a6a8..49838843c061 100644 --- a/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go index c77892c99245..b8e49bc51b45 100644 --- a/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go index fe60aaf37908..e6915a456f9c 100644 --- a/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/batch/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go index 77244485ba64..8c256848dc2d 100644 --- a/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go index 5379f896c19d..2836b3b014f3 100644 --- a/staging/src/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/certificates/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/certificates/v1/zz_generated.deepcopy.go index af591b46f7ef..aefa6041174a 100644 --- a/staging/src/k8s.io/api/certificates/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/certificates/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go index 48e460aac364..a315e2ac6051 100644 --- a/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go index 6ccebfe6fbed..480a3293613c 100644 --- a/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/coordination/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/coordination/v1/zz_generated.deepcopy.go index 2dd7eddbcdb2..99f6b0be7ac4 100644 --- a/staging/src/k8s.io/api/coordination/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/coordination/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go index de6962137e28..3adfd8720384 100644 --- a/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.prerelease-lifecycle.go index 9d18b9225a09..18926aa1080c 100644 --- a/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/coordination/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index ff660ae27588..f92790a0d508 100644 --- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/discovery/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/discovery/v1/zz_generated.deepcopy.go index 31a912386f19..caa872af0059 100644 --- a/staging/src/k8s.io/api/discovery/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/discovery/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go index f13536b4bc6e..13b9544b0c70 100644 --- a/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go index c0f2c63f09ac..ebca42477694 100644 --- a/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/events/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/events/v1/zz_generated.deepcopy.go index 19a3c5f77616..738f0163d3a4 100644 --- a/staging/src/k8s.io/api/events/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/events/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go index 779ebaf6e94e..1e073ae9c9ff 100644 --- a/staging/src/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/events/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/events/v1beta1/zz_generated.prerelease-lifecycle.go index 2ab7b412b962..227ca4b7de16 100644 --- a/staging/src/k8s.io/api/events/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/events/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go index 838315610942..e0961588e067 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.prerelease-lifecycle.go index 5023dd31a5df..963aaffba35a 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/extensions/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.deepcopy.go index f5d37954b1da..7f73f46061f0 100644 --- a/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.prerelease-lifecycle.go index 4152aa2a9112..a248aec4521a 100644 --- a/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/flowcontrol/v1alpha1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.deepcopy.go index c8f6e23060a2..b7b84634ace5 100644 --- a/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.prerelease-lifecycle.go index d0f2297181de..f02fcdccdc89 100644 --- a/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/flowcontrol/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/go.sum b/staging/src/k8s.io/api/go.sum index b1839d6b4c14..c28a8e4f70ae 100644 --- a/staging/src/k8s.io/api/go.sum +++ b/staging/src/k8s.io/api/go.sum @@ -937,6 +937,7 @@ k8s.io/kubernetes v1.22.1/go.mod h1:IGQZrV02n2IBp52+/YwLVMurCEQPKXJ/k8hU3mqEOuA= k8s.io/system-validators v1.5.0/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a h1:8dYfu/Fc9Gz2rNJKB9IQRGgQOh2clmRzNIPPY1xLY5g= k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= diff --git a/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go index 83d47b7919d4..f230656f3fe1 100644 --- a/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go index 76e339aed9eb..82677ca8b9ef 100644 --- a/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/networking/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go index e1b4543d30a7..77259e368d61 100644 --- a/staging/src/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/networking/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/networking/v1beta1/zz_generated.prerelease-lifecycle.go index 5e69fd5d9f49..e8b4c7ec7ff4 100644 --- a/staging/src/k8s.io/api/networking/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/networking/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/node/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/node/v1/zz_generated.deepcopy.go index 35084da7e3cd..c1424f045d59 100644 --- a/staging/src/k8s.io/api/node/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/node/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/node/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/node/v1alpha1/zz_generated.deepcopy.go index 20f8051835c9..96693626258d 100644 --- a/staging/src/k8s.io/api/node/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/node/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/node/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/node/v1beta1/zz_generated.deepcopy.go index c3989528b2af..e5034a587b60 100644 --- a/staging/src/k8s.io/api/node/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/node/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/node/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/node/v1beta1/zz_generated.prerelease-lifecycle.go index 2fda72ef5e5f..860923d8ffcd 100644 --- a/staging/src/k8s.io/api/node/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/node/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/policy/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/policy/v1/zz_generated.deepcopy.go index 9b7aac2f1984..485e1c938005 100644 --- a/staging/src/k8s.io/api/policy/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/policy/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go index 02d8a85cf704..0a6239b87e7c 100644 --- a/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go index 8bda4b00f24f..612061d6cf71 100644 --- a/staging/src/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go index 095a5e9c28a5..eab086899d14 100644 --- a/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go index 0358227fabc8..9288bd0179f4 100644 --- a/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go index 7ffe58106572..8abaa90c10a7 100644 --- a/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.prerelease-lifecycle.go index a4d99b35ac34..3e38fff084c6 100644 --- a/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/rbac/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/scheduling/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/scheduling/v1/zz_generated.deepcopy.go index 63bfe6404251..e7ff186306a4 100644 --- a/staging/src/k8s.io/api/scheduling/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/scheduling/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go index 0392823975fc..b130c990e48c 100644 --- a/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go index 6e2008578eea..ff38c9854f07 100644 --- a/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.prerelease-lifecycle.go index 45969d15c0b8..15aefb10851c 100644 --- a/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/scheduling/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go index f4de94216104..300f42cbba4b 100644 --- a/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go index 64a34670b37e..d9bc94b25005 100644 --- a/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go index 44311b4bbf66..41114c3c68f2 100644 --- a/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go index 9b7e675ee6ff..5411ed8c00ee 100644 --- a/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go index 275b5d5dbed3..7b69b2cbca33 100644 --- a/staging/src/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/tools.go b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/tools.go index af1f099d6a98..73ab6ef11b39 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/tools.go +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/hack/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/zz_generated.deepcopy.go index 8fcbae6b8fdd..2c5ff8748244 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis/cr/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.conversion.go index b22872dc082f..61fc3a46f6a9 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.deepcopy.go index 7d72bebab23c..c6fdfd26cc5b 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.defaults.go index ed03cdd886cc..2bc7057809e5 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go index 322b4d28cf1f..deb3b05c8692 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go index b39a5900f899..b7ef3f55c399 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.defaults.go index e1807243f019..225c6ff51220 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.prerelease-lifecycle.go index 7b73b9cf244f..9c22ae5c1cb0 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go index ba9e31e9966f..05050c14ecad 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/schema/zz_generated.deepcopy.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/schema/zz_generated.deepcopy.go index ae67d7967c6f..d73ad5a3e7b7 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/schema/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/schema/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/options/options.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/options/options.go index 3db1027fe662..1fcda5305471 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/options/options.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/options/options.go @@ -36,6 +36,7 @@ import ( "k8s.io/apiserver/pkg/util/proxy" "k8s.io/apiserver/pkg/util/webhook" corev1 "k8s.io/client-go/listers/core/v1" + netutils "k8s.io/utils/net" ) const defaultEtcdPathPrefix = "/registry/apiextensions.kubernetes.io" @@ -91,7 +92,7 @@ func (o *CustomResourceDefinitionsServerOptions) Complete() error { // Config returns an apiextensions-apiserver configuration. func (o CustomResourceDefinitionsServerOptions) Config() (*apiserver.Config, error) { // TODO have a "real" external address - if err := o.RecommendedOptions.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{net.ParseIP("127.0.0.1")}); err != nil { + if err := o.RecommendedOptions.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{netutils.ParseIPSloppy("127.0.0.1")}); err != nil { return nil, fmt.Errorf("error creating self-signed certificates: %v", err) } diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go index 35835f341520..487fdc9509a4 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/generated/openapi/zz_generated.openapi.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/go.mod b/staging/src/k8s.io/apimachinery/go.mod index ea7db21b9f19..ff73a56b3d9c 100644 --- a/staging/src/k8s.io/apimachinery/go.mod +++ b/staging/src/k8s.io/apimachinery/go.mod @@ -36,6 +36,7 @@ require ( gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect k8s.io/klog/v2 v2.9.0 k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e + k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a sigs.k8s.io/structured-merge-diff/v4 v4.1.2 sigs.k8s.io/yaml v1.2.0 ) diff --git a/staging/src/k8s.io/apimachinery/go.sum b/staging/src/k8s.io/apimachinery/go.sum index ff9255000483..941a0b25b97d 100644 --- a/staging/src/k8s.io/apimachinery/go.sum +++ b/staging/src/k8s.io/apimachinery/go.sum @@ -95,6 +95,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -212,6 +213,8 @@ k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e h1:KLHHjkdQFomZy8+06csTWZ0m1343QqxZhR2LJ1OxCYM= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a h1:8dYfu/Fc9Gz2rNJKB9IQRGgQOh2clmRzNIPPY1xLY5g= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= diff --git a/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_norace.go b/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_norace.go index 8cf063b1ee0a..c655b3ab71e7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_norace.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_norace.go @@ -1,3 +1,4 @@ +//go:build !race // +build !race /* diff --git a/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_race.go b/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_race.go index 1ec3366ae4f4..fa252960f010 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_race.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/apitesting/roundtrip/fuzz_race.go @@ -1,3 +1,4 @@ +//go:build race // +build race /* diff --git a/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go index ab47407900cf..5bb530eb840a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.conversion.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.conversion.go index a9b28f24426b..6d212b846a4e 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.conversion.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go index d5e4fc680d4e..6e1eac5c75a7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_fuzz.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_fuzz.go index befab16f729d..3cf9d48e9611 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_fuzz.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_fuzz.go @@ -1,3 +1,4 @@ +//go:build !notest // +build !notest /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_fuzz.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_fuzz.go index 94ad8d7cf459..bf9e21b5bd95 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_fuzz.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/time_fuzz.go @@ -1,3 +1,4 @@ +//go:build !notest // +build !notest /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go index 9a9f25e8f26e..fe8250dd6fd0 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go index 3ecb67c82798..abe309a82a4c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go index d43020da573e..418e6099f400 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.defaults.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.deepcopy.go index 89053b981947..972b7f03ea0f 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.conversion.go b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.conversion.go index 1df2cb33824d..22b1c276e785 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go index af9d0094932c..36a3da3bd9fa 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.defaults.go b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go index e80ccfa90e40..8536973cd1e7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go index 4d482947fcd1..fdf4c31e1ea6 100644 --- a/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go index d67d76dc89de..c0d441957510 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/testing/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go index b0393839e1f4..069ea4f92d2d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go index f6a971a2c91f..b86d60921191 100644 --- a/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/test/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apimachinery/pkg/util/intstr/instr_fuzz.go b/staging/src/k8s.io/apimachinery/pkg/util/intstr/instr_fuzz.go index 2501d55166cd..a502b5adb697 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/intstr/instr_fuzz.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/intstr/instr_fuzz.go @@ -1,3 +1,4 @@ +//go:build !notest // +build !notest /* diff --git a/staging/src/k8s.io/apimachinery/pkg/util/json/json_test.go b/staging/src/k8s.io/apimachinery/pkg/util/json/json_test.go index 1602feb0036f..2d9b6f0d3f97 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/json/json_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/json/json_test.go @@ -1,3 +1,4 @@ +//go:build go1.8 // +build go1.8 /* diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/http.go b/staging/src/k8s.io/apimachinery/pkg/util/net/http.go index d75ac6efa2d3..42d66d3164ab 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/http.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/http.go @@ -39,6 +39,7 @@ import ( "golang.org/x/net/http2" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) // JoinPreservingTrailingSlash does a path.Join of the specified elements, @@ -289,7 +290,7 @@ func SourceIPs(req *http.Request) []net.IP { // Use the first valid one. parts := strings.Split(hdrForwardedFor, ",") for _, part := range parts { - ip := net.ParseIP(strings.TrimSpace(part)) + ip := netutils.ParseIPSloppy(strings.TrimSpace(part)) if ip != nil { srcIPs = append(srcIPs, ip) } @@ -299,7 +300,7 @@ func SourceIPs(req *http.Request) []net.IP { // Try the X-Real-Ip header. hdrRealIp := hdr.Get("X-Real-Ip") if hdrRealIp != "" { - ip := net.ParseIP(hdrRealIp) + ip := netutils.ParseIPSloppy(hdrRealIp) // Only append the X-Real-Ip if it's not already contained in the X-Forwarded-For chain. if ip != nil && !containsIP(srcIPs, ip) { srcIPs = append(srcIPs, ip) @@ -311,11 +312,11 @@ func SourceIPs(req *http.Request) []net.IP { // Remote Address in Go's HTTP server is in the form host:port so we need to split that first. host, _, err := net.SplitHostPort(req.RemoteAddr) if err == nil { - remoteIP = net.ParseIP(host) + remoteIP = netutils.ParseIPSloppy(host) } // Fallback if Remote Address was just IP. if remoteIP == nil { - remoteIP = net.ParseIP(req.RemoteAddr) + remoteIP = netutils.ParseIPSloppy(req.RemoteAddr) } // Don't duplicate remote IP if it's already the last address in the chain. @@ -382,7 +383,7 @@ func NewProxierWithNoProxyCIDR(delegate func(req *http.Request) (*url.URL, error cidrs := []*net.IPNet{} for _, noProxyRule := range noProxyRules { - _, cidr, _ := net.ParseCIDR(noProxyRule) + _, cidr, _ := netutils.ParseCIDRSloppy(noProxyRule) if cidr != nil { cidrs = append(cidrs, cidr) } @@ -393,7 +394,7 @@ func NewProxierWithNoProxyCIDR(delegate func(req *http.Request) (*url.URL, error } return func(req *http.Request) (*url.URL, error) { - ip := net.ParseIP(req.URL.Hostname()) + ip := netutils.ParseIPSloppy(req.URL.Hostname()) if ip == nil { return delegate(req) } diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go b/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go index 9411bfa7ddf7..c3f4d4db06a8 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go @@ -1,3 +1,4 @@ +//go:build go1.8 // +build go1.8 /* @@ -37,11 +38,12 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "k8s.io/apimachinery/pkg/util/wait" + netutils "k8s.io/utils/net" ) func TestGetClientIP(t *testing.T) { ipString := "10.0.0.1" - ip := net.ParseIP(ipString) + ip := netutils.ParseIPSloppy(ipString) invalidIPString := "invalidIPString" testCases := []struct { Request http.Request diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go b/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go index 9adf4cfe477a..822416806483 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go @@ -27,6 +27,7 @@ import ( "strings" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) type AddressFamily uint @@ -221,7 +222,7 @@ func getMatchingGlobalIP(addrs []net.Addr, family AddressFamily) (net.IP, error) if len(addrs) > 0 { for i := range addrs { klog.V(4).Infof("Checking addr %s.", addrs[i].String()) - ip, _, err := net.ParseCIDR(addrs[i].String()) + ip, _, err := netutils.ParseCIDRSloppy(addrs[i].String()) if err != nil { return nil, err } @@ -336,7 +337,7 @@ func chooseIPFromHostInterfaces(nw networkInterfacer, addressFamilies AddressFam continue } for _, addr := range addrs { - ip, _, err := net.ParseCIDR(addr.String()) + ip, _, err := netutils.ParseCIDRSloppy(addr.String()) if err != nil { return nil, fmt.Errorf("Unable to parse CIDR for interface %q: %s", intf.Name, err) } diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/interface_test.go b/staging/src/k8s.io/apimachinery/pkg/util/net/interface_test.go index fac078d20f2a..c4d543cda0a5 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/interface_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/interface_test.go @@ -23,6 +23,8 @@ import ( "os" "strings" "testing" + + netutils "k8s.io/utils/net" ) const gatewayfirst = `Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT @@ -119,8 +121,8 @@ var ( ) var ( - ipv4Route = Route{Interface: "eth3", Destination: net.ParseIP("0.0.0.0"), Gateway: net.ParseIP("10.254.0.1"), Family: familyIPv4} - ipv6Route = Route{Interface: "eth3", Destination: net.ParseIP("::"), Gateway: net.ParseIP("2001:1::1"), Family: familyIPv6} + ipv4Route = Route{Interface: "eth3", Destination: netutils.ParseIPSloppy("0.0.0.0"), Gateway: netutils.ParseIPSloppy("10.254.0.1"), Family: familyIPv4} + ipv6Route = Route{Interface: "eth3", Destination: netutils.ParseIPSloppy("::"), Gateway: netutils.ParseIPSloppy("2001:1::1"), Family: familyIPv6} ) var ( @@ -282,8 +284,8 @@ func TestFinalIP(t *testing.T) { {"loopbackv6", []net.Addr{addrStruct{val: "::1/128"}}, familyIPv6, nil}, {"link local v4", []net.Addr{addrStruct{val: "169.254.1.10/16"}}, familyIPv4, nil}, {"link local v6", []net.Addr{addrStruct{val: "fe80::2f7:6fff:fe6e:2956/64"}}, familyIPv6, nil}, - {"ip4", []net.Addr{addrStruct{val: "10.254.12.132/17"}}, familyIPv4, net.ParseIP("10.254.12.132")}, - {"ip6", []net.Addr{addrStruct{val: "2001::5/64"}}, familyIPv6, net.ParseIP("2001::5")}, + {"ip4", []net.Addr{addrStruct{val: "10.254.12.132/17"}}, familyIPv4, netutils.ParseIPSloppy("10.254.12.132")}, + {"ip6", []net.Addr{addrStruct{val: "2001::5/64"}}, familyIPv6, netutils.ParseIPSloppy("2001::5")}, {"no addresses", []net.Addr{}, familyIPv4, nil}, } @@ -556,8 +558,8 @@ func TestGetIPFromInterface(t *testing.T) { expected net.IP errStrFrag string }{ - {"ipv4", "eth3", familyIPv4, validNetworkInterface{}, net.ParseIP("10.254.71.145"), ""}, - {"ipv6", "eth3", familyIPv6, ipv6NetworkInterface{}, net.ParseIP("2001::200"), ""}, + {"ipv4", "eth3", familyIPv4, validNetworkInterface{}, netutils.ParseIPSloppy("10.254.71.145"), ""}, + {"ipv6", "eth3", familyIPv6, ipv6NetworkInterface{}, netutils.ParseIPSloppy("2001::200"), ""}, {"no ipv4", "eth3", familyIPv4, ipv6NetworkInterface{}, nil, ""}, {"no ipv6", "eth3", familyIPv6, validNetworkInterface{}, nil, ""}, {"I/F down", "eth3", familyIPv4, downNetworkInterface{}, nil, ""}, @@ -587,8 +589,8 @@ func TestGetIPFromLoopbackInterface(t *testing.T) { expected net.IP errStrFrag string }{ - {"ipv4", familyIPv4, linkLocalLoopbackNetworkInterface{}, net.ParseIP("10.1.1.1"), ""}, - {"ipv6", familyIPv6, linkLocalLoopbackNetworkInterface{}, net.ParseIP("fd00:1:1::1"), ""}, + {"ipv4", familyIPv4, linkLocalLoopbackNetworkInterface{}, netutils.ParseIPSloppy("10.1.1.1"), ""}, + {"ipv6", familyIPv6, linkLocalLoopbackNetworkInterface{}, netutils.ParseIPSloppy("fd00:1:1::1"), ""}, {"no global ipv4", familyIPv4, loopbackNetworkInterface{}, nil, ""}, {"no global ipv6", familyIPv6, loopbackNetworkInterface{}, nil, ""}, } @@ -614,21 +616,21 @@ func TestChooseHostInterfaceFromRoute(t *testing.T) { order AddressFamilyPreference expected net.IP }{ - {"single-stack ipv4", routeV4, validNetworkInterface{}, preferIPv4, net.ParseIP("10.254.71.145")}, - {"single-stack ipv4, prefer v6", routeV4, validNetworkInterface{}, preferIPv6, net.ParseIP("10.254.71.145")}, - {"single-stack ipv6", routeV6, ipv6NetworkInterface{}, preferIPv4, net.ParseIP("2001::200")}, - {"single-stack ipv6, prefer v6", routeV6, ipv6NetworkInterface{}, preferIPv6, net.ParseIP("2001::200")}, - {"dual stack", bothRoutes, v4v6NetworkInterface{}, preferIPv4, net.ParseIP("10.254.71.145")}, - {"dual stack, prefer v6", bothRoutes, v4v6NetworkInterface{}, preferIPv6, net.ParseIP("2001::10")}, - {"LLA and loopback with global, IPv4", routeV4, linkLocalLoopbackNetworkInterface{}, preferIPv4, net.ParseIP("10.1.1.1")}, - {"LLA and loopback with global, IPv6", routeV6, linkLocalLoopbackNetworkInterface{}, preferIPv6, net.ParseIP("fd00:1:1::1")}, - {"LLA and loopback with global, dual stack prefer IPv4", bothRoutes, linkLocalLoopbackNetworkInterface{}, preferIPv4, net.ParseIP("10.1.1.1")}, - {"LLA and loopback with global, dual stack prefer IPv6", bothRoutes, linkLocalLoopbackNetworkInterface{}, preferIPv6, net.ParseIP("fd00:1:1::1")}, + {"single-stack ipv4", routeV4, validNetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("10.254.71.145")}, + {"single-stack ipv4, prefer v6", routeV4, validNetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("10.254.71.145")}, + {"single-stack ipv6", routeV6, ipv6NetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("2001::200")}, + {"single-stack ipv6, prefer v6", routeV6, ipv6NetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("2001::200")}, + {"dual stack", bothRoutes, v4v6NetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("10.254.71.145")}, + {"dual stack, prefer v6", bothRoutes, v4v6NetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("2001::10")}, + {"LLA and loopback with global, IPv4", routeV4, linkLocalLoopbackNetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("10.1.1.1")}, + {"LLA and loopback with global, IPv6", routeV6, linkLocalLoopbackNetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("fd00:1:1::1")}, + {"LLA and loopback with global, dual stack prefer IPv4", bothRoutes, linkLocalLoopbackNetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("10.1.1.1")}, + {"LLA and loopback with global, dual stack prefer IPv6", bothRoutes, linkLocalLoopbackNetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("fd00:1:1::1")}, {"LLA and loopback with global, no routes", noRoutes, linkLocalLoopbackNetworkInterface{}, preferIPv6, nil}, - {"interface and loopback with global, IPv4", routeV4, globalsNetworkInterface{}, preferIPv4, net.ParseIP("192.168.1.1")}, - {"interface and loopback with global, IPv6", routeV6, globalsNetworkInterface{}, preferIPv6, net.ParseIP("fd00::200")}, - {"interface and loopback with global, dual stack prefer IPv4", bothRoutes, globalsNetworkInterface{}, preferIPv4, net.ParseIP("192.168.1.1")}, - {"interface and loopback with global, dual stack prefer IPv6", bothRoutes, globalsNetworkInterface{}, preferIPv6, net.ParseIP("fd00::200")}, + {"interface and loopback with global, IPv4", routeV4, globalsNetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("192.168.1.1")}, + {"interface and loopback with global, IPv6", routeV6, globalsNetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("fd00::200")}, + {"interface and loopback with global, dual stack prefer IPv4", bothRoutes, globalsNetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("192.168.1.1")}, + {"interface and loopback with global, dual stack prefer IPv6", bothRoutes, globalsNetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("fd00::200")}, {"interface and loopback with global, no routes", noRoutes, globalsNetworkInterface{}, preferIPv6, nil}, {"all LLA", routeV4, networkInterfaceWithOnlyLinkLocals{}, preferIPv4, nil}, {"no routes", noRoutes, validNetworkInterface{}, preferIPv4, nil}, @@ -649,10 +651,10 @@ func TestMemberOf(t *testing.T) { family AddressFamily expected bool }{ - {"ipv4 is 4", net.ParseIP("10.20.30.40"), familyIPv4, true}, - {"ipv4 is 6", net.ParseIP("10.10.10.10"), familyIPv6, false}, - {"ipv6 is 4", net.ParseIP("2001::100"), familyIPv4, false}, - {"ipv6 is 6", net.ParseIP("2001::100"), familyIPv6, true}, + {"ipv4 is 4", netutils.ParseIPSloppy("10.20.30.40"), familyIPv4, true}, + {"ipv4 is 6", netutils.ParseIPSloppy("10.10.10.10"), familyIPv6, false}, + {"ipv6 is 4", netutils.ParseIPSloppy("2001::100"), familyIPv4, false}, + {"ipv6 is 6", netutils.ParseIPSloppy("2001::100"), familyIPv6, true}, } for _, tc := range testCases { if memberOf(tc.ip, tc.family) != tc.expected { @@ -678,12 +680,12 @@ func TestGetIPFromHostInterfaces(t *testing.T) { {"no addresses", networkInterfaceWithNoAddrs{}, preferIPv4, nil, "no acceptable"}, {"invalid addr", networkInterfaceWithInvalidAddr{}, preferIPv4, nil, "invalid CIDR"}, {"no matches", networkInterfaceWithOnlyLinkLocals{}, preferIPv4, nil, "no acceptable"}, - {"single-stack ipv4", validNetworkInterface{}, preferIPv4, net.ParseIP("10.254.71.145"), ""}, - {"single-stack ipv4, prefer ipv6", validNetworkInterface{}, preferIPv6, net.ParseIP("10.254.71.145"), ""}, - {"single-stack ipv6", ipv6NetworkInterface{}, preferIPv4, net.ParseIP("2001::200"), ""}, - {"single-stack ipv6, prefer ipv6", ipv6NetworkInterface{}, preferIPv6, net.ParseIP("2001::200"), ""}, - {"dual stack", v4v6NetworkInterface{}, preferIPv4, net.ParseIP("10.254.71.145"), ""}, - {"dual stack, prefer ipv6", v4v6NetworkInterface{}, preferIPv6, net.ParseIP("2001::10"), ""}, + {"single-stack ipv4", validNetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("10.254.71.145"), ""}, + {"single-stack ipv4, prefer ipv6", validNetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("10.254.71.145"), ""}, + {"single-stack ipv6", ipv6NetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("2001::200"), ""}, + {"single-stack ipv6, prefer ipv6", ipv6NetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("2001::200"), ""}, + {"dual stack", v4v6NetworkInterface{}, preferIPv4, netutils.ParseIPSloppy("10.254.71.145"), ""}, + {"dual stack, prefer ipv6", v4v6NetworkInterface{}, preferIPv6, netutils.ParseIPSloppy("2001::10"), ""}, } for _, tc := range testCases { diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/util_test.go b/staging/src/k8s.io/apimachinery/pkg/util/net/util_test.go index 9e175fcb37bb..029f2f7116cb 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/util_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/util_test.go @@ -22,10 +22,12 @@ import ( "os" "syscall" "testing" + + netutils "k8s.io/utils/net" ) func getIPNet(cidr string) *net.IPNet { - _, ipnet, _ := net.ParseCIDR(cidr) + _, ipnet, _ := netutils.ParseCIDRSloppy(cidr) return ipnet } diff --git a/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go b/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go index c8b419984057..83df4fb8d42b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go @@ -25,6 +25,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/util/validation/field" + netutils "k8s.io/utils/net" ) const qnameCharFmt string = "[A-Za-z0-9]" @@ -346,7 +347,7 @@ func IsValidPortName(port string) []string { // IsValidIP tests that the argument is a valid IP address. func IsValidIP(value string) []string { - if net.ParseIP(value) == nil { + if netutils.ParseIPSloppy(value) == nil { return []string{"must be a valid IP address, (e.g. 10.9.8.7 or 2001:db8::ffff)"} } return nil @@ -355,7 +356,7 @@ func IsValidIP(value string) []string { // IsValidIPv4Address tests that the argument is a valid IPv4 address. func IsValidIPv4Address(fldPath *field.Path, value string) field.ErrorList { var allErrors field.ErrorList - ip := net.ParseIP(value) + ip := netutils.ParseIPSloppy(value) if ip == nil || ip.To4() == nil { allErrors = append(allErrors, field.Invalid(fldPath, value, "must be a valid IPv4 address")) } @@ -365,7 +366,7 @@ func IsValidIPv4Address(fldPath *field.Path, value string) field.ErrorList { // IsValidIPv6Address tests that the argument is a valid IPv6 address. func IsValidIPv6Address(fldPath *field.Path, value string) field.ErrorList { var allErrors field.ErrorList - ip := net.ParseIP(value) + ip := netutils.ParseIPSloppy(value) if ip == nil || ip.To4() != nil { allErrors = append(allErrors, field.Invalid(fldPath, value, "must be a valid IPv6 address")) } diff --git a/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go b/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go index 71ef4da3348d..dd27d4526fca 100644 --- a/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.conversion.go index e1fca3bd348b..c10258d4c485 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.deepcopy.go index f777dbb0ef8e..78b750d9a431 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.defaults.go index 3299553542ac..3d3fbb6d8eed 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.conversion.go index 8daa12683d59..af5d59a9aae5 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go index 95a100b92e98..570901f5d0e7 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.defaults.go index fbf617bbf1db..cc845eda04d6 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.conversion.go index 250c3e158314..f9ccbf6efbea 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.deepcopy.go index 313439bc2183..599349524673 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.defaults.go index f64a3ac971b7..3df0f161313d 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/zz_generated.deepcopy.go index 78baf66effc5..53e90926b463 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.conversion.go index 65eb414fcc32..4cf69291b3a7 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.deepcopy.go index 99fc6a6fa7e2..839c1fc7ac72 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.conversion.go index eadb147c40f2..66aaecbd8637 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.deepcopy.go index a59d62d6c415..f997f4abaf3e 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/zz_generated.deepcopy.go index 90b7e0ae62ec..27c3ede0da2c 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go index 5116139ae98e..22562c87a075 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go index a0e039de0d74..d1bc5e01f59d 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.conversion.go index 0a5f3d413c8c..f5d5e6d7656a 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go index 3f0fae3f8ab6..0e95103e01cc 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.conversion.go index b0e44b7e16bf..3189864bb369 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.deepcopy.go index eda0eaffc4b6..bb1819cac653 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go index 55321b084ce8..86acce65f88a 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.conversion.go index 4500bfe31421..ba72698e619e 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.deepcopy.go index 81d126d4e028..b333fd0077a3 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.conversion.go index 74a18420536e..35c27734adc6 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go index efb6cd87de42..a986144e7a7d 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.prerelease-lifecycle.go index 1fb3352112b5..d1a38ca83b55 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.conversion.go index 0aac32119e2b..5257b2b25dd3 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go index 5adbd5a78c03..0249b3c85ddc 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.prerelease-lifecycle.go index e475d4c2e668..0a0dc6669f35 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go index a210f631b2d3..4f7b4b3fe96d 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.conversion.go index c7de6539d853..ff2132f72922 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.deepcopy.go index dcb4e855297a..3d2ac484b0c1 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.defaults.go index 1c8db8d04f64..82fec011102f 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/config/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/config/zz_generated.deepcopy.go index dd66315ee714..13e5cffca801 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/config/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.conversion.go index bcc2d24dc0db..184551bd1db7 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go index e1fd9496d248..5129e23aa7e9 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go index d92ab315c066..0a338ec9f6bb 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go index 344e06a207ab..9c22b04efe63 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go index 754ac2f9e86a..38d01e6bbc02 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.defaults.go b/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example2/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go index 9c3b4480e378..b3bdf005d36f 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/addresses_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/addresses_test.go index 4c811ffac0e7..79540795ea6b 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/addresses_test.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/addresses_test.go @@ -17,13 +17,13 @@ limitations under the License. package discovery import ( - "net" "net/http" "reflect" "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilnet "k8s.io/apimachinery/pkg/util/net" + netutils "k8s.io/utils/net" ) func TestGetServerAddressByClientCIDRs(t *testing.T) { @@ -103,7 +103,7 @@ func TestGetServerAddressByClientCIDRs(t *testing.T) { }, } - _, ipRange, _ := net.ParseCIDR("10.0.0.0/24") + _, ipRange, _ := netutils.ParseCIDRSloppy("10.0.0.0/24") discoveryAddresses := DefaultAddresses{DefaultAddress: "ExternalAddress"} discoveryAddresses.CIDRRules = append(discoveryAddresses.CIDRRules, CIDRRule{IPRange: *ipRange, Address: "serviceIP"}) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go index 63d386c50df5..5778ed2adcb2 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go index 9a8a80ba1968..8065d8b2d224 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/testing/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/server/config_selfclient_test.go b/staging/src/k8s.io/apiserver/pkg/server/config_selfclient_test.go index 4d811c64104e..5e646d735f1f 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/config_selfclient_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/config_selfclient_test.go @@ -47,7 +47,7 @@ func TestLoopbackHostPortIPv4(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - if ip := net.ParseIP(host); ip == nil || !ip.IsLoopback() { + if ip := netutils.ParseIPSloppy(host); ip == nil || !ip.IsLoopback() { t.Fatalf("expected host to be loopback, got %q", host) } if port != "443" { @@ -78,7 +78,7 @@ func TestLoopbackHostPortIPv6(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - if ip := net.ParseIP(host); ip == nil || !ip.IsLoopback() || ip.To4() != nil { + if ip := netutils.ParseIPSloppy(host); ip == nil || !ip.IsLoopback() || ip.To4() != nil { t.Fatalf("expected IPv6 host to be loopback, got %q", host) } if port != "443" { diff --git a/staging/src/k8s.io/apiserver/pkg/server/config_test.go b/staging/src/k8s.io/apiserver/pkg/server/config_test.go index 532cf49d3d48..213c66a8c638 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/config_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/config_test.go @@ -19,7 +19,6 @@ package server import ( "fmt" "io/ioutil" - "net" "net/http" "net/http/httptest" "net/http/httputil" @@ -42,6 +41,7 @@ import ( "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/rest" + netutils "k8s.io/utils/net" ) func TestAuthorizeClientBearerTokenNoops(t *testing.T) { @@ -80,7 +80,7 @@ func TestAuthorizeClientBearerTokenNoops(t *testing.T) { func TestNewWithDelegate(t *testing.T) { delegateConfig := NewConfig(codecs) delegateConfig.ExternalAddress = "192.168.10.4:443" - delegateConfig.PublicAddress = net.ParseIP("192.168.10.4") + delegateConfig.PublicAddress = netutils.ParseIPSloppy("192.168.10.4") delegateConfig.LegacyAPIGroupPrefixes = sets.NewString("/api") delegateConfig.LoopbackClientConfig = &rest.Config{} clientset := fake.NewSimpleClientset() @@ -112,7 +112,7 @@ func TestNewWithDelegate(t *testing.T) { wrappingConfig := NewConfig(codecs) wrappingConfig.ExternalAddress = "192.168.10.4:443" - wrappingConfig.PublicAddress = net.ParseIP("192.168.10.4") + wrappingConfig.PublicAddress = netutils.ParseIPSloppy("192.168.10.4") wrappingConfig.LegacyAPIGroupPrefixes = sets.NewString("/api") wrappingConfig.LoopbackClientConfig = &rest.Config{} diff --git a/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates.go b/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates.go index ee0aa8de0f16..e8be133c02e7 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates.go +++ b/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates.go @@ -20,12 +20,12 @@ import ( "crypto/tls" "crypto/x509" "fmt" - "net" "strings" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/validation" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) // BuildNamedCertificates returns a map of *tls.Certificate by name. It's @@ -77,7 +77,7 @@ func getCertificateNames(cert *x509.Certificate) []string { var names []string cn := cert.Subject.CommonName - cnIsIP := net.ParseIP(cn) != nil + cnIsIP := netutils.ParseIPSloppy(cn) != nil cnIsValidDomain := cn == "*" || len(validation.IsDNS1123Subdomain(strings.TrimPrefix(cn, "*."))) == 0 // don't use the CN if it is a valid IP because our IP serving detection may unexpectedly use it to terminate the connection. if !cnIsIP && cnIsValidDomain { diff --git a/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates_test.go b/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates_test.go index 56848723337f..e240830608bf 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/dynamiccertificates/named_certificates_test.go @@ -31,6 +31,8 @@ import ( "testing" "time" + netutils "k8s.io/utils/net" + "github.com/stretchr/testify/assert" ) @@ -246,7 +248,7 @@ NextTest: func parseIPList(ips []string) []net.IP { var netIPs []net.IP for _, ip := range ips { - netIPs = append(netIPs, net.ParseIP(ip)) + netIPs = append(netIPs, netutils.ParseIPSloppy(ip)) } return netIPs } @@ -302,7 +304,7 @@ func generateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS IsCA: true, } - if ip := net.ParseIP(host); ip != nil { + if ip := netutils.ParseIPSloppy(host); ip != nil { template.IPAddresses = append(template.IPAddresses, ip) } else { template.DNSNames = append(template.DNSNames, host) diff --git a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go index 7a8f2a7f90bb..17f8d8104090 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go @@ -54,6 +54,7 @@ import ( restclient "k8s.io/client-go/rest" kubeopenapi "k8s.io/kube-openapi/pkg/common" "k8s.io/kube-openapi/pkg/validation/spec" + netutils "k8s.io/utils/net" ) const ( @@ -127,7 +128,7 @@ func testGetOpenAPIDefinitions(_ kubeopenapi.ReferenceCallback) map[string]kubeo func setUp(t *testing.T) (Config, *assert.Assertions) { config := NewConfig(codecs) config.ExternalAddress = "192.168.10.4:443" - config.PublicAddress = net.ParseIP("192.168.10.4") + config.PublicAddress = netutils.ParseIPSloppy("192.168.10.4") config.LegacyAPIGroupPrefixes = sets.NewString("/api") config.LoopbackClientConfig = &restclient.Config{} diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options_test.go b/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options_test.go index 871af5f909e7..b5d0ecd8ef82 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options_test.go @@ -17,12 +17,12 @@ limitations under the License. package options import ( - "net" "strings" "testing" "time" utilerrors "k8s.io/apimachinery/pkg/util/errors" + netutils "k8s.io/utils/net" ) func TestServerRunOptionsValidate(t *testing.T) { @@ -34,7 +34,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when MaxRequestsInFlight is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: -400, MaxMutatingRequestsInFlight: 200, @@ -48,7 +48,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when MaxMutatingRequestsInFlight is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: -200, @@ -62,7 +62,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when RequestTimeout is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: 200, @@ -76,7 +76,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when MinRequestTimeout is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: 200, @@ -90,7 +90,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when JSONPatchMaxCopyBytes is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: 200, @@ -104,7 +104,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when MaxRequestBodyBytes is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: 200, @@ -118,7 +118,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when LivezGracePeriod is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: 200, @@ -133,7 +133,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when MinimalShutdownDuration is negative value", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, MaxRequestsInFlight: 400, MaxMutatingRequestsInFlight: 200, @@ -148,7 +148,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when HSTSHeaders is valid", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, HSTSDirectives: []string{"fakevalue", "includeSubDomains", "preload"}, MaxRequestsInFlight: 400, @@ -163,7 +163,7 @@ func TestServerRunOptionsValidate(t *testing.T) { { name: "Test when ServerRunOptions is valid", testOptions: &ServerRunOptions{ - AdvertiseAddress: net.ParseIP("192.168.10.10"), + AdvertiseAddress: netutils.ParseIPSloppy("192.168.10.10"), CorsAllowedOriginList: []string{"10.10.10.100", "10.10.10.200"}, HSTSDirectives: []string{"max-age=31536000", "includeSubDomains", "preload"}, MaxRequestsInFlight: 400, diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving.go index f435ba5b8d9f..c64798b4f96c 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving.go @@ -27,6 +27,7 @@ import ( "github.com/spf13/pflag" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apiserver/pkg/server" @@ -108,7 +109,7 @@ type GeneratableKeyCert struct { func NewSecureServingOptions() *SecureServingOptions { return &SecureServingOptions{ - BindAddress: net.ParseIP("0.0.0.0"), + BindAddress: netutils.ParseIPSloppy("0.0.0.0"), BindPort: 443, ServerCert: GeneratableKeyCert{ PairName: "apiserver", diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go index 2e811653deea..f1ca80cb2e8d 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving_test.go @@ -44,6 +44,7 @@ import ( "k8s.io/client-go/discovery" restclient "k8s.io/client-go/rest" cliflag "k8s.io/component-base/cli/flag" + netutils "k8s.io/utils/net" ) func setUp(t *testing.T) server.Config { @@ -277,7 +278,7 @@ func TestServerRunWithSNI(t *testing.T) { config.EnableIndex = true secureOptions := (&SecureServingOptions{ - BindAddress: net.ParseIP("127.0.0.1"), + BindAddress: netutils.ParseIPSloppy("127.0.0.1"), BindPort: 6443, ServerCert: GeneratableKeyCert{ CertKey: CertKey{ @@ -381,7 +382,7 @@ func TestServerRunWithSNI(t *testing.T) { func parseIPList(ips []string) []net.IP { var netIPs []net.IP for _, ip := range ips { - netIPs = append(netIPs, net.ParseIP(ip)) + netIPs = append(netIPs, netutils.ParseIPSloppy(ip)) } return netIPs } @@ -488,7 +489,7 @@ func generateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS IsCA: true, } - if ip := net.ParseIP(host); ip != nil { + if ip := netutils.ParseIPSloppy(host); ip != nil { template.IPAddresses = append(template.IPAddresses, ip) } else { template.DNSNames = append(template.DNSNames, host) diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix.go index 5bf87e4b17c2..483eac79b235 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix_test.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix_test.go index 3bf5ae5dfdc3..bfc4815329f4 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving_unix_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving_windows.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving_windows.go index 1663acee0b81..844de618833a 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving_windows.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/serving_with_loopback_test.go b/staging/src/k8s.io/apiserver/pkg/server/options/serving_with_loopback_test.go index f87b2fafe446..c4b0c57b568c 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/serving_with_loopback_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/serving_with_loopback_test.go @@ -22,6 +22,7 @@ import ( "k8s.io/apiserver/pkg/server" "k8s.io/client-go/rest" + netutils "k8s.io/utils/net" ) func TestEmptyMainCert(t *testing.T) { @@ -29,7 +30,7 @@ func TestEmptyMainCert(t *testing.T) { var loopbackClientConfig *rest.Config s := (&SecureServingOptions{ - BindAddress: net.ParseIP("127.0.0.1"), + BindAddress: netutils.ParseIPSloppy("127.0.0.1"), }).WithLoopback() ln, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { diff --git a/staging/src/k8s.io/apiserver/pkg/server/patch_genericapiserver.go b/staging/src/k8s.io/apiserver/pkg/server/patch_genericapiserver.go index e00f7a2ce08a..46a734b29a0d 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/patch_genericapiserver.go +++ b/staging/src/k8s.io/apiserver/pkg/server/patch_genericapiserver.go @@ -29,6 +29,7 @@ import ( corev1 "k8s.io/api/core/v1" "k8s.io/apiserver/pkg/audit" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) // terminationLoggingListener wraps the given listener to mark late connections @@ -145,7 +146,7 @@ func isLocal(req *http.Request) bool { host, _, err := net.SplitHostPort(req.RemoteAddr) if err != nil { // ignore error and keep going - } else if ip := net.ParseIP(host); ip != nil { + } else if ip := netutils.ParseIPSloppy(host); ip != nil { return ip.IsLoopback() } diff --git a/staging/src/k8s.io/apiserver/pkg/server/signal_posix.go b/staging/src/k8s.io/apiserver/pkg/server/signal_posix.go index 11b3bba65fcc..7acb2038a1b3 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/signal_posix.go +++ b/staging/src/k8s.io/apiserver/pkg/server/signal_posix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go index 41c1941a7f6e..8b368c57cbaa 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/testing/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/grpc_service_unix_test.go b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/grpc_service_unix_test.go index 8ae057d95ef5..60f6f88d775e 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/grpc_service_unix_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/grpc_service_unix_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/testing/kms_plugin_mock.go b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/testing/kms_plugin_mock.go index 53e2c0f26af2..50730aa4f880 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/testing/kms_plugin_mock.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/testing/kms_plugin_mock.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go b/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go index d2019849eeab..475c7e3cfdbe 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go +++ b/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go @@ -197,7 +197,7 @@ MIIDGTCCAgGgAwIBAgIUOS2M }, }, user: &defaultUser, - errRegex: "unable to load root certificates: failed to parse certificate: asn1: syntax error: data truncated", + errRegex: "unable to load root certificates: failed to parse certificate: (asn1: syntax error: data truncated|x509: malformed certificate)", }, { test: "user with invalid client certificate path", diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.conversion.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.conversion.go index 39e7ef2597d7..277d9d93ee68 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.deepcopy.go index 60ab25d81b3e..893933c45f12 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.defaults.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.conversion.go index b0e503af4933..fc59decef5e7 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.deepcopy.go index a73d31b3f14b..ce614c0b8795 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go index 8daed805240f..c82993897d04 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go index 3a72ece0c6f3..d7a801c27d70 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go index 045b07f5b054..3103629f6173 100644 --- a/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go index 967039662c67..ebfbd715c0cd 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins_providers.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go index da4a1624e81a..86991be3b514 100644 --- a/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/rest/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go index 02a36051e6af..d56861ead5aa 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go index c31ad4b35399..09c17420e0b7 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go b/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go index 9bc48695dde7..09e73584eb52 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go b/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go index 5fd69a5a88d9..46b29f171fff 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go index 3db7081546ec..6ee3c2071de7 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.conversion.go b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.conversion.go index 13dfa903cf86..1e060654bbba 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go index da519dfa3bc3..78492598bc9a 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.defaults.go b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.defaults.go index aae469033cc7..6a57decf62aa 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go b/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go index a04de6260ba4..86e4ddef1b13 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/client-go/tools/portforward/portforward.go b/staging/src/k8s.io/client-go/tools/portforward/portforward.go index ffc0bcac7d42..f9b0232a34d6 100644 --- a/staging/src/k8s.io/client-go/tools/portforward/portforward.go +++ b/staging/src/k8s.io/client-go/tools/portforward/portforward.go @@ -31,6 +31,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/runtime" + netutils "k8s.io/utils/net" ) // PortForwardProtocolV1Name is the subprotocol used for port forwarding. @@ -131,9 +132,9 @@ func parseAddresses(addressesToParse []string) ([]listenAddress, error) { ip := listenAddress{address: "::1", protocol: "tcp6", failureMode: "all"} parsed[ip.address] = ip } - } else if net.ParseIP(address).To4() != nil { + } else if netutils.ParseIPSloppy(address).To4() != nil { parsed[address] = listenAddress{address: address, protocol: "tcp4", failureMode: "any"} - } else if net.ParseIP(address) != nil { + } else if netutils.ParseIPSloppy(address) != nil { parsed[address] = listenAddress{address: address, protocol: "tcp6", failureMode: "any"} } else { return nil, fmt.Errorf("%s is not a valid IP", address) diff --git a/staging/src/k8s.io/client-go/util/cert/cert.go b/staging/src/k8s.io/client-go/util/cert/cert.go index bffb1526272f..75143ec07176 100644 --- a/staging/src/k8s.io/client-go/util/cert/cert.go +++ b/staging/src/k8s.io/client-go/util/cert/cert.go @@ -33,6 +33,7 @@ import ( "time" "k8s.io/client-go/util/keyutil" + netutils "k8s.io/utils/net" ) const duration365d = time.Hour * 24 * 365 @@ -157,7 +158,7 @@ func GenerateSelfSignedCertKeyWithFixtures(host string, alternateIPs []net.IP, a BasicConstraintsValid: true, } - if ip := net.ParseIP(host); ip != nil { + if ip := netutils.ParseIPSloppy(host); ip != nil { template.IPAddresses = append(template.IPAddresses, ip) } else { template.DNSNames = append(template.DNSNames, host) diff --git a/staging/src/k8s.io/client-go/util/cert/csr_test.go b/staging/src/k8s.io/client-go/util/cert/csr_test.go index d546ec792f56..e81f25e90471 100644 --- a/staging/src/k8s.io/client-go/util/cert/csr_test.go +++ b/staging/src/k8s.io/client-go/util/cert/csr_test.go @@ -25,6 +25,7 @@ import ( "testing" "k8s.io/client-go/util/keyutil" + netutils "k8s.io/utils/net" ) func TestMakeCSR(t *testing.T) { @@ -33,7 +34,7 @@ func TestMakeCSR(t *testing.T) { CommonName: "kube-worker", } dnsSANs := []string{"localhost"} - ipSANs := []net.IP{net.ParseIP("127.0.0.1")} + ipSANs := []net.IP{netutils.ParseIPSloppy("127.0.0.1")} keyData, err := ioutil.ReadFile(keyFile) if err != nil { diff --git a/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go b/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go index baced0ab2014..291c72452bef 100644 --- a/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go +++ b/staging/src/k8s.io/client-go/util/certificate/certificate_manager_test.go @@ -38,6 +38,7 @@ import ( "k8s.io/client-go/kubernetes/fake" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" clienttesting "k8s.io/client-go/testing" + netutils "k8s.io/utils/net" ) var storeCertData = newCertificateData(`-----BEGIN CERTIFICATE----- @@ -394,11 +395,11 @@ func TestCertSatisfiesTemplate(t *testing.T) { name: "Missing IP addresses in certificate", cert: &x509.Certificate{ Subject: pkix.Name{}, - IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + IPAddresses: []net.IP{netutils.ParseIPSloppy("192.168.1.1")}, }, template: &x509.CertificateRequest{ Subject: pkix.Name{}, - IPAddresses: []net.IP{net.ParseIP("192.168.1.1"), net.ParseIP("192.168.1.2")}, + IPAddresses: []net.IP{netutils.ParseIPSloppy("192.168.1.1"), netutils.ParseIPSloppy("192.168.1.2")}, }, shouldSatisfy: false, }, @@ -406,11 +407,11 @@ func TestCertSatisfiesTemplate(t *testing.T) { name: "Extra IP addresses in certificate", cert: &x509.Certificate{ Subject: pkix.Name{}, - IPAddresses: []net.IP{net.ParseIP("192.168.1.1"), net.ParseIP("192.168.1.2")}, + IPAddresses: []net.IP{netutils.ParseIPSloppy("192.168.1.1"), netutils.ParseIPSloppy("192.168.1.2")}, }, template: &x509.CertificateRequest{ Subject: pkix.Name{}, - IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + IPAddresses: []net.IP{netutils.ParseIPSloppy("192.168.1.1")}, }, shouldSatisfy: true, }, @@ -422,7 +423,7 @@ func TestCertSatisfiesTemplate(t *testing.T) { Organization: []string{"system:nodes"}, }, DNSNames: []string{"foo.example.com"}, - IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + IPAddresses: []net.IP{netutils.ParseIPSloppy("192.168.1.1")}, }, template: &x509.CertificateRequest{ Subject: pkix.Name{ @@ -430,7 +431,7 @@ func TestCertSatisfiesTemplate(t *testing.T) { Organization: []string{"system:nodes"}, }, DNSNames: []string{"foo.example.com"}, - IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + IPAddresses: []net.IP{netutils.ParseIPSloppy("192.168.1.1")}, }, shouldSatisfy: true, }, diff --git a/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.conversion.go index b33ee3e8c5ae..76acd4d41b3f 100644 --- a/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.deepcopy.go index 4b85a3856723..06eca856ed5d 100644 --- a/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.defaults.go index bcf9da1a1928..96b18ded9782 100644 --- a/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/cloud-provider/config/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/cloud-provider/config/zz_generated.deepcopy.go b/staging/src/k8s.io/cloud-provider/config/zz_generated.deepcopy.go index e5c9a916a80e..dc3cc5307c15 100644 --- a/staging/src/k8s.io/cloud-provider/config/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/cloud-provider/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go index 6f9342231444..697647c24acc 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go +++ b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go @@ -24,6 +24,7 @@ import ( "time" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -340,7 +341,7 @@ func (rc *RouteController) updateNetworkingCondition(node *v1.Node, routesCreate } func (rc *RouteController) isResponsibleForRoute(route *cloudprovider.Route) bool { - _, cidr, err := net.ParseCIDR(route.DestinationCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(route.DestinationCIDR) if err != nil { klog.Errorf("Ignoring route %s, unparsable CIDR: %v", route.Name, err) return false diff --git a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller_test.go b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller_test.go index 44b1489ea3cd..fb984e8d7e0b 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller_test.go +++ b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller_test.go @@ -31,6 +31,7 @@ import ( cloudprovider "k8s.io/cloud-provider" fakecloud "k8s.io/cloud-provider/fake" cloudnodeutil "k8s.io/cloud-provider/node/helpers" + netutils "k8s.io/utils/net" ) func alwaysReady() bool { return true } @@ -60,7 +61,7 @@ func TestIsResponsibleForRoute(t *testing.T) { {"a00:100::/10", myClusterRoute, "b00:100::/24", false}, } for i, testCase := range testCases { - _, cidr, err := net.ParseCIDR(testCase.clusterCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(testCase.clusterCIDR) if err != nil { t.Errorf("%d. Error in test case: unparsable cidr %q", i, testCase.clusterCIDR) } @@ -359,10 +360,10 @@ func TestReconcile(t *testing.T) { t.Error("Error in test: fakecloud doesn't support Routes()") } cidrs := make([]*net.IPNet, 0) - _, cidr, _ := net.ParseCIDR("10.120.0.0/16") + _, cidr, _ := netutils.ParseCIDRSloppy("10.120.0.0/16") cidrs = append(cidrs, cidr) if testCase.dualStack { - _, cidrv6, _ := net.ParseCIDR("ace:cab:deca::/8") + _, cidrv6, _ := netutils.ParseCIDRSloppy("ace:cab:deca::/8") cidrs = append(cidrs, cidrv6) } diff --git a/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.conversion.go index fadd763eb751..5c4e7db7a8e8 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.deepcopy.go index 28ffa6beda2b..49a9f7d2aae0 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/cloud-provider/controllers/service/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/cloud-provider/controllers/service/config/zz_generated.deepcopy.go b/staging/src/k8s.io/cloud-provider/controllers/service/config/zz_generated.deepcopy.go index 9d007eb957d2..53eb242968c1 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/service/config/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/cloud-provider/controllers/service/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/cloud-provider/options/options.go b/staging/src/k8s.io/cloud-provider/options/options.go index bc7940b7312b..1371600c8275 100644 --- a/staging/src/k8s.io/cloud-provider/options/options.go +++ b/staging/src/k8s.io/cloud-provider/options/options.go @@ -42,6 +42,7 @@ import ( cliflag "k8s.io/component-base/cli/flag" cmoptions "k8s.io/controller-manager/options" "k8s.io/controller-manager/pkg/clientbuilder" + netutils "k8s.io/utils/net" // add the related feature gates _ "k8s.io/controller-manager/pkg/features/register" @@ -88,7 +89,7 @@ func NewCloudControllerManagerOptions() (*CloudControllerManagerOptions, error) }, SecureServing: apiserveroptions.NewSecureServingOptions().WithLoopback(), InsecureServing: (&apiserveroptions.DeprecatedInsecureServingOptions{ - BindAddress: net.ParseIP(componentConfig.Generic.Address), + BindAddress: netutils.ParseIPSloppy(componentConfig.Generic.Address), BindPort: int(componentConfig.Generic.Port), BindNetwork: "tcp", }).WithLoopback(), @@ -247,7 +248,7 @@ func (o *CloudControllerManagerOptions) Config(allControllers, disabledByDefault return nil, err } - if err := o.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{net.ParseIP("127.0.0.1")}); err != nil { + if err := o.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{netutils.ParseIPSloppy("127.0.0.1")}); err != nil { return nil, fmt.Errorf("error creating self-signed certificates: %v", err) } diff --git a/staging/src/k8s.io/cloud-provider/options/options_test.go b/staging/src/k8s.io/cloud-provider/options/options_test.go index 70c91c214549..bc5efdba206c 100644 --- a/staging/src/k8s.io/cloud-provider/options/options_test.go +++ b/staging/src/k8s.io/cloud-provider/options/options_test.go @@ -17,7 +17,6 @@ limitations under the License. package options import ( - "net" "reflect" "testing" "time" @@ -32,6 +31,7 @@ import ( cmconfig "k8s.io/controller-manager/config" cmoptions "k8s.io/controller-manager/options" migration "k8s.io/controller-manager/pkg/leadermigration/options" + netutils "k8s.io/utils/net" ) func TestDefaultFlags(t *testing.T) { @@ -92,7 +92,7 @@ func TestDefaultFlags(t *testing.T) { }, SecureServing: (&apiserveroptions.SecureServingOptions{ BindPort: 10258, - BindAddress: net.ParseIP("0.0.0.0"), + BindAddress: netutils.ParseIPSloppy("0.0.0.0"), ServerCert: apiserveroptions.GeneratableKeyCert{ CertDirectory: "", PairName: "cloud-controller-manager", @@ -100,7 +100,7 @@ func TestDefaultFlags(t *testing.T) { HTTP2MaxStreamsPerConnection: 0, }).WithLoopback(), InsecureServing: (&apiserveroptions.DeprecatedInsecureServingOptions{ - BindAddress: net.ParseIP("0.0.0.0"), + BindAddress: netutils.ParseIPSloppy("0.0.0.0"), BindPort: int(0), BindNetwork: "tcp", }).WithLoopback(), @@ -231,7 +231,7 @@ func TestAddFlags(t *testing.T) { }, SecureServing: (&apiserveroptions.SecureServingOptions{ BindPort: 10001, - BindAddress: net.ParseIP("192.168.4.21"), + BindAddress: netutils.ParseIPSloppy("192.168.4.21"), ServerCert: apiserveroptions.GeneratableKeyCert{ CertDirectory: "/a/b/c", PairName: "cloud-controller-manager", @@ -239,7 +239,7 @@ func TestAddFlags(t *testing.T) { HTTP2MaxStreamsPerConnection: 47, }).WithLoopback(), InsecureServing: (&apiserveroptions.DeprecatedInsecureServingOptions{ - BindAddress: net.ParseIP("192.168.4.10"), + BindAddress: netutils.ParseIPSloppy("192.168.4.10"), BindPort: int(10000), BindNetwork: "tcp", }).WithLoopback(), diff --git a/staging/src/k8s.io/cluster-bootstrap/go.sum b/staging/src/k8s.io/cluster-bootstrap/go.sum index b1acd38e31d6..6467cf64d946 100644 --- a/staging/src/k8s.io/cluster-bootstrap/go.sum +++ b/staging/src/k8s.io/cluster-bootstrap/go.sum @@ -84,6 +84,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -202,6 +203,8 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a h1:8dYfu/Fc9Gz2rNJKB9IQRGgQOh2clmRzNIPPY1xLY5g= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= diff --git a/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.deepcopy.go index 9f55a39dd1b7..5eee47016bf3 100644 --- a/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.defaults.go b/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/code-generator/examples/HyphenGroup/apis/example/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.deepcopy.go index 9f55a39dd1b7..5eee47016bf3 100644 --- a/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.defaults.go b/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/code-generator/examples/MixedCase/apis/example/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.conversion.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.conversion.go index d939bdc18495..ac03143b461d 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.deepcopy.go index ec5a6e97461c..d87f706f7705 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.defaults.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/zz_generated.deepcopy.go index 2639b92a6a5d..650077277f3d 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.conversion.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.conversion.go index f817a3937675..efff2d34b817 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go index ec5a6e97461c..d87f706f7705 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.defaults.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/zz_generated.deepcopy.go index dbb70bc3a692..1fa43c462edf 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.conversion.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.conversion.go index a5fd87a97019..f1aecef53e02 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.deepcopy.go index ec5a6e97461c..d87f706f7705 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.defaults.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/zz_generated.deepcopy.go index 17f1fea4a7bc..2a976a9eeda5 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/apis/example3.io/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/apiserver/openapi/zz_generated.openapi.go b/staging/src/k8s.io/code-generator/examples/apiserver/openapi/zz_generated.openapi.go index 739a6ea2aac6..db72ff6ddec0 100644 --- a/staging/src/k8s.io/code-generator/examples/apiserver/openapi/zz_generated.openapi.go +++ b/staging/src/k8s.io/code-generator/examples/apiserver/openapi/zz_generated.openapi.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.deepcopy.go index 9f55a39dd1b7..5eee47016bf3 100644 --- a/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.defaults.go b/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.deepcopy.go index ec5a6e97461c..d87f706f7705 100644 --- a/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.defaults.go b/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.defaults.go index cce2e603a69a..dac177e93bd0 100644 --- a/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/code-generator/examples/crd/apis/example2/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/code-generator/tools.go b/staging/src/k8s.io/code-generator/tools.go index 7d13de5a1994..ce7f7f476323 100644 --- a/staging/src/k8s.io/code-generator/tools.go +++ b/staging/src/k8s.io/code-generator/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools /* diff --git a/staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag_114.go b/staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag_114.go index 45b39eb0f0c7..d9dd6b6fee36 100644 --- a/staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag_114.go +++ b/staging/src/k8s.io/component-base/cli/flag/ciphersuites_flag_114.go @@ -1,3 +1,4 @@ +//go:build go1.14 // +build go1.14 /* diff --git a/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.conversion.go index 5490ba3ba66a..ff820e63e231 100644 --- a/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.deepcopy.go index f5f2a0e91ee0..909c49b11241 100644 --- a/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/component-base/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/component-base/config/zz_generated.deepcopy.go b/staging/src/k8s.io/component-base/config/zz_generated.deepcopy.go index 77260a06f00b..b592ded0089d 100644 --- a/staging/src/k8s.io/component-base/config/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/component-base/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/component-base/metrics/processstarttime_others.go b/staging/src/k8s.io/component-base/metrics/processstarttime_others.go index 89ea8a68e8ba..a14cd8833acd 100644 --- a/staging/src/k8s.io/component-base/metrics/processstarttime_others.go +++ b/staging/src/k8s.io/component-base/metrics/processstarttime_others.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/component-base/metrics/processstarttime_windows.go b/staging/src/k8s.io/component-base/metrics/processstarttime_windows.go index 8fcdf273a22d..7813115e7ec1 100644 --- a/staging/src/k8s.io/component-base/metrics/processstarttime_windows.go +++ b/staging/src/k8s.io/component-base/metrics/processstarttime_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/staging/src/k8s.io/component-helpers/auth/rbac/reconciliation/zz_generated.deepcopy.go b/staging/src/k8s.io/component-helpers/auth/rbac/reconciliation/zz_generated.deepcopy.go index 7b72e8321af5..48065cd314cc 100644 --- a/staging/src/k8s.io/component-helpers/auth/rbac/reconciliation/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/component-helpers/auth/rbac/reconciliation/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.conversion.go index 47945ccfca64..40da2f91df07 100644 --- a/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.deepcopy.go index 60363b32f6dd..5d0eea24741a 100644 --- a/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/controller-manager/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.conversion.go index 531966911802..37a63308502c 100644 --- a/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.deepcopy.go index ad70b4862a7d..8285edb9fca7 100644 --- a/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/controller-manager/config/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/controller-manager/config/zz_generated.deepcopy.go b/staging/src/k8s.io/controller-manager/config/zz_generated.deepcopy.go index ea24e6b6520f..00cd420880f1 100644 --- a/staging/src/k8s.io/controller-manager/config/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/controller-manager/config/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/csi-translation-lib/go.sum b/staging/src/k8s.io/csi-translation-lib/go.sum index 24840feaab69..22722f268cfd 100644 --- a/staging/src/k8s.io/csi-translation-lib/go.sum +++ b/staging/src/k8s.io/csi-translation-lib/go.sum @@ -85,6 +85,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -197,6 +198,8 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a h1:8dYfu/Fc9Gz2rNJKB9IQRGgQOh2clmRzNIPPY1xLY5g= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= diff --git a/staging/src/k8s.io/kube-aggregator/hack/tools.go b/staging/src/k8s.io/kube-aggregator/hack/tools.go index af1f099d6a98..73ab6ef11b39 100644 --- a/staging/src/k8s.io/kube-aggregator/hack/tools.go +++ b/staging/src/k8s.io/kube-aggregator/hack/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.conversion.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.conversion.go index 0643f996276a..208e23efd81c 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.deepcopy.go index f7d8e01743fa..6388772450f6 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.defaults.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.defaults.go index 595091741f1f..175637ca5aec 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.conversion.go index ab43af4e66db..665b959f7130 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go index 7fe0713621b9..989688e9fd90 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.defaults.go index d77e2acb201f..034247c30ce5 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.prerelease-lifecycle.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.prerelease-lifecycle.go index bdf90cfdced9..e29944718191 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.prerelease-lifecycle.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/zz_generated.prerelease-lifecycle.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go index 5ab164204971..45d0347c02fd 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-aggregator/pkg/generated/openapi/zz_generated.openapi.go b/staging/src/k8s.io/kube-aggregator/pkg/generated/openapi/zz_generated.openapi.go index 9d96eb2a7589..af991854dbb4 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/generated/openapi/zz_generated.openapi.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/generated/openapi/zz_generated.openapi.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go index 50167a11eeca..d3255e6e713f 100644 --- a/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-proxy/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-proxy/config/v1alpha1/zz_generated.deepcopy.go index 307e068c2bf2..dafffdaf89cf 100644 --- a/staging/src/k8s.io/kube-proxy/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-proxy/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-scheduler/config/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-scheduler/config/v1/zz_generated.deepcopy.go index 652dd0c483ce..6c1816653f7b 100644 --- a/staging/src/k8s.io/kube-scheduler/config/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-scheduler/config/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-scheduler/config/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-scheduler/config/v1beta1/zz_generated.deepcopy.go index 22066cec0fcc..83f0a071da55 100644 --- a/staging/src/k8s.io/kube-scheduler/config/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-scheduler/config/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-scheduler/config/v1beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-scheduler/config/v1beta2/zz_generated.deepcopy.go index e82d957e4136..1d04a6457541 100644 --- a/staging/src/k8s.io/kube-scheduler/config/v1beta2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-scheduler/config/v1beta2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go index e20422644117..99373a374e32 100644 --- a/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kube-scheduler/extender/v1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/testing/zz_generated.deepcopy.go b/staging/src/k8s.io/kubectl/pkg/cmd/testing/zz_generated.deepcopy.go index 4c20a5aa6ea6..f211f10408d2 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/testing/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/testing/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kubectl/pkg/util/term/resizeevents.go b/staging/src/k8s.io/kubectl/pkg/util/term/resizeevents.go index e3476f978d06..e361b1adb3ce 100644 --- a/staging/src/k8s.io/kubectl/pkg/util/term/resizeevents.go +++ b/staging/src/k8s.io/kubectl/pkg/util/term/resizeevents.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/kubectl/pkg/util/umask.go b/staging/src/k8s.io/kubectl/pkg/util/umask.go index 67add4e9140a..3f0c4e83e659 100644 --- a/staging/src/k8s.io/kubectl/pkg/util/umask.go +++ b/staging/src/k8s.io/kubectl/pkg/util/umask.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/kubectl/pkg/util/umask_windows.go b/staging/src/k8s.io/kubectl/pkg/util/umask_windows.go index 5b4f54bb795b..67f6efb974af 100644 --- a/staging/src/k8s.io/kubectl/pkg/util/umask_windows.go +++ b/staging/src/k8s.io/kubectl/pkg/util/umask_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/staging/src/k8s.io/kubelet/config/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/kubelet/config/v1alpha1/zz_generated.deepcopy.go index 436420202476..6203d5454933 100644 --- a/staging/src/k8s.io/kubelet/config/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kubelet/config/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go index 027ac2201643..c9b574f5b990 100644 --- a/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kubelet/config/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.conversion.go index a51bdd5a9553..4a3f3c835ffa 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.deepcopy.go index 0a0e3acfefe8..2d125ab26189 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.defaults.go index dd621a3acda8..5070cb91b90f 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/zz_generated.deepcopy.go b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/zz_generated.deepcopy.go index 4b7b7e65077b..bc9b5e01fb22 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/credentialprovider/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go index d21e2cd7d441..e23c00de38eb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -23,7 +24,6 @@ import ( "errors" "fmt" "io" - "net" "path" "regexp" "sort" @@ -49,6 +49,7 @@ import ( "gopkg.in/gcfg.v1" v1 "k8s.io/api/core/v1" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -1591,7 +1592,7 @@ func extractNodeAddresses(instance *ec2.Instance) ([]v1.NodeAddress, error) { for _, internalIP := range networkInterface.PrivateIpAddresses { if ipAddress := aws.StringValue(internalIP.PrivateIpAddress); ipAddress != "" { - ip := net.ParseIP(ipAddress) + ip := netutils.ParseIPSloppy(ipAddress) if ip == nil { return nil, fmt.Errorf("EC2 instance had invalid private address: %s (%q)", aws.StringValue(instance.InstanceId), ipAddress) } @@ -1603,7 +1604,7 @@ func extractNodeAddresses(instance *ec2.Instance) ([]v1.NodeAddress, error) { // TODO: Other IP addresses (multiple ips)? publicIPAddress := aws.StringValue(instance.PublicIpAddress) if publicIPAddress != "" { - ip := net.ParseIP(publicIPAddress) + ip := netutils.ParseIPSloppy(publicIPAddress) if ip == nil { return nil, fmt.Errorf("EC2 instance had invalid public address: %s (%s)", aws.StringValue(instance.InstanceId), publicIPAddress) } diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_fakes.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_fakes.go index 0113c55554f1..06fdc92493b4 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_fakes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_fakes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_instancegroups.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_instancegroups.go index 7315776cbc6d..5360e8a96bd3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_instancegroups.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_instancegroups.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go index 3d59abc8879a..dd55b2af58e6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go index 15bc8eec0bac..6ac934face5f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_metrics.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_metrics.go index 6d6789edbd7d..0f01c7e3d090 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_metrics.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_metrics.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_routes.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_routes.go index ed6e276cb22a..6aed26db31cd 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_routes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_routes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go index d168eb8467e0..10a725b78647 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_utils.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_utils.go index 27ce55a92c6f..f9e6cdab6170 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_utils.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_utils.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator.go b/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator.go index 084962b88388..14f1c685e6f4 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator_test.go index 8eb81c08f2ae..6dea8500fd77 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/device_allocator_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/instances.go b/staging/src/k8s.io/legacy-cloud-providers/aws/instances.go index a62e7ccf395d..7768deb3bb28 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/instances.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/instances.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/instances_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/instances_test.go index e2a31310c965..fddac2bbe5f2 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/instances_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/instances_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/log_handler.go b/staging/src/k8s.io/legacy-cloud-providers/aws/log_handler.go index a66d9a95f3e7..b758d11392b0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/log_handler.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/log_handler.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler.go b/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler.go index 58b0d68a7414..91daa2727739 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler_test.go index 4c5e9b379672..bd0b2330542e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/retry_handler_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/sets_ippermissions.go b/staging/src/k8s.io/legacy-cloud-providers/aws/sets_ippermissions.go index fc56ad45f7e9..d8ca2df0b227 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/sets_ippermissions.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/sets_ippermissions.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go b/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go index 532e697fd2a1..ee44cf20a56f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go index fb124f5d2980..8a6025c0b41d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go @@ -1,3 +1,4 @@ +//go:build !nolegacyroviders // +build !nolegacyroviders /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/volumes.go b/staging/src/k8s.io/legacy-cloud-providers/aws/volumes.go index d94348646c69..b106bd63f185 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/volumes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/volumes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go index 4ec67fad5bcc..70d0dbaedf5e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go index fbb3783cf794..fe8062da98c6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go index c8c1103b0196..707bdbdcaecd 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController.go index 02e8f16ee8b5..dd967b932f9e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController_test.go index 88c7459cc53f..53b41785d135 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go index 8f5dcfe99b5f..0c6c62e0d4a3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config_test.go index 3056594f2838..9c2c670bb1f0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common.go index 446b0d4192d5..b53817d6dcab 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common_test.go index c8ade7172f2b..54a408c1ce84 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_common_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard.go index d1ab0fa753ec..0b7a5b4ca337 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard_test.go index 8e5cef6254b6..64ecec211258 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_standard_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go index 8777a1e42fda..f932593faa49 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss_test.go index bdf47d0670f7..ddd95b4bc928 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_fakes.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_fakes.go index 2e4f549ff48f..985a3ab96a6e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_fakes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_fakes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_file.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_file.go index 04b6c2e7b8c8..25475cb3fd42 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_file.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_file.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go index cfa63d2ab139..b0b02acb8ea0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go index 912ab10748f4..78cac7e607eb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go index 1e2e5449474a..59754786351b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go index 3f3556639bbb..9a36e7f461b7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go index 54b984b15eaa..8e081f6bacb5 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go index df6c83fbf6ab..000343f31cbf 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go index 5cd05d062c7d..80bedfda97b4 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit.go index 7cf180bdf6f0..9d86b1c0d430 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit_test.go index caa9f86a4f9b..67f1a39db4e4 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_ratelimit_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes.go index 25bccad80ae9..a438d9864b7c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes_test.go index 3ce8cb710d2a..27440fce47cf 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_routes_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard.go index b735a1f49fd2..7af12fb48b16 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard_test.go index f022c2345b83..511bbc1ceb58 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_standard_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage.go index a653bfcf823e..0e3f43048152 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage_test.go index 3a969778eaf7..244c47a736fa 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storage_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount.go index ea1371c98f31..cc3a61094224 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount_test.go index e4911f9c67cd..d0454bfc8f8e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_storageaccount_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go index 42fb037751e8..a85f42f77b47 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils.go index c5d1b203cf47..94be01a147fe 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils_test.go index cf148ec4dbb7..3010ff1f9072 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_utils_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmsets.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmsets.go index a49230e4e116..60c882eca070 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmsets.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmsets.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go index 36aa78a51148..5d3151107bf9 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go index 3aa5319f99e9..263c2d3ddcae 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache_test.go index 7665bc82248c..48e87f06eb16 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go index c83b423d7709..c46275a3db3c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap.go index 243ee8970274..915051529f9f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap_test.go index f509e6b3b55c..61807fcef724 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_wrap_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones.go index f3e546296256..fe77d8feffc6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones_test.go index 80481f3269b3..44d1e10a01e3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_zones_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache.go b/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache.go index b88fbbad4d7f..cc137a838b17 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache_test.go index f8c6f9f05932..4faff92dc381 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/cache/azure_cache_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/cache/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/cache/doc.go index 01d2f2a65cd7..403b28f1cd10 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/cache/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/cache/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient.go index e394f349c3eb..891e74117ffa 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient_test.go index 700b43eaaaf2..e2eca7f8f1ca 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/doc.go index 02ee927c97c3..bb23bb2324c0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/interface.go index 4d1a4b04783d..9683bc7a77f9 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/doc.go index 109f68e1dd21..4b8b65955a39 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/interface.go index 27d8a32877d9..92ec1b5c7bd5 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/armclient/mockarmclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config.go index e6bafd884b2d..a264970943b7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config_test.go index b1155d0038ba..dfd08c89bdad 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient.go index e81065add66c..d087200d8be8 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient_test.go index e3b4b1cca3db..96b1d52a65ff 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/doc.go index cb4292f4302b..7ddc522454e0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/interface.go index aa94e1cb38c1..34426783f7ac 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/doc.go index 8741385dd8d9..5e1707032040 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/interface.go index 0de4526dd9c0..6ea5e4f58f47 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/mockcontainerserviceclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient.go index 830f48dcc55a..4ba1983e1646 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient_test.go index aed3e7dc159b..2000bf76f698 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/doc.go index 93b4333bcd56..680da06dff75 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/interface.go index 296d0c1aba5b..143907f9a87b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/doc.go index 7853a223888a..aa5f846d5b75 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/interface.go index 8ef89dfd07fd..6a83bb38d45a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/mockdeploymentclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient.go index cd8a85a5d7f3..979920e3374c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient_test.go index f0a5dd1b128b..2fdda65b6881 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/doc.go index de825dd73823..36183ae1e79d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/interface.go index f3bf2ff796e4..fc708f2cfb96 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/doc.go index 440b3b8a985f..622d07820dc5 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/interface.go index bdf8ee50de60..4b91676484c5 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/doc.go index dbfc5f613f44..41ea3a828969 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/azure_fileclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/azure_fileclient.go index 197a7c29f828..9bf69c632a77 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/azure_fileclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/azure_fileclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/doc.go index 81d7a5270038..532e751fb0ae 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/interface.go index 0646763aa9c1..d6e5bade3eee 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/doc.go index b2706a7179e9..33eaa478668d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/interface.go index 6d2a1703bc6a..68379097dcdd 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/fileclient/mockfileclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient.go index c4c1a6fcb109..19a489e1cb85 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient_test.go index 64da10e573e2..e99122ca9fb0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/doc.go index cc62463c2e9f..6caad15124ea 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/interface.go index 0ea631481bfc..ef9b3dc60c60 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/doc.go index 7698ec6def03..5ef7d3dcf742 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/interface.go index 8050fd634ab7..521564f3cb5e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient.go index eac4bcd88d2c..b2ebe6bfc34d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient_test.go index ce0dcf314e33..dfd8ff7d6f9a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/doc.go index f1078e94c1df..bc3ec34d615e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/interface.go index 9b65e0d86741..e6c8146a2cb5 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/doc.go index 5735f84bfae5..a5c32083efb1 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/interface.go index 8459a6b602f9..1eff8327d6b1 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient.go index 56ed0ef56c49..b9d7424579c3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient_test.go index 46c4e765f784..a9bc2c77c69f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/doc.go index 04a3c6a7a5a8..eab32c988568 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/interface.go index a682241404ac..e5f96c44476e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/doc.go index 1b4891aee2fb..1be05a6daacb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/interface.go index f94022423f48..9a58c295aeba 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient.go index ba36ffb9c0a0..9c28bbc9a519 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient_test.go index 1e11f92aac43..99eb7010cecb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/doc.go index f23091feb7df..48e1e5e8c9ca 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/interface.go index 9349ee2d3414..1e62f3c8486d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/doc.go index 5a6997d15a99..6142f7063524 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/interface.go index 6967e76a9017..b656089a96c9 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient.go index cc5d3fec7626..d6b627ab06db 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient_test.go index 7b4e31a54cc3..271c9bf58752 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/doc.go index 8c30195c8a6b..a881054c3699 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/interface.go index 424ee0d76c53..8a5d9894fe41 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/doc.go index fc656af7db81..dbe7c801058b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/interface.go index 13dc27715df3..24b2057b6879 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient.go index 60cae58429e7..cd948d5d1556 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient_test.go index 3027fb60c5a3..f451bba5d18e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/doc.go index f8379cfb52c2..15e42e290b08 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/interface.go index b7d45d3b886d..60719a10d30a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/doc.go index 81031c694994..9826646ef2e8 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/interface.go index 095aa68c4bb8..d18962a68945 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient.go index 300cec5a9dc6..eab3d34d5f61 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient_test.go index d460604af06a..88faeb161725 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/doc.go index b499f31b0cfd..3e2e677a3d44 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/interface.go index a031b910f29e..0e66b9c5833b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/doc.go index c9d0943615b2..0d7226f13926 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/interface.go index c7df1a14c82c..236e99f302a5 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/mocksnapshotclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient.go index 47146368d98c..9699983a9587 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient_test.go index e23422ec0042..218d6d966034 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/doc.go index 93b2b4dd2bd3..524a9122de2b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/interface.go index 557ec5129923..10e1f92dfbac 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/doc.go index 907a8e77bd1d..3dbb14f791fb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/interface.go index 45e8654cac26..8ae91dd31511 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/mockstorageaccountclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient.go index e50cc040f13e..16a973f31631 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient_test.go index 593ab14999c6..0713e9253618 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/doc.go index 9e3ec032fc42..92ee6e123ce6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/interface.go index ebe480cddaef..e129f7ebc313 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/doc.go index a7702cb5e01d..f6c284b4c027 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/interface.go index 89b641553805..54983617deb7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient.go index 5d9a8a6879f7..cd4c0fe3aff2 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient_test.go index eeea2998416c..f77613acde78 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/doc.go index a18d94f56951..0a527d64f637 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/interface.go index 22c6b1cf1685..c73e97944e16 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/doc.go index 19cd70522375..738aba912489 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/interface.go index bacceeb9376c..a267cff52366 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient.go index d9790b5b4dc6..d1e52a8b9dc3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient_test.go index 6d24a5b90597..3a7b3952adc7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/doc.go index ea6323460d8a..9ec196f914da 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/interface.go index a93c00dd3792..19264620e900 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/doc.go index 1a4253009d99..404684d690de 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/interface.go index d2f5e892f475..0f3a1bf27f78 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/mockvmsizeclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient.go index 9d8de0d93f2e..3f29a2578252 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient_test.go index f100eff1c049..6449e8cb943e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/doc.go index c108f0bf7992..5b7c780a0695 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/interface.go index 7e5d65031268..31ec84d066fc 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/doc.go index 7b691179e5d0..55fc33b77786 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/interface.go index 33870252d1f1..9df09e259d28 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient.go index 1e36fbf6000b..48844cffb76a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient_test.go index edf2a1f3914a..28b40bad57f3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/doc.go index aba6c0a2a8fa..293df576b6ff 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/interface.go index dc4bc11784d3..1a0607ae46a6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/doc.go index 0910283933d8..268f64d0e616 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/interface.go b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/interface.go index 92a20606a158..9836cc8bf699 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/interface.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/interface.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/doc.go index a7e122177415..60b6b971fada 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics.go b/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics.go index c20400a743fa..715626477579 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics_test.go index 9af8b52c5af0..16914f9c3b83 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/doc.go index 5f9f4a096ff4..e5f788aea6bd 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/metrics/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/azure_mock_vmsets.go b/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/azure_mock_vmsets.go index 14e707007b1a..0afa02c39529 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/azure_mock_vmsets.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/azure_mock_vmsets.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/doc.go index 352e37f69020..e1ece6bb5cbd 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/mockvmsets/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go index 26ae4ea6b220..bbdd2fda642d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go index dd15a8f59963..c04b7bb55690 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry.go b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry.go index 5efd86f7b875..d601c0513a03 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry_test.go index 97c5517d768a..9cf08cab0456 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_retry_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/doc.go b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/doc.go index a6c0fc930a68..3862f6fa2bc7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/doc.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/doc.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go index 434e8e28c6c2..33f7176513e3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager.go index 324c8ac31d11..3aab291c4c7a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager_test.go index 8b2145491086..60c6030b72e6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_address_manager_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_addresses.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_addresses.go index 2bdbb7ba9ec2..fe4c5afcd4b3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_addresses.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_addresses.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go index 6f4821b69d47..bbc419f23be0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations.go index 46131accab14..2dd59e8da097 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations_test.go index b1e69be6e933..66bd080430a3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_annotations_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_backendservice.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_backendservice.go index 3aca49cd835d..1d0d69dad8f7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_backendservice.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_backendservice.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_cert.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_cert.go index 7350210acbcc..160be3239612 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_cert.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_cert.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusterid.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusterid.go index 3664d1c237be..fe474ed72489 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusterid.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusterid.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusters.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusters.go index 5be0696fe383..303dd5cb11ac 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusters.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_clusters.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks.go index 3a913fcfc293..af531cf9bdcf 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks_test.go index 219f634971f6..99c0fb821229 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_disks_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go index ac591725da2f..2ec87961e83b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_firewall.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_firewall.go index 357f85d1fb2b..13e982da09c6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_firewall.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_firewall.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_forwardingrule.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_forwardingrule.go index 3a20c3b61910..c02496b0e140 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_forwardingrule.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_forwardingrule.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks.go index f65ddf6faf6c..f905a6e8afe6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks_test.go index efc84c825c93..a3b5cbe36e2c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_healthchecks_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go index c613253c0c57..56cf52837773 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go index 027c45dddcea..fc6f0d6ff682 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances_test.go index 4798e1bd827a..91a1c3ad024e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instances_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_interfaces.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_interfaces.go index 3a85c7c52d93..b6fbcc3c96b0 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_interfaces.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_interfaces.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer.go index 5e4bb55f8171..3878c90ae67f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -22,7 +23,6 @@ import ( "context" "flag" "fmt" - "net" "sort" "strings" @@ -31,11 +31,11 @@ import ( "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud" cloudprovider "k8s.io/cloud-provider" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) type cidrs struct { - ipn utilnet.IPNetSet + ipn netutils.IPNetSet isSet bool } @@ -47,12 +47,12 @@ var ( func init() { var err error // L3/4 health checkers have client addresses within these known CIDRs. - l4LbSrcRngsFlag.ipn, err = utilnet.ParseIPNets([]string{"130.211.0.0/22", "35.191.0.0/16", "209.85.152.0/22", "209.85.204.0/22"}...) + l4LbSrcRngsFlag.ipn, err = netutils.ParseIPNets([]string{"130.211.0.0/22", "35.191.0.0/16", "209.85.152.0/22", "209.85.204.0/22"}...) if err != nil { panic("Incorrect default GCE L3/4 source ranges") } // L7 health checkers have client addresses within these known CIDRs. - l7lbSrcRngsFlag.ipn, err = utilnet.ParseIPNets([]string{"130.211.0.0/22", "35.191.0.0/16"}...) + l7lbSrcRngsFlag.ipn, err = netutils.ParseIPNets([]string{"130.211.0.0/22", "35.191.0.0/16"}...) if err != nil { panic("Incorrect default GCE L7 source ranges") } @@ -73,13 +73,13 @@ func (c *cidrs) Set(value string) error { // On first Set(), clear the original defaults if !c.isSet { c.isSet = true - c.ipn = make(utilnet.IPNetSet) + c.ipn = make(netutils.IPNetSet) } else { return fmt.Errorf("GCE LB CIDRs have already been set") } for _, cidr := range strings.Split(value, ",") { - _, ipnet, err := net.ParseCIDR(cidr) + _, ipnet, err := netutils.ParseCIDRSloppy(cidr) if err != nil { return err } diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go index 95c6e552aa6e..925dbed16fb8 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external_test.go index 989801725d57..bd493b51e8b3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_external_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go index d42bb14fa7bc..aba2b38f1efb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go index 2ee132572083..6d9008f9254e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics.go index b2d223b26367..3cdbd9c0c921 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics_test.go index 808a642704d4..50f9a4e5a47a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_metrics_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_naming.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_naming.go index 07aebb391550..01c8765e94bb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_naming.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_naming.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_test.go index 8b0ee001da2e..601f99ea53ac 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go index 911c37bff07a..a7249184346d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_networkendpointgroup.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_networkendpointgroup.go index 4ea9fc5a3470..6aa079620baf 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_networkendpointgroup.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_networkendpointgroup.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_routes.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_routes.go index 00c4d48618d4..c92d103d4343 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_routes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_routes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_securitypolicy.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_securitypolicy.go index 10e876de71c9..e93f79cacc77 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_securitypolicy.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_securitypolicy.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetpool.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetpool.go index 6d5d55e0d03b..8b032b684b1d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetpool.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetpool.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetproxy.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetproxy.go index 7c28d8fc4dbb..1b6852944412 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetproxy.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_targetproxy.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_test.go index 9aa640334cbf..08f59e9c5ee3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_tpu.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_tpu.go index 32c1ea9a1ed6..63acb344b542 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_tpu.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_tpu.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_urlmap.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_urlmap.go index f2bdda1cba0e..5405ed4dd9aa 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_urlmap.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_urlmap.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util.go index fd2989a3adc2..affc9a27544b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -44,6 +45,7 @@ import ( "k8s.io/client-go/kubernetes/fake" v1core "k8s.io/client-go/kubernetes/typed/core/v1" servicehelper "k8s.io/cloud-provider/service/helpers" + netutils "k8s.io/utils/net" ) func fakeGCECloud(vals TestClusterValues) (*Cloud, error) { @@ -120,7 +122,7 @@ type gceInstance struct { var ( autoSubnetIPRange = &net.IPNet{ - IP: net.ParseIP("10.128.0.0"), + IP: netutils.ParseIPSloppy("10.128.0.0"), Mask: net.CIDRMask(9, 32), } ) @@ -305,7 +307,7 @@ func lastIPInRange(cidr *net.IPNet) net.IP { func subnetsInCIDR(subnets []*compute.Subnetwork, cidr *net.IPNet) ([]*compute.Subnetwork, error) { var res []*compute.Subnetwork for _, subnet := range subnets { - _, subnetRange, err := net.ParseCIDR(subnet.IpCidrRange) + _, subnetRange, err := netutils.ParseCIDRSloppy(subnet.IpCidrRange) if err != nil { return nil, fmt.Errorf("unable to parse CIDR %q for subnet %q: %v", subnet.IpCidrRange, subnet.Name, err) } diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util_test.go index afff6d9a1e6a..7890ed7d1040 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_util_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -20,12 +21,12 @@ package gce import ( "context" - "net" "reflect" "testing" compute "google.golang.org/api/compute/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + netutils "k8s.io/utils/net" ) func TestLastIPInRange(t *testing.T) { @@ -42,7 +43,7 @@ func TestLastIPInRange(t *testing.T) { {"::0/126", "::3"}, {"::0/120", "::ff"}, } { - _, c, err := net.ParseCIDR(tc.cidr) + _, c, err := netutils.ParseCIDRSloppy(tc.cidr) if err != nil { t.Errorf("net.ParseCIDR(%v) = _, %v, %v; want nil", tc.cidr, c, err) continue diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go index bf620eda72ce..c193252d482b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/metrics.go b/staging/src/k8s.io/legacy-cloud-providers/gce/metrics.go index 314195a3e2f3..7695f0218fd7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/metrics.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/metrics.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/metrics_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/metrics_test.go index 25ab7c10435f..537287d47622 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/metrics_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/metrics_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/support.go b/staging/src/k8s.io/legacy-cloud-providers/gce/support.go index 5413e78151d1..c00a87c218b3 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/support.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/support.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/token_source.go b/staging/src/k8s.io/legacy-cloud-providers/gce/token_source.go index 39ef31e89347..c7cd742dcac7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/token_source.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/token_source.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go index e502bac66a60..1c286a66b2bb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata_test.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata_test.go index 320691e4f665..d0eb67d54c60 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go index 475d1dfa2c09..7805bcd812ab 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -25,7 +26,6 @@ import ( "fmt" "io" "io/ioutil" - "net" "net/http" "os" "reflect" @@ -52,6 +52,7 @@ import ( cloudprovider "k8s.io/cloud-provider" nodehelpers "k8s.io/cloud-provider/node/helpers" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) const ( @@ -656,14 +657,14 @@ func getAddressByName(client *gophercloud.ServiceClient, name types.NodeName, ne } for _, addr := range addrs { - isIPv6 := net.ParseIP(addr.Address).To4() == nil + isIPv6 := netutils.ParseIPSloppy(addr.Address).To4() == nil if (addr.Type == v1.NodeInternalIP) && (isIPv6 == needIPv6) { return addr.Address, nil } } for _, addr := range addrs { - isIPv6 := net.ParseIP(addr.Address).To4() == nil + isIPv6 := netutils.ParseIPSloppy(addr.Address).To4() == nil if (addr.Type == v1.NodeExternalIP) && (isIPv6 == needIPv6) { return addr.Address, nil } diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_client.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_client.go index de3e7b6965ad..305af56284ab 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_client.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_client.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go index 3b9b62f6183b..e6e9d2955203 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_loadbalancer.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_loadbalancer.go index 73d33fa46e04..8a29760d92d7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_loadbalancer.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_loadbalancer.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -21,7 +22,6 @@ package openstack import ( "context" "fmt" - "net" "reflect" "strings" "time" @@ -40,6 +40,7 @@ import ( neutronports "github.com/gophercloud/gophercloud/openstack/networking/v2/ports" "github.com/gophercloud/gophercloud/pagination" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" @@ -1059,7 +1060,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser for _, port := range ports { for _, sourceRange := range sourceRanges.StringSlice() { ethertype := rules.EtherType4 - network, _, err := net.ParseCIDR(sourceRange) + network, _, err := netutils.ParseCIDRSloppy(sourceRange) if err != nil { return fmt.Errorf("error parsing source range %s as a CIDR: %v", sourceRange, err) diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_metrics.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_metrics.go index 0088c4e49017..8d84a7758b66 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_metrics.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_metrics.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes.go index de8eb08ac75b..03163fcf0488 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -21,7 +22,6 @@ package openstack import ( "context" "errors" - "net" "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack/compute/v2/servers" @@ -31,6 +31,7 @@ import ( "k8s.io/apimachinery/pkg/types" cloudprovider "k8s.io/cloud-provider" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" ) var errNoRouterID = errors.New("router-id not set in cloud provider config") @@ -154,7 +155,7 @@ func (r *Routes) CreateRoute(ctx context.Context, clusterName string, nameHint s onFailure := newCaller() - ip, _, _ := net.ParseCIDR(route.DestinationCIDR) + ip, _, _ := netutils.ParseCIDRSloppy(route.DestinationCIDR) isCIDRv6 := ip.To4() == nil addr, err := getAddressByName(r.compute, route.TargetNode, isCIDRv6) @@ -230,7 +231,7 @@ func (r *Routes) DeleteRoute(ctx context.Context, clusterName string, route *clo onFailure := newCaller() - ip, _, _ := net.ParseCIDR(route.DestinationCIDR) + ip, _, _ := netutils.ParseCIDRSloppy(route.DestinationCIDR) isCIDRv6 := ip.To4() == nil var addr string diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes_test.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes_test.go index db180838fcce..56752b5b6cfa 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_routes_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -20,13 +21,13 @@ package openstack import ( "context" - "net" "testing" "github.com/gophercloud/gophercloud/openstack/compute/v2/servers" "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers" "k8s.io/apimachinery/pkg/types" cloudprovider "k8s.io/cloud-provider" + netutils "k8s.io/utils/net" ) func TestRoutes(t *testing.T) { @@ -73,7 +74,7 @@ func TestRoutes(t *testing.T) { t.Fatalf("ListRoutes() error: %v", err) } for _, route := range routelist { - _, cidr, err := net.ParseCIDR(route.DestinationCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(route.DestinationCIDR) if err != nil { t.Logf("Ignoring route %s, unparsable CIDR: %v", route.Name, err) continue diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_test.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_test.go index 897fa335cf3b..40fdf5bc2d9e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go index 92b9206326e1..3c4dda068111 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager.go index d9cf8017444c..18862c39e12b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager_test.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager_test.go index b4909f4d3372..71fbbf0a8c56 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/credentialmanager_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go index 9ce1231a4ba5..65586e0ea509 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go index 8db2e163cc11..45bf8d8d6571 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go index 59160e2a7ecc..82c4895b1a5a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* @@ -52,6 +53,7 @@ import ( volerr "k8s.io/cloud-provider/volume/errors" volumehelpers "k8s.io/cloud-provider/volume/helpers" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" "k8s.io/legacy-cloud-providers/vsphere/vclib" "k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers" @@ -718,7 +720,7 @@ func (vs *VSphere) getNodeAddressesFromVM(ctx context.Context, nodeName k8stypes for _, v := range vmMoList[0].Guest.Net { if vs.cfg.Network.PublicNetwork == v.Network { for _, ip := range v.IpAddress { - if !net.ParseIP(ip).IsLinkLocalUnicast() { + if !netutils.ParseIPSloppy(ip).IsLinkLocalUnicast() { nodehelpers.AddToNodeAddresses(&addrs, v1.NodeAddress{ Type: v1.NodeExternalIP, diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_test.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_test.go index ad2c6520653e..b962bb46c080 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go index 68fb9c5c7364..db4f361f0249 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_linux.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_linux.go index 772d46e8b421..e749f54060fa 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_linux.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_linux.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build linux +//go:build !providerless && linux +// +build !providerless,linux /* Copyright 2018 The Kubernetes Authors. diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_test.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_test.go index 18fec5c4121d..eb28b4941bb1 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_unsupported.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_unsupported.go index 0d691f3c5404..defcc74c2366 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_unsupported.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_unsupported.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build !windows,!linux +//go:build !providerless && !windows && !linux +// +build !providerless,!windows,!linux /* Copyright 2018 The Kubernetes Authors. diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_windows.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_windows.go index b828902b9eae..fab8c3d3031f 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_windows.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_windows.go @@ -1,5 +1,5 @@ -// +build !providerless -// +build windows +//go:build !providerless && windows +// +build !providerless,windows /* Copyright 2018 The Kubernetes Authors. diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go index 6895bf902804..111f5fc43a96 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map_test.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map_test.go index 113e6b1d149e..c28807e4560b 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map_test.go @@ -1,3 +1,4 @@ +//go:build !providerless // +build !providerless /* diff --git a/staging/src/k8s.io/metrics/hack/tools.go b/staging/src/k8s.io/metrics/hack/tools.go index af1f099d6a98..73ab6ef11b39 100644 --- a/staging/src/k8s.io/metrics/hack/tools.go +++ b/staging/src/k8s.io/metrics/hack/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.conversion.go index a350f1b16a24..328e19d273e9 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go index 71b81d5e4f5b..c1d572f3064b 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.conversion.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.conversion.go index fd6047a3c266..faa1a6464cfd 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.conversion.go +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.deepcopy.go index 7694d8114a60..3e71d1d31b8c 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go index c29e64804c22..88d5f74e3f01 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.conversion.go index 26d2f7fc36d1..0380ace59162 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.deepcopy.go index 966368e0f900..45c653f6d067 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/zz_generated.deepcopy.go index 0a3d9af0117f..e79ff826841d 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.conversion.go index 532bbec41ce8..f29d646594fe 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go index 28001c3972db..9cd8619eccba 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go index 99621ac28011..112c4c707d90 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go index f418d2a45ff1..f043d4642ffa 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go index c4898788e87f..c063c9b28a1d 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/mount-utils/mount_helper_unix.go b/staging/src/k8s.io/mount-utils/mount_helper_unix.go index f3658647eea2..77fb817db086 100644 --- a/staging/src/k8s.io/mount-utils/mount_helper_unix.go +++ b/staging/src/k8s.io/mount-utils/mount_helper_unix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/mount-utils/mount_helper_unix_test.go b/staging/src/k8s.io/mount-utils/mount_helper_unix_test.go index af263dbab30c..e63e30aeca27 100644 --- a/staging/src/k8s.io/mount-utils/mount_helper_unix_test.go +++ b/staging/src/k8s.io/mount-utils/mount_helper_unix_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/staging/src/k8s.io/mount-utils/mount_helper_windows.go b/staging/src/k8s.io/mount-utils/mount_helper_windows.go index 865ab5c3243f..059e9dc9e834 100644 --- a/staging/src/k8s.io/mount-utils/mount_helper_windows.go +++ b/staging/src/k8s.io/mount-utils/mount_helper_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/staging/src/k8s.io/mount-utils/mount_helper_windows_test.go b/staging/src/k8s.io/mount-utils/mount_helper_windows_test.go index 7f5e6eb18279..20dea07e3558 100644 --- a/staging/src/k8s.io/mount-utils/mount_helper_windows_test.go +++ b/staging/src/k8s.io/mount-utils/mount_helper_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/staging/src/k8s.io/mount-utils/mount_linux.go b/staging/src/k8s.io/mount-utils/mount_linux.go index 7097eae0876e..ee93db92168b 100644 --- a/staging/src/k8s.io/mount-utils/mount_linux.go +++ b/staging/src/k8s.io/mount-utils/mount_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/staging/src/k8s.io/mount-utils/mount_linux_test.go b/staging/src/k8s.io/mount-utils/mount_linux_test.go index b212e879dc85..72547b91d94e 100644 --- a/staging/src/k8s.io/mount-utils/mount_linux_test.go +++ b/staging/src/k8s.io/mount-utils/mount_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/staging/src/k8s.io/mount-utils/mount_unsupported.go b/staging/src/k8s.io/mount-utils/mount_unsupported.go index d2aac9a74831..93ba9b2e3f9b 100644 --- a/staging/src/k8s.io/mount-utils/mount_unsupported.go +++ b/staging/src/k8s.io/mount-utils/mount_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux && !windows // +build !linux,!windows /* diff --git a/staging/src/k8s.io/mount-utils/mount_windows.go b/staging/src/k8s.io/mount-utils/mount_windows.go index 0d1e99fa5d37..b5bead08581c 100644 --- a/staging/src/k8s.io/mount-utils/mount_windows.go +++ b/staging/src/k8s.io/mount-utils/mount_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/staging/src/k8s.io/mount-utils/mount_windows_test.go b/staging/src/k8s.io/mount-utils/mount_windows_test.go index b87e34301267..2e1b2d7cc02d 100644 --- a/staging/src/k8s.io/mount-utils/mount_windows_test.go +++ b/staging/src/k8s.io/mount-utils/mount_windows_test.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/staging/src/k8s.io/mount-utils/resizefs_linux.go b/staging/src/k8s.io/mount-utils/resizefs_linux.go index 54a529d7c699..b92ce1182008 100644 --- a/staging/src/k8s.io/mount-utils/resizefs_linux.go +++ b/staging/src/k8s.io/mount-utils/resizefs_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/staging/src/k8s.io/mount-utils/resizefs_linux_test.go b/staging/src/k8s.io/mount-utils/resizefs_linux_test.go index 899b72cf2c1f..601598c40198 100644 --- a/staging/src/k8s.io/mount-utils/resizefs_linux_test.go +++ b/staging/src/k8s.io/mount-utils/resizefs_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/staging/src/k8s.io/mount-utils/resizefs_unsupported.go b/staging/src/k8s.io/mount-utils/resizefs_unsupported.go index 9cf11090c7c5..2d08211b40b9 100644 --- a/staging/src/k8s.io/mount-utils/resizefs_unsupported.go +++ b/staging/src/k8s.io/mount-utils/resizefs_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.conversion.go index 205e98b86927..826f48357556 100644 --- a/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.deepcopy.go index 2220eda9e917..d3cb59279b1c 100644 --- a/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.defaults.go index f37d8e72d630..50ac84784951 100644 --- a/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/pod-security-admission/admission/api/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/pod-security-admission/admission/api/zz_generated.deepcopy.go b/staging/src/k8s.io/pod-security-admission/admission/api/zz_generated.deepcopy.go index 280cded9fbce..60709aa0e870 100644 --- a/staging/src/k8s.io/pod-security-admission/admission/api/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/pod-security-admission/admission/api/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/go.mod b/staging/src/k8s.io/sample-apiserver/go.mod index a48fc606e9d8..32d06cb17bf8 100644 --- a/staging/src/k8s.io/sample-apiserver/go.mod +++ b/staging/src/k8s.io/sample-apiserver/go.mod @@ -15,6 +15,7 @@ require ( k8s.io/component-base v0.22.1 k8s.io/klog/v2 v2.9.0 k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e + k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a ) replace ( diff --git a/staging/src/k8s.io/sample-apiserver/hack/tools.go b/staging/src/k8s.io/sample-apiserver/hack/tools.go index af1f099d6a98..73ab6ef11b39 100644 --- a/staging/src/k8s.io/sample-apiserver/hack/tools.go +++ b/staging/src/k8s.io/sample-apiserver/hack/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.conversion.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.conversion.go index 6f3bc7afc0ea..e3f5741621bf 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.conversion.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go index 755829270dc1..c6e0372d1672 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.defaults.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.defaults.go index 46d1c65f444c..cd3b83b37a56 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.defaults.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.conversion.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.conversion.go index c39624def1fb..293d29983305 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.conversion.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.conversion.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.deepcopy.go index 10cd011e72e3..9d03593069a1 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.defaults.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.defaults.go index 73e63fc114d3..198b5be4af53 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.defaults.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1/zz_generated.defaults.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go index f59ca8191fc0..28d9ad8036b3 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go index c3a21389aa2d..7683490f9fc7 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go @@ -39,6 +39,7 @@ import ( clientset "k8s.io/sample-apiserver/pkg/generated/clientset/versioned" informers "k8s.io/sample-apiserver/pkg/generated/informers/externalversions" sampleopenapi "k8s.io/sample-apiserver/pkg/generated/openapi" + netutils "k8s.io/utils/net" ) const defaultEtcdPathPrefix = "/registry/wardle.example.com" @@ -116,7 +117,7 @@ func (o *WardleServerOptions) Complete() error { // Config returns config for the api server given WardleServerOptions func (o *WardleServerOptions) Config() (*apiserver.Config, error) { // TODO have a "real" external address - if err := o.RecommendedOptions.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{net.ParseIP("127.0.0.1")}); err != nil { + if err := o.RecommendedOptions.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{netutils.ParseIPSloppy("127.0.0.1")}); err != nil { return nil, fmt.Errorf("error creating self-signed certificates: %v", err) } diff --git a/staging/src/k8s.io/sample-apiserver/pkg/generated/openapi/zz_generated.openapi.go b/staging/src/k8s.io/sample-apiserver/pkg/generated/openapi/zz_generated.openapi.go index 377611120d23..954a41b33aad 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/generated/openapi/zz_generated.openapi.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/generated/openapi/zz_generated.openapi.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-controller/hack/tools.go b/staging/src/k8s.io/sample-controller/hack/tools.go index af1f099d6a98..73ab6ef11b39 100644 --- a/staging/src/k8s.io/sample-controller/hack/tools.go +++ b/staging/src/k8s.io/sample-controller/hack/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools /* diff --git a/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go b/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go index 052b9b7b0df3..26194609eff4 100644 --- a/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go b/staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go index 9bdb4e7418bc..a0f00a732130 100644 --- a/staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go +++ b/staging/src/k8s.io/sample-controller/pkg/signals/signal_posix.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/test/e2e/framework/ingress/ingress_utils.go b/test/e2e/framework/ingress/ingress_utils.go index 4ca56738f023..50673171e439 100644 --- a/test/e2e/framework/ingress/ingress_utils.go +++ b/test/e2e/framework/ingress/ingress_utils.go @@ -38,6 +38,7 @@ import ( compute "google.golang.org/api/compute/v1" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" @@ -332,7 +333,7 @@ func GenerateRSACerts(host string, isCA bool) ([]byte, []byte, error) { hosts := strings.Split(host, ",") for _, h := range hosts { - if ip := net.ParseIP(h); ip != nil { + if ip := netutils.ParseIPSloppy(h); ip != nil { template.IPAddresses = append(template.IPAddresses, ip) } else { template.DNSNames = append(template.DNSNames, h) diff --git a/test/e2e/framework/service/jig.go b/test/e2e/framework/service/jig.go index b9f877ebccff..02cc69e32b8f 100644 --- a/test/e2e/framework/service/jig.go +++ b/test/e2e/framework/service/jig.go @@ -48,7 +48,7 @@ import ( e2erc "k8s.io/kubernetes/test/e2e/framework/rc" testutils "k8s.io/kubernetes/test/utils" imageutils "k8s.io/kubernetes/test/utils/image" - utilsnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) // NodePortRange should match whatever the default/configured range is @@ -820,7 +820,7 @@ func testReachabilityOverServiceName(serviceName string, sp v1.ServicePort, exec func testReachabilityOverClusterIP(clusterIP string, sp v1.ServicePort, execPod *v1.Pod) error { // If .spec.clusterIP is set to "" or "None" for service, ClusterIP is not created, so reachability can not be tested over clusterIP:servicePort - if net.ParseIP(clusterIP) == nil { + if netutils.ParseIPSloppy(clusterIP) == nil { return fmt.Errorf("unable to parse ClusterIP: %s", clusterIP) } return testEndpointReachability(clusterIP, sp.Port, sp.Protocol, execPod) @@ -832,7 +832,7 @@ func testReachabilityOverExternalIP(externalIP string, sp v1.ServicePort, execPo func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v1.Pod, clusterIP string, externalIPs bool) error { internalAddrs := e2enode.CollectAddresses(nodes, v1.NodeInternalIP) - isClusterIPV4 := utilsnet.IsIPv4String(clusterIP) + isClusterIPV4 := netutils.IsIPv4String(clusterIP) for _, internalAddr := range internalAddrs { // If the node's internal address points to localhost, then we are not @@ -842,7 +842,7 @@ func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v continue } // Check service reachability on the node internalIP which is same family as clusterIP - if isClusterIPV4 != utilsnet.IsIPv4String(internalAddr) { + if isClusterIPV4 != netutils.IsIPv4String(internalAddr) { framework.Logf("skipping testEndpointReachability() for internal adddress %s as it does not match clusterIP (%s) family", internalAddr, clusterIP) continue } @@ -855,7 +855,7 @@ func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v if externalIPs { externalAddrs := e2enode.CollectAddresses(nodes, v1.NodeExternalIP) for _, externalAddr := range externalAddrs { - if isClusterIPV4 != utilsnet.IsIPv4String(externalAddr) { + if isClusterIPV4 != netutils.IsIPv4String(externalAddr) { framework.Logf("skipping testEndpointReachability() for external adddress %s as it does not match clusterIP (%s) family", externalAddr, clusterIP) continue } @@ -871,7 +871,7 @@ func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v // isInvalidOrLocalhostAddress returns `true` if the provided `ip` is either not // parsable or the loopback address. Otherwise it will return `false`. func isInvalidOrLocalhostAddress(ip string) bool { - parsedIP := net.ParseIP(ip) + parsedIP := netutils.ParseIPSloppy(ip) if parsedIP == nil || parsedIP.IsLoopback() { return true } diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 8ddab99241a2..f5734b349a1e 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -63,6 +63,7 @@ import ( testutils "k8s.io/kubernetes/test/utils" imageutils "k8s.io/kubernetes/test/utils/image" uexec "k8s.io/utils/exec" + netutils "k8s.io/utils/net" // TODO: Remove the following imports (ref: https://github.com/kubernetes/kubernetes/issues/81245) e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl" @@ -1265,7 +1266,7 @@ func getControlPlaneAddresses(c clientset.Interface) ([]string, []string, []stri if err != nil { Failf("Failed to parse hostname: %v", err) } - if net.ParseIP(hostURL.Host) != nil { + if netutils.ParseIPSloppy(hostURL.Host) != nil { externalIPs = append(externalIPs, hostURL.Host) } else { hostnames = append(hostnames, hostURL.Host) diff --git a/test/e2e/network/netpol/kubemanager.go b/test/e2e/network/netpol/kubemanager.go index d6c786df27cc..ddb0ee3e3454 100644 --- a/test/e2e/network/netpol/kubemanager.go +++ b/test/e2e/network/netpol/kubemanager.go @@ -24,6 +24,7 @@ import ( "strings" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" + netutils "k8s.io/utils/net" v1 "k8s.io/api/core/v1" networkingv1 "k8s.io/api/networking/v1" @@ -73,7 +74,7 @@ func (k *kubeManager) initializeCluster(model *Model) error { if err != nil { return err } - if net.ParseIP(svc.Spec.ClusterIP) == nil { + if netutils.ParseIPSloppy(svc.Spec.ClusterIP) == nil { return fmt.Errorf("empty IP address found for service %s/%s", svc.Namespace, svc.Name) } pod.ServiceIP = svc.Spec.ClusterIP diff --git a/test/e2e/network/netpol/network_legacy.go b/test/e2e/network/netpol/network_legacy.go index fb52460560c6..2956e3da8763 100644 --- a/test/e2e/network/netpol/network_legacy.go +++ b/test/e2e/network/netpol/network_legacy.go @@ -20,13 +20,14 @@ import ( "context" "encoding/json" "fmt" - "k8s.io/kubernetes/test/e2e/storage/utils" "net" "regexp" "strconv" "strings" "time" + "k8s.io/kubernetes/test/e2e/storage/utils" + "github.com/onsi/ginkgo" v1 "k8s.io/api/core/v1" networkingv1 "k8s.io/api/networking/v1" @@ -42,7 +43,7 @@ import ( e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" "k8s.io/kubernetes/test/e2e/network/common" imageutils "k8s.io/kubernetes/test/utils/image" - utilnet "k8s.io/utils/net" + netutils "k8s.io/utils/net" ) /* @@ -1346,7 +1347,7 @@ var _ = common.SIGDescribe("NetworkPolicyLegacy [LinuxOnly]", func() { framework.ExpectNoError(err, "Error occurred while getting pod status.") } hostMask := 32 - if utilnet.IsIPv6String(podServerStatus.Status.PodIP) { + if netutils.IsIPv6String(podServerStatus.Status.PodIP) { hostMask = 128 } podServerCIDR := fmt.Sprintf("%s/%d", podServerStatus.Status.PodIP, hostMask) @@ -1416,11 +1417,11 @@ var _ = common.SIGDescribe("NetworkPolicyLegacy [LinuxOnly]", func() { allowMask := 24 hostMask := 32 - if utilnet.IsIPv6String(podServerStatus.Status.PodIP) { + if netutils.IsIPv6String(podServerStatus.Status.PodIP) { allowMask = 64 hostMask = 128 } - _, podServerAllowSubnet, err := net.ParseCIDR(fmt.Sprintf("%s/%d", podServerStatus.Status.PodIP, allowMask)) + _, podServerAllowSubnet, err := netutils.ParseCIDRSloppy(fmt.Sprintf("%s/%d", podServerStatus.Status.PodIP, allowMask)) framework.ExpectNoError(err, "could not parse allow subnet") podServerAllowCIDR := podServerAllowSubnet.String() @@ -1479,11 +1480,11 @@ var _ = common.SIGDescribe("NetworkPolicyLegacy [LinuxOnly]", func() { allowMask := 24 hostMask := 32 - if utilnet.IsIPv6String(podServerStatus.Status.PodIP) { + if netutils.IsIPv6String(podServerStatus.Status.PodIP) { allowMask = 64 hostMask = 128 } - _, podServerAllowSubnet, err := net.ParseCIDR(fmt.Sprintf("%s/%d", podServerStatus.Status.PodIP, allowMask)) + _, podServerAllowSubnet, err := netutils.ParseCIDRSloppy(fmt.Sprintf("%s/%d", podServerStatus.Status.PodIP, allowMask)) framework.ExpectNoError(err, "could not parse allow subnet") podServerAllowCIDR := podServerAllowSubnet.String() diff --git a/test/e2e/network/netpol/probe.go b/test/e2e/network/netpol/probe.go index 9073703eea8d..2bd2fa78fc30 100644 --- a/test/e2e/network/netpol/probe.go +++ b/test/e2e/network/netpol/probe.go @@ -18,11 +18,11 @@ package netpol import ( "fmt" - "net" "github.com/onsi/ginkgo" v1 "k8s.io/api/core/v1" "k8s.io/kubernetes/test/e2e/framework" + netutils "k8s.io/utils/net" ) // decouple us from k8smanager.go @@ -95,7 +95,7 @@ func probeWorker(prober Prober, jobs <-chan *ProbeJob, results chan<- *ProbeJobR defer ginkgo.GinkgoRecover() for job := range jobs { podFrom := job.PodFrom - if net.ParseIP(job.PodTo.ServiceIP) == nil { + if netutils.ParseIPSloppy(job.PodTo.ServiceIP) == nil { results <- &ProbeJobResults{ Job: job, IsConnected: false, diff --git a/test/e2e_kubeadm/networking_test.go b/test/e2e_kubeadm/networking_test.go index 97bd66e19a5c..3dd08c5af9c0 100644 --- a/test/e2e_kubeadm/networking_test.go +++ b/test/e2e_kubeadm/networking_test.go @@ -18,12 +18,12 @@ package kubeadm import ( "context" - "net" "strings" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/test/e2e/framework" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" + netutils "k8s.io/utils/net" "github.com/onsi/ginkgo" ) @@ -163,14 +163,14 @@ var _ = Describe("networking [setup-networking]", func() { // ipWithinSubnet returns true if an IP (targetIP) falls within the reference subnet (refIPNet) func ipWithinSubnet(refIPNet, targetIP string) bool { - _, rNet, _ := net.ParseCIDR(refIPNet) - tIP := net.ParseIP(targetIP) + _, rNet, _ := netutils.ParseCIDRSloppy(refIPNet) + tIP := netutils.ParseIPSloppy(targetIP) return rNet.Contains(tIP) } // subnetWithinSubnet returns true if a subnet (targetNet) falls within the reference subnet (refIPNet) func subnetWithinSubnet(refIPNet, targetNet string) bool { - _, rNet, _ := net.ParseCIDR(refIPNet) - tNet, _, _ := net.ParseCIDR(targetNet) + _, rNet, _ := netutils.ParseCIDRSloppy(refIPNet) + tNet, _, _ := netutils.ParseCIDRSloppy(targetNet) return rNet.Contains(tNet) } diff --git a/test/e2e_node/benchmark_util.go b/test/e2e_node/benchmark_util.go index 065a546bab2c..694563c1a264 100644 --- a/test/e2e_node/benchmark_util.go +++ b/test/e2e_node/benchmark_util.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/container_manager_test.go b/test/e2e_node/container_manager_test.go index 92b02ca89baf..1f16ca8aed4d 100644 --- a/test/e2e_node/container_manager_test.go +++ b/test/e2e_node/container_manager_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/density_test.go b/test/e2e_node/density_test.go index 35bc15e35e19..139f37d54be0 100644 --- a/test/e2e_node/density_test.go +++ b/test/e2e_node/density_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/e2e_node_suite_test.go b/test/e2e_node/e2e_node_suite_test.go index 0cc921074951..9aa958eaf686 100644 --- a/test/e2e_node/e2e_node_suite_test.go +++ b/test/e2e_node/e2e_node_suite_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/node_container_manager_test.go b/test/e2e_node/node_container_manager_test.go index 7b7acd466604..b2b47a32ba35 100644 --- a/test/e2e_node/node_container_manager_test.go +++ b/test/e2e_node/node_container_manager_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/node_problem_detector_linux.go b/test/e2e_node/node_problem_detector_linux.go index fdf41f41c083..6b6bf676f5de 100644 --- a/test/e2e_node/node_problem_detector_linux.go +++ b/test/e2e_node/node_problem_detector_linux.go @@ -1,3 +1,4 @@ +//go:build cgo && linux // +build cgo,linux /* diff --git a/test/e2e_node/node_shutdown_linux_test.go b/test/e2e_node/node_shutdown_linux_test.go index b5715f34fc0d..1203a072695d 100644 --- a/test/e2e_node/node_shutdown_linux_test.go +++ b/test/e2e_node/node_shutdown_linux_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/resource_collector.go b/test/e2e_node/resource_collector.go index 94216434d90b..ebc170962584 100644 --- a/test/e2e_node/resource_collector.go +++ b/test/e2e_node/resource_collector.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/resource_usage_test.go b/test/e2e_node/resource_usage_test.go index d15be37841a5..fa7c16603345 100644 --- a/test/e2e_node/resource_usage_test.go +++ b/test/e2e_node/resource_usage_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/restart_test.go b/test/e2e_node/restart_test.go index 3e5a16c46084..2a5fa0703ea0 100644 --- a/test/e2e_node/restart_test.go +++ b/test/e2e_node/restart_test.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/runner/remote/run_remote.go b/test/e2e_node/runner/remote/run_remote.go index 6af4b9c23a78..d2699a97832b 100644 --- a/test/e2e_node/runner/remote/run_remote.go +++ b/test/e2e_node/runner/remote/run_remote.go @@ -205,7 +205,7 @@ func main() { // process and all its children, we ignore it here, while our children ssh connections // are stopped. This allows us to gather artifacts and print out test state before // being killed. - c := make(chan os.Signal) + c := make(chan os.Signal, 2) signal.Notify(c, os.Interrupt) go func() { <-c diff --git a/test/e2e_node/services/apiserver.go b/test/e2e_node/services/apiserver.go index 4a37dd18995a..7d2ab8c578ff 100644 --- a/test/e2e_node/services/apiserver.go +++ b/test/e2e_node/services/apiserver.go @@ -19,10 +19,10 @@ package services import ( "fmt" "io/ioutil" - "net" "os" "k8s.io/apiserver/pkg/storage/storagebackend" + netutils "k8s.io/utils/net" utilerrors "k8s.io/apimachinery/pkg/util/errors" apiserver "k8s.io/kubernetes/cmd/kube-apiserver/app" @@ -60,14 +60,14 @@ func (a *APIServer) Start() error { o := options.NewServerRunOptions() o.Etcd.StorageConfig = a.storageConfig - _, ipnet, err := net.ParseCIDR(clusterIPRange) + _, ipnet, err := netutils.ParseCIDRSloppy(clusterIPRange) if err != nil { return err } if len(framework.TestContext.RuntimeConfig) > 0 { o.APIEnablement.RuntimeConfig = framework.TestContext.RuntimeConfig } - o.SecureServing.BindAddress = net.ParseIP("127.0.0.1") + o.SecureServing.BindAddress = netutils.ParseIPSloppy("127.0.0.1") o.ServiceClusterIPRanges = ipnet.String() o.AllowPrivileged = true if err := generateTokenFile(tokenFilePath); err != nil { diff --git a/test/e2e_node/util_xfs_linux.go b/test/e2e_node/util_xfs_linux.go index a926fe7cc339..a3b02346a9da 100644 --- a/test/e2e_node/util_xfs_linux.go +++ b/test/e2e_node/util_xfs_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/util_xfs_unsupported.go b/test/e2e_node/util_xfs_unsupported.go index b8c36498d1e5..32176ef6f5d5 100644 --- a/test/e2e_node/util_xfs_unsupported.go +++ b/test/e2e_node/util_xfs_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/test/e2e_node/utils_linux.go b/test/e2e_node/utils_linux.go index 50f59401ba92..8675f766fe98 100644 --- a/test/e2e_node/utils_linux.go +++ b/test/e2e_node/utils_linux.go @@ -1,3 +1,4 @@ +//go:build linux // +build linux /* diff --git a/test/e2e_node/utils_unsupported.go b/test/e2e_node/utils_unsupported.go index 69322913b756..758af2798abd 100644 --- a/test/e2e_node/utils_unsupported.go +++ b/test/e2e_node/utils_unsupported.go @@ -1,3 +1,4 @@ +//go:build !linux // +build !linux /* diff --git a/test/images/agnhost/dns/dns.go b/test/images/agnhost/dns/dns.go index ae525f20d5d7..902461b3e915 100644 --- a/test/images/agnhost/dns/dns.go +++ b/test/images/agnhost/dns/dns.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/test/images/agnhost/dns/dns_windows.go b/test/images/agnhost/dns/dns_windows.go index 46206a90bf60..c29de8abb201 100644 --- a/test/images/agnhost/dns/dns_windows.go +++ b/test/images/agnhost/dns/dns_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/test/images/agnhost/mounttest/mt_utils.go b/test/images/agnhost/mounttest/mt_utils.go index 37db9f901b58..e78c1811fed4 100644 --- a/test/images/agnhost/mounttest/mt_utils.go +++ b/test/images/agnhost/mounttest/mt_utils.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/test/images/agnhost/mounttest/mt_utils_windows.go b/test/images/agnhost/mounttest/mt_utils_windows.go index 245053c8e91e..7e12a9d0fe6e 100644 --- a/test/images/agnhost/mounttest/mt_utils_windows.go +++ b/test/images/agnhost/mounttest/mt_utils_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/test/images/agnhost/netexec/netexec.go b/test/images/agnhost/netexec/netexec.go index acf4a52aac9d..18619b4f502e 100644 --- a/test/images/agnhost/netexec/netexec.go +++ b/test/images/agnhost/netexec/netexec.go @@ -38,6 +38,7 @@ import ( utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" + netutils "k8s.io/utils/net" ) var ( @@ -660,7 +661,7 @@ func parseAddresses(addresses string) ([]string, error) { res := make([]string, 0) split := strings.Split(addresses, ",") for _, address := range split { - netAddr := net.ParseIP(address) + netAddr := netutils.ParseIPSloppy(address) if netAddr == nil { return nil, fmt.Errorf("parseAddress: invalid address %s", address) } diff --git a/test/images/agnhost/nettest/nettest.go b/test/images/agnhost/nettest/nettest.go index e971203d5d61..d28bbe465392 100644 --- a/test/images/agnhost/nettest/nettest.go +++ b/test/images/agnhost/nettest/nettest.go @@ -216,7 +216,7 @@ func main(cmd *cobra.Command, args []string) { } if delayShutdown > 0 { - termCh := make(chan os.Signal) + termCh := make(chan os.Signal, 1) signal.Notify(termCh, syscall.SIGTERM) go func() { <-termCh diff --git a/test/images/agnhost/no-snat-test/main.go b/test/images/agnhost/no-snat-test/main.go index da534743c4d8..bfc520d5e5cf 100644 --- a/test/images/agnhost/no-snat-test/main.go +++ b/test/images/agnhost/no-snat-test/main.go @@ -19,13 +19,13 @@ package nosnat import ( "fmt" "io/ioutil" - "net" "net/http" "os" "strings" "github.com/spf13/cobra" "k8s.io/component-base/logs" + netutils "k8s.io/utils/net" ) // CmdNoSnatTest is used by agnhost Cobra. @@ -83,10 +83,10 @@ func (m *masqTester) Run() error { } // validate that pip and nip are ip addresses. - if net.ParseIP(pip) == nil { + if netutils.ParseIPSloppy(pip) == nil { return fmt.Errorf("POD_IP env var contained %q, which is not an IP address", pip) } - if net.ParseIP(nip) == nil { + if netutils.ParseIPSloppy(nip) == nil { return fmt.Errorf("NODE_IP env var contained %q, which is not an IP address", nip) } diff --git a/test/images/agnhost/pause/pause.go b/test/images/agnhost/pause/pause.go index 4d69a9816c76..bc49b835a8c7 100644 --- a/test/images/agnhost/pause/pause.go +++ b/test/images/agnhost/pause/pause.go @@ -36,7 +36,7 @@ var CmdPause = &cobra.Command{ func pause(cmd *cobra.Command, args []string) { fmt.Println("Paused") - sigCh := make(chan os.Signal) + sigCh := make(chan os.Signal, 1) done := make(chan int, 1) signal.Notify(sigCh, syscall.SIGINT) signal.Notify(sigCh, syscall.SIGTERM) diff --git a/test/images/regression-issue-74839/main.go b/test/images/regression-issue-74839/main.go index 19065e98056f..f2d3d8a62a03 100644 --- a/test/images/regression-issue-74839/main.go +++ b/test/images/regression-issue-74839/main.go @@ -23,6 +23,8 @@ import ( "os" "strings" "time" + + netutils "k8s.io/utils/net" ) // TCP port to listen @@ -120,8 +122,8 @@ func probe(ip string) { } data := []byte("boom!!!") - remoteIP := net.ParseIP(addr.String()) - localIP := net.ParseIP(conn.LocalAddr().String()) + remoteIP := netutils.ParseIPSloppy(addr.String()) + localIP := netutils.ParseIPSloppy(conn.LocalAddr().String()) _, err := conn.WriteTo(badPkt.encode(localIP, remoteIP, data[:]), addr) if err != nil { log.Printf("conn.WriteTo() error: %v", err) @@ -141,10 +143,10 @@ func getIPs() []net.IP { podIP, podIPs := os.Getenv("POD_IP"), os.Getenv("POD_IPS") if podIPs != "" { for _, ip := range strings.Split(podIPs, ",") { - ips = append(ips, net.ParseIP(ip)) + ips = append(ips, netutils.ParseIPSloppy(ip)) } } else if podIP != "" { - ips = append(ips, net.ParseIP(podIP)) + ips = append(ips, netutils.ParseIPSloppy(podIP)) } return ips } diff --git a/test/images/resource-consumer/consume-cpu/consume_cpu.go b/test/images/resource-consumer/consume-cpu/consume_cpu.go index c8ac71b76c63..dcf244f7c125 100644 --- a/test/images/resource-consumer/consume-cpu/consume_cpu.go +++ b/test/images/resource-consumer/consume-cpu/consume_cpu.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/test/images/resource-consumer/consume-cpu/consume_cpu_windows.go b/test/images/resource-consumer/consume-cpu/consume_cpu_windows.go index d9ea44b7ac8b..e1ced8f2ef29 100644 --- a/test/images/resource-consumer/consume-cpu/consume_cpu_windows.go +++ b/test/images/resource-consumer/consume-cpu/consume_cpu_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/test/images/resource-consumer/utils.go b/test/images/resource-consumer/utils.go index dcd0b9ec9220..d54b6b76e098 100644 --- a/test/images/resource-consumer/utils.go +++ b/test/images/resource-consumer/utils.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/test/images/resource-consumer/utils_windows.go b/test/images/resource-consumer/utils_windows.go index 25b66d995d48..4d20542f177a 100644 --- a/test/images/resource-consumer/utils_windows.go +++ b/test/images/resource-consumer/utils_windows.go @@ -1,3 +1,4 @@ +//go:build windows // +build windows /* diff --git a/test/integration/controlplane/kms_transformation_test.go b/test/integration/controlplane/kms_transformation_test.go index a4d8e8b8e67b..7d94183a7e00 100644 --- a/test/integration/controlplane/kms_transformation_test.go +++ b/test/integration/controlplane/kms_transformation_test.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows /* diff --git a/test/integration/controlplane/synthetic_controlplane_test.go b/test/integration/controlplane/synthetic_controlplane_test.go index 45b1aaf80375..a37d255cdf27 100644 --- a/test/integration/controlplane/synthetic_controlplane_test.go +++ b/test/integration/controlplane/synthetic_controlplane_test.go @@ -22,7 +22,6 @@ import ( "encoding/json" "fmt" "io/ioutil" - "net" "net/http" "os" "path" @@ -51,6 +50,7 @@ import ( "k8s.io/kubernetes/pkg/controlplane" "k8s.io/kubernetes/test/integration" "k8s.io/kubernetes/test/integration/framework" + netutils "k8s.io/utils/net" ) const ( @@ -638,7 +638,7 @@ func TestAPIServerService(t *testing.T) { func TestServiceAlloc(t *testing.T) { cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR("192.168.0.0/29") + _, cidr, err := netutils.ParseCIDRSloppy("192.168.0.0/29") if err != nil { t.Fatalf("bad cidr: %v", err) } diff --git a/test/integration/dualstack/dualstack_endpoints_test.go b/test/integration/dualstack/dualstack_endpoints_test.go index e71b280bb245..22710cbf179e 100644 --- a/test/integration/dualstack/dualstack_endpoints_test.go +++ b/test/integration/dualstack/dualstack_endpoints_test.go @@ -19,7 +19,6 @@ package dualstack import ( "context" "fmt" - "net" "testing" "time" @@ -38,6 +37,7 @@ import ( "k8s.io/kubernetes/pkg/controller/endpointslice" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/test/integration/framework" + netutils "k8s.io/utils/net" ) func TestDualStackEndpoints(t *testing.T) { @@ -52,13 +52,13 @@ func TestDualStackEndpoints(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, dualStack)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("Bad cidr: %v", err) } cfg.ExtraConfig.ServiceIPRange = *cidr - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("Bad cidr: %v", err) } diff --git a/test/integration/dualstack/dualstack_test.go b/test/integration/dualstack/dualstack_test.go index 16a446a381ef..a5738c916c20 100644 --- a/test/integration/dualstack/dualstack_test.go +++ b/test/integration/dualstack/dualstack_test.go @@ -54,7 +54,7 @@ func TestCreateServiceSingleStackIPv4(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -271,7 +271,7 @@ func TestCreateServiceDualStackIPv6(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -491,13 +491,13 @@ func TestCreateServiceDualStackIPv4IPv6(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } cfg.ExtraConfig.ServiceIPRange = *cidr - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -718,13 +718,13 @@ func TestCreateServiceDualStackIPv6IPv4(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } cfg.ExtraConfig.ServiceIPRange = *cidr - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -948,13 +948,13 @@ func TestUpgradeDowngrade(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } cfg.ExtraConfig.ServiceIPRange = *cidr - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -1063,13 +1063,13 @@ func TestConvertToFromExternalName(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } cfg.ExtraConfig.ServiceIPRange = *cidr - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -1153,7 +1153,7 @@ func TestExistingServiceDefaulting(t *testing.T) { // Create an IPv4IPv6 dual stack control-plane serviceCIDR := "10.0.0.0/16" cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -1236,13 +1236,13 @@ func TestPreferDualStack(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } cfg.ExtraConfig.ServiceIPRange = *cidr - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -1321,7 +1321,7 @@ func TestServiceUpdate(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, false)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -1486,7 +1486,7 @@ func TestUpgradeServicePreferToDualStack(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() cfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -1545,7 +1545,7 @@ func TestUpgradeServicePreferToDualStack(t *testing.T) { closeFn() secondaryServiceCIDR := "2001:db8:1::/48" - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } @@ -1582,12 +1582,12 @@ func TestDowngradeServicePreferToDualStack(t *testing.T) { secondaryServiceCIDR := "2001:db8:1::/48" defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, true)() dualStackCfg := framework.NewIntegrationTestControlPlaneConfig() - _, cidr, err := net.ParseCIDR(serviceCIDR) + _, cidr, err := netutils.ParseCIDRSloppy(serviceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } dualStackCfg.ExtraConfig.ServiceIPRange = *cidr - _, secCidr, err := net.ParseCIDR(secondaryServiceCIDR) + _, secCidr, err := netutils.ParseCIDRSloppy(secondaryServiceCIDR) if err != nil { t.Fatalf("bad cidr: %v", err) } diff --git a/test/integration/etcd/server.go b/test/integration/etcd/server.go index 6760c4d67020..39aa7797c312 100644 --- a/test/integration/etcd/server.go +++ b/test/integration/etcd/server.go @@ -49,6 +49,7 @@ import ( "k8s.io/kubernetes/cmd/kube-apiserver/app/options" "k8s.io/kubernetes/test/integration" "k8s.io/kubernetes/test/integration/framework" + netutils "k8s.io/utils/net" // install all APIs _ "k8s.io/kubernetes/pkg/controlplane" @@ -68,7 +69,7 @@ func StartRealAPIServerOrDie(t *testing.T, configFuncs ...func(*options.ServerRu t.Fatal(err) } - _, defaultServiceClusterIPRange, err := net.ParseCIDR("10.0.0.0/24") + _, defaultServiceClusterIPRange, err := netutils.ParseCIDRSloppy("10.0.0.0/24") if err != nil { t.Fatal(err) } diff --git a/test/integration/examples/apiserver_test.go b/test/integration/examples/apiserver_test.go index 9b8923c2851f..3f869220a673 100644 --- a/test/integration/examples/apiserver_test.go +++ b/test/integration/examples/apiserver_test.go @@ -50,6 +50,7 @@ import ( wardlev1alpha1 "k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1" wardlev1beta1 "k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1" sampleserver "k8s.io/sample-apiserver/pkg/cmd/server" + netutils "k8s.io/utils/net" ) func TestAggregatedAPIServer(t *testing.T) { @@ -80,7 +81,7 @@ func TestAggregatedAPIServer(t *testing.T) { go func() { o := sampleserver.NewWardleServerOptions(os.Stdout, os.Stderr) o.RecommendedOptions.SecureServing.Listener = listener - o.RecommendedOptions.SecureServing.BindAddress = net.ParseIP("127.0.0.1") + o.RecommendedOptions.SecureServing.BindAddress = netutils.ParseIPSloppy("127.0.0.1") wardleCmd := sampleserver.NewCommandStartWardleServer(o, stopCh) wardleCmd.SetArgs([]string{ "--authentication-kubeconfig", wardleToKASKubeConfigFile, diff --git a/test/integration/framework/controlplane_utils.go b/test/integration/framework/controlplane_utils.go index 85284393b275..53f09f309d48 100644 --- a/test/integration/framework/controlplane_utils.go +++ b/test/integration/framework/controlplane_utils.go @@ -57,6 +57,7 @@ import ( "k8s.io/kubernetes/pkg/generated/openapi" "k8s.io/kubernetes/pkg/kubeapiserver" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" + netutils "k8s.io/utils/net" ) // Config is a struct of configuration directives for NewControlPlaneComponents. @@ -205,7 +206,7 @@ func startAPIServerOrDie(controlPlaneConfig *controlplane.Config, incomingServer } if controlPlaneConfig.ExtraConfig.ServiceIPRange.IP == nil { - controlPlaneConfig.ExtraConfig.ServiceIPRange = net.IPNet{IP: net.ParseIP("10.0.0.0"), Mask: net.CIDRMask(24, 32)} + controlPlaneConfig.ExtraConfig.ServiceIPRange = net.IPNet{IP: netutils.ParseIPSloppy("10.0.0.0"), Mask: net.CIDRMask(24, 32)} } m, err = controlPlaneConfig.Complete().New(genericapiserver.NewEmptyDelegate()) if err != nil { @@ -263,7 +264,7 @@ func NewIntegrationTestControlPlaneConfig() *controlplane.Config { // configured with the provided options. func NewIntegrationTestControlPlaneConfigWithOptions(opts *ControlPlaneConfigOptions) *controlplane.Config { controlPlaneConfig := NewControlPlaneConfigWithOptions(opts) - controlPlaneConfig.GenericConfig.PublicAddress = net.ParseIP("192.168.10.4") + controlPlaneConfig.GenericConfig.PublicAddress = netutils.ParseIPSloppy("192.168.10.4") controlPlaneConfig.ExtraConfig.APIResourceConfigSource = controlplane.DefaultAPIResourceConfigSource() // TODO: get rid of these tests or port them to secure serving diff --git a/test/integration/framework/test_server.go b/test/integration/framework/test_server.go index 09f301b60418..d0baeb1af354 100644 --- a/test/integration/framework/test_server.go +++ b/test/integration/framework/test_server.go @@ -40,6 +40,7 @@ import ( "k8s.io/kubernetes/cmd/kube-apiserver/app/options" "k8s.io/kubernetes/pkg/controlplane" "k8s.io/kubernetes/test/utils" + netutils "k8s.io/utils/net" ) // This key is for testing purposes only and is not considered secure. @@ -63,7 +64,7 @@ func StartTestServer(t *testing.T, stopCh <-chan struct{}, setup TestServerSetup os.RemoveAll(certDir) }() - _, defaultServiceClusterIPRange, _ := net.ParseCIDR("10.0.0.0/24") + _, defaultServiceClusterIPRange, _ := netutils.ParseCIDRSloppy("10.0.0.0/24") proxySigningKey, err := utils.NewPrivateKey() if err != nil { t.Fatal(err) @@ -105,7 +106,7 @@ func StartTestServer(t *testing.T, stopCh <-chan struct{}, setup TestServerSetup kubeAPIServerOptions := options.NewServerRunOptions() kubeAPIServerOptions.SecureServing.Listener = listener - kubeAPIServerOptions.SecureServing.BindAddress = net.ParseIP("127.0.0.1") + kubeAPIServerOptions.SecureServing.BindAddress = netutils.ParseIPSloppy("127.0.0.1") kubeAPIServerOptions.SecureServing.ServerCert.CertDirectory = certDir kubeAPIServerOptions.ServiceAccountSigningKeyFile = saSigningKeyFile.Name() kubeAPIServerOptions.Etcd.StorageConfig.Prefix = path.Join("/", uuid.New().String(), "registry") diff --git a/test/integration/ipamperf/ipam_test.go b/test/integration/ipamperf/ipam_test.go index 93d9d92dc521..636265e8e300 100644 --- a/test/integration/ipamperf/ipam_test.go +++ b/test/integration/ipamperf/ipam_test.go @@ -26,6 +26,7 @@ import ( "time" "k8s.io/klog/v2" + netutils "k8s.io/utils/net" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/informers" @@ -117,8 +118,8 @@ func TestPerformance(t *testing.T) { apiURL, apiserverShutdown := util.StartApiserver() defer apiserverShutdown() - _, clusterCIDR, _ := net.ParseCIDR("10.96.0.0/11") // allows up to 8K nodes - _, serviceCIDR, _ := net.ParseCIDR("10.94.0.0/24") // does not matter for test - pick upto 250 services + _, clusterCIDR, _ := netutils.ParseCIDRSloppy("10.96.0.0/11") // allows up to 8K nodes + _, serviceCIDR, _ := netutils.ParseCIDRSloppy("10.94.0.0/24") // does not matter for test - pick upto 250 services subnetMaskSize := 24 var (