From afd0eb2f22945fe1f90b583fc1ec00b85ac7382f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 14:07:15 +0000 Subject: [PATCH] build(deps): bump sigs.k8s.io/kind from 0.20.0 to 0.22.0 Bumps [sigs.k8s.io/kind](https://github.com/kubernetes-sigs/kind) from 0.20.0 to 0.22.0. - [Release notes](https://github.com/kubernetes-sigs/kind/releases) - [Commits](https://github.com/kubernetes-sigs/kind/compare/v0.20.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 4efa8730ac..96eee83842 100644 --- a/go.mod +++ b/go.mod @@ -56,7 +56,7 @@ require ( k8s.io/utils v0.0.0-20240102154912-e7106e64919e sigs.k8s.io/controller-runtime v0.17.2 sigs.k8s.io/controller-tools v0.8.0 - sigs.k8s.io/kind v0.20.0 + sigs.k8s.io/kind v0.22.0 ) require ( diff --git a/go.sum b/go.sum index 0fdabde147..81b2ff0ae0 100644 --- a/go.sum +++ b/go.sum @@ -963,8 +963,8 @@ sigs.k8s.io/controller-tools v0.8.0 h1:uUkfTGEwrguqYYfcI2RRGUnC8mYdCFDqfwPKUcNJh sigs.k8s.io/controller-tools v0.8.0/go.mod h1:qE2DXhVOiEq5ijmINcFbqi9GZrrUjzB1TuJU0xa6eoY= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kind v0.20.0 h1:f0sc3v9mQbGnjBUaqSFST1dwIuiikKVGgoTwpoP33a8= -sigs.k8s.io/kind v0.20.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/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0= sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY= sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U= diff --git a/vendor/modules.txt b/vendor/modules.txt index c03302d4f7..2b3ab83056 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2194,7 +2194,7 @@ sigs.k8s.io/controller-tools/pkg/webhook ## explicit; go 1.18 sigs.k8s.io/json sigs.k8s.io/json/internal/golang/encoding/json -# sigs.k8s.io/kind v0.20.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 d546929d5b..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.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72" +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 9f010fddad..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.20.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()