From f5e262cae08d949a4b243ffd40b87b3533bc79c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 01:34:49 +0000 Subject: [PATCH] Bump sigs.k8s.io/kind from 0.21.0 to 0.22.0 Bumps [sigs.k8s.io/kind](https://github.com/kubernetes-sigs/kind) from 0.21.0 to 0.22.0. - [Release notes](https://github.com/kubernetes-sigs/kind/releases) - [Commits](https://github.com/kubernetes-sigs/kind/compare/v0.21.0...v0.22.0) --- updated-dependencies: - dependency-name: sigs.k8s.io/kind dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- vendor/modules.txt | 2 +- .../kind/pkg/apis/config/defaults/image.go | 2 +- .../create/actions/kubeadminit/init.go | 11 +++++++++++ .../internal/providers/common/getport.go | 18 ++++++++++-------- .../internal/providers/docker/provision.go | 5 ++++- .../internal/providers/podman/provision.go | 5 ++++- .../kind/pkg/cmd/kind/version/version.go | 2 +- .../kind/pkg/internal/apis/config/validate.go | 5 +++++ 10 files changed, 40 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index edf97a9c46..1204d68f5a 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( golang.org/x/tools v0.18.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/apimachinery v0.29.1 - sigs.k8s.io/kind v0.21.0 + sigs.k8s.io/kind v0.22.0 ) require ( diff --git a/go.sum b/go.sum index 38df01864e..5ce0d1da7b 100644 --- a/go.sum +++ b/go.sum @@ -492,8 +492,8 @@ k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/kind v0.21.0 h1:QgkVrW35dMXNLkWlUkq2uFQNQbPLr0Z6RgRH5P/NzZU= -sigs.k8s.io/kind v0.21.0/go.mod h1:aBlbxg08cauDgZ612shr017/rZwqd7AS563FvpWKPVs= +sigs.k8s.io/kind v0.22.0 h1:z/+yr/azoOfzsfooqRsPw1wjJlqT/ukXP0ShkHwNlsI= +sigs.k8s.io/kind v0.22.0/go.mod h1:aBlbxg08cauDgZ612shr017/rZwqd7AS563FvpWKPVs= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/vendor/modules.txt b/vendor/modules.txt index a60539eff0..b0e4fc4481 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -706,7 +706,7 @@ k8s.io/klog/v2/internal/sloghandler k8s.io/utils/internal/third_party/forked/golang/net k8s.io/utils/net k8s.io/utils/strings/slices -# sigs.k8s.io/kind v0.21.0 +# sigs.k8s.io/kind v0.22.0 ## explicit; go 1.16 sigs.k8s.io/kind/pkg/apis/config/defaults sigs.k8s.io/kind/pkg/apis/config/v1alpha4 diff --git a/vendor/sigs.k8s.io/kind/pkg/apis/config/defaults/image.go b/vendor/sigs.k8s.io/kind/pkg/apis/config/defaults/image.go index 0717585acb..da3864faeb 100644 --- a/vendor/sigs.k8s.io/kind/pkg/apis/config/defaults/image.go +++ b/vendor/sigs.k8s.io/kind/pkg/apis/config/defaults/image.go @@ -18,4 +18,4 @@ limitations under the License. package defaults // Image is the default for the Config.Image field, aka the default node image. -const Image = "kindest/node:v1.29.1@sha256:a0cc28af37cf39b019e2b448c54d1a3f789de32536cb5a5db61a49623e527144" +const Image = "kindest/node:v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245" diff --git a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/create/actions/kubeadminit/init.go b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/create/actions/kubeadminit/init.go index cc587940e2..ad25c42a32 100644 --- a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/create/actions/kubeadminit/init.go +++ b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/create/actions/kubeadminit/init.go @@ -142,6 +142,17 @@ func (a *action) Execute(ctx *actions.ActionContext) error { } } + // Kubeadm will add `node.kubernetes.io/exclude-from-external-load-balancers` on control plane nodes. + // For single node clusters, this means we cannot have a load balancer at all (MetalLB, etc), so remove the label. + if len(allNodes) == 1 { + labelArgs := []string{"--kubeconfig=/etc/kubernetes/admin.conf", "label", "nodes", "--all", "node.kubernetes.io/exclude-from-external-load-balancers-"} + if err := node.Command( + "kubectl", labelArgs..., + ).Run(); err != nil { + return errors.Wrap(err, "failed to remove control plane load balancer label") + } + } + // mark success ctx.Status.End(true) return nil diff --git a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/common/getport.go b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/common/getport.go index 5c50da94c1..41f9c5108c 100644 --- a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/common/getport.go +++ b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/common/getport.go @@ -21,27 +21,29 @@ import ( ) // PortOrGetFreePort is a helper that either returns the provided port -// if valid or returns a new free port on listenAddr -func PortOrGetFreePort(port int32, listenAddr string) (int32, error) { +// if valid or returns a new free port on listenAddr and a cleanup function +func PortOrGetFreePort(port int32, listenAddr string) (int32, func(), error) { // in the case of -1 we actually want to pass 0 to the backend to let it pick if port == -1 { - return 0, nil + return 0, nil, nil } // in the case of 0 (unset) we want kind to pick one and supply it to the backend if port == 0 { return GetFreePort(listenAddr) } // otherwise keep the port - return port, nil + return port, nil, nil } // GetFreePort is a helper used to get a free TCP port on the host -func GetFreePort(listenAddr string) (int32, error) { +// returns the free port and a cleanup function, the cleanup function must be called +// after all free ports have been determined to ensure the same port is not returned +// multiple times +func GetFreePort(listenAddr string) (int32, func(), error) { dummyListener, err := net.Listen("tcp", net.JoinHostPort(listenAddr, "0")) if err != nil { - return 0, err + return 0, nil, err } - defer dummyListener.Close() port := dummyListener.Addr().(*net.TCPAddr).Port - return int32(port), nil + return int32(port), func() { dummyListener.Close() }, nil } diff --git a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/docker/provision.go b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/docker/provision.go index 6c644a3651..3a6e1a70ce 100644 --- a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/docker/provision.go +++ b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/docker/provision.go @@ -386,10 +386,13 @@ func generatePortMappings(clusterIPFamily config.ClusterIPFamily, portMappings . } // get a random port if necessary (port = 0) - hostPort, err := common.PortOrGetFreePort(pm.HostPort, pm.ListenAddress) + hostPort, releaseHostPortFn, err := common.PortOrGetFreePort(pm.HostPort, pm.ListenAddress) if err != nil { return nil, errors.Wrap(err, "failed to get random host port for port mapping") } + if releaseHostPortFn != nil { + defer releaseHostPortFn() + } // generate the actual mapping arg protocol := string(pm.Protocol) diff --git a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/podman/provision.go b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/podman/provision.go index c240a29293..5ed1c6b264 100644 --- a/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/podman/provision.go +++ b/vendor/sigs.k8s.io/kind/pkg/cluster/internal/providers/podman/provision.go @@ -399,10 +399,13 @@ func generatePortMappings(clusterIPFamily config.ClusterIPFamily, portMappings . } // get a random port if necessary (port = 0) - hostPort, err := common.PortOrGetFreePort(pm.HostPort, pm.ListenAddress) + hostPort, releaseHostPortFn, err := common.PortOrGetFreePort(pm.HostPort, pm.ListenAddress) if err != nil { return nil, errors.Wrap(err, "failed to get random host port for port mapping") } + if releaseHostPortFn != nil { + defer releaseHostPortFn() + } // generate the actual mapping arg protocol := string(pm.Protocol) diff --git a/vendor/sigs.k8s.io/kind/pkg/cmd/kind/version/version.go b/vendor/sigs.k8s.io/kind/pkg/cmd/kind/version/version.go index 8981ccf52b..d1e4b921b9 100644 --- a/vendor/sigs.k8s.io/kind/pkg/cmd/kind/version/version.go +++ b/vendor/sigs.k8s.io/kind/pkg/cmd/kind/version/version.go @@ -54,7 +54,7 @@ func DisplayVersion() string { } // versionCore is the core portion of the kind CLI version per Semantic Versioning 2.0.0 -const versionCore = "0.21.0" +const versionCore = "0.22.0" // versionPreRelease is the base pre-release portion of the kind CLI version per // Semantic Versioning 2.0.0 diff --git a/vendor/sigs.k8s.io/kind/pkg/internal/apis/config/validate.go b/vendor/sigs.k8s.io/kind/pkg/internal/apis/config/validate.go index 68185d1579..2eabaac67e 100644 --- a/vendor/sigs.k8s.io/kind/pkg/internal/apis/config/validate.go +++ b/vendor/sigs.k8s.io/kind/pkg/internal/apis/config/validate.go @@ -152,6 +152,11 @@ func validatePortMappings(portMappings []PortMapping) error { } for _, portMapping := range portMappings { + if portMapping.HostPort == -1 || portMapping.HostPort == 0 { + // Port -1 and 0 cause a random port to be selected, thus duplicates are allowed + continue + } + addr := net.ParseIP(portMapping.ListenAddress) addrString := addr.String()