diff --git a/api/go.mod b/api/go.mod index b4928be5db..f83675935a 100644 --- a/api/go.mod +++ b/api/go.mod @@ -3,15 +3,15 @@ module github.com/metal3-io/cluster-api-provider-metal3/api go 1.22.3 require ( - github.com/metal3-io/ip-address-manager/api v1.7.0 + github.com/metal3-io/ip-address-manager/api v1.7.1 github.com/onsi/gomega v1.33.1 github.com/pkg/errors v0.9.1 - golang.org/x/net v0.26.0 + golang.org/x/net v0.27.0 k8s.io/api v0.30.3 k8s.io/apimachinery v0.30.3 k8s.io/client-go v0.30.3 k8s.io/utils v0.0.0-20231127182322-b307cd553661 - sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a + sigs.k8s.io/cluster-api v1.8.0-rc.0 sigs.k8s.io/controller-runtime v0.18.4 ) @@ -49,8 +49,8 @@ require ( github.com/spf13/pflag v1.0.5 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect diff --git a/api/go.sum b/api/go.sum index 05ce6195e9..4b8ce3142e 100644 --- a/api/go.sum +++ b/api/go.sum @@ -65,8 +65,8 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= -github.com/metal3-io/ip-address-manager/api v1.7.0 h1:ie9SQPWDWTjBnnxnG+qSfoqIOs+4vp5k0tVI+/0HNGo= -github.com/metal3-io/ip-address-manager/api v1.7.0/go.mod h1:6q41s9Y1P1lGSlMxMwRbIFzfy/XBRX4stvugGx1Jp5o= +github.com/metal3-io/ip-address-manager/api v1.7.1 h1:SV0QAP2IzamP/siVZBXUdkjdMwXZf7JARRTTUXM4Yss= +github.com/metal3-io/ip-address-manager/api v1.7.1/go.mod h1:6q41s9Y1P1lGSlMxMwRbIFzfy/XBRX4stvugGx1Jp5o= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -122,8 +122,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -132,10 +132,10 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= @@ -182,8 +182,8 @@ k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7F k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI= k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a h1:1ZlnaNHr+jIkIjS0dshxR3HxLPVFfGQurcKSvT+Nz4E= -sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a/go.mod h1:IzizeknMhBnwJrdEj5tDpheegvn5xZn8n2gLxKvv7/A= +sigs.k8s.io/cluster-api v1.8.0-rc.0 h1:Q103UfK++rI160mtURBjg4ovJ9vxJTIrrdkL7NQBdFQ= +sigs.k8s.io/cluster-api v1.8.0-rc.0/go.mod h1:TNkfly2mrCG8O6DjGFru0USq1NhWbo2njpSXxKrRgL0= sigs.k8s.io/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHvm5BZw= sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/config/ipam/image_patch.yaml b/config/ipam/image_patch.yaml index ecf2adb8a3..4f6f2f5d32 100644 --- a/config/ipam/image_patch.yaml +++ b/config/ipam/image_patch.yaml @@ -8,5 +8,5 @@ spec: spec: containers: # Change the value of image field below to your controller image URL - - image: quay.io/metal3-io/ip-address-manager:v1.7.0 + - image: quay.io/metal3-io/ip-address-manager:v1.7.1 name: manager diff --git a/config/ipam/kustomization.yaml b/config/ipam/kustomization.yaml index 5f8a844c2b..ec30ba678c 100644 --- a/config/ipam/kustomization.yaml +++ b/config/ipam/kustomization.yaml @@ -3,7 +3,7 @@ kind: Kustomization # When updating the release, update also the image tag in image_patch.yaml resources: -- https://github.com/metal3-io/ip-address-manager/releases/download/v1.7.0/ipam-components.yaml +- https://github.com/metal3-io/ip-address-manager/releases/download/v1.7.1/ipam-components.yaml patches: - path: image_patch.yaml diff --git a/go.mod b/go.mod index 0a25ce831e..2fe4910df0 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/golang/mock v1.6.0 github.com/metal3-io/baremetal-operator/apis v0.6.1 github.com/metal3-io/cluster-api-provider-metal3/api v0.0.0 - github.com/metal3-io/ip-address-manager/api v1.7.0 + github.com/metal3-io/ip-address-manager/api v1.7.1 github.com/onsi/ginkgo/v2 v2.19.0 github.com/onsi/gomega v1.33.1 github.com/pkg/errors v0.9.1 @@ -20,7 +20,7 @@ require ( k8s.io/component-base v0.30.3 k8s.io/klog/v2 v2.120.1 k8s.io/utils v0.0.0-20231127182322-b307cd553661 - sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a + sigs.k8s.io/cluster-api v1.8.0-rc.0 sigs.k8s.io/controller-runtime v0.18.4 sigs.k8s.io/yaml v1.4.0 ) @@ -84,11 +84,11 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect @@ -100,7 +100,7 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiserver v0.30.3 // indirect - k8s.io/cluster-bootstrap v0.30.2 // indirect + k8s.io/cluster-bootstrap v0.30.3 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect diff --git a/go.sum b/go.sum index 62d72be0e1..7c175ec69c 100644 --- a/go.sum +++ b/go.sum @@ -133,8 +133,8 @@ github.com/metal3-io/baremetal-operator/apis v0.6.1 h1:CL5paLPWn0VEAcdtGaKKNMCR9 github.com/metal3-io/baremetal-operator/apis v0.6.1/go.mod h1:dogSrgg9iPAznQonugPKRI41zOlQAaPb80U5WJ06E38= github.com/metal3-io/baremetal-operator/pkg/hardwareutils v0.6.1 h1:0kyToP3YDiICgmVGmZc5F6QK0zx1nqzw48vIviOdedM= github.com/metal3-io/baremetal-operator/pkg/hardwareutils v0.6.1/go.mod h1:wdkQoDe+Kmien7xXRIUufMeX4FGGpciSLi05kcf+Ig4= -github.com/metal3-io/ip-address-manager/api v1.7.0 h1:ie9SQPWDWTjBnnxnG+qSfoqIOs+4vp5k0tVI+/0HNGo= -github.com/metal3-io/ip-address-manager/api v1.7.0/go.mod h1:6q41s9Y1P1lGSlMxMwRbIFzfy/XBRX4stvugGx1Jp5o= +github.com/metal3-io/ip-address-manager/api v1.7.1 h1:SV0QAP2IzamP/siVZBXUdkjdMwXZf7JARRTTUXM4Yss= +github.com/metal3-io/ip-address-manager/api v1.7.1/go.mod h1:6q41s9Y1P1lGSlMxMwRbIFzfy/XBRX4stvugGx1Jp5o= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= @@ -200,14 +200,14 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= -go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= -go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= -go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= -go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= +go.etcd.io/etcd/api/v3 v3.5.15 h1:3KpLJir1ZEBrYuV2v+Twaa/e2MdDCEZ/70H+lzEiwsk= +go.etcd.io/etcd/api/v3 v3.5.15/go.mod h1:N9EhGzXq58WuMllgH9ZvnEr7SI9pS0k0+DHZezGp7jM= +go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5fWlA= +go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU= go.etcd.io/etcd/client/v2 v2.305.10 h1:MrmRktzv/XF8CvtQt+P6wLUlURaNpSDJHFZhe//2QE4= go.etcd.io/etcd/client/v2 v2.305.10/go.mod h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA= -go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= -go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= +go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4= +go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU= go.etcd.io/etcd/pkg/v3 v3.5.10 h1:WPR8K0e9kWl1gAhB5A7gEa5ZBTNkT9NdNWrR8Qpo1CM= go.etcd.io/etcd/pkg/v3 v3.5.10/go.mod h1:TKTuCKKcF1zxmfKWDkfz5qqYaE3JncKKZPFf8c1nFUs= go.etcd.io/etcd/raft/v3 v3.5.10 h1:cgNAYe7xrsrn/5kXMSaH8kM/Ky8mAdMqGOxyYwpP0LA= @@ -241,8 +241,8 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -253,8 +253,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -269,11 +269,11 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= @@ -328,8 +328,8 @@ k8s.io/apiserver v0.30.3 h1:QZJndA9k2MjFqpnyYv/PH+9PE0SHhx3hBho4X0vE65g= k8s.io/apiserver v0.30.3/go.mod h1:6Oa88y1CZqnzetd2JdepO0UXzQX4ZnOekx2/PtEjrOg= k8s.io/client-go v0.30.3 h1:bHrJu3xQZNXIi8/MoxYtZBBWQQXwy16zqJwloXXfD3k= k8s.io/client-go v0.30.3/go.mod h1:8d4pf8vYu665/kUbsxWAQ/JDBNWqfFeZnvFiVdmx89U= -k8s.io/cluster-bootstrap v0.30.2 h1:9PQ5phjWTxmPFKPEzTG6QJzPaUIfuW2RqcHDME5gqPg= -k8s.io/cluster-bootstrap v0.30.2/go.mod h1:dvzAgNVmwRfZ0BzHI/WTvzqlzmNH7w21mdnahEq61KY= +k8s.io/cluster-bootstrap v0.30.3 h1:MgxyxMkpaC6mu0BKWJ8985XCOnKU+eH3Iy+biwtDXRk= +k8s.io/cluster-bootstrap v0.30.3/go.mod h1:h8BoLDfdD7XEEIXy7Bx9FcMzxHwz29jsYYi34bM5DKU= k8s.io/component-base v0.30.3 h1:Ci0UqKWf4oiwy8hr1+E3dsnliKnkMLZMVbWzeorlk7s= k8s.io/component-base v0.30.3/go.mod h1:C1SshT3rGPCuNtBs14RmVD2xW0EhRSeLvBh7AGk1quA= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= @@ -340,8 +340,8 @@ k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6R k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.0 h1:Tc9rS7JJoZ9sl3OpL4842oIk6lH7gWBb0JOmJ0ute7M= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.0/go.mod h1:1ewhL9l1gkPcU/IU/6rFYfikf+7Y5imWv7ARVbBOzNs= -sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a h1:1ZlnaNHr+jIkIjS0dshxR3HxLPVFfGQurcKSvT+Nz4E= -sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a/go.mod h1:IzizeknMhBnwJrdEj5tDpheegvn5xZn8n2gLxKvv7/A= +sigs.k8s.io/cluster-api v1.8.0-rc.0 h1:Q103UfK++rI160mtURBjg4ovJ9vxJTIrrdkL7NQBdFQ= +sigs.k8s.io/cluster-api v1.8.0-rc.0/go.mod h1:TNkfly2mrCG8O6DjGFru0USq1NhWbo2njpSXxKrRgL0= sigs.k8s.io/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHvm5BZw= sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/main.go b/main.go index c2f377a653..7c0f384ccc 100644 --- a/main.go +++ b/main.go @@ -18,13 +18,11 @@ package main import ( "context" - "crypto/tls" "flag" "fmt" "math/rand" "os" "strconv" - "strings" "time" bmov1alpha1 "github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1" @@ -45,7 +43,6 @@ import ( _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" "k8s.io/client-go/rest" "k8s.io/client-go/tools/leaderelection/resourcelock" - cliflag "k8s.io/component-base/cli/flag" "k8s.io/component-base/logs" logsv1 "k8s.io/component-base/logs/api/v1" _ "k8s.io/component-base/logs/json/register" @@ -62,19 +59,11 @@ import ( // Constants for TLS versions. const ( - TLSVersion12 = "TLS12" - TLSVersion13 = "TLS13" // out-of-service taint strategy (GA from 1.28). minK8sMajorVersionOutOfServiceTaint = 1 minK8sMinorVersionGAOutOfServiceTaint = 28 ) -type TLSOptions struct { - TLSMaxVersion string - TLSMinVersion string - TLSCipherSuites string -} - var ( myscheme = runtime.NewScheme() setupLog = ctrl.Log.WithName("setup") @@ -100,9 +89,7 @@ var ( watchFilterValue string logOptions = logs.NewOptions() enableBMHNameBasedPreallocation bool - tlsOptions = TLSOptions{} - diagnosticsOptions = flags.DiagnosticsOptions{} - tlsSupportedVersions = []string{TLSVersion12, TLSVersion13} + managerOptions = flags.ManagerOptions{} ) func init() { @@ -135,14 +122,12 @@ func main() { restConfig.Burst = restConfigBurst restConfig.UserAgent = "cluster-api-provider-metal3-manager" - tlsOptionOverrides, err := GetTLSOptionOverrideFuncs(tlsOptions) + tlsOptions, metricsOptions, err := flags.GetManagerOptions(managerOptions) if err != nil { - setupLog.Error(err, "unable to add TLS settings to the webhook server") + setupLog.Error(err, "Unable to start manager: invalid flags") os.Exit(1) } - diagnosticsOpts := flags.GetDiagnosticsOptions(diagnosticsOptions) - var watchNamespaces map[string]cache.Config if watchNamespace != "" { watchNamespaces = map[string]cache.Config{ @@ -162,7 +147,7 @@ func main() { LeaderElectionID: "controller-leader-election-capm3", LeaderElectionResourceLock: resourcelock.LeasesResourceLock, HealthProbeBindAddress: healthAddr, - Metrics: diagnosticsOpts, + Metrics: *metricsOptions, Cache: cache.Options{ DefaultNamespaces: watchNamespaces, SyncPeriod: &syncPeriod, @@ -188,7 +173,7 @@ func main() { webhook.Options{ Port: webhookPort, CertDir: webhookCertDir, - TLSOpts: tlsOptionOverrides, + TLSOpts: tlsOptions, }, ), }) @@ -329,25 +314,8 @@ func initFlags(fs *pflag.FlagSet) { fs.IntVar(&restConfigBurst, "kube-api-burst", 30, "Maximum number of queries that should be allowed in one burst from the controller client to the Kubernetes API server. Default 30") - fs.StringVar(&tlsOptions.TLSMinVersion, "tls-min-version", TLSVersion13, - "The minimum TLS version in use by the webhook server.\n"+ - fmt.Sprintf("Possible values are %s.", strings.Join(tlsSupportedVersions, ", ")), - ) - - fs.StringVar(&tlsOptions.TLSMaxVersion, "tls-max-version", TLSVersion13, - "The maximum TLS version in use by the webhook server.\n"+ - fmt.Sprintf("Possible values are %s.", strings.Join(tlsSupportedVersions, ", ")), - ) - - tlsCipherPreferredValues := cliflag.PreferredTLSCipherNames() - tlsCipherInsecureValues := cliflag.InsecureTLSCipherNames() - fs.StringVar(&tlsOptions.TLSCipherSuites, "tls-cipher-suites", "", - "Comma-separated list of cipher suites for the webhook server. "+ - "If omitted, the default Go cipher suites will be used. \n"+ - "Preferred values: "+strings.Join(tlsCipherPreferredValues, ", ")+". \n"+ - "Insecure values: "+strings.Join(tlsCipherInsecureValues, ", ")+".") - flags.AddDiagnosticsOptions(fs, &diagnosticsOptions) + flags.AddManagerOptions(fs, &managerOptions) } func waitForAPIs(cfg *rest.Config) error { @@ -514,68 +482,6 @@ func concurrency(c int) controller.Options { return controller.Options{MaxConcurrentReconciles: c} } -// GetTLSOptionOverrideFuncs returns a list of TLS configuration overrides to be used -// by the webhook server. -func GetTLSOptionOverrideFuncs(options TLSOptions) ([]func(*tls.Config), error) { - var tlsOptions []func(config *tls.Config) - - // To make a static analyzer happy, this block ensures there is no code - // path that sets a TLS version outside the acceptable values, even in - // case of unexpected user input. - var tlsMinVersion, tlsMaxVersion uint16 - for version, option := range map[*uint16]string{&tlsMinVersion: options.TLSMinVersion, &tlsMaxVersion: options.TLSMaxVersion} { - switch option { - case TLSVersion12: - *version = tls.VersionTLS12 - case TLSVersion13: - *version = tls.VersionTLS13 - default: - return nil, fmt.Errorf("unexpected TLS version %q (must be one of: %s)", option, strings.Join(tlsSupportedVersions, ", ")) - } - } - - if tlsMaxVersion != 0 && tlsMinVersion > tlsMaxVersion { - return nil, fmt.Errorf("TLS version flag min version (%s) is greater than max version (%s)", - options.TLSMinVersion, options.TLSMaxVersion) - } - - tlsOptions = append(tlsOptions, func(cfg *tls.Config) { - cfg.MinVersion = tlsMinVersion - }) - - tlsOptions = append(tlsOptions, func(cfg *tls.Config) { - cfg.MaxVersion = tlsMaxVersion - }) - // Cipher suites should not be set if empty. - if tlsMinVersion >= tls.VersionTLS13 && - options.TLSCipherSuites != "" { - setupLog.Info("warning: Cipher suites should not be set for TLS version 1.3. Ignoring ciphers") - options.TLSCipherSuites = "" - } - - if options.TLSCipherSuites != "" { - tlsCipherSuites := strings.Split(options.TLSCipherSuites, ",") - suites, err := cliflag.TLSCipherSuites(tlsCipherSuites) - if err != nil { - return nil, err - } - - insecureCipherValues := cliflag.InsecureTLSCipherNames() - for _, cipher := range tlsCipherSuites { - for _, insecureCipherName := range insecureCipherValues { - if insecureCipherName == cipher { - setupLog.Info(fmt.Sprintf("warning: use of insecure cipher '%s' detected.", cipher)) - } - } - } - tlsOptions = append(tlsOptions, func(cfg *tls.Config) { - cfg.CipherSuites = suites - }) - } - - return tlsOptions, nil -} - func isOutOfServiceTaintSupported(config *rest.Config) (bool, error) { cs, err := kubernetes.NewForConfig(config) if err != nil || cs == nil { diff --git a/main_test.go b/main_test.go deleted file mode 100644 index 7a3999f05b..0000000000 --- a/main_test.go +++ /dev/null @@ -1,146 +0,0 @@ -/* -Copyright 2023 The Metal3 Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package main - -import ( - "bytes" - "crypto/tls" - "testing" - - . "github.com/onsi/gomega" - "k8s.io/klog/v2" - ctrl "sigs.k8s.io/controller-runtime" -) - -func TestTLSInsecureCiperSuite(t *testing.T) { - t.Run("test insecure cipher suite passed as TLS flag", func(t *testing.T) { - g := NewWithT(t) - tlsMockOptions := TLSOptions{ - TLSMaxVersion: "TLS13", - TLSMinVersion: "TLS12", - TLSCipherSuites: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", - } - ctrl.Log.WithName("setup") - ctrl.SetLogger(klog.Background()) - - bufWriter := bytes.NewBuffer(nil) - klog.SetOutput(bufWriter) - klog.LogToStderr(false) // this is important, because klog by default logs to stderr only - _, err := GetTLSOptionOverrideFuncs(tlsMockOptions) - g.Expect(err).ShouldNot(HaveOccurred()) - g.Expect(bufWriter.String()).Should(ContainSubstring("use of insecure cipher 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256' detected.")) - }) -} - -func TestTLSMinAndMaxVersion(t *testing.T) { - t.Run("should fail if TLS min version is greater than max version.", func(t *testing.T) { - g := NewWithT(t) - tlsMockOptions := TLSOptions{ - TLSMaxVersion: "TLS12", - TLSMinVersion: "TLS13", - } - _, err := GetTLSOptionOverrideFuncs(tlsMockOptions) - g.Expect(err.Error()).To(Equal("TLS version flag min version (TLS13) is greater than max version (TLS12)")) - }) -} - -func Test13CipherSuite(t *testing.T) { - t.Run("should reset ciphersuite flag if TLS min and max version are set to 1.3", func(t *testing.T) { - g := NewWithT(t) - - // Here TLS_RSA_WITH_AES_128_CBC_SHA is a tls12 cipher suite. - tlsMockOptions := TLSOptions{ - TLSMaxVersion: "TLS13", - TLSMinVersion: "TLS13", - TLSCipherSuites: "TLS_RSA_WITH_AES_128_CBC_SHA,TLS_AES_256_GCM_SHA384", - } - - ctrl.Log.WithName("setup") - ctrl.SetLogger(klog.Background()) - - bufWriter := bytes.NewBuffer(nil) - klog.SetOutput(bufWriter) - klog.LogToStderr(false) // this is important, because klog by default logs to stderr only - _, err := GetTLSOptionOverrideFuncs(tlsMockOptions) - g.Expect(err).ShouldNot(HaveOccurred()) - g.Expect(bufWriter.String()).Should(ContainSubstring("warning: Cipher suites should not be set for TLS version 1.3. Ignoring ciphers")) - }) -} - -func TestGetTLSOverrideFuncs(t *testing.T) { - t.Run("should error out when incorrect min tls version passed", func(t *testing.T) { - g := NewWithT(t) - _, err := GetTLSOptionOverrideFuncs(TLSOptions{ - TLSMinVersion: "TLS11", - TLSMaxVersion: "TLS12", - }) - g.Expect(err.Error()).Should(Equal("unexpected TLS version \"TLS11\" (must be one of: TLS12, TLS13)")) - }) - t.Run("should error out when incorrect max tls version passed", func(t *testing.T) { - g := NewWithT(t) - _, err := GetTLSOptionOverrideFuncs(TLSOptions{ - TLSMinVersion: "TLS12", - TLSMaxVersion: "TLS11", - }) - g.Expect(err.Error()).Should(Equal("unexpected TLS version \"TLS11\" (must be one of: TLS12, TLS13)")) - }) - t.Run("should apply the requested TLS versions", func(t *testing.T) { - g := NewWithT(t) - tlsOptionOverrides, err := GetTLSOptionOverrideFuncs(TLSOptions{ - TLSMinVersion: "TLS12", - TLSMaxVersion: "TLS13", - }) - - var tlsConfig tls.Config - for _, apply := range tlsOptionOverrides { - apply(&tlsConfig) - } - - g.Expect(err).ShouldNot(HaveOccurred()) - g.Expect(tlsConfig.MinVersion).To(Equal(uint16(tls.VersionTLS12))) - g.Expect(tlsConfig.MaxVersion).To(Equal(uint16(tls.VersionTLS13))) - }) - t.Run("should apply the requested non-default TLS versions", func(t *testing.T) { - g := NewWithT(t) - tlsOptionOverrides, err := GetTLSOptionOverrideFuncs(TLSOptions{ - TLSMinVersion: "TLS13", - TLSMaxVersion: "TLS13", - }) - - var tlsConfig tls.Config - for _, apply := range tlsOptionOverrides { - apply(&tlsConfig) - } - - g.Expect(err).ShouldNot(HaveOccurred()) - g.Expect(tlsConfig.MinVersion).To(Equal(uint16(tls.VersionTLS13))) - g.Expect(tlsConfig.MaxVersion).To(Equal(uint16(tls.VersionTLS13))) - }) -} - -func TestTLSOptions(t *testing.T) { - t.Run("should pass with all the correct options below with no error.", func(t *testing.T) { - g := NewWithT(t) - tlsMockOptions := TLSOptions{ - TLSMinVersion: "TLS12", - TLSMaxVersion: "TLS13", - TLSCipherSuites: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", - } - _, err := GetTLSOptionOverrideFuncs(tlsMockOptions) - g.Expect(err).ShouldNot(HaveOccurred()) - }) -} diff --git a/test/e2e/common.go b/test/e2e/common.go index ed9514ad4c..4fe59da41a 100644 --- a/test/e2e/common.go +++ b/test/e2e/common.go @@ -29,8 +29,11 @@ import ( v1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/types" + kerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/client-go/kubernetes" "k8s.io/utils/ptr" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" @@ -40,9 +43,10 @@ import ( "sigs.k8s.io/cluster-api/test/framework/clusterctl" testexec "sigs.k8s.io/cluster-api/test/framework/exec" "sigs.k8s.io/cluster-api/util/patch" + "sigs.k8s.io/cluster-api/util/yaml" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/krusty" + "sigs.k8s.io/kustomize/kyaml/filesys" ) type vmState string @@ -925,7 +929,7 @@ func BuildAndApplyKustomization(ctx context.Context, input *BuildAndApplyKustomi return err } - err = clusterProxy.Apply(ctx, manifest) + err = clusterProxy.CreateOrUpdate(ctx, manifest) if err != nil { return err } @@ -998,3 +1002,41 @@ func buildKustomizeManifest(source string) ([]byte, error) { } return resources.AsYaml() } + +// CreateOrUpdateWithNamespace creates or updates objects using the clusterProxy client with specific namespace. +func CreateOrUpdateWithNamespace(ctx context.Context, p framework.ClusterProxy, resources []byte, namespace string) error { + Expect(ctx).NotTo(BeNil(), "ctx is required for CreateOrUpdate") + Expect(resources).NotTo(BeNil(), "resources is required for CreateOrUpdate") + objs, err := yaml.ToUnstructured(resources) + if err != nil { + return err + } + existingObject := &unstructured.Unstructured{} + var retErrs []error + for _, o := range objs { + o.SetNamespace(namespace) + objectKey := types.NamespacedName{ + Name: o.GetName(), + Namespace: o.GetNamespace(), + } + existingObject.SetAPIVersion(o.GetAPIVersion()) + existingObject.SetKind(o.GetKind()) + o := o + if err := p.GetClient().Get(ctx, objectKey, existingObject); err != nil { + // Expected error -- if the object does not exist, create it + if apierrors.IsNotFound(err) { + if err := p.GetClient().Create(ctx, &o); err != nil { + retErrs = append(retErrs, err) + } + } else { + retErrs = append(retErrs, err) + } + } else { + o.SetResourceVersion(existingObject.GetResourceVersion()) + if err := p.GetClient().Update(ctx, &o); err != nil { + retErrs = append(retErrs, err) + } + } + } + return kerrors.NewAggregate(retErrs) +} diff --git a/test/e2e/config/e2e_conf.yaml b/test/e2e/config/e2e_conf.yaml index 8c9cb60b71..03d8fb91e3 100644 --- a/test/e2e/config/e2e_conf.yaml +++ b/test/e2e/config/e2e_conf.yaml @@ -182,7 +182,7 @@ variables: PROVIDER_ID_FORMAT: "metal3://{{ ds.meta_data.providerid }}" # Pin Calico version - CALICO_PATCH_RELEASE: "v3.25.1" + CALICO_PATCH_RELEASE: "v3.25.2" # Pin CertManager for upgrade tests CERT_MANAGER_RELEASE: v1.14.0 # Default vars for the template, those values could be overridden by the env-vars. diff --git a/test/e2e/upgrade_clusterctl_test.go b/test/e2e/upgrade_clusterctl_test.go index 120b02e587..00fbe161f1 100644 --- a/test/e2e/upgrade_clusterctl_test.go +++ b/test/e2e/upgrade_clusterctl_test.go @@ -81,12 +81,9 @@ var _ = Describe("When testing cluster upgrade from releases (v1.7=>current) [cl }) AfterEach(func() { // Recreate bmh that was used in capi namespace in metal3 - //#nosec G204 -- We need to pass in the file name here. - cmd := exec.Command("bash", "-c", "kubectl apply -f bmhosts_crs.yaml -n metal3") - cmd.Dir = workDir - output, err := cmd.CombinedOutput() - Logf("Applying bmh to metal3 namespace : \n %v", string(output)) - Expect(err).ToNot(HaveOccurred()) + resource, err := os.ReadFile(filepath.Join(workDir, "bmhosts_crs.yaml")) + Expect(err).ShouldNot(HaveOccurred()) + Expect(CreateOrUpdateWithNamespace(ctx, bootstrapClusterProxy, resource, "metal3")).ShouldNot(HaveOccurred()) // wait for all bmh to become available bootstrapClient := bootstrapClusterProxy.GetClient() ListBareMetalHosts(ctx, bootstrapClient, client.InNamespace(namespace)) @@ -152,12 +149,9 @@ var _ = Describe("When testing cluster upgrade from releases (v1.6=>current) [cl }) AfterEach(func() { // Recreate bmh that was used in capi namespace in metal3 - //#nosec G204 -- We need to pass in the file name here. - cmd := exec.Command("bash", "-c", "kubectl apply -f bmhosts_crs.yaml -n metal3") - cmd.Dir = workDir - output, err := cmd.CombinedOutput() - Logf("Applying bmh to metal3 namespace : \n %v", string(output)) - Expect(err).ToNot(HaveOccurred()) + resource, err := os.ReadFile(filepath.Join(workDir, "bmhosts_crs.yaml")) + Expect(err).ShouldNot(HaveOccurred()) + Expect(CreateOrUpdateWithNamespace(ctx, bootstrapClusterProxy, resource, "metal3")).ShouldNot(HaveOccurred()) // wait for all bmh to become available bootstrapClient := bootstrapClusterProxy.GetClient() ListBareMetalHosts(ctx, bootstrapClient, client.InNamespace(namespace)) @@ -190,14 +184,14 @@ func postNamespaceCreated(clusterProxy framework.ClusterProxy, clusterNamespace for i := 0; i < 2; i++ { resource, err := os.ReadFile(filepath.Join(workDir, fmt.Sprintf("bmhs/node_%d.yaml", i))) Expect(err).ShouldNot(HaveOccurred()) - Expect(clusterProxy.Apply(ctx, resource, []string{"-n", clusterNamespace}...)).ShouldNot(HaveOccurred()) + Expect(CreateOrUpdateWithNamespace(ctx, clusterProxy, resource, clusterNamespace)).ShouldNot(HaveOccurred()) } } else { // Apply secrets and bmhs for [node_2, node_3 and node_4] in the management cluster to host workload cluster for i := 2; i < 5; i++ { resource, err := os.ReadFile(filepath.Join(workDir, fmt.Sprintf("bmhs/node_%d.yaml", i))) Expect(err).ShouldNot(HaveOccurred()) - Expect(clusterProxy.Apply(ctx, resource, []string{"-n", clusterNamespace}...)).ShouldNot(HaveOccurred()) + Expect(CreateOrUpdateWithNamespace(ctx, clusterProxy, resource, clusterNamespace)).ShouldNot(HaveOccurred()) } } } @@ -211,7 +205,7 @@ func preInitFunc(clusterProxy framework.ClusterProxy, bmoRelease string, ironicR Expect(err).ToNot(HaveOccurred(), "Unable to download certmanager manifest") certManagerYaml, err := os.ReadFile("/tmp/certManager.yaml") Expect(err).ShouldNot(HaveOccurred()) - Expect(clusterProxy.Apply(ctx, certManagerYaml)).ShouldNot(HaveOccurred()) + Expect(clusterProxy.CreateOrUpdate(ctx, certManagerYaml)).ShouldNot(HaveOccurred()) By("Wait for cert-manager pods to be available") deploymentNameList := []string{} diff --git a/test/go.mod b/test/go.mod index 940939b954..3c58f6115c 100644 --- a/test/go.mod +++ b/test/go.mod @@ -4,15 +4,15 @@ go 1.22.3 require ( github.com/blang/semver v3.5.1+incompatible - github.com/docker/docker v27.0.3+incompatible + github.com/docker/docker v27.1.0+incompatible github.com/jinzhu/copier v0.4.0 github.com/metal3-io/baremetal-operator/apis v0.6.1 - github.com/metal3-io/cluster-api-provider-metal3/api v0.0.0-00010101000000-000000000000 - github.com/metal3-io/ip-address-manager/api v1.7.0 + github.com/metal3-io/cluster-api-provider-metal3/api v0.0.0 + github.com/metal3-io/ip-address-manager/api v1.7.1 github.com/onsi/ginkgo/v2 v2.19.0 github.com/onsi/gomega v1.33.1 github.com/pkg/errors v0.9.1 - golang.org/x/crypto v0.24.0 + golang.org/x/crypto v0.25.0 golang.org/x/mod v0.18.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.30.3 @@ -21,10 +21,11 @@ require ( k8s.io/client-go v0.30.3 k8s.io/klog/v2 v2.120.1 k8s.io/utils v0.0.0-20231127182322-b307cd553661 - sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a - sigs.k8s.io/cluster-api/test v1.7.0-rc.0.0.20240618172153-54c8e46eeb48 + sigs.k8s.io/cluster-api v1.8.0-rc.0 + sigs.k8s.io/cluster-api/test v1.8.0-rc.0 sigs.k8s.io/controller-runtime v0.18.4 sigs.k8s.io/kustomize/api v0.17.2 + sigs.k8s.io/kustomize/kyaml v0.17.1 ) replace github.com/metal3-io/cluster-api-provider-metal3/api => ./../api @@ -37,7 +38,7 @@ require ( github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.0 // indirect github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect - github.com/adrg/xdg v0.4.0 // indirect + github.com/adrg/xdg v0.5.0 // indirect github.com/alessio/shellescape v1.4.1 // indirect github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect @@ -130,11 +131,11 @@ require ( go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect @@ -149,13 +150,12 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gotest.tools/v3 v3.5.0 // indirect k8s.io/apiserver v0.30.3 // indirect - k8s.io/cluster-bootstrap v0.30.2 // indirect + k8s.io/cluster-bootstrap v0.30.3 // indirect k8s.io/component-base v0.30.3 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/kind v0.23.0 // indirect - sigs.k8s.io/kustomize/kyaml v0.17.1 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/test/go.sum b/test/go.sum index f5b8016ec5..a0a85de348 100644 --- a/test/go.sum +++ b/test/go.sum @@ -16,8 +16,8 @@ github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2y github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 h1:wPbRQzjjwFc0ih8puEVAOFGELsn1zoIIYdxvML7mDxA= github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8/go.mod h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g= -github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= -github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= +github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY= +github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4= github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0= github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18= @@ -62,8 +62,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= -github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.1.0+incompatible h1:rEHVQc4GZ0MIQKifQPHSFGV/dVgaZafgRf8fCPtDYBs= +github.com/docker/docker v27.1.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -194,8 +194,8 @@ github.com/metal3-io/baremetal-operator/apis v0.6.1 h1:CL5paLPWn0VEAcdtGaKKNMCR9 github.com/metal3-io/baremetal-operator/apis v0.6.1/go.mod h1:dogSrgg9iPAznQonugPKRI41zOlQAaPb80U5WJ06E38= github.com/metal3-io/baremetal-operator/pkg/hardwareutils v0.6.1 h1:0kyToP3YDiICgmVGmZc5F6QK0zx1nqzw48vIviOdedM= github.com/metal3-io/baremetal-operator/pkg/hardwareutils v0.6.1/go.mod h1:wdkQoDe+Kmien7xXRIUufMeX4FGGpciSLi05kcf+Ig4= -github.com/metal3-io/ip-address-manager/api v1.7.0 h1:ie9SQPWDWTjBnnxnG+qSfoqIOs+4vp5k0tVI+/0HNGo= -github.com/metal3-io/ip-address-manager/api v1.7.0/go.mod h1:6q41s9Y1P1lGSlMxMwRbIFzfy/XBRX4stvugGx1Jp5o= +github.com/metal3-io/ip-address-manager/api v1.7.1 h1:SV0QAP2IzamP/siVZBXUdkjdMwXZf7JARRTTUXM4Yss= +github.com/metal3-io/ip-address-manager/api v1.7.1/go.mod h1:6q41s9Y1P1lGSlMxMwRbIFzfy/XBRX4stvugGx1Jp5o= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -298,12 +298,12 @@ github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= -go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= -go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= -go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= -go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= -go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= +go.etcd.io/etcd/api/v3 v3.5.15 h1:3KpLJir1ZEBrYuV2v+Twaa/e2MdDCEZ/70H+lzEiwsk= +go.etcd.io/etcd/api/v3 v3.5.15/go.mod h1:N9EhGzXq58WuMllgH9ZvnEr7SI9pS0k0+DHZezGp7jM= +go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5fWlA= +go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU= +go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4= +go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= @@ -337,8 +337,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= @@ -361,8 +361,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -381,20 +381,19 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -476,8 +475,8 @@ k8s.io/apiserver v0.30.3 h1:QZJndA9k2MjFqpnyYv/PH+9PE0SHhx3hBho4X0vE65g= k8s.io/apiserver v0.30.3/go.mod h1:6Oa88y1CZqnzetd2JdepO0UXzQX4ZnOekx2/PtEjrOg= k8s.io/client-go v0.30.3 h1:bHrJu3xQZNXIi8/MoxYtZBBWQQXwy16zqJwloXXfD3k= k8s.io/client-go v0.30.3/go.mod h1:8d4pf8vYu665/kUbsxWAQ/JDBNWqfFeZnvFiVdmx89U= -k8s.io/cluster-bootstrap v0.30.2 h1:9PQ5phjWTxmPFKPEzTG6QJzPaUIfuW2RqcHDME5gqPg= -k8s.io/cluster-bootstrap v0.30.2/go.mod h1:dvzAgNVmwRfZ0BzHI/WTvzqlzmNH7w21mdnahEq61KY= +k8s.io/cluster-bootstrap v0.30.3 h1:MgxyxMkpaC6mu0BKWJ8985XCOnKU+eH3Iy+biwtDXRk= +k8s.io/cluster-bootstrap v0.30.3/go.mod h1:h8BoLDfdD7XEEIXy7Bx9FcMzxHwz29jsYYi34bM5DKU= k8s.io/component-base v0.30.3 h1:Ci0UqKWf4oiwy8hr1+E3dsnliKnkMLZMVbWzeorlk7s= k8s.io/component-base v0.30.3/go.mod h1:C1SshT3rGPCuNtBs14RmVD2xW0EhRSeLvBh7AGk1quA= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= @@ -488,10 +487,10 @@ k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6R k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.0 h1:Tc9rS7JJoZ9sl3OpL4842oIk6lH7gWBb0JOmJ0ute7M= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.0/go.mod h1:1ewhL9l1gkPcU/IU/6rFYfikf+7Y5imWv7ARVbBOzNs= -sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a h1:1ZlnaNHr+jIkIjS0dshxR3HxLPVFfGQurcKSvT+Nz4E= -sigs.k8s.io/cluster-api v1.7.0-rc.0.0.20240704092232-a7f5043dee2a/go.mod h1:IzizeknMhBnwJrdEj5tDpheegvn5xZn8n2gLxKvv7/A= -sigs.k8s.io/cluster-api/test v1.7.0-rc.0.0.20240618172153-54c8e46eeb48 h1:dNQjowwraAF01YEQ2zUHr2h/c76EwYmpv5xmCOxd+LI= -sigs.k8s.io/cluster-api/test v1.7.0-rc.0.0.20240618172153-54c8e46eeb48/go.mod h1:qLPwUXB4tqNza8Ej6Ya/WYgWHSzAnmiXJ29dRXpBXXE= +sigs.k8s.io/cluster-api v1.8.0-rc.0 h1:Q103UfK++rI160mtURBjg4ovJ9vxJTIrrdkL7NQBdFQ= +sigs.k8s.io/cluster-api v1.8.0-rc.0/go.mod h1:TNkfly2mrCG8O6DjGFru0USq1NhWbo2njpSXxKrRgL0= +sigs.k8s.io/cluster-api/test v1.8.0-rc.0 h1:JNAxc+8QE4Vk51NFgtex6Yh4KlTJfVOjOH6ybiO3HTI= +sigs.k8s.io/cluster-api/test v1.8.0-rc.0/go.mod h1:dwVWpEtSXNUTYb+rSQ/KNNv4lVadx26teQB9CS+yaXM= sigs.k8s.io/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHvm5BZw= sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=