From aef80040f83986603e3fbd23c8863bf334d35603 Mon Sep 17 00:00:00 2001 From: akutz Date: Wed, 21 Aug 2024 08:52:08 -0500 Subject: [PATCH] Controller-runtime v0.19.0 & tools v0.16.1 This patch updates VM Operator to Controller-Runtime v0.19.0 and Controller-Tools v0.16.1 as it is required to work with the new k8s.io dependency pulled in by Controller-Runtime. This patch also addresses a bunch of linting issues brought to light by stale linting caches on developer systems and on GitHub actions where part of the cache key is the sum of the go.mod file. Since the module file changed, it ran with a clean cache, revelealing the issues. --- .golangci.yml | 3 + api/go.mod | 27 +- api/go.sum | 66 +-- ...mware.com_clustervirtualmachineimages.yaml | 56 +-- ...or.vmware.com_contentlibraryproviders.yaml | 2 +- ...ator.vmware.com_contentsourcebindings.yaml | 2 +- .../vmoperator.vmware.com_contentsources.yaml | 2 +- ...mware.com_virtualmachineclassbindings.yaml | 2 +- ...ator.vmware.com_virtualmachineclasses.yaml | 8 +- ...rator.vmware.com_virtualmachineimages.yaml | 56 +-- ...are.com_virtualmachinepublishrequests.yaml | 104 +---- ....vmware.com_virtualmachinereplicasets.yaml | 190 +------- ...vmoperator.vmware.com_virtualmachines.yaml | 435 +----------------- ...tor.vmware.com_virtualmachineservices.yaml | 2 +- ...com_virtualmachinesetresourcepolicies.yaml | 2 +- ....com_virtualmachinewebconsolerequests.yaml | 12 +- ...perator.vmware.com_webconsolerequests.yaml | 6 +- .../cns.vmware.com_storagepolicyquotas.yaml | 2 +- .../cns.vmware.com_storagepolicyusages.yaml | 2 +- ...ry.vmware.com_clustercontentlibraries.yaml | 3 +- ...vmware.com_clustercontentlibraryitems.yaml | 3 +- ...eregistry.vmware.com_contentlibraries.yaml | 3 +- ....com_contentlibraryitemimportrequests.yaml | 5 +- ...gistry.vmware.com_contentlibraryitems.yaml | 3 +- ...operator.vmware.com_networkinterfaces.yaml | 2 +- ...gy.tanzu.vmware.com_availabilityzones.yaml | 2 +- ...opology.tanzu.vmware.com_vspherezones.yaml | 2 +- .../topology.tanzu.vmware.com_zones.yaml | 22 +- config/rbac/role.yaml | 296 +----------- .../virtualmachineservice_controller.go | 2 + go.mod | 44 +- go.sum | 92 ++-- hack/tools/go.mod | 53 ++- hack/tools/go.sum | 114 ++--- pkg/prober/fake/worker/fake_prober_worker.go | 7 +- pkg/prober/prober_manager.go | 4 +- pkg/prober/worker/prober_worker.go | 4 +- pkg/prober/worker/readiness_worker.go | 7 +- 38 files changed, 311 insertions(+), 1336 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 449dd1c42..979a94122 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -200,6 +200,9 @@ issues: - linters: - staticcheck text: "^SA1019: .*TCPSocket is deprecated" + - linters: + - govet + text: "printf: non-constant format string in call" # Dot imports for gomega or ginkgo are allowed within test files. - path: test/builder/intg_test_context.go text: should not use dot imports diff --git a/api/go.mod b/api/go.mod index 90a40d1f9..32ea10202 100644 --- a/api/go.mod +++ b/api/go.mod @@ -8,24 +8,23 @@ require ( github.com/google/uuid v1.6.0 github.com/onsi/ginkgo/v2 v2.19.0 github.com/onsi/gomega v1.33.1 - - // https://github.com/vmware-tanzu/vm-operator/security/dependabot/39 - google.golang.org/protobuf v1.34.1 // indirect - k8s.io/api v0.30.0 - k8s.io/apimachinery v0.30.0 - sigs.k8s.io/controller-runtime v0.18.2 + k8s.io/api v0.31.0 + k8s.io/apimachinery v0.31.0 + sigs.k8s.io/controller-runtime v0.19.0 ) require ( + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect - github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/tools v0.21.0 // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect + github.com/x448/float16 v0.8.4 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect ) require ( - github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -35,13 +34,13 @@ require ( // * https://github.com/vmware-tanzu/vm-operator/security/dependabot/32 // * https://github.com/vmware-tanzu/vm-operator/security/dependabot/34 // * https://github.com/vmware-tanzu/vm-operator/security/dependabot/36 - golang.org/x/net v0.25.0 // indirect + golang.org/x/net v0.26.0 // indirect // * https://github.com/vmware-tanzu/vm-operator/security/dependabot/22 - golang.org/x/text v0.15.0 // indirect; per + golang.org/x/text v0.16.0 // indirect; per gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/klog/v2 v2.130.1 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff --git a/api/go.sum b/api/go.sum index 0dfef515c..6a70ea26e 100644 --- a/api/go.sum +++ b/api/go.sum @@ -1,8 +1,11 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -13,8 +16,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -34,16 +37,19 @@ github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -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/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -55,32 +61,32 @@ 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.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +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/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +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/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.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -91,16 +97,16 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= -k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= -k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= -k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -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/controller-runtime v0.18.2 h1:RqVW6Kpeaji67CY5nPEfRz6ZfFMk0lWQlNrLqlNpx+Q= -sigs.k8s.io/controller-runtime v0.18.2/go.mod h1:tuAt1+wbVsXIT8lPtk5RURxqAnq7xkpv2Mhttslg7Hw= +k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= +k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= +k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc= +k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q= +sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= 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/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= diff --git a/config/crd/bases/vmoperator.vmware.com_clustervirtualmachineimages.yaml b/config/crd/bases/vmoperator.vmware.com_clustervirtualmachineimages.yaml index aa6e1d329..98353d889 100644 --- a/config/crd/bases/vmoperator.vmware.com_clustervirtualmachineimages.yaml +++ b/config/crd/bases/vmoperator.vmware.com_clustervirtualmachineimages.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: clustervirtualmachineimages.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -225,6 +225,7 @@ spec: can be useful (see .node.status.conditions), the ability to disambiguate is important. type: string required: + - lastTransitionTime - status - type type: object @@ -233,7 +234,6 @@ spec: description: |- ContentLibraryRef is a reference to the source ContentLibrary/ClusterContentLibrary resource. - Deprecated: This field is provider specific but the VirtualMachineImage types are intended to be provider generic. This field does not exist in later API versions. Instead, the Spec.ProviderRef field should be used to look up the provider. For images provided by a Content Library, the ProviderRef will point to either a ContentLibraryItem or @@ -370,19 +370,16 @@ spec: description: |- Capabilities describes the image's observed capabilities. - The capabilities are discerned when VM Operator reconciles an image. If the source of an image is an OVF in Content Library, then the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com as a comma-separated list of values. Well-known capabilities include: - * cloud-init * nvidia-gpu * sriov-net - Every capability is also added to the resource's labels as VirtualMachineImageCapabilityLabel + Value. For example, if the capability is "cloud-init" then the following label will be added to the @@ -395,16 +392,8 @@ spec: description: Conditions describes the observed conditions for this image. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -445,12 +434,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -482,7 +466,6 @@ spec: OSInfo describes the observed operating system information for this image. - The OS information is also added to the image resource's labels. Please refer to VirtualMachineImageOSInfo for more information. properties: @@ -490,7 +473,6 @@ spec: description: |- ID describes the operating system ID. - This value is also added to the image resource's labels as VirtualMachineImageOSIDLabel. type: string @@ -498,7 +480,6 @@ spec: description: |- Type describes the operating system type. - This value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel. type: string @@ -506,7 +487,6 @@ spec: description: |- Version describes the operating system version. - This value is also added to the image resource's labels as VirtualMachineImageOSVersionLabel. type: string @@ -675,19 +655,16 @@ spec: description: |- Capabilities describes the image's observed capabilities. - The capabilities are discerned when VM Operator reconciles an image. If the source of an image is an OVF in Content Library, then the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com as a comma-separated list of values. Well-known capabilities include: - * cloud-init * nvidia-gpu * sriov-net - Every capability is also added to the resource's labels as VirtualMachineImageCapabilityLabel + Value. For example, if the capability is "cloud-init" then the following label will be added to the @@ -700,16 +677,8 @@ spec: description: Conditions describes the observed conditions for this image. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -750,12 +719,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -812,7 +776,6 @@ spec: OSInfo describes the observed operating system information for this image. - The OS information is also added to the image resource's labels. Please refer to VirtualMachineImageOSInfo for more information. properties: @@ -820,7 +783,6 @@ spec: description: |- ID describes the operating system ID. - This value is also added to the image resource's labels as VirtualMachineImageOSIDLabel. type: string @@ -828,7 +790,6 @@ spec: description: |- Type describes the operating system type. - This value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel. type: string @@ -836,7 +797,6 @@ spec: description: |- Version describes the operating system version. - This value is also added to the image resource's labels as VirtualMachineImageOSVersionLabel. type: string diff --git a/config/crd/bases/vmoperator.vmware.com_contentlibraryproviders.yaml b/config/crd/bases/vmoperator.vmware.com_contentlibraryproviders.yaml index 26b6d228b..ea2f9d99a 100644 --- a/config/crd/bases/vmoperator.vmware.com_contentlibraryproviders.yaml +++ b/config/crd/bases/vmoperator.vmware.com_contentlibraryproviders.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: contentlibraryproviders.vmoperator.vmware.com spec: group: vmoperator.vmware.com diff --git a/config/crd/bases/vmoperator.vmware.com_contentsourcebindings.yaml b/config/crd/bases/vmoperator.vmware.com_contentsourcebindings.yaml index 50ab606f7..9bec7e71c 100644 --- a/config/crd/bases/vmoperator.vmware.com_contentsourcebindings.yaml +++ b/config/crd/bases/vmoperator.vmware.com_contentsourcebindings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: contentsourcebindings.vmoperator.vmware.com spec: group: vmoperator.vmware.com diff --git a/config/crd/bases/vmoperator.vmware.com_contentsources.yaml b/config/crd/bases/vmoperator.vmware.com_contentsources.yaml index e8c1d8371..449a49772 100644 --- a/config/crd/bases/vmoperator.vmware.com_contentsources.yaml +++ b/config/crd/bases/vmoperator.vmware.com_contentsources.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: contentsources.vmoperator.vmware.com spec: group: vmoperator.vmware.com diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachineclassbindings.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachineclassbindings.yaml index 978e402bb..ee2878335 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachineclassbindings.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachineclassbindings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachineclassbindings.vmoperator.vmware.com spec: group: vmoperator.vmware.com diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachineclasses.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachineclasses.yaml index 216a5046b..bce4a6770 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachineclasses.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachineclasses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachineclasses.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -79,13 +79,11 @@ spec: reconciling VirtualMachine resources that are realized from this VirtualMachineClass. - When omitted, controllers reconciling VirtualMachine resources determine the default controller name from the environment variable DEFAULT_VM_CLASS_CONTROLLER_NAME. If this environment variable is not defined or empty, it defaults to vmoperator.vmware.com/vsphere. - Once a non-empty value is assigned to this field, attempts to set this field to an empty value will be silently ignored. type: string @@ -288,13 +286,11 @@ spec: reconciling VirtualMachine resources that are realized from this VirtualMachineClass. - When omitted, controllers reconciling VirtualMachine resources determine the default controller name from the environment variable DEFAULT_VM_CLASS_CONTROLLER_NAME. If this environment variable is not defined or empty, it defaults to vmoperator.vmware.com/vsphere. - Once a non-empty value is assigned to this field, attempts to set this field to an empty value will be silently ignored. type: string @@ -505,13 +501,11 @@ spec: reconciling VirtualMachine resources that are realized from this VirtualMachineClass. - When omitted, controllers reconciling VirtualMachine resources determine the default controller name from the environment variable DEFAULT_VM_CLASS_CONTROLLER_NAME. If this environment variable is not defined or empty, it defaults to vmoperator.vmware.com/vsphere. - Once a non-empty value is assigned to this field, attempts to set this field to an empty value will be silently ignored. type: string diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachineimages.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachineimages.yaml index dbbf1ea1d..e15e36b21 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachineimages.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachineimages.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachineimages.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -224,6 +224,7 @@ spec: can be useful (see .node.status.conditions), the ability to disambiguate is important. type: string required: + - lastTransitionTime - status - type type: object @@ -232,7 +233,6 @@ spec: description: |- ContentLibraryRef is a reference to the source ContentLibrary/ClusterContentLibrary resource. - Deprecated: This field is provider specific but the VirtualMachineImage types are intended to be provider generic. This field does not exist in later API versions. Instead, the Spec.ProviderRef field should be used to look up the provider. For images provided by a Content Library, the ProviderRef will point to either a ContentLibraryItem or @@ -371,19 +371,16 @@ spec: description: |- Capabilities describes the image's observed capabilities. - The capabilities are discerned when VM Operator reconciles an image. If the source of an image is an OVF in Content Library, then the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com as a comma-separated list of values. Well-known capabilities include: - * cloud-init * nvidia-gpu * sriov-net - Every capability is also added to the resource's labels as VirtualMachineImageCapabilityLabel + Value. For example, if the capability is "cloud-init" then the following label will be added to the @@ -396,16 +393,8 @@ spec: description: Conditions describes the observed conditions for this image. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -446,12 +435,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -483,7 +467,6 @@ spec: OSInfo describes the observed operating system information for this image. - The OS information is also added to the image resource's labels. Please refer to VirtualMachineImageOSInfo for more information. properties: @@ -491,7 +474,6 @@ spec: description: |- ID describes the operating system ID. - This value is also added to the image resource's labels as VirtualMachineImageOSIDLabel. type: string @@ -499,7 +481,6 @@ spec: description: |- Type describes the operating system type. - This value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel. type: string @@ -507,7 +488,6 @@ spec: description: |- Version describes the operating system version. - This value is also added to the image resource's labels as VirtualMachineImageOSVersionLabel. type: string @@ -678,19 +658,16 @@ spec: description: |- Capabilities describes the image's observed capabilities. - The capabilities are discerned when VM Operator reconciles an image. If the source of an image is an OVF in Content Library, then the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com as a comma-separated list of values. Well-known capabilities include: - * cloud-init * nvidia-gpu * sriov-net - Every capability is also added to the resource's labels as VirtualMachineImageCapabilityLabel + Value. For example, if the capability is "cloud-init" then the following label will be added to the @@ -703,16 +680,8 @@ spec: description: Conditions describes the observed conditions for this image. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -753,12 +722,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -815,7 +779,6 @@ spec: OSInfo describes the observed operating system information for this image. - The OS information is also added to the image resource's labels. Please refer to VirtualMachineImageOSInfo for more information. properties: @@ -823,7 +786,6 @@ spec: description: |- ID describes the operating system ID. - This value is also added to the image resource's labels as VirtualMachineImageOSIDLabel. type: string @@ -831,7 +793,6 @@ spec: description: |- Type describes the operating system type. - This value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel. type: string @@ -839,7 +800,6 @@ spec: description: |- Version describes the operating system version. - This value is also added to the image resource's labels as VirtualMachineImageOSVersionLabel. type: string diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachinepublishrequests.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachinepublishrequests.yaml index e01a31533..6ef55aeb9 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachinepublishrequests.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachinepublishrequests.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachinepublishrequests.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -45,7 +45,6 @@ spec: VirtualMachinePublishRequestSpec defines the desired state of a VirtualMachinePublishRequest. - All the fields in this spec are optional. This is especially useful when a DevOps persona wants to publish a VM without doing anything more than applying a VirtualMachinePublishRequest resource that has the same name @@ -56,7 +55,6 @@ spec: Source is the source of the publication request, ex. a VirtualMachine resource. - If this value is omitted then the publication controller checks to see if there is a resource with the same name as this VirtualMachinePublishRequest resource, an API version equal to @@ -75,7 +73,6 @@ spec: description: |- Name is the name of the referenced object. - If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. type: string @@ -85,7 +82,6 @@ spec: Target is the target of the publication request, ex. item information and a ContentLibrary resource. - If this value is omitted, the controller uses spec.source.name + "-image" as the name of the published item. Additionally, when omitted the controller attempts to identify the target location by matching a @@ -93,7 +89,6 @@ spec: kind equal to spec.target.location.kind, w/ the label "imageregistry.vmware.com/default". - Please note that while optional, if a VirtualMachinePublishRequest sans target information is applied to a namespace without a default publication target, then the VirtualMachinePublishRequest resource @@ -104,7 +99,6 @@ spec: Item contains information about the name of the object to which the VM is published. - Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. @@ -117,14 +111,12 @@ spec: description: |- Name is the display name of the published object. - If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. - If omitted then the controller will use spec.source.name + "-image". type: string type: object @@ -146,11 +138,9 @@ spec: description: |- Name is the name of the referenced object. - Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. - A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label @@ -165,7 +155,6 @@ spec: completes. After the TTL expires, the resource will be automatically deleted without the user having to take any direct action. - If this field is unset then the request resource will not be automatically deleted. If this field is set to zero then the request resource is eligible for deletion immediately after it finishes. @@ -190,7 +179,6 @@ spec: guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. - The value of this field should be equal to the value of the LastTransitionTime for the status condition Type=Complete. format: date-time @@ -237,6 +225,7 @@ spec: can be useful (see .node.status.conditions), the ability to disambiguate is important. type: string required: + - lastTransitionTime - status - type type: object @@ -247,7 +236,6 @@ spec: eventually realized in the same namespace as the VM and publication request after the publication operation completes. - This field will not be set until the VirtualMachineImage resource is realized. type: string @@ -261,12 +249,10 @@ spec: Ready is set to true only when the VM has been published successfully and the new VirtualMachineImage resource is ready. - Readiness is determined by waiting until there is status condition Type=Complete and ensuring it and all other status conditions present have a Status=True. The conditions present will be: - * SourceValid * TargetValid * Uploaded @@ -290,7 +276,6 @@ spec: description: |- Name is the name of the referenced object. - If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. type: string @@ -313,7 +298,6 @@ spec: Item contains information about the name of the object to which the VM is published. - Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. @@ -326,14 +310,12 @@ spec: description: |- Name is the display name of the published object. - If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. - If omitted then the controller will use spec.source.name + "-image". type: string type: object @@ -355,11 +337,9 @@ spec: description: |- Name is the name of the referenced object. - Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. - A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label @@ -402,7 +382,6 @@ spec: VirtualMachinePublishRequestSpec defines the desired state of a VirtualMachinePublishRequest. - All the fields in this spec are optional. This is especially useful when a DevOps persona wants to publish a VM without doing anything more than applying a VirtualMachinePublishRequest resource that has the same name @@ -413,7 +392,6 @@ spec: Source is the source of the publication request, ex. a VirtualMachine resource. - If this value is omitted then the publication controller checks to see if there is a resource with the same name as this VirtualMachinePublishRequest resource, an API version equal to @@ -432,7 +410,6 @@ spec: description: |- Name is the name of the referenced object. - If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. type: string @@ -442,7 +419,6 @@ spec: Target is the target of the publication request, ex. item information and a ContentLibrary resource. - If this value is omitted, the controller uses spec.source.name + "-image" as the name of the published item. Additionally, when omitted the controller attempts to identify the target location by matching a @@ -450,7 +426,6 @@ spec: kind equal to spec.target.location.kind, w/ the label "imageregistry.vmware.com/default". - Please note that while optional, if a VirtualMachinePublishRequest sans target information is applied to a namespace without a default publication target, then the VirtualMachinePublishRequest resource @@ -461,7 +436,6 @@ spec: Item contains information about the name of the object to which the VM is published. - Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. @@ -474,14 +448,12 @@ spec: description: |- Name is the name of the published object. - If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. - If omitted then the controller will use spec.source.name + "-image". type: string type: object @@ -503,11 +475,9 @@ spec: description: |- Name is the name of the referenced object. - Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. - A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label @@ -522,7 +492,6 @@ spec: completes. After the TTL expires, the resource will be automatically deleted without the user having to take any direct action. - If this field is unset then the request resource will not be automatically deleted. If this field is set to zero then the request resource is eligible for deletion immediately after it finishes. @@ -547,7 +516,6 @@ spec: guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. - The value of this field should be equal to the value of the LastTransitionTime for the status condition Type=Complete. format: date-time @@ -557,16 +525,8 @@ spec: Conditions is a list of the latest, available observations of the request's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -607,12 +567,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -630,7 +585,6 @@ spec: eventually realized in the same namespace as the VM and publication request after the publication operation completes. - This field will not be set until the VirtualMachineImage resource is realized. type: string @@ -644,12 +598,10 @@ spec: Ready is set to true only when the VM has been published successfully and the new VirtualMachineImage resource is ready. - Readiness is determined by waiting until there is status condition Type=Complete and ensuring it and all other status conditions present have a Status=True. The conditions present will be: - * SourceValid * TargetValid * Uploaded @@ -673,7 +625,6 @@ spec: description: |- Name is the name of the referenced object. - If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. type: string @@ -696,7 +647,6 @@ spec: Item contains information about the name of the object to which the VM is published. - Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. @@ -709,14 +659,12 @@ spec: description: |- Name is the name of the published object. - If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. - If omitted then the controller will use spec.source.name + "-image". type: string type: object @@ -738,11 +686,9 @@ spec: description: |- Name is the name of the referenced object. - Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. - A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label @@ -785,7 +731,6 @@ spec: VirtualMachinePublishRequestSpec defines the desired state of a VirtualMachinePublishRequest. - All the fields in this spec are optional. This is especially useful when a DevOps persona wants to publish a VM without doing anything more than applying a VirtualMachinePublishRequest resource that has the same name @@ -796,7 +741,6 @@ spec: Source is the source of the publication request, ex. a VirtualMachine resource. - If this value is omitted then the publication controller checks to see if there is a resource with the same name as this VirtualMachinePublishRequest resource, an API version equal to @@ -815,7 +759,6 @@ spec: description: |- Name is the name of the referenced object. - If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. type: string @@ -825,7 +768,6 @@ spec: Target is the target of the publication request, ex. item information and a ContentLibrary resource. - If this value is omitted, the controller uses spec.source.name + "-image" as the name of the published item. Additionally, when omitted the controller attempts to identify the target location by matching a @@ -833,7 +775,6 @@ spec: kind equal to spec.target.location.kind, w/ the label "imageregistry.vmware.com/default". - Please note that while optional, if a VirtualMachinePublishRequest sans target information is applied to a namespace without a default publication target, then the VirtualMachinePublishRequest resource @@ -844,7 +785,6 @@ spec: Item contains information about the name of the object to which the VM is published. - Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. @@ -857,14 +797,12 @@ spec: description: |- Name is the name of the published object. - If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. - If omitted then the controller will use spec.source.name + "-image". type: string type: object @@ -886,11 +824,9 @@ spec: description: |- Name is the name of the referenced object. - Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. - A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label @@ -905,7 +841,6 @@ spec: completes. After the TTL expires, the resource will be automatically deleted without the user having to take any direct action. - If this field is unset then the request resource will not be automatically deleted. If this field is set to zero then the request resource is eligible for deletion immediately after it finishes. @@ -930,7 +865,6 @@ spec: guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. - The value of this field should be equal to the value of the LastTransitionTime for the status condition Type=Complete. format: date-time @@ -940,16 +874,8 @@ spec: Conditions is a list of the latest, available observations of the request's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -990,12 +916,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -1013,7 +934,6 @@ spec: eventually realized in the same namespace as the VM and publication request after the publication operation completes. - This field will not be set until the VirtualMachineImage resource is realized. type: string @@ -1027,12 +947,10 @@ spec: Ready is set to true only when the VM has been published successfully and the new VirtualMachineImage resource is ready. - Readiness is determined by waiting until there is status condition Type=Complete and ensuring it and all other status conditions present have a Status=True. The conditions present will be: - * SourceValid * TargetValid * Uploaded @@ -1056,7 +974,6 @@ spec: description: |- Name is the name of the referenced object. - If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. type: string @@ -1079,7 +996,6 @@ spec: Item contains information about the name of the object to which the VM is published. - Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. @@ -1092,14 +1008,12 @@ spec: description: |- Name is the name of the published object. - If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. - If omitted then the controller will use spec.source.name + "-image". type: string type: object @@ -1121,11 +1035,9 @@ spec: description: |- Name is the name of the referenced object. - Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. - A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachinereplicasets.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachinereplicasets.yaml index 612d9ab7a..8f1c1af7e 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachinereplicasets.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachinereplicasets.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachinereplicasets.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -78,7 +78,6 @@ spec: replica count. A virtual machine's label keys and values must match in order to be controlled by this VirtualMachineReplicaSet. - It must match the VirtualMachine template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors properties: @@ -170,7 +169,6 @@ spec: BootDiskCapacity is the capacity of the VM's boot disk -- the first disk from the VirtualMachineImage from which the VM was deployed. - Please note it is not advised to change this value while the VM is running. Also, resizing the VM's boot disk may require actions inside of the guest to take advantage of the additional capacity. Finally, changing @@ -207,7 +205,6 @@ spec: Bootstrap describes the desired state of the guest's bootstrap configuration. - If omitted, a default bootstrap method may be selected based on the guest OS identifier. If Linux, then the LinuxPrep method is used. properties: @@ -216,11 +213,9 @@ spec: CloudInit may be used to bootstrap Linux guests with Cloud-Init or Windows guests that support Cloudbase-Init. - The guest's networking stack is configured by Cloud-Init on Linux guests and Cloudbase-Init on Windows guests. - Please note this bootstrap provider may not be used in conjunction with the other bootstrap providers. properties: @@ -229,7 +224,6 @@ spec: CloudConfig describes a subset of a Cloud-Init CloudConfig, used to bootstrap the VM. - Please note this field and RawCloudConfig are mutually exclusive. properties: defaultUserEnabled: @@ -244,17 +238,13 @@ spec: RunCmd allows running one or more commands on the guest. The entries in this list can adhere to two, different formats: - Format 1 -- a string that contains the command and its arguments, ex. - runcmd: - "ls -al" - Format 2 -- a list of the command and its arguments, ex. - runcmd: - - echo - "Hello, world." @@ -283,7 +273,6 @@ spec: CreateGroups is a flag that may be set to false to disable creation of specified user groups. - Defaults to true when Name is not "default". type: boolean expiredate: @@ -322,7 +311,6 @@ spec: description: |- Homedir is the optional home directory for the user. - Defaults to "/home/" when Name is not "default". type: string inactive: @@ -335,14 +323,12 @@ spec: description: |- LockPasswd disables password login. - Defaults to true when Name is not "default". type: boolean name: description: |- Name is the user's login name. - Please note this field may be set to the special value of "default" when this User is the first element in the Users list from the CloudConfig. When set to "default", all other fields from this User must be nil. @@ -351,7 +337,6 @@ spec: description: |- NoCreateHome prevents the creation of the home directory. - Defaults to false when Name is not "default". type: boolean no_log_init: @@ -359,14 +344,12 @@ spec: NoLogInit prevents the initialization of lastlog and faillog for the user. - Defaults to false when Name is not "default". type: boolean no_user_group: description: |- NoUserGroup prevents the creation of the group named after the user. - Defaults to false when Name is not "default". type: boolean passwd: @@ -391,7 +374,6 @@ spec: description: |- PrimaryGroup is the primary group for the user. - Defaults to the value of the Name field when it is not "default". type: string selinux_user: @@ -402,7 +384,6 @@ spec: description: |- Shell is the path to the user's login shell. - Please note the default is to set no shell, which results in a system-specific default being used. type: string @@ -411,7 +392,6 @@ spec: SnapUser specifies an e-mail address to create the user as a Snappy user through "snap create-user". - If an Ubuntu SSO account is associated with the address, the username and SSH keys will be requested from there. type: string @@ -420,7 +400,6 @@ spec: SSHAuthorizedKeys is a list of SSH keys to add to the user's authorized keys file. - Please note this field may not be combined with SSHRedirectUser. items: type: string @@ -429,7 +408,6 @@ spec: description: |- SSHImportID is a list of SSH IDs to import for the user. - Please note this field may not be combined with SSHRedirectUser. items: type: string @@ -438,22 +416,18 @@ spec: description: |- SSHRedirectUser may be set to true to disable SSH logins for this user. - Please note that when specified, all SSH keys from cloud meta-data will be configured in a disabled state for this user. Any SSH login as this user will timeout with a message to login instead as the default user. - This field may not be combined with SSHAuthorizedKeys or SSHImportID. - Defaults to false when Name is not "default". type: boolean sudo: description: |- Sudo is a sudo rule to apply to the user. - When omitted, no sudo rules will be applied to the user. type: string system: @@ -461,14 +435,12 @@ spec: System is an optional flag that indicates the user should be created as a system user with no home directory. - Defaults to false when Name is not "default". type: boolean uid: description: |- UID is the user's ID. - When omitted the guest will default to the next available number. format: int64 type: integer @@ -495,28 +467,21 @@ spec: description: |- Content is the optional content to write to the provided Path. - When omitted an empty file will be created or existing file will be modified. - The value for this field can adhere to two, different formats: - Format 1 -- a string that contains the command and its arguments, ex. - content: Hello, world. - Please note that format 1 supports all of the manners of specifying a YAML string. - Format 2 -- a secret reference with the name of the key that contains the content for the file, ex. - content: name: my-bootstrap-secret key: my-file-content @@ -555,11 +520,9 @@ spec: description: |- Permissions an optional set of file permissions to set. - Please note the permissions should be specified as an octal string, ex. "0###". - When omitted the guest will default this value to "0644". type: string required: @@ -580,11 +543,9 @@ spec: RawCloudConfig describes a key in a Secret resource that contains the CloudConfig data used to bootstrap the VM. - The CloudConfig data specified by the key may be plain-text, base64-encoded, or gzipped and base64-encoded. - Please note this field and CloudConfig are mutually exclusive. properties: key: @@ -610,16 +571,13 @@ spec: description: |- LinuxPrep may be used to bootstrap Linux guests. - The guest's networking stack is configured by Guest OS Customization (GOSC). - Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. - This bootstrap provider may not be used in conjunction with the CloudInit or Sysprep bootstrap providers. properties: @@ -632,13 +590,11 @@ spec: description: |- TimeZone is a case-sensitive timezone, such as Europe/Sofia. - Valid values are based on the tz (timezone) database used by Linux and other Unix systems. The values are strings in the form of "Area/Location," in which Area is a continent or ocean name, and Location is the city, island, or other regional designation. - Please see https://kb.vmware.com/s/article/2145518 for a list of valid time zones for Linux systems. type: string @@ -647,16 +603,13 @@ spec: description: |- Sysprep may be used to bootstrap Windows guests. - The guest's networking stack is configured by Guest OS Customization (GOSC). - Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. - This bootstrap provider may not be used in conjunction with the CloudInit or LinuxPrep bootstrap providers. properties: @@ -665,11 +618,9 @@ spec: RawSysprep describes a key in a Secret resource that contains an XML string of the Sysprep text used to bootstrap the VM. - The data specified by the Secret key may be plain-text, base64-encoded, or gzipped and base64-encoded. - Please note this field and Sysprep are mutually exclusive. properties: key: @@ -687,14 +638,11 @@ spec: description: |- Sysprep is an object representation of a Windows sysprep.xml answer file. - This field encloses all the individual keys listed in a sysprep.xml file. - For more detailed information please see https://technet.microsoft.com/en-us/library/cc771830(v=ws.10).aspx. - Please note this field and RawSysprep are mutually exclusive. properties: guiRunOnce: @@ -718,7 +666,6 @@ spec: AutoLogon determine whether the machine automatically logs on as Administrator. - Please note if AutoLogon is true, then Password must be set or guest customization will fail. type: boolean @@ -727,12 +674,10 @@ spec: AutoLogonCount specifies the number of times the machine should automatically log on as Administrator. - Generally it should be 1, but if your setup requires a number of reboots, you may want to increase it. This number may be determined by the list of commands executed by the GuiRunOnce command. - Please note this field must be specified with a non-zero positive integer if AutoLogon is true. format: int32 @@ -741,22 +686,18 @@ spec: description: |- Password is the new administrator password for the machine. - To specify that the password should be set to blank (that is, no password), set the password value to NULL. Because of encryption, "" is NOT a valid value. - Please note if the password is set to blank and AutoLogon is true, the guest customization will fail. - If the XML file is generated by the VirtualCenter Customization Wizard, then the password is encrypted. Otherwise, the client should set the plainText attribute to true, so that the customization process does not attempt to decrypt the string. - When not explicitly specified, the Key field for the selector defaults to `password`. properties: @@ -776,7 +717,6 @@ spec: description: |- TimeZone is the time zone index for the virtual machine. - Please note that numbers correspond to time zones listed at https://bit.ly/3Rzv8oL. format: int32 @@ -798,7 +738,6 @@ spec: DomainAdminPassword is the password for the domain user account used for authentication if the virtual machine is joining a domain. - When not explicitly specified, the Key field for the selector defaults to `domain_admin_password`. properties: @@ -827,7 +766,6 @@ spec: LicenseFilePrintData is a representation of the Sysprep LicenseFilePrintData key. - Please note this is required only for Windows 2000 Server and Windows Server 2003. properties: @@ -843,7 +781,6 @@ spec: AutoUsers indicates the number of client licenses purchased for the VirtualCenter server being installed. - Please note this value is ignored unless AutoMode is PerServer. format: int32 type: integer @@ -865,11 +802,9 @@ spec: description: |- ProductID is a valid serial number. - Please note unless the VirtualMachineImage was installed with a volume license key, ProductID must be set or guest customization will fail. - When not explicitly specified, the Key field for the selector defaults to `domain_admin_password`. properties: @@ -897,27 +832,22 @@ spec: (how VMware surfaces OVF properties on guests) to transport data into the guest. - The guest's networking stack may be configured using either vApp properties or GOSC. - Many OVFs define one or more properties that are used by the guest to bootstrap its networking stack. If the VirtualMachineImage defines one or more properties like this, then they can be configured to use the network data provided for this VM at runtime by setting these properties to Go template strings. - It is also possible to use GOSC to bootstrap this VM's network stack by configuring either the LinuxPrep or Sysprep bootstrap providers. - Please note the VAppConfig bootstrap provider in conjunction with the LinuxPrep bootstrap provider is the equivalent of setting the v1alpha1 VM metadata transport to "OvfEnv". - This bootstrap provider may not be used in conjunction with the CloudInit bootstrap provider. properties: @@ -925,7 +855,6 @@ spec: description: |- Properties is a list of vApp/OVF property key/value pairs. - Please note this field and RawProperties are mutually exclusive. items: description: |- @@ -945,7 +874,6 @@ spec: description: |- From is specified to reference a value from a Secret resource. - Please note this field is mutually exclusive with the Value field. properties: key: @@ -964,7 +892,6 @@ spec: description: |- Value is used to directly specify a value. - Please note this field is mutually exclusive with the From field. type: string type: object @@ -981,7 +908,6 @@ spec: this VM where each key/value pair from the Secret is used as a vApp key/value pair. - Please note this field and Properties are mutually exclusive. type: string type: object @@ -990,15 +916,12 @@ spec: description: |- Cdrom describes the desired state of the VM's CD-ROM devices. - Each CD-ROM device requires a reference to an ISO-type VirtualMachineImage or ClusterVirtualMachineImage resource as backing. - Multiple CD-ROM devices using the same backing image, regardless of image kinds (namespace or cluster scope), are not allowed. - CD-ROM devices can be added, updated, or removed when the VM is powered off. When the VM is powered on, only the connection state of existing CD-ROM devices can be changed. @@ -1013,7 +936,6 @@ spec: AllowGuestControl describes whether or not a web console connection may be used to connect/disconnect the CD-ROM device. - Defaults to true if omitted. type: boolean connected: @@ -1021,20 +943,16 @@ spec: description: |- Connected describes the desired connection state of the CD-ROM device. - When true, the CD-ROM device is added and connected to the VM. If the device already exists, it is updated to a connected state. - When explicitly set to false, the CD-ROM device is added but remains disconnected from the VM. If the CD-ROM device already exists, it is updated to a disconnected state. - Please note that disconnecting a CD-ROM during guest OS installation may not work since the CD-ROM might be locked by the guest. - Defaults to true if omitted. type: boolean image: @@ -1043,10 +961,8 @@ spec: ClusterVirtualMachineImage resource used as the backing for the CD-ROM. If the image kind is omitted, it defaults to VirtualMachineImage. - This field is immutable when the VM is powered on. - Please note, unlike the spec.imageName field, the value of this spec.cdrom.image.name MUST be a Kubernetes object name. properties: @@ -1069,7 +985,6 @@ spec: Name consists of at least two lowercase letters or digits of this CD-ROM. It must be unique among all CD-ROM devices attached to the VM. - This field is immutable when the VM is powered on. pattern: ^[a-z0-9]{2,}$ type: string @@ -1086,7 +1001,6 @@ spec: ClassName describes the name of the VirtualMachineClass resource used to deploy this VM. - Please note, this field *may* be empty if the VM was imported instead of deployed by VM Operator. An imported VirtualMachine resource references an existing VM on the underlying platform that was not deployed from a @@ -1096,25 +1010,20 @@ spec: description: |- GuestID describes the desired guest operating system identifier for a VM. - The logic that determines the guest ID is as follows: - If this field is set, then its value is used. Otherwise, if the VM is deployed from an OVF template that defines a guest ID, then that value is used. The guest ID from VirtualMachineClass used to deploy the VM is ignored. - Please refer to https://bit.ly/4elnjP3 for a complete list of supported guest operating system identifiers. - Please note that this field is immutable after the VM is powered on. To change the guest ID after the VM is powered on, the VM must be powered off and then powered on again with the updated guest ID spec. - This field is required when the VM has any CD-ROM devices attached. type: string image: @@ -1122,16 +1031,13 @@ spec: Image describes the reference to the VirtualMachineImage or ClusterVirtualMachineImage resource used to deploy this VM. - Please note, unlike the field spec.imageName, the value of spec.image.name MUST be a Kubernetes object name. - Please also note, when creating a new VirtualMachine, if this field and spec.imageName are both non-empty, then they must refer to the same resource or an error is returned. - Please note, this field *may* be empty if the VM was imported instead of deployed by VM Operator. An imported VirtualMachine resource references an existing VM on the underlying platform that was not deployed from a @@ -1156,7 +1062,6 @@ spec: ImageName describes the name of the image resource used to deploy this VM. - This field may be used to specify the name of a VirtualMachineImage or ClusterVirtualMachineImage resource. The resolver first checks to see if there is a VirtualMachineImage with the specified name in the @@ -1164,7 +1069,6 @@ spec: resolver then checks to see if there is a ClusterVirtualMachineImage resource with the specified name. - This field may also be used to specify the display name (vSphere name) of a VirtualMachineImage or ClusterVirtualMachineImage resource. If the display name unambiguously resolves to a distinct VM image (among all @@ -1174,12 +1078,10 @@ spec: display name resolves to multiple or no VM images, then the mutation webhook denies the request and returns an error. - Please also note, when creating a new VirtualMachine, if this field and spec.image are both non-empty, then they must refer to the same resource or an error is returned. - Please note, this field *may* be empty if the VM was imported instead of deployed by VM Operator. An imported VirtualMachine resource references an existing VM on the underlying platform that was not deployed from a @@ -1199,10 +1101,8 @@ spec: description: |- MinHardwareVersion describes the desired, minimum hardware version. - The logic that determines the hardware version is as follows: - 1. If this field is set, then its value is used. 2. Otherwise, if the VirtualMachineClass used to deploy the VM contains a non-empty hardware version, then it is used. @@ -1210,30 +1110,24 @@ spec: set to the default hardware version for the Datacenter/Cluster/Host where the VM is provisioned. - This field is never updated to reflect the derived hardware version. Instead, VirtualMachineStatus.HardwareVersion surfaces the observed hardware version. - Please note, setting this field's value to N ensures a VM's hardware version is equal to or greater than N. For example, if a VM's observed hardware version is 10 and this field's value is 13, then the VM will be upgraded to hardware version 13. However, if the observed hardware version is 17 and this field's value is 13, no change will occur. - Several features are hardware version dependent, for example: - * NVMe Controllers >= 14 * Dynamic Direct Path I/O devices >= 17 - Please refer to https://kb.vmware.com/s/article/1003746 for a list of VM hardware versions. - It is important to remember that a VM's hardware version may not be downgraded and upgrading a VM deployed from an image based on an older hardware version to a more recent one may result in unpredictable @@ -1246,7 +1140,6 @@ spec: description: |- Network describes the desired network configuration for the VM. - Please note this value may be omitted entirely and the VM will be assigned a single, virtual network interface that is connected to the Namespace's default network. @@ -1256,7 +1149,6 @@ spec: Disabled is a flag that indicates whether or not to disable networking for this VM. - When set to true, the VM is not configured with a default interface nor any specified from the Interfaces field. type: boolean @@ -1264,15 +1156,12 @@ spec: description: |- DomainName describes the value the guest uses as its domain name. - Please note, this feature is available with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep. - This field must adhere to the format specified in RFC-1034, Section 3.5 for DNS names: - * When joined with the host name, the total length is restricted to 255 characters or less. * Individual segments must be 63 characters or less. @@ -1284,11 +1173,9 @@ spec: * Symbol unicode points, such as emoji, are disallowed in the top-level domain. - Please note, the combined values of spec.network.hostName and spec.network.domainName may not exceed 255 characters in length. - When deploying a guest running Microsoft Windows, this field describes the domain the computer should join. type: string @@ -1297,15 +1184,12 @@ spec: HostName describes the value the guest uses as its host name. If omitted, the name of the VM will be used. - Please note, this feature is available with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep. - This field must adhere to the format specified in RFC-1034, Section 3.5 for DNS labels: - * The total length is restricted to 63 characters or less. * The total length is restricted to 15 characters or less on Windows systems. @@ -1322,7 +1206,6 @@ spec: address for the host name is disallowed if spec.network.domainName is non-empty. - Please note, the combined values of spec.network.hostName and spec.network.domainName may not exceed 255 characters in length. type: string @@ -1330,11 +1213,9 @@ spec: description: |- Interfaces is the list of network interfaces used by this VM. - If the Interfaces field is empty and the Disabled field is false, then a default interface with the name eth0 will be created. - The maximum number of network interface allowed is 10 because a vSphere virtual machine may not have more than 10 virtual ethernet card devices. items: @@ -1347,19 +1228,15 @@ spec: Addresses is an optional list of IP4 or IP6 addresses to assign to this interface. - Please note this field is only supported if the connected network supports manual IP allocation. - Please note IP4 and IP6 addresses must include the network prefix length, ex. 192.168.0.10/24 or 2001:db8:101::a/64. - Please note this field may not contain IP4 addresses if DHCP4 is set to true or IP6 addresses if DHCP6 is set to true. - Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. items: @@ -1370,11 +1247,9 @@ spec: DHCP4 indicates whether or not this interface uses DHCP for IP4 networking. - Please note this field is only supported if the network connection supports DHCP. - Please note this field is mutually exclusive with IP4 addresses in the Addresses field and the Gateway4 field. type: boolean @@ -1383,11 +1258,9 @@ spec: DHCP6 indicates whether or not this interface uses DHCP for IP6 networking. - Please note this field is only supported if the network connection supports DHCP. - Please note this field is mutually exclusive with IP6 addresses in the Addresses field and the Gateway6 field. type: boolean @@ -1395,40 +1268,32 @@ spec: description: |- Gateway4 is the default, IP4 gateway for this interface. - Please note this field is only supported if the network connection supports manual IP allocation. - If the network connection supports manual IP allocation and the Addresses field includes at least one IP4 address, then this field is required. - Please note the IP address must include the network prefix length, ex. 192.168.0.1/24. - Please note this field is mutually exclusive with DHCP4. type: string gateway6: description: |- Gateway6 is the primary IP6 gateway for this interface. - Please note this field is only supported if the network connection supports manual IP allocation. - If the network connection supports manual IP allocation and the Addresses field includes at least one IP6 address, then this field is required. - Please note the IP address must include the network prefix length, ex. 2001:db8:101::1/64. - Please note this field is mutually exclusive with DHCP6. type: string guestDeviceName: @@ -1443,7 +1308,6 @@ spec: description: |- MTU is the Maximum Transmission Unit size in bytes. - Please note this feature is available only with the following bootstrap providers: CloudInit. format: int64 @@ -1453,7 +1317,6 @@ spec: Name describes the unique name of this network interface, used to distinguish it from other network interfaces attached to this VM. - When the bootstrap provider is Cloud-Init and GuestDeviceName is not specified, the device inside the guest will be renamed to this value. Please note it is up to the user to ensure the provided name does not @@ -1465,11 +1328,9 @@ spec: Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. - Please note this feature is available only with the following bootstrap providers: CloudInit and Sysprep. - Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). items: @@ -1480,7 +1341,6 @@ spec: Network is the name of the network resource to which this interface is connected. - If no network is provided, then this interface will be connected to the Namespace's default network. properties: @@ -1511,7 +1371,6 @@ spec: description: |- Routes is a list of optional, static routes. - Please note this feature is available only with the following bootstrap providers: CloudInit. items: @@ -1540,7 +1399,6 @@ spec: SearchDomains is a list of search domains used when resolving IP addresses with DNS. - Please note this feature is available only with the following bootstrap providers: CloudInit. items: @@ -1559,12 +1417,10 @@ spec: Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. These are applied globally. - Please note global nameservers are only available with the following bootstrap providers: LinuxPrep and Sysprep. The Cloud-Init bootstrap provider supports per-interface nameservers. - Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). items: @@ -1575,7 +1431,6 @@ spec: SearchDomains is a list of search domains used when resolving IP addresses with DNS. These are applied globally. - Please note global search domains are only available with the following bootstrap providers: LinuxPrep and Sysprep. The Cloud-Init bootstrap provider supports per-interface search domains. @@ -1589,13 +1444,11 @@ spec: RestartMode, by setting the value of this field to "now" (case-insensitive). - A mutating webhook changes this value to the current time (UTC), which the VM controller then uses to determine the VM should be restarted by comparing the value to the timestamp of the last time the VM was restarted. - Please note it is not possible to schedule future restarts using this field. The only value that users may set is the string "now" (case-insensitive). @@ -1605,7 +1458,6 @@ spec: description: |- PowerOffMode describes the desired behavior when powering off a VM. - There are three, supported power off modes: Hard, Soft, and TrySoft. The first mode, Hard, is the equivalent of a physical system's power cord being ripped from the wall. The Soft mode @@ -1614,7 +1466,6 @@ spec: a graceful shutdown, and if that fails or the VM is not in a powered off state after five minutes, the VM is halted. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -1625,12 +1476,10 @@ spec: description: |- PowerState describes the desired power state of a VirtualMachine. - Please note this field may be omitted when creating a new VM and will default to "PoweredOn." However, once the field is set to a non-empty value, it may no longer be set to an empty value. - Additionally, setting this value to "Suspended" is not supported when creating a new VM. The valid values when creating a new VM are "PoweredOn" and "PoweredOff." An empty value is also allowed on create @@ -1662,33 +1511,26 @@ spec: description: |- GuestInfo specifies an action involving key/value pairs from GuestInfo. - The elements are evaluated with the logical AND operator, meaning all expressions must evaluate as true for the probe to succeed. - For example, a VM resource's probe definition could be specified as the following: - guestInfo: - key: ready value: true - With the above configuration in place, the VM would not be considered ready until the GuestInfo key "ready" was set to the value "true". - From within the guest operating system it is possible to set GuestInfo key/value pairs using the program "vmware-rpctool," which is included with VM Tools. For example, the following command will set the key "guestinfo.ready" to the value "true": - vmware-rpctool "info-set guestinfo.ready true" - Once executed, the VM's readiness probe will be signaled and the VM resource will be marked as ready. items: @@ -1700,7 +1542,6 @@ spec: description: |- Key is the name of the GuestInfo key. - The key is automatically prefixed with "guestinfo." before being evaluated. Thus if the key "guestinfo.mykey" is provided, it will be evaluated as "guestinfo.guestinfo.mykey". @@ -1710,10 +1551,8 @@ spec: Value is a regular expression that is matched against the value of the specified key. - An empty value is the equivalent of "match any" or ".*". - All values must adhere to the RE2 regular expression syntax as documented at https://golang.org/s/re2syntax. Invalid values may be rejected or ignored depending on the implementation of this API. Either way, invalid @@ -1734,7 +1573,6 @@ spec: description: |- TCPSocket specifies an action involving a TCP port. - Deprecated: The TCPSocket action requires network connectivity that is not supported in all environments. This field will be removed in a later API version. properties: @@ -1768,7 +1606,6 @@ spec: Reserved describes a set of VM configuration options reserved for system use. - Please note attempts to modify the value of this field by a DevOps user will result in a validation error. properties: @@ -1781,7 +1618,6 @@ spec: RestartMode describes the desired behavior for restarting a VM when spec.nextRestartTime is set to "now" (case-insensitive). - There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere resets the VM without any interaction inside of the guest. The Soft mode requires the VM's guest to @@ -1789,7 +1625,6 @@ spec: variant, TrySoft, first attempts a soft restart, and if that fails or does not complete within five minutes, the VM is hard reset. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -1801,7 +1636,6 @@ spec: StorageClass describes the name of a Kubernetes StorageClass resource used to configure this VM's storage-related attributes. - Please see https://kubernetes.io/docs/concepts/storage/storage-classes/ for more information on Kubernetes storage classes. type: string @@ -1810,7 +1644,6 @@ spec: description: |- SuspendMode describes the desired behavior when suspending a VM. - There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere suspends the VM to disk without any interaction inside of the guest. The Soft mode @@ -1819,7 +1652,6 @@ spec: a graceful suspend, and if that fails or the VM is not in a put into standby by the guest after five minutes, the VM is suspended. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -1843,7 +1675,6 @@ spec: PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. - More information is available at https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims. properties: @@ -1901,16 +1732,8 @@ spec: Conditions represents the latest available observations of a VirtualMachineReplicaSet's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -1951,12 +1774,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachines.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachines.yaml index 638364d7c..4b8606828 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachines.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachines.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachines.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -104,7 +104,6 @@ spec: ImageName describes the name of the image resource used to deploy this VM. - This field may be used to specify the name of a VirtualMachineImage or ClusterVirtualMachineImage resource. The resolver first checks to see if there is a VirtualMachineImage with the specified name in the @@ -112,7 +111,6 @@ spec: resolver then checks to see if there is a ClusterVirtualMachineImage resource with the specified name. - This field may also be used to specify the display name (vSphere name) of a VirtualMachineImage or ClusterVirtualMachineImage resource. If the display name unambiguously resolves to a distinct VM image (among all @@ -127,7 +125,6 @@ spec: MinHardwareVersion specifies the desired minimum hardware version for this VM. - Usually the VM's hardware version is derived from: 1. the VirtualMachineClass used to deploy the VM provided by the ClassName field 2. the datacenter/cluster/host default hardware version @@ -135,30 +132,24 @@ spec: is at least set to the specified value. To enforce this, it will override the value from the VirtualMachineClass. - This field is never updated to reflect the derived hardware version. Instead, VirtualMachineStatus.HardwareVersion surfaces the observed hardware version. - Please note, setting this field's value to N ensures a VM's hardware version is equal to or greater than N. For example, if a VM's observed hardware version is 10 and this field's value is 13, then the VM will be upgraded to hardware version 13. However, if the observed hardware version is 17 and this field's value is 13, no change will occur. - Several features are hardware version dependent, for example: - * NVMe Controllers >= 14 * Dynamic Direct Path I/O devices >= 17 - Please refer to https://kb.vmware.com/s/article/1003746 for a list of VM hardware versions. - It is important to remember that a VM's hardware version may not be downgraded and upgrading a VM deployed from an image based on an older hardware version to a more recent one may result in unpredictable @@ -173,7 +164,6 @@ spec: Each of these VirtualMachineNetworkInterfaces describes external network integration configurations that are to be used by the VirtualMachine controller when integrating the VirtualMachine into one or more external networks. - The maximum number of network interface allowed is 10 because of the limit built into vSphere. items: description: |- @@ -232,13 +222,11 @@ spec: RestartMode, by setting the value of this field to "now" (case-insensitive). - A mutating webhook changes this value to the current time (UTC), which the VM controller then uses to determine the VM should be restarted by comparing the value to the timestamp of the last time the VM was restarted. - Please note it is not possible to schedule future restarts using this field. The only value that users may set is the string "now" (case-insensitive). @@ -256,7 +244,8 @@ spec: port: type: integer protocol: - default: TCP + description: Protocol defines network protocols supported for + things like container ports. type: string required: - ip @@ -270,7 +259,6 @@ spec: description: |- PowerOffMode describes the desired behavior when powering off a VM. - There are three, supported power off modes: hard, soft, and trySoft. The first mode, hard, is the equivalent of a physical system's power cord being ripped from the wall. The soft mode @@ -279,7 +267,6 @@ spec: a graceful shutdown, and if that fails or the VM is not in a powered off state after five minutes, the VM is halted. - If omitted, the mode defaults to hard. enum: - hard @@ -290,12 +277,10 @@ spec: description: |- PowerState describes the desired power state of a VirtualMachine. - Please note this field may be omitted when creating a new VM and will default to "poweredOn." However, once the field is set to a non-empty value, it may no longer be set to an empty value. - Additionally, setting this value to "suspended" is not supported when creating a new VM. The valid values when creating a new VM are "poweredOn" and "poweredOff." An empty value is also allowed on create @@ -335,7 +320,6 @@ spec: description: |- TCPSocket specifies an action involving a TCP port. - Deprecated: The TCPSocket action requires network connectivity that is not supported in all environments. This field will be removed in a later API version. properties: @@ -375,7 +359,6 @@ spec: RestartMode describes the desired behavior for restarting a VM when spec.nextRestartTime is set to "now" (case-insensitive). - There are three, supported suspend modes: hard, soft, and trySoft. The first mode, hard, is where vSphere resets the VM without any interaction inside of the guest. The soft mode requires the VM's guest to @@ -383,7 +366,6 @@ spec: variant, trySoft, first attempts a soft restart, and if that fails or does not complete within five minutes, the VM is hard reset. - If omitted, the mode defaults to hard. enum: - hard @@ -400,7 +382,6 @@ spec: description: |- SuspendMode describes the desired behavior when suspending a VM. - There are three, supported suspend modes: hard, soft, and trySoft. The first mode, hard, is where vSphere suspends the VM to disk without any interaction inside of the guest. The soft mode @@ -409,7 +390,6 @@ spec: a graceful suspend, and if that fails or the VM is not in a put into standby by the guest after five minutes, the VM is suspended. - If omitted, the mode defaults to hard. enum: - hard @@ -467,11 +447,9 @@ spec: in the same namespace. The PersistentVolumeClaim must match one of the following: - * A volume provisioned (either statically or dynamically) by the cluster's CSI provider. - * An instance volume with a lifecycle coupled to the VM. properties: claimName: @@ -589,6 +567,7 @@ spec: can be useful (see .node.status.conditions), the ability to disambiguate is important. type: string required: + - lastTransitionTime - status - type type: object @@ -598,7 +577,6 @@ spec: HardwareVersion describes the VirtualMachine resource's observed hardware version. - Please refer to VirtualMachineSpec.MinHardwareVersion for more information on the topic of a VM's hardware version. format: int32 @@ -764,7 +742,6 @@ spec: BootDiskCapacity is the capacity of the VM's boot disk -- the first disk from the VirtualMachineImage from which the VM was deployed. - Please note it is not advised to change this value while the VM is running. Also, resizing the VM's boot disk may require actions inside of the guest to take advantage of the additional capacity. Finally, changing @@ -793,7 +770,6 @@ spec: Bootstrap describes the desired state of the guest's bootstrap configuration. - If omitted, a default bootstrap method may be selected based on the guest OS identifier. If Linux, then the LinuxPrep method is used. properties: @@ -802,11 +778,9 @@ spec: CloudInit may be used to bootstrap Linux guests with Cloud-Init or Windows guests that support Cloudbase-Init. - The guest's networking stack is configured by Cloud-Init on Linux guests and Cloudbase-Init on Windows guests. - Please note this bootstrap provider may not be used in conjunction with the other bootstrap providers. properties: @@ -815,7 +789,6 @@ spec: CloudConfig describes a subset of a Cloud-Init CloudConfig, used to bootstrap the VM. - Please note this field and RawCloudConfig are mutually exclusive. properties: defaultUserEnabled: @@ -830,17 +803,13 @@ spec: RunCmd allows running one or more commands on the guest. The entries in this list can adhere to two, different formats: - Format 1 -- a string that contains the command and its arguments, ex. - runcmd: - "ls -al" - Format 2 -- a list of the command and its arguments, ex. - runcmd: - - echo - "Hello, world." @@ -868,7 +837,6 @@ spec: CreateGroups is a flag that may be set to false to disable creation of specified user groups. - Defaults to true when Name is not "default". type: boolean expiredate: @@ -906,7 +874,6 @@ spec: description: |- Homedir is the optional home directory for the user. - Defaults to "/home/" when Name is not "default". type: string inactive: @@ -919,14 +886,12 @@ spec: description: |- LockPasswd disables password login. - Defaults to true when Name is not "default". type: boolean name: description: |- Name is the user's login name. - Please note this field may be set to the special value of "default" when this User is the first element in the Users list from the CloudConfig. When set to "default", all other fields from this User must be nil. @@ -935,7 +900,6 @@ spec: description: |- NoCreateHome prevents the creation of the home directory. - Defaults to false when Name is not "default". type: boolean no_log_init: @@ -943,14 +907,12 @@ spec: NoLogInit prevents the initialization of lastlog and faillog for the user. - Defaults to false when Name is not "default". type: boolean no_user_group: description: |- NoUserGroup prevents the creation of the group named after the user. - Defaults to false when Name is not "default". type: boolean passwd: @@ -974,7 +936,6 @@ spec: description: |- PrimaryGroup is the primary group for the user. - Defaults to the value of the Name field when it is not "default". type: string selinux_user: @@ -985,7 +946,6 @@ spec: description: |- Shell is the path to the user's login shell. - Please note the default is to set no shell, which results in a system-specific default being used. type: string @@ -994,7 +954,6 @@ spec: SnapUser specifies an e-mail address to create the user as a Snappy user through "snap create-user". - If an Ubuntu SSO account is associated with the address, the username and SSH keys will be requested from there. type: string @@ -1003,7 +962,6 @@ spec: SSHAuthorizedKeys is a list of SSH keys to add to the user's authorized keys file. - Please note this field may not be combined with SSHRedirectUser. items: type: string @@ -1012,7 +970,6 @@ spec: description: |- SSHImportID is a list of SSH IDs to import for the user. - Please note this field may not be combined with SSHRedirectUser. items: type: string @@ -1021,22 +978,18 @@ spec: description: |- SSHRedirectUser may be set to true to disable SSH logins for this user. - Please note that when specified, all SSH keys from cloud meta-data will be configured in a disabled state for this user. Any SSH login as this user will timeout with a message to login instead as the default user. - This field may not be combined with SSHAuthorizedKeys or SSHImportID. - Defaults to false when Name is not "default". type: boolean sudo: description: |- Sudo is a sudo rule to apply to the user. - When omitted, no sudo rules will be applied to the user. type: string system: @@ -1044,14 +997,12 @@ spec: System is an optional flag that indicates the user should be created as a system user with no home directory. - Defaults to false when Name is not "default". type: boolean uid: description: |- UID is the user's ID. - When omitted the guest will default to the next available number. format: int64 type: integer @@ -1078,28 +1029,21 @@ spec: description: |- Content is the optional content to write to the provided Path. - When omitted an empty file will be created or existing file will be modified. - The value for this field can adhere to two, different formats: - Format 1 -- a string that contains the command and its arguments, ex. - content: Hello, world. - Please note that format 1 supports all of the manners of specifying a YAML string. - Format 2 -- a secret reference with the name of the key that contains the content for the file, ex. - content: name: my-bootstrap-secret key: my-file-content @@ -1138,11 +1082,9 @@ spec: description: |- Permissions an optional set of file permissions to set. - Please note the permissions should be specified as an octal string, ex. "0###". - When omitted the guest will default this value to "0644". type: string required: @@ -1158,11 +1100,9 @@ spec: RawCloudConfig describes a key in a Secret resource that contains the CloudConfig data used to bootstrap the VM. - The CloudConfig data specified by the key may be plain-text, base64-encoded, or gzipped and base64-encoded. - Please note this field and CloudConfig are mutually exclusive. properties: key: @@ -1188,16 +1128,13 @@ spec: description: |- LinuxPrep may be used to bootstrap Linux guests. - The guest's networking stack is configured by Guest OS Customization (GOSC). - Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. - This bootstrap provider may not be used in conjunction with the CloudInit or Sysprep bootstrap providers. properties: @@ -1210,13 +1147,11 @@ spec: description: |- TimeZone is a case-sensitive timezone, such as Europe/Sofia. - Valid values are based on the tz (timezone) database used by Linux and other Unix systems. The values are strings in the form of "Area/Location," in which Area is a continent or ocean name, and Location is the city, island, or other regional designation. - Please see https://kb.vmware.com/s/article/2145518 for a list of valid time zones for Linux systems. type: string @@ -1225,16 +1160,13 @@ spec: description: |- Sysprep may be used to bootstrap Windows guests. - The guest's networking stack is configured by Guest OS Customization (GOSC). - Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. - This bootstrap provider may not be used in conjunction with the CloudInit or LinuxPrep bootstrap providers. properties: @@ -1243,11 +1175,9 @@ spec: RawSysprep describes a key in a Secret resource that contains an XML string of the Sysprep text used to bootstrap the VM. - The data specified by the Secret key may be plain-text, base64-encoded, or gzipped and base64-encoded. - Please note this field and Sysprep are mutually exclusive. properties: key: @@ -1265,14 +1195,11 @@ spec: description: |- Sysprep is an object representation of a Windows sysprep.xml answer file. - This field encloses all the individual keys listed in a sysprep.xml file. - For more detailed information please see https://technet.microsoft.com/en-us/library/cc771830(v=ws.10).aspx. - Please note this field and RawSysprep are mutually exclusive. properties: guiRunOnce: @@ -1296,7 +1223,6 @@ spec: AutoLogon determine whether the machine automatically logs on as Administrator. - Please note if AutoLogon is true, then Password must be set or guest customization will fail. type: boolean @@ -1305,12 +1231,10 @@ spec: AutoLogonCount specifies the number of times the machine should automatically log on as Administrator. - Generally it should be 1, but if your setup requires a number of reboots, you may want to increase it. This number may be determined by the list of commands executed by the GuiRunOnce command. - Please note this field must be specified with a non-zero positive integer if AutoLogon is true. format: int32 type: integer @@ -1318,22 +1242,18 @@ spec: description: |- Password is the new administrator password for the machine. - To specify that the password should be set to blank (that is, no password), set the password value to NULL. Because of encryption, "" is NOT a valid value. - Please note if the password is set to blank and AutoLogon is true, the guest customization will fail. - If the XML file is generated by the VirtualCenter Customization Wizard, then the password is encrypted. Otherwise, the client should set the plainText attribute to true, so that the customization process does not attempt to decrypt the string. - When not explicitly specified, the Key field for the selector defaults to `password`. properties: @@ -1353,7 +1273,6 @@ spec: description: |- TimeZone is the time zone index for the virtual machine. - Please note that numbers correspond to time zones listed at https://bit.ly/3Rzv8oL. format: int32 @@ -1375,7 +1294,6 @@ spec: DomainAdminPassword is the password for the domain user account used for authentication if the virtual machine is joining a domain. - When not explicitly specified, the Key field for the selector defaults to `domain_admin_password`. properties: @@ -1409,7 +1327,6 @@ spec: LicenseFilePrintData is a representation of the Sysprep LicenseFilePrintData key. - Please note this is required only for Windows 2000 Server and Windows Server 2003. properties: @@ -1425,7 +1342,6 @@ spec: AutoUsers indicates the number of client licenses purchased for the VirtualCenter server being installed. - Please note this value is ignored unless AutoMode is PerServer. format: int32 type: integer @@ -1446,11 +1362,9 @@ spec: description: |- ProductID is a valid serial number. - Please note unless the VirtualMachineImage was installed with a volume license key, ProductID must be set or guest customization will fail. - When not explicitly specified, the Key field for the selector defaults to `domain_admin_password`. properties: @@ -1480,27 +1394,22 @@ spec: (how VMware surfaces OVF properties on guests) to transport data into the guest. - The guest's networking stack may be configured using either vApp properties or GOSC. - Many OVFs define one or more properties that are used by the guest to bootstrap its networking stack. If the VirtualMachineImage defines one or more properties like this, then they can be configured to use the network data provided for this VM at runtime by setting these properties to Go template strings. - It is also possible to use GOSC to bootstrap this VM's network stack by configuring either the LinuxPrep or Sysprep bootstrap providers. - Please note the VAppConfig bootstrap provider in conjunction with the LinuxPrep bootstrap provider is the equivalent of setting the v1alpha1 VM metadata transport to "OvfEnv". - This bootstrap provider may not be used in conjunction with the CloudInit bootstrap provider. properties: @@ -1508,7 +1417,6 @@ spec: description: |- Properties is a list of vApp/OVF property key/value pairs. - Please note this field and RawProperties are mutually exclusive. items: description: |- @@ -1527,7 +1435,6 @@ spec: description: |- From is specified to reference a value from a Secret resource. - Please note this field is mutually exclusive with the Value field. properties: key: @@ -1545,7 +1452,6 @@ spec: description: |- Value is used to directly specify a value. - Please note this field is mutually exclusive with the From field. type: string type: object @@ -1562,7 +1468,6 @@ spec: this VM where each key/value pair from the Secret is used as a vApp key/value pair. - Please note this field and Properties are mutually exclusive. type: string type: object @@ -1577,7 +1482,6 @@ spec: ImageName describes the name of the image resource used to deploy this VM. - This field may be used to specify the name of a VirtualMachineImage or ClusterVirtualMachineImage resource. The resolver first checks to see if there is a VirtualMachineImage with the specified name in the @@ -1585,7 +1489,6 @@ spec: resolver then checks to see if there is a ClusterVirtualMachineImage resource with the specified name. - This field may also be used to specify the display name (vSphere name) of a VirtualMachineImage or ClusterVirtualMachineImage resource. If the display name unambiguously resolves to a distinct VM image (among all @@ -1599,10 +1502,8 @@ spec: description: |- MinHardwareVersion describes the desired, minimum hardware version. - The logic that determines the hardware version is as follows: - 1. If this field is set, then its value is used. 2. Otherwise, if the VirtualMachineClass used to deploy the VM contains a non-empty hardware version, then it is used. @@ -1610,30 +1511,24 @@ spec: set to the default hardware version for the Datacenter/Cluster/Host where the VM is provisioned. - This field is never updated to reflect the derived hardware version. Instead, VirtualMachineStatus.HardwareVersion surfaces the observed hardware version. - Please note, setting this field's value to N ensures a VM's hardware version is equal to or greater than N. For example, if a VM's observed hardware version is 10 and this field's value is 13, then the VM will be upgraded to hardware version 13. However, if the observed hardware version is 17 and this field's value is 13, no change will occur. - Several features are hardware version dependent, for example: - * NVMe Controllers >= 14 * Dynamic Direct Path I/O devices >= 17 - Please refer to https://kb.vmware.com/s/article/1003746 for a list of VM hardware versions. - It is important to remember that a VM's hardware version may not be downgraded and upgrading a VM deployed from an image based on an older hardware version to a more recent one may result in unpredictable @@ -1646,7 +1541,6 @@ spec: description: |- Network describes the desired network configuration for the VM. - Please note this value may be omitted entirely and the VM will be assigned a single, virtual network interface that is connected to the Namespace's default network. @@ -1656,7 +1550,6 @@ spec: Disabled is a flag that indicates whether or not to disable networking for this VM. - When set to true, the VM is not configured with a default interface nor any specified from the Interfaces field. type: boolean @@ -1665,11 +1558,9 @@ spec: HostName is the value the guest uses as its host name. If omitted then the name of the VM will be used. - Please note this feature is available only with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep (except for RawSysprep). - When the bootstrap provider is Sysprep (except for RawSysprep) this is used as the Computer Name. type: string @@ -1677,11 +1568,9 @@ spec: description: |- Interfaces is the list of network interfaces used by this VM. - If the Interfaces field is empty and the Disabled field is false, then a default interface with the name eth0 will be created. - The maximum number of network interface allowed is 10 because of the limit built into vSphere. items: @@ -1694,19 +1583,15 @@ spec: Addresses is an optional list of IP4 or IP6 addresses to assign to this interface. - Please note this field is only supported if the connected network supports manual IP allocation. - Please note IP4 and IP6 addresses must include the network prefix length, ex. 192.168.0.10/24 or 2001:db8:101::a/64. - Please note this field may not contain IP4 addresses if DHCP4 is set to true or IP6 addresses if DHCP6 is set to true. - Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. items: @@ -1717,11 +1602,9 @@ spec: DHCP4 indicates whether or not this interface uses DHCP for IP4 networking. - Please note this field is only supported if the network connection supports DHCP. - Please note this field is mutually exclusive with IP4 addresses in the Addresses field and the Gateway4 field. type: boolean @@ -1730,11 +1613,9 @@ spec: DHCP6 indicates whether or not this interface uses DHCP for IP6 networking. - Please note this field is only supported if the network connection supports DHCP. - Please note this field is mutually exclusive with IP6 addresses in the Addresses field and the Gateway6 field. type: boolean @@ -1742,40 +1623,32 @@ spec: description: |- Gateway4 is the default, IP4 gateway for this interface. - Please note this field is only supported if the network connection supports manual IP allocation. - If the network connection supports manual IP allocation and the Addresses field includes at least one IP4 address, then this field is required. - Please note the IP address must include the network prefix length, ex. 192.168.0.1/24. - Please note this field is mutually exclusive with DHCP4. type: string gateway6: description: |- Gateway6 is the primary IP6 gateway for this interface. - Please note this field is only supported if the network connection supports manual IP allocation. - If the network connection supports manual IP allocation and the Addresses field includes at least one IP6 address, then this field is required. - Please note the IP address must include the network prefix length, ex. 2001:db8:101::1/64. - Please note this field is mutually exclusive with DHCP6. type: string guestDeviceName: @@ -1790,7 +1663,6 @@ spec: description: |- MTU is the Maximum Transmission Unit size in bytes. - Please note this feature is available only with the following bootstrap providers: CloudInit. format: int64 @@ -1800,7 +1672,6 @@ spec: Name describes the unique name of this network interface, used to distinguish it from other network interfaces attached to this VM. - When the bootstrap provider is Cloud-Init and GuestDeviceName is not specified, the device inside the guest will be renamed to this value. Please note it is up to the user to ensure the provided name does not @@ -1812,11 +1683,9 @@ spec: Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. - Please note this feature is available only with the following bootstrap providers: CloudInit and Sysprep. - Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). items: @@ -1827,7 +1696,6 @@ spec: Network is the name of the network resource to which this interface is connected. - If no network is provided, then this interface will be connected to the Namespace's default network. properties: @@ -1858,7 +1726,6 @@ spec: description: |- Routes is a list of optional, static routes. - Please note this feature is available only with the following bootstrap providers: CloudInit. items: @@ -1887,7 +1754,6 @@ spec: SearchDomains is a list of search domains used when resolving IP addresses with DNS. - Please note this feature is available only with the following bootstrap providers: CloudInit. items: @@ -1906,12 +1772,10 @@ spec: Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. These are applied globally. - Please note global nameservers are only available with the following bootstrap providers: LinuxPrep and Sysprep. The Cloud-Init bootstrap provider supports per-interface nameservers. - Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). items: @@ -1922,7 +1786,6 @@ spec: SearchDomains is a list of search domains used when resolving IP addresses with DNS. These are applied globally. - Please note global search domains are only available with the following bootstrap providers: LinuxPrep and Sysprep. The Cloud-Init bootstrap provider supports per-interface search domains. @@ -1936,13 +1799,11 @@ spec: RestartMode, by setting the value of this field to "now" (case-insensitive). - A mutating webhook changes this value to the current time (UTC), which the VM controller then uses to determine the VM should be restarted by comparing the value to the timestamp of the last time the VM was restarted. - Please note it is not possible to schedule future restarts using this field. The only value that users may set is the string "now" (case-insensitive). @@ -1952,7 +1813,6 @@ spec: description: |- PowerOffMode describes the desired behavior when powering off a VM. - There are three, supported power off modes: Hard, Soft, and TrySoft. The first mode, Hard, is the equivalent of a physical system's power cord being ripped from the wall. The Soft mode @@ -1961,7 +1821,6 @@ spec: a graceful shutdown, and if that fails or the VM is not in a powered off state after five minutes, the VM is halted. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -1972,12 +1831,10 @@ spec: description: |- PowerState describes the desired power state of a VirtualMachine. - Please note this field may be omitted when creating a new VM and will default to "PoweredOn." However, once the field is set to a non-empty value, it may no longer be set to an empty value. - Additionally, setting this value to "Suspended" is not supported when creating a new VM. The valid values when creating a new VM are "PoweredOn" and "PoweredOff." An empty value is also allowed on create @@ -2009,33 +1866,26 @@ spec: description: |- GuestInfo specifies an action involving key/value pairs from GuestInfo. - The elements are evaluated with the logical AND operator, meaning all expressions must evaluate as true for the probe to succeed. - For example, a VM resource's probe definition could be specified as the following: - guestInfo: - key: ready value: true - With the above configuration in place, the VM would not be considered ready until the GuestInfo key "ready" was set to the value "true". - From within the guest operating system it is possible to set GuestInfo key/value pairs using the program "vmware-rpctool," which is included with VM Tools. For example, the following command will set the key "guestinfo.ready" to the value "true": - vmware-rpctool "info-set guestinfo.ready true" - Once executed, the VM's readiness probe will be signaled and the VM resource will be marked as ready. items: @@ -2047,7 +1897,6 @@ spec: description: |- Key is the name of the GuestInfo key. - The key is automatically prefixed with "guestinfo." before being evaluated. Thus if the key "guestinfo.mykey" is provided, it will be evaluated as "guestinfo.guestinfo.mykey". @@ -2057,10 +1906,8 @@ spec: Value is a regular expression that is matched against the value of the specified key. - An empty value is the equivalent of "match any" or ".*". - All values must adhere to the RE2 regular expression syntax as documented at https://golang.org/s/re2syntax. Invalid values may be rejected or ignored depending on the implementation of this API. Either way, invalid @@ -2081,7 +1928,6 @@ spec: description: |- TCPSocket specifies an action involving a TCP port. - Deprecated: The TCPSocket action requires network connectivity that is not supported in all environments. This field will be removed in a later API version. properties: @@ -2115,7 +1961,6 @@ spec: Reserved describes a set of VM configuration options reserved for system use. - Please note attempts to modify the value of this field by a DevOps user will result in a validation error. properties: @@ -2132,7 +1977,6 @@ spec: RestartMode describes the desired behavior for restarting a VM when spec.nextRestartTime is set to "now" (case-insensitive). - There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere resets the VM without any interaction inside of the guest. The Soft mode requires the VM's guest to @@ -2140,7 +1984,6 @@ spec: variant, TrySoft, first attempts a soft restart, and if that fails or does not complete within five minutes, the VM is hard reset. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -2152,7 +1995,6 @@ spec: StorageClass describes the name of a Kubernetes StorageClass resource used to configure this VM's storage-related attributes. - Please see https://kubernetes.io/docs/concepts/storage/storage-classes/ for more information on Kubernetes storage classes. type: string @@ -2161,7 +2003,6 @@ spec: description: |- SuspendMode describes the desired behavior when suspending a VM. - There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere suspends the VM to disk without any interaction inside of the guest. The Soft mode @@ -2170,7 +2011,6 @@ spec: a graceful suspend, and if that fails or the VM is not in a put into standby by the guest after five minutes, the VM is suspended. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -2194,7 +2034,6 @@ spec: PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. - More information is available at https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims. properties: @@ -2286,16 +2125,8 @@ spec: conditions: description: Conditions describes the observed conditions of the VirtualMachine. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -2336,12 +2167,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -2358,7 +2184,6 @@ spec: HardwareVersion describes the VirtualMachine resource's observed hardware version. - Please refer to VirtualMachineSpec.MinHardwareVersion for more information on the topic of a VM's hardware version. format: int32 @@ -2418,7 +2243,6 @@ spec: such as an interface's IP address obtained from IPAM, or global DNS settings. - Please note this information does *not* represent the *observed* network state of the VM, but is intended for situations where someone boots a VM with no appropriate bootstrap engine and needs to know the network config @@ -2437,11 +2261,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -2479,11 +2301,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -2539,7 +2359,6 @@ spec: description: |- Gateway4 describes the interface's configured, default, IP4 gateway. - Please note the IP address include the network prefix length, ex. 192.168.0.1/24. type: string @@ -2547,7 +2366,6 @@ spec: description: |- Gateway6 describes the interface's configured, default, IP6 gateway. - Please note the IP address includes the network prefix length, ex. 2001:db8:101::1/64. type: string @@ -2557,7 +2375,6 @@ spec: Name describes the corresponding network interface with the same name in the VM's desired network interface list. - Please note this name is not necessarily related to the name of the device as it is surfaced inside of the guest. type: string @@ -2603,11 +2420,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -2640,11 +2455,9 @@ spec: description: |- Address is an IP4 or IP6 address and their network prefix length. - An IP4 address is specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -2687,11 +2500,9 @@ spec: AutoConfigurationEnabled describes whether or not ICMPv6 router solicitation requests are enabled or disabled from a given interface. - These requests acquire an IP6 address and default gateway route from zero-to-many routers on the connected network. - If not set then ICMPv6 is not available on this VM. type: boolean dhcp: @@ -2707,7 +2518,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -2748,7 +2558,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -2793,7 +2602,6 @@ spec: in the VM's desired network interface list. If unset, then there is no corresponding entry for this interface. - Please note this name is not necessarily related to the name of the device as it is surfaced inside of the guest. type: string @@ -2820,7 +2628,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -2861,7 +2668,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -2918,11 +2724,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -2965,11 +2769,9 @@ spec: description: |- NetworkAddress is the IP4 or IP6 address of the destination network. - Addresses include the network's prefix length, ex. 192.168.0.0/24 or 2001:DB8:101::230:6eff:fe04:d9ff::/64. - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of symbol @@ -2986,7 +2788,6 @@ spec: KernelConfig describes the observed state of the VM's kernel IP configuration settings. - The key part contains a unique number while the value part contains the 'key=value' as provided by the underlying provider. For example, on Linux and/or BSD, the systcl -a output would be reported as: @@ -3017,13 +2818,11 @@ spec: description: |- PrimaryIP4 describes the VM's primary IP4 address. - If the bootstrap provider is CloudInit then this value is set to the value of the VM's "guestinfo.local-ipv4" property. Please see https://bit.ly/3NJB534 for more information on how this value is calculated. - If the bootstrap provider is anything else then this field is set to the value of the infrastructure VM's "guest.ipAddress" field. Please see https://bit.ly/3Au0jM4 for more information. @@ -3032,13 +2831,11 @@ spec: description: |- PrimaryIP6 describes the VM's primary IP6 address. - If the bootstrap provider is CloudInit then this value is set to the value of the VM's "guestinfo.local-ipv6" property. Please see https://bit.ly/3NJB534 for more information on how this value is calculated. - If the bootstrap provider is anything else then this field is set to the value of the infrastructure VM's "guest.ipAddress" field. Please see https://bit.ly/3Au0jM4 for more information. @@ -3096,7 +2893,6 @@ spec: Zone describes the availability zone where the VirtualMachine has been scheduled. - Please note this field may be empty when the cluster is not zone-aware. type: string type: object @@ -3163,7 +2959,6 @@ spec: BootDiskCapacity is the capacity of the VM's boot disk -- the first disk from the VirtualMachineImage from which the VM was deployed. - Please note it is not advised to change this value while the VM is running. Also, resizing the VM's boot disk may require actions inside of the guest to take advantage of the additional capacity. Finally, changing @@ -3200,7 +2995,6 @@ spec: Bootstrap describes the desired state of the guest's bootstrap configuration. - If omitted, a default bootstrap method may be selected based on the guest OS identifier. If Linux, then the LinuxPrep method is used. properties: @@ -3209,11 +3003,9 @@ spec: CloudInit may be used to bootstrap Linux guests with Cloud-Init or Windows guests that support Cloudbase-Init. - The guest's networking stack is configured by Cloud-Init on Linux guests and Cloudbase-Init on Windows guests. - Please note this bootstrap provider may not be used in conjunction with the other bootstrap providers. properties: @@ -3222,7 +3014,6 @@ spec: CloudConfig describes a subset of a Cloud-Init CloudConfig, used to bootstrap the VM. - Please note this field and RawCloudConfig are mutually exclusive. properties: defaultUserEnabled: @@ -3237,17 +3028,13 @@ spec: RunCmd allows running one or more commands on the guest. The entries in this list can adhere to two, different formats: - Format 1 -- a string that contains the command and its arguments, ex. - runcmd: - "ls -al" - Format 2 -- a list of the command and its arguments, ex. - runcmd: - - echo - "Hello, world." @@ -3275,7 +3062,6 @@ spec: CreateGroups is a flag that may be set to false to disable creation of specified user groups. - Defaults to true when Name is not "default". type: boolean expiredate: @@ -3313,7 +3099,6 @@ spec: description: |- Homedir is the optional home directory for the user. - Defaults to "/home/" when Name is not "default". type: string inactive: @@ -3326,14 +3111,12 @@ spec: description: |- LockPasswd disables password login. - Defaults to true when Name is not "default". type: boolean name: description: |- Name is the user's login name. - Please note this field may be set to the special value of "default" when this User is the first element in the Users list from the CloudConfig. When set to "default", all other fields from this User must be nil. @@ -3342,7 +3125,6 @@ spec: description: |- NoCreateHome prevents the creation of the home directory. - Defaults to false when Name is not "default". type: boolean no_log_init: @@ -3350,14 +3132,12 @@ spec: NoLogInit prevents the initialization of lastlog and faillog for the user. - Defaults to false when Name is not "default". type: boolean no_user_group: description: |- NoUserGroup prevents the creation of the group named after the user. - Defaults to false when Name is not "default". type: boolean passwd: @@ -3381,7 +3161,6 @@ spec: description: |- PrimaryGroup is the primary group for the user. - Defaults to the value of the Name field when it is not "default". type: string selinux_user: @@ -3392,7 +3171,6 @@ spec: description: |- Shell is the path to the user's login shell. - Please note the default is to set no shell, which results in a system-specific default being used. type: string @@ -3401,7 +3179,6 @@ spec: SnapUser specifies an e-mail address to create the user as a Snappy user through "snap create-user". - If an Ubuntu SSO account is associated with the address, the username and SSH keys will be requested from there. type: string @@ -3410,7 +3187,6 @@ spec: SSHAuthorizedKeys is a list of SSH keys to add to the user's authorized keys file. - Please note this field may not be combined with SSHRedirectUser. items: type: string @@ -3419,7 +3195,6 @@ spec: description: |- SSHImportID is a list of SSH IDs to import for the user. - Please note this field may not be combined with SSHRedirectUser. items: type: string @@ -3428,22 +3203,18 @@ spec: description: |- SSHRedirectUser may be set to true to disable SSH logins for this user. - Please note that when specified, all SSH keys from cloud meta-data will be configured in a disabled state for this user. Any SSH login as this user will timeout with a message to login instead as the default user. - This field may not be combined with SSHAuthorizedKeys or SSHImportID. - Defaults to false when Name is not "default". type: boolean sudo: description: |- Sudo is a sudo rule to apply to the user. - When omitted, no sudo rules will be applied to the user. type: string system: @@ -3451,14 +3222,12 @@ spec: System is an optional flag that indicates the user should be created as a system user with no home directory. - Defaults to false when Name is not "default". type: boolean uid: description: |- UID is the user's ID. - When omitted the guest will default to the next available number. format: int64 type: integer @@ -3485,28 +3254,21 @@ spec: description: |- Content is the optional content to write to the provided Path. - When omitted an empty file will be created or existing file will be modified. - The value for this field can adhere to two, different formats: - Format 1 -- a string that contains the command and its arguments, ex. - content: Hello, world. - Please note that format 1 supports all of the manners of specifying a YAML string. - Format 2 -- a secret reference with the name of the key that contains the content for the file, ex. - content: name: my-bootstrap-secret key: my-file-content @@ -3545,11 +3307,9 @@ spec: description: |- Permissions an optional set of file permissions to set. - Please note the permissions should be specified as an octal string, ex. "0###". - When omitted the guest will default this value to "0644". type: string required: @@ -3570,11 +3330,9 @@ spec: RawCloudConfig describes a key in a Secret resource that contains the CloudConfig data used to bootstrap the VM. - The CloudConfig data specified by the key may be plain-text, base64-encoded, or gzipped and base64-encoded. - Please note this field and CloudConfig are mutually exclusive. properties: key: @@ -3600,16 +3358,13 @@ spec: description: |- LinuxPrep may be used to bootstrap Linux guests. - The guest's networking stack is configured by Guest OS Customization (GOSC). - Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. - This bootstrap provider may not be used in conjunction with the CloudInit or Sysprep bootstrap providers. properties: @@ -3622,13 +3377,11 @@ spec: description: |- TimeZone is a case-sensitive timezone, such as Europe/Sofia. - Valid values are based on the tz (timezone) database used by Linux and other Unix systems. The values are strings in the form of "Area/Location," in which Area is a continent or ocean name, and Location is the city, island, or other regional designation. - Please see https://kb.vmware.com/s/article/2145518 for a list of valid time zones for Linux systems. type: string @@ -3637,16 +3390,13 @@ spec: description: |- Sysprep may be used to bootstrap Windows guests. - The guest's networking stack is configured by Guest OS Customization (GOSC). - Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. - This bootstrap provider may not be used in conjunction with the CloudInit or LinuxPrep bootstrap providers. properties: @@ -3655,11 +3405,9 @@ spec: RawSysprep describes a key in a Secret resource that contains an XML string of the Sysprep text used to bootstrap the VM. - The data specified by the Secret key may be plain-text, base64-encoded, or gzipped and base64-encoded. - Please note this field and Sysprep are mutually exclusive. properties: key: @@ -3677,14 +3425,11 @@ spec: description: |- Sysprep is an object representation of a Windows sysprep.xml answer file. - This field encloses all the individual keys listed in a sysprep.xml file. - For more detailed information please see https://technet.microsoft.com/en-us/library/cc771830(v=ws.10).aspx. - Please note this field and RawSysprep are mutually exclusive. properties: guiRunOnce: @@ -3708,7 +3453,6 @@ spec: AutoLogon determine whether the machine automatically logs on as Administrator. - Please note if AutoLogon is true, then Password must be set or guest customization will fail. type: boolean @@ -3717,12 +3461,10 @@ spec: AutoLogonCount specifies the number of times the machine should automatically log on as Administrator. - Generally it should be 1, but if your setup requires a number of reboots, you may want to increase it. This number may be determined by the list of commands executed by the GuiRunOnce command. - Please note this field must be specified with a non-zero positive integer if AutoLogon is true. format: int32 @@ -3731,22 +3473,18 @@ spec: description: |- Password is the new administrator password for the machine. - To specify that the password should be set to blank (that is, no password), set the password value to NULL. Because of encryption, "" is NOT a valid value. - Please note if the password is set to blank and AutoLogon is true, the guest customization will fail. - If the XML file is generated by the VirtualCenter Customization Wizard, then the password is encrypted. Otherwise, the client should set the plainText attribute to true, so that the customization process does not attempt to decrypt the string. - When not explicitly specified, the Key field for the selector defaults to `password`. properties: @@ -3766,7 +3504,6 @@ spec: description: |- TimeZone is the time zone index for the virtual machine. - Please note that numbers correspond to time zones listed at https://bit.ly/3Rzv8oL. format: int32 @@ -3788,7 +3525,6 @@ spec: DomainAdminPassword is the password for the domain user account used for authentication if the virtual machine is joining a domain. - When not explicitly specified, the Key field for the selector defaults to `domain_admin_password`. properties: @@ -3817,7 +3553,6 @@ spec: LicenseFilePrintData is a representation of the Sysprep LicenseFilePrintData key. - Please note this is required only for Windows 2000 Server and Windows Server 2003. properties: @@ -3833,7 +3568,6 @@ spec: AutoUsers indicates the number of client licenses purchased for the VirtualCenter server being installed. - Please note this value is ignored unless AutoMode is PerServer. format: int32 type: integer @@ -3854,11 +3588,9 @@ spec: description: |- ProductID is a valid serial number. - Please note unless the VirtualMachineImage was installed with a volume license key, ProductID must be set or guest customization will fail. - When not explicitly specified, the Key field for the selector defaults to `domain_admin_password`. properties: @@ -3886,27 +3618,22 @@ spec: (how VMware surfaces OVF properties on guests) to transport data into the guest. - The guest's networking stack may be configured using either vApp properties or GOSC. - Many OVFs define one or more properties that are used by the guest to bootstrap its networking stack. If the VirtualMachineImage defines one or more properties like this, then they can be configured to use the network data provided for this VM at runtime by setting these properties to Go template strings. - It is also possible to use GOSC to bootstrap this VM's network stack by configuring either the LinuxPrep or Sysprep bootstrap providers. - Please note the VAppConfig bootstrap provider in conjunction with the LinuxPrep bootstrap provider is the equivalent of setting the v1alpha1 VM metadata transport to "OvfEnv". - This bootstrap provider may not be used in conjunction with the CloudInit bootstrap provider. properties: @@ -3914,7 +3641,6 @@ spec: description: |- Properties is a list of vApp/OVF property key/value pairs. - Please note this field and RawProperties are mutually exclusive. items: description: |- @@ -3933,7 +3659,6 @@ spec: description: |- From is specified to reference a value from a Secret resource. - Please note this field is mutually exclusive with the Value field. properties: key: @@ -3951,7 +3676,6 @@ spec: description: |- Value is used to directly specify a value. - Please note this field is mutually exclusive with the From field. type: string type: object @@ -3968,7 +3692,6 @@ spec: this VM where each key/value pair from the Secret is used as a vApp key/value pair. - Please note this field and Properties are mutually exclusive. type: string type: object @@ -3977,15 +3700,12 @@ spec: description: |- Cdrom describes the desired state of the VM's CD-ROM devices. - Each CD-ROM device requires a reference to an ISO-type VirtualMachineImage or ClusterVirtualMachineImage resource as backing. - Multiple CD-ROM devices using the same backing image, regardless of image kinds (namespace or cluster scope), are not allowed. - CD-ROM devices can be added, updated, or removed when the VM is powered off. When the VM is powered on, only the connection state of existing CD-ROM devices can be changed. @@ -4000,7 +3720,6 @@ spec: AllowGuestControl describes whether or not a web console connection may be used to connect/disconnect the CD-ROM device. - Defaults to true if omitted. type: boolean connected: @@ -4008,20 +3727,16 @@ spec: description: |- Connected describes the desired connection state of the CD-ROM device. - When true, the CD-ROM device is added and connected to the VM. If the device already exists, it is updated to a connected state. - When explicitly set to false, the CD-ROM device is added but remains disconnected from the VM. If the CD-ROM device already exists, it is updated to a disconnected state. - Please note that disconnecting a CD-ROM during guest OS installation may not work since the CD-ROM might be locked by the guest. - Defaults to true if omitted. type: boolean image: @@ -4030,10 +3745,8 @@ spec: ClusterVirtualMachineImage resource used as the backing for the CD-ROM. If the image kind is omitted, it defaults to VirtualMachineImage. - This field is immutable when the VM is powered on. - Please note, unlike the spec.imageName field, the value of this spec.cdrom.image.name MUST be a Kubernetes object name. properties: @@ -4056,7 +3769,6 @@ spec: Name consists of at least two lowercase letters or digits of this CD-ROM. It must be unique among all CD-ROM devices attached to the VM. - This field is immutable when the VM is powered on. pattern: ^[a-z0-9]{2,}$ type: string @@ -4073,7 +3785,6 @@ spec: ClassName describes the name of the VirtualMachineClass resource used to deploy this VM. - Please note, this field *may* be empty if the VM was imported instead of deployed by VM Operator. An imported VirtualMachine resource references an existing VM on the underlying platform that was not deployed from a @@ -4083,25 +3794,20 @@ spec: description: |- GuestID describes the desired guest operating system identifier for a VM. - The logic that determines the guest ID is as follows: - If this field is set, then its value is used. Otherwise, if the VM is deployed from an OVF template that defines a guest ID, then that value is used. The guest ID from VirtualMachineClass used to deploy the VM is ignored. - Please refer to https://bit.ly/4elnjP3 for a complete list of supported guest operating system identifiers. - Please note that this field is immutable after the VM is powered on. To change the guest ID after the VM is powered on, the VM must be powered off and then powered on again with the updated guest ID spec. - This field is required when the VM has any CD-ROM devices attached. type: string image: @@ -4109,16 +3815,13 @@ spec: Image describes the reference to the VirtualMachineImage or ClusterVirtualMachineImage resource used to deploy this VM. - Please note, unlike the field spec.imageName, the value of spec.image.name MUST be a Kubernetes object name. - Please also note, when creating a new VirtualMachine, if this field and spec.imageName are both non-empty, then they must refer to the same resource or an error is returned. - Please note, this field *may* be empty if the VM was imported instead of deployed by VM Operator. An imported VirtualMachine resource references an existing VM on the underlying platform that was not deployed from a @@ -4143,7 +3846,6 @@ spec: ImageName describes the name of the image resource used to deploy this VM. - This field may be used to specify the name of a VirtualMachineImage or ClusterVirtualMachineImage resource. The resolver first checks to see if there is a VirtualMachineImage with the specified name in the @@ -4151,7 +3853,6 @@ spec: resolver then checks to see if there is a ClusterVirtualMachineImage resource with the specified name. - This field may also be used to specify the display name (vSphere name) of a VirtualMachineImage or ClusterVirtualMachineImage resource. If the display name unambiguously resolves to a distinct VM image (among all @@ -4161,12 +3862,10 @@ spec: display name resolves to multiple or no VM images, then the mutation webhook denies the request and returns an error. - Please also note, when creating a new VirtualMachine, if this field and spec.image are both non-empty, then they must refer to the same resource or an error is returned. - Please note, this field *may* be empty if the VM was imported instead of deployed by VM Operator. An imported VirtualMachine resource references an existing VM on the underlying platform that was not deployed from a @@ -4186,10 +3885,8 @@ spec: description: |- MinHardwareVersion describes the desired, minimum hardware version. - The logic that determines the hardware version is as follows: - 1. If this field is set, then its value is used. 2. Otherwise, if the VirtualMachineClass used to deploy the VM contains a non-empty hardware version, then it is used. @@ -4197,30 +3894,24 @@ spec: set to the default hardware version for the Datacenter/Cluster/Host where the VM is provisioned. - This field is never updated to reflect the derived hardware version. Instead, VirtualMachineStatus.HardwareVersion surfaces the observed hardware version. - Please note, setting this field's value to N ensures a VM's hardware version is equal to or greater than N. For example, if a VM's observed hardware version is 10 and this field's value is 13, then the VM will be upgraded to hardware version 13. However, if the observed hardware version is 17 and this field's value is 13, no change will occur. - Several features are hardware version dependent, for example: - * NVMe Controllers >= 14 * Dynamic Direct Path I/O devices >= 17 - Please refer to https://kb.vmware.com/s/article/1003746 for a list of VM hardware versions. - It is important to remember that a VM's hardware version may not be downgraded and upgrading a VM deployed from an image based on an older hardware version to a more recent one may result in unpredictable @@ -4233,7 +3924,6 @@ spec: description: |- Network describes the desired network configuration for the VM. - Please note this value may be omitted entirely and the VM will be assigned a single, virtual network interface that is connected to the Namespace's default network. @@ -4243,7 +3933,6 @@ spec: Disabled is a flag that indicates whether or not to disable networking for this VM. - When set to true, the VM is not configured with a default interface nor any specified from the Interfaces field. type: boolean @@ -4251,15 +3940,12 @@ spec: description: |- DomainName describes the value the guest uses as its domain name. - Please note, this feature is available with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep. - This field must adhere to the format specified in RFC-1034, Section 3.5 for DNS names: - * When joined with the host name, the total length is restricted to 255 characters or less. * Individual segments must be 63 characters or less. @@ -4271,11 +3957,9 @@ spec: * Symbol unicode points, such as emoji, are disallowed in the top-level domain. - Please note, the combined values of spec.network.hostName and spec.network.domainName may not exceed 255 characters in length. - When deploying a guest running Microsoft Windows, this field describes the domain the computer should join. type: string @@ -4284,15 +3968,12 @@ spec: HostName describes the value the guest uses as its host name. If omitted, the name of the VM will be used. - Please note, this feature is available with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep. - This field must adhere to the format specified in RFC-1034, Section 3.5 for DNS labels: - * The total length is restricted to 63 characters or less. * The total length is restricted to 15 characters or less on Windows systems. @@ -4309,7 +3990,6 @@ spec: address for the host name is disallowed if spec.network.domainName is non-empty. - Please note, the combined values of spec.network.hostName and spec.network.domainName may not exceed 255 characters in length. type: string @@ -4317,11 +3997,9 @@ spec: description: |- Interfaces is the list of network interfaces used by this VM. - If the Interfaces field is empty and the Disabled field is false, then a default interface with the name eth0 will be created. - The maximum number of network interface allowed is 10 because a vSphere virtual machine may not have more than 10 virtual ethernet card devices. items: @@ -4334,19 +4012,15 @@ spec: Addresses is an optional list of IP4 or IP6 addresses to assign to this interface. - Please note this field is only supported if the connected network supports manual IP allocation. - Please note IP4 and IP6 addresses must include the network prefix length, ex. 192.168.0.10/24 or 2001:db8:101::a/64. - Please note this field may not contain IP4 addresses if DHCP4 is set to true or IP6 addresses if DHCP6 is set to true. - Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. items: @@ -4357,11 +4031,9 @@ spec: DHCP4 indicates whether or not this interface uses DHCP for IP4 networking. - Please note this field is only supported if the network connection supports DHCP. - Please note this field is mutually exclusive with IP4 addresses in the Addresses field and the Gateway4 field. type: boolean @@ -4370,11 +4042,9 @@ spec: DHCP6 indicates whether or not this interface uses DHCP for IP6 networking. - Please note this field is only supported if the network connection supports DHCP. - Please note this field is mutually exclusive with IP6 addresses in the Addresses field and the Gateway6 field. type: boolean @@ -4382,40 +4052,32 @@ spec: description: |- Gateway4 is the default, IP4 gateway for this interface. - Please note this field is only supported if the network connection supports manual IP allocation. - If the network connection supports manual IP allocation and the Addresses field includes at least one IP4 address, then this field is required. - Please note the IP address must include the network prefix length, ex. 192.168.0.1/24. - Please note this field is mutually exclusive with DHCP4. type: string gateway6: description: |- Gateway6 is the primary IP6 gateway for this interface. - Please note this field is only supported if the network connection supports manual IP allocation. - If the network connection supports manual IP allocation and the Addresses field includes at least one IP6 address, then this field is required. - Please note the IP address must include the network prefix length, ex. 2001:db8:101::1/64. - Please note this field is mutually exclusive with DHCP6. type: string guestDeviceName: @@ -4430,7 +4092,6 @@ spec: description: |- MTU is the Maximum Transmission Unit size in bytes. - Please note this feature is available only with the following bootstrap providers: CloudInit. format: int64 @@ -4440,7 +4101,6 @@ spec: Name describes the unique name of this network interface, used to distinguish it from other network interfaces attached to this VM. - When the bootstrap provider is Cloud-Init and GuestDeviceName is not specified, the device inside the guest will be renamed to this value. Please note it is up to the user to ensure the provided name does not @@ -4452,11 +4112,9 @@ spec: Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. - Please note this feature is available only with the following bootstrap providers: CloudInit and Sysprep. - Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). items: @@ -4467,7 +4125,6 @@ spec: Network is the name of the network resource to which this interface is connected. - If no network is provided, then this interface will be connected to the Namespace's default network. properties: @@ -4498,7 +4155,6 @@ spec: description: |- Routes is a list of optional, static routes. - Please note this feature is available only with the following bootstrap providers: CloudInit. items: @@ -4527,7 +4183,6 @@ spec: SearchDomains is a list of search domains used when resolving IP addresses with DNS. - Please note this feature is available only with the following bootstrap providers: CloudInit. items: @@ -4546,12 +4201,10 @@ spec: Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. These are applied globally. - Please note global nameservers are only available with the following bootstrap providers: LinuxPrep and Sysprep. The Cloud-Init bootstrap provider supports per-interface nameservers. - Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). items: @@ -4562,7 +4215,6 @@ spec: SearchDomains is a list of search domains used when resolving IP addresses with DNS. These are applied globally. - Please note global search domains are only available with the following bootstrap providers: LinuxPrep and Sysprep. The Cloud-Init bootstrap provider supports per-interface search domains. @@ -4576,13 +4228,11 @@ spec: RestartMode, by setting the value of this field to "now" (case-insensitive). - A mutating webhook changes this value to the current time (UTC), which the VM controller then uses to determine the VM should be restarted by comparing the value to the timestamp of the last time the VM was restarted. - Please note it is not possible to schedule future restarts using this field. The only value that users may set is the string "now" (case-insensitive). @@ -4592,7 +4242,6 @@ spec: description: |- PowerOffMode describes the desired behavior when powering off a VM. - There are three, supported power off modes: Hard, Soft, and TrySoft. The first mode, Hard, is the equivalent of a physical system's power cord being ripped from the wall. The Soft mode @@ -4601,7 +4250,6 @@ spec: a graceful shutdown, and if that fails or the VM is not in a powered off state after five minutes, the VM is halted. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -4612,12 +4260,10 @@ spec: description: |- PowerState describes the desired power state of a VirtualMachine. - Please note this field may be omitted when creating a new VM and will default to "PoweredOn." However, once the field is set to a non-empty value, it may no longer be set to an empty value. - Additionally, setting this value to "Suspended" is not supported when creating a new VM. The valid values when creating a new VM are "PoweredOn" and "PoweredOff." An empty value is also allowed on create @@ -4649,33 +4295,26 @@ spec: description: |- GuestInfo specifies an action involving key/value pairs from GuestInfo. - The elements are evaluated with the logical AND operator, meaning all expressions must evaluate as true for the probe to succeed. - For example, a VM resource's probe definition could be specified as the following: - guestInfo: - key: ready value: true - With the above configuration in place, the VM would not be considered ready until the GuestInfo key "ready" was set to the value "true". - From within the guest operating system it is possible to set GuestInfo key/value pairs using the program "vmware-rpctool," which is included with VM Tools. For example, the following command will set the key "guestinfo.ready" to the value "true": - vmware-rpctool "info-set guestinfo.ready true" - Once executed, the VM's readiness probe will be signaled and the VM resource will be marked as ready. items: @@ -4687,7 +4326,6 @@ spec: description: |- Key is the name of the GuestInfo key. - The key is automatically prefixed with "guestinfo." before being evaluated. Thus if the key "guestinfo.mykey" is provided, it will be evaluated as "guestinfo.guestinfo.mykey". @@ -4697,10 +4335,8 @@ spec: Value is a regular expression that is matched against the value of the specified key. - An empty value is the equivalent of "match any" or ".*". - All values must adhere to the RE2 regular expression syntax as documented at https://golang.org/s/re2syntax. Invalid values may be rejected or ignored depending on the implementation of this API. Either way, invalid @@ -4721,7 +4357,6 @@ spec: description: |- TCPSocket specifies an action involving a TCP port. - Deprecated: The TCPSocket action requires network connectivity that is not supported in all environments. This field will be removed in a later API version. properties: @@ -4755,7 +4390,6 @@ spec: Reserved describes a set of VM configuration options reserved for system use. - Please note attempts to modify the value of this field by a DevOps user will result in a validation error. properties: @@ -4768,7 +4402,6 @@ spec: RestartMode describes the desired behavior for restarting a VM when spec.nextRestartTime is set to "now" (case-insensitive). - There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere resets the VM without any interaction inside of the guest. The Soft mode requires the VM's guest to @@ -4776,7 +4409,6 @@ spec: variant, TrySoft, first attempts a soft restart, and if that fails or does not complete within five minutes, the VM is hard reset. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -4788,7 +4420,6 @@ spec: StorageClass describes the name of a Kubernetes StorageClass resource used to configure this VM's storage-related attributes. - Please see https://kubernetes.io/docs/concepts/storage/storage-classes/ for more information on Kubernetes storage classes. type: string @@ -4797,7 +4428,6 @@ spec: description: |- SuspendMode describes the desired behavior when suspending a VM. - There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere suspends the VM to disk without any interaction inside of the guest. The Soft mode @@ -4806,7 +4436,6 @@ spec: a graceful suspend, and if that fails or the VM is not in a put into standby by the guest after five minutes, the VM is suspended. - If omitted, the mode defaults to TrySoft. enum: - Hard @@ -4830,7 +4459,6 @@ spec: PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. - More information is available at https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims. properties: @@ -4923,16 +4551,8 @@ spec: conditions: description: Conditions describes the observed conditions of the VirtualMachine. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -4973,12 +4593,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -4995,7 +4610,6 @@ spec: HardwareVersion describes the VirtualMachine resource's observed hardware version. - Please refer to VirtualMachineSpec.MinHardwareVersion for more information on the topic of a VM's hardware version. format: int32 @@ -5026,7 +4640,6 @@ spec: such as an interface's IP address obtained from IPAM, or global DNS settings. - Please note this information does *not* represent the *observed* network state of the VM, but is intended for situations where someone boots a VM with no appropriate bootstrap engine and needs to know the network config @@ -5050,11 +4663,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -5097,11 +4708,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -5157,7 +4766,6 @@ spec: description: |- Gateway4 describes the interface's configured, default, IP4 gateway. - Please note the IP address include the network prefix length, ex. 192.168.0.1/24. type: string @@ -5165,7 +4773,6 @@ spec: description: |- Gateway6 describes the interface's configured, default, IP6 gateway. - Please note the IP address includes the network prefix length, ex. 2001:db8:101::1/64. type: string @@ -5175,7 +4782,6 @@ spec: Name describes the corresponding network interface with the same name in the VM's desired network interface list. - Please note this name is not necessarily related to the name of the device as it is surfaced inside of the guest. type: string @@ -5219,11 +4825,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -5256,11 +4860,9 @@ spec: description: |- Address is an IP4 or IP6 address and their network prefix length. - An IP4 address is specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -5301,11 +4903,9 @@ spec: AutoConfigurationEnabled describes whether or not ICMPv6 router solicitation requests are enabled or disabled from a given interface. - These requests acquire an IP6 address and default gateway route from zero-to-many routers on the connected network. - If not set then ICMPv6 is not available on this VM. type: boolean dhcp: @@ -5321,7 +4921,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -5362,7 +4961,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -5407,7 +5005,6 @@ spec: in the VM's desired network interface list. If unset, then there is no corresponding entry for this interface. - Please note this name is not necessarily related to the name of the device as it is surfaced inside of the guest. type: string @@ -5434,7 +5031,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -5475,7 +5071,6 @@ spec: description: |- Config describes platform-dependent settings for the DHCP client. - The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: @@ -5532,11 +5127,9 @@ spec: description: |- Nameservers is a list of the IP addresses for the DNS servers to use. - IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the @@ -5579,11 +5172,9 @@ spec: description: |- NetworkAddress is the IP4 or IP6 address of the destination network. - Addresses include the network's prefix length, ex. 192.168.0.0/24 or 2001:DB8:101::230:6eff:fe04:d9ff::/64. - IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of symbol @@ -5597,7 +5188,6 @@ spec: KernelConfig describes the observed state of the VM's kernel IP configuration settings. - The key part contains a unique number while the value part contains the 'key=value' as provided by the underlying provider. For example, on Linux and/or BSD, the systcl -a output would be reported as: @@ -5628,13 +5218,11 @@ spec: description: |- PrimaryIP4 describes the VM's primary IP4 address. - If the bootstrap provider is CloudInit then this value is set to the value of the VM's "guestinfo.local-ipv4" property. Please see https://bit.ly/3NJB534 for more information on how this value is calculated. - If the bootstrap provider is anything else then this field is set to the value of the infrastructure VM's "guest.ipAddress" field. Please see https://bit.ly/3Au0jM4 for more information. @@ -5643,13 +5231,11 @@ spec: description: |- PrimaryIP6 describes the VM's primary IP6 address. - If the bootstrap provider is CloudInit then this value is set to the value of the VM's "guestinfo.local-ipv6" property. Please see https://bit.ly/3NJB534 for more information on how this value is calculated. - If the bootstrap provider is anything else then this field is set to the value of the infrastructure VM's "guest.ipAddress" field. Please see https://bit.ly/3Au0jM4 for more information. @@ -5768,7 +5354,6 @@ spec: Zone describes the availability zone where the VirtualMachine has been scheduled. - Please note this field may be empty when the cluster is not zone-aware. type: string type: object diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachineservices.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachineservices.yaml index ff5dd67f8..60be57386 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachineservices.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachineservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachineservices.vmoperator.vmware.com spec: group: vmoperator.vmware.com diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachinesetresourcepolicies.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachinesetresourcepolicies.yaml index 4ad29d6a4..a0673214f 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachinesetresourcepolicies.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachinesetresourcepolicies.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachinesetresourcepolicies.vmoperator.vmware.com spec: group: vmoperator.vmware.com diff --git a/config/crd/bases/vmoperator.vmware.com_virtualmachinewebconsolerequests.yaml b/config/crd/bases/vmoperator.vmware.com_virtualmachinewebconsolerequests.yaml index 6f1ab06cd..d1a3a0c84 100644 --- a/config/crd/bases/vmoperator.vmware.com_virtualmachinewebconsolerequests.yaml +++ b/config/crd/bases/vmoperator.vmware.com_virtualmachinewebconsolerequests.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: virtualmachinewebconsolerequests.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -71,21 +71,17 @@ spec: ProxyAddr describes the host address and optional port used to access the VM's web console. - The value could be a DNS entry, IPv4, or IPv6 address, followed by an optional port. For example, valid values include: - DNS * host.com * host.com:6443 - IPv4 * 1.2.3.4 * 1.2.3.4:6443 - IPv6 * 1234:1234:1234:1234:1234:1234:1234:1234 * [1234:1234:1234:1234:1234:1234:1234:1234]:6443 @@ -93,7 +89,6 @@ spec: * 1234:1234:1234::::1234:1234 * [1234:1234:1234::::1234:1234]:6443 - In other words, the field may be set to any value that is parsable by Go's https://pkg.go.dev/net#ResolveIPAddr and https://pkg.go.dev/net#ParseIP functions. @@ -165,21 +160,17 @@ spec: ProxyAddr describes the host address and optional port used to access the VM's web console. - The value could be a DNS entry, IPv4, or IPv6 address, followed by an optional port. For example, valid values include: - DNS * host.com * host.com:6443 - IPv4 * 1.2.3.4 * 1.2.3.4:6443 - IPv6 * 1234:1234:1234:1234:1234:1234:1234:1234 * [1234:1234:1234:1234:1234:1234:1234:1234]:6443 @@ -187,7 +178,6 @@ spec: * 1234:1234:1234::::1234:1234 * [1234:1234:1234::::1234:1234]:6443 - In other words, the field may be set to any value that is parsable by Go's https://pkg.go.dev/net#ResolveIPAddr and https://pkg.go.dev/net#ParseIP functions. diff --git a/config/crd/bases/vmoperator.vmware.com_webconsolerequests.yaml b/config/crd/bases/vmoperator.vmware.com_webconsolerequests.yaml index 6bfbd4501..ad9b855e6 100644 --- a/config/crd/bases/vmoperator.vmware.com_webconsolerequests.yaml +++ b/config/crd/bases/vmoperator.vmware.com_webconsolerequests.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: webconsolerequests.vmoperator.vmware.com spec: group: vmoperator.vmware.com @@ -69,17 +69,14 @@ spec: The value could be a DNS entry, IPv4, or IPv6 address, followed by an optional port. For example, valid values include: - DNS * host.com * host.com:6443 - IPv4 * 1.2.3.4 * 1.2.3.4:6443 - IPv6 * 1234:1234:1234:1234:1234:1234:1234:1234 * [1234:1234:1234:1234:1234:1234:1234:1234]:6443 @@ -87,7 +84,6 @@ spec: * 1234:1234:1234::::1234:1234 * [1234:1234:1234::::1234:1234]:6443 - In other words, the field may be set to any value that is parsable by Go's https://pkg.go.dev/net#ResolveIPAddr and https://pkg.go.dev/net#ParseIP functions. diff --git a/config/crd/external-crds/cns.vmware.com_storagepolicyquotas.yaml b/config/crd/external-crds/cns.vmware.com_storagepolicyquotas.yaml index de8ddd247..66c70222f 100644 --- a/config/crd/external-crds/cns.vmware.com_storagepolicyquotas.yaml +++ b/config/crd/external-crds/cns.vmware.com_storagepolicyquotas.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: storagepolicyquotas.cns.vmware.com spec: group: cns.vmware.com diff --git a/config/crd/external-crds/cns.vmware.com_storagepolicyusages.yaml b/config/crd/external-crds/cns.vmware.com_storagepolicyusages.yaml index f9a8c086b..a1cdf637a 100644 --- a/config/crd/external-crds/cns.vmware.com_storagepolicyusages.yaml +++ b/config/crd/external-crds/cns.vmware.com_storagepolicyusages.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: storagepolicyusages.cns.vmware.com spec: group: cns.vmware.com diff --git a/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraries.yaml b/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraries.yaml index f2d4998e9..e532a3a11 100644 --- a/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraries.yaml +++ b/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraries.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: clustercontentlibraries.imageregistry.vmware.com spec: group: imageregistry.vmware.com @@ -108,6 +108,7 @@ spec: can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: + - lastTransitionTime - status - type type: object diff --git a/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraryitems.yaml b/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraryitems.yaml index 28750a49c..389d5d4de 100644 --- a/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraryitems.yaml +++ b/config/crd/external-crds/imageregistry.vmware.com_clustercontentlibraryitems.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: clustercontentlibraryitems.imageregistry.vmware.com spec: group: imageregistry.vmware.com @@ -146,6 +146,7 @@ spec: can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: + - lastTransitionTime - status - type type: object diff --git a/config/crd/external-crds/imageregistry.vmware.com_contentlibraries.yaml b/config/crd/external-crds/imageregistry.vmware.com_contentlibraries.yaml index e9ecedbb3..b60f7ba71 100644 --- a/config/crd/external-crds/imageregistry.vmware.com_contentlibraries.yaml +++ b/config/crd/external-crds/imageregistry.vmware.com_contentlibraries.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: contentlibraries.imageregistry.vmware.com spec: group: imageregistry.vmware.com @@ -124,6 +124,7 @@ spec: can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: + - lastTransitionTime - status - type type: object diff --git a/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitemimportrequests.yaml b/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitemimportrequests.yaml index 08eed2e81..30b699ca0 100644 --- a/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitemimportrequests.yaml +++ b/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitemimportrequests.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: contentlibraryitemimportrequests.imageregistry.vmware.com spec: group: imageregistry.vmware.com @@ -244,6 +244,7 @@ spec: can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: + - lastTransitionTime - status - type type: object @@ -291,6 +292,8 @@ spec: description: SessionUUID is the identifier that uniquely identifies the file upload session on the library item in vSphere. type: string + required: + - sessionUUID type: object itemRef: description: |- diff --git a/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitems.yaml b/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitems.yaml index 89dd05612..e1f29f317 100644 --- a/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitems.yaml +++ b/config/crd/external-crds/imageregistry.vmware.com_contentlibraryitems.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: contentlibraryitems.imageregistry.vmware.com spec: group: imageregistry.vmware.com @@ -146,6 +146,7 @@ spec: can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: + - lastTransitionTime - status - type type: object diff --git a/config/crd/external-crds/netoperator.vmware.com_networkinterfaces.yaml b/config/crd/external-crds/netoperator.vmware.com_networkinterfaces.yaml index 718459ff0..ac2c87699 100644 --- a/config/crd/external-crds/netoperator.vmware.com_networkinterfaces.yaml +++ b/config/crd/external-crds/netoperator.vmware.com_networkinterfaces.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: networkinterfaces.netoperator.vmware.com spec: group: netoperator.vmware.com diff --git a/config/crd/external-crds/topology.tanzu.vmware.com_availabilityzones.yaml b/config/crd/external-crds/topology.tanzu.vmware.com_availabilityzones.yaml index 5c7e793b5..1b1ba95d4 100644 --- a/config/crd/external-crds/topology.tanzu.vmware.com_availabilityzones.yaml +++ b/config/crd/external-crds/topology.tanzu.vmware.com_availabilityzones.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: availabilityzones.topology.tanzu.vmware.com spec: group: topology.tanzu.vmware.com diff --git a/config/crd/external-crds/topology.tanzu.vmware.com_vspherezones.yaml b/config/crd/external-crds/topology.tanzu.vmware.com_vspherezones.yaml index de7481b5d..ce3692dc0 100644 --- a/config/crd/external-crds/topology.tanzu.vmware.com_vspherezones.yaml +++ b/config/crd/external-crds/topology.tanzu.vmware.com_vspherezones.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: vspherezones.topology.tanzu.vmware.com spec: group: topology.tanzu.vmware.com diff --git a/config/crd/external-crds/topology.tanzu.vmware.com_zones.yaml b/config/crd/external-crds/topology.tanzu.vmware.com_zones.yaml index fce99bb38..6811790cb 100644 --- a/config/crd/external-crds/topology.tanzu.vmware.com_zones.yaml +++ b/config/crd/external-crds/topology.tanzu.vmware.com_zones.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: zones.topology.tanzu.vmware.com spec: group: topology.tanzu.vmware.com @@ -20,7 +20,6 @@ spec: description: |- Zone is the schema for the Zone resource for the vSphere topology API. - A Zone is the zone the k8s namespace is confined to. That is workloads will be limited to the Zones in the namespace. For more information about availability zones, refer to: @@ -132,16 +131,8 @@ spec: conditions: description: Conditions describes the observed conditions of the Zone items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -182,12 +173,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 1d7d81312..41cfd872a 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -8,27 +8,10 @@ rules: - "" resources: - configmaps - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - configmaps - - events - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - endpoints + - events + - persistentvolumeclaims + - services verbs: - create - delete @@ -41,51 +24,13 @@ rules: - "" resources: - namespaces - - resourcequotas - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - nodes - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: + - resourcequotas - secrets verbs: - get - list - watch -- apiGroups: - - "" - resources: - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - apiGroups: - "" resources: @@ -98,6 +43,7 @@ rules: - cns.vmware.com resources: - cnsnodevmattachments + - storagepolicyusages verbs: - create - delete @@ -128,25 +74,6 @@ rules: - cns.vmware.com resources: - storagepolicyquotas/status - verbs: - - get - - patch - - update -- apiGroups: - - cns.vmware.com - resources: - - storagepolicyusages - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - cns.vmware.com - resources: - storagepolicyusages/status verbs: - get @@ -176,6 +103,7 @@ rules: - imageregistry.vmware.com resources: - clustercontentlibraryitems + - contentlibraryitems verbs: - delete - get @@ -187,39 +115,18 @@ rules: - imageregistry.vmware.com resources: - clustercontentlibraryitems/status - verbs: - - get -- apiGroups: - - imageregistry.vmware.com - resources: - - contentlibraries - verbs: - - get - - list - - watch -- apiGroups: - - imageregistry.vmware.com - resources: - contentlibraries/status + - contentlibraryitems/status verbs: - get - apiGroups: - imageregistry.vmware.com resources: - - contentlibraryitems + - contentlibraries verbs: - - delete - get - list - - patch - - update - watch -- apiGroups: - - imageregistry.vmware.com - resources: - - contentlibraryitems/status - verbs: - - get - apiGroups: - netoperator.vmware.com resources: @@ -244,29 +151,8 @@ rules: - topology.tanzu.vmware.com resources: - availabilityzones - verbs: - - get - - list - - watch -- apiGroups: - - topology.tanzu.vmware.com - resources: - availabilityzones/status - verbs: - - get - - list - - watch -- apiGroups: - - topology.tanzu.vmware.com - resources: - zones - verbs: - - get - - list - - watch -- apiGroups: - - topology.tanzu.vmware.com - resources: - zones/status verbs: - get @@ -276,48 +162,14 @@ rules: - vmoperator.vmware.com resources: - clustervirtualmachineimages - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - - clustervirtualmachineimages/status - verbs: - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - virtualmachineclasses - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - - virtualmachineclasses/status - verbs: - - get - - patch - - update -- apiGroups: - - vmoperator.vmware.com - resources: - virtualmachineimages + - virtualmachinepublishrequests + - virtualmachines + - virtualmachineservices + - virtualmachinesetresourcepolicies + - virtualmachinewebconsolerequests + - webconsolerequests verbs: - create - delete @@ -329,6 +181,7 @@ rules: - apiGroups: - vmoperator.vmware.com resources: + - clustervirtualmachineimages/status - virtualmachineimages/status verbs: - get @@ -339,118 +192,14 @@ rules: - apiGroups: - vmoperator.vmware.com resources: - - virtualmachinepublishrequests - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: + - virtualmachineclasses/status - virtualmachinepublishrequests/status - verbs: - - get - - patch - - update -- apiGroups: - - vmoperator.vmware.com - resources: - - virtualmachinereplicasets - verbs: - - create - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - virtualmachinereplicasets/status - verbs: - - get - - patch - - update -- apiGroups: - - vmoperator.vmware.com - resources: - - virtualmachines - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - virtualmachines/status - verbs: - - get - - patch - - update -- apiGroups: - - vmoperator.vmware.com - resources: - - virtualmachineservices - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - virtualmachineservices/status - verbs: - - get - - patch - - update -- apiGroups: - - vmoperator.vmware.com - resources: - - virtualmachinesetresourcepolicies - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - virtualmachinesetresourcepolicies/status - verbs: - - get - - patch - - update -- apiGroups: - - vmoperator.vmware.com - resources: - - virtualmachinewebconsolerequests - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - vmoperator.vmware.com - resources: - virtualmachinewebconsolerequests/status + - webconsolerequests/status verbs: - get - patch @@ -458,23 +207,14 @@ rules: - apiGroups: - vmoperator.vmware.com resources: - - webconsolerequests + - virtualmachinereplicasets verbs: - create - - delete - get - list - patch - update - watch -- apiGroups: - - vmoperator.vmware.com - resources: - - webconsolerequests/status - verbs: - - get - - patch - - update - apiGroups: - vmware.com resources: diff --git a/controllers/virtualmachineservice/virtualmachineservice_controller.go b/controllers/virtualmachineservice/virtualmachineservice_controller.go index 4e3cfe0ed..b4a02dbc7 100644 --- a/controllers/virtualmachineservice/virtualmachineservice_controller.go +++ b/controllers/virtualmachineservice/virtualmachineservice_controller.go @@ -708,6 +708,8 @@ func (r *ReconcileVirtualMachineService) generateSubsetsForService( } // updateVMService syncs the VirtualMachineService Status from the Service status. +// +//nolint:unparam func (r *ReconcileVirtualMachineService) updateVMService(ctx *pkgctx.VirtualMachineServiceContext, service *corev1.Service) error { vmService := ctx.VMService diff --git a/go.mod b/go.mod index cdbcf3378..ab45b4dbe 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ replace ( ) require ( - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-logr/logr v1.4.2 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 @@ -31,32 +31,33 @@ require ( github.com/vmware/govmomi v0.31.1-0.20240730173452-49b88eb9917f // * https://github.com/vmware-tanzu/vm-operator/security/dependabot/24 golang.org/x/text v0.16.0 - k8s.io/api v0.30.0 - k8s.io/apiextensions-apiserver v0.30.0 - k8s.io/apimachinery v0.30.0 - k8s.io/client-go v0.30.0 - k8s.io/klog/v2 v2.120.1 - sigs.k8s.io/controller-runtime v0.18.2 + k8s.io/api v0.31.0 + k8s.io/apiextensions-apiserver v0.31.0 + k8s.io/apimachinery v0.31.0 + k8s.io/client-go v0.31.0 + k8s.io/klog/v2 v2.130.1 + sigs.k8s.io/controller-runtime v0.19.0 sigs.k8s.io/yaml v1.4.0 ) require ( github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.9.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect + github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect github.com/imdario/mergo v0.3.12 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -65,25 +66,26 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.48.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/net v0.25.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/term v0.20.0 // indirect + github.com/x448/float16 v0.8.4 // indirect + golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect + golang.org/x/net v0.26.0 // 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/time v0.3.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.34.1 // indirect + google.golang.org/protobuf v1.34.2 // indirect + gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect ) diff --git a/go.sum b/go.sum index 6137bead8..2150c6ae8 100644 --- a/go.sum +++ b/go.sum @@ -58,8 +58,8 @@ github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -81,8 +81,9 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= @@ -111,6 +112,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -146,8 +149,9 @@ github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHK github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= @@ -214,8 +218,8 @@ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -365,8 +369,9 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -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/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -380,28 +385,28 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1: github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -456,6 +461,8 @@ github.com/vmware-tanzu/nsx-operator/pkg/apis v0.0.0-20240730023032-0784c0791081 github.com/vmware-tanzu/nsx-operator/pkg/apis v0.0.0-20240730023032-0784c0791081/go.mod h1:Q4JzNkNMvjo7pXtlB5/R3oME4Nhah7fAObWgghVmtxk= github.com/vmware/govmomi v0.31.1-0.20240730173452-49b88eb9917f h1:lKzA28fIcNkcZgQdgP8YXaGZQcDMLNrwE9CyMyRKQNg= github.com/vmware/govmomi v0.31.1-0.20240730173452-49b88eb9917f/go.mod h1:oHzAQ1r6152zYDGcUqeK+EO8LhKo5wjtvWZBGHws2Hc= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -501,8 +508,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU= +golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -557,15 +564,15 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +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-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -619,13 +626,13 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +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.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +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/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -710,7 +717,6 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -752,8 +758,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -763,6 +769,8 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= @@ -794,19 +802,19 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= -k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= -k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= +k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= +k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= k8s.io/apiextensions-apiserver v0.21.1/go.mod h1:KESQFCGjqVcVsZ9g0xX5bacMjyX5emuWcS2arzdEouA= -k8s.io/apiextensions-apiserver v0.30.0 h1:jcZFKMqnICJfRxTgnC4E+Hpcq8UEhT8B2lhBcQ+6uAs= -k8s.io/apiextensions-apiserver v0.30.0/go.mod h1:N9ogQFGcrbWqAY9p2mUAL5mGxsLqwgtUce127VtRX5Y= +k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk= +k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk= k8s.io/apimachinery v0.17.4/go.mod h1:gxLnyZcGNdZTCLnq3fgzyg2A5BVCHTNDFrw8AmuJ+0g= k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= -k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= -k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc= +k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/apiserver v0.21.1/go.mod h1:nLLYZvMWn35glJ4/FZRhzLG/3MPxAaZTgV4FJZdr+tY= k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= -k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= -k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= +k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8= +k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU= k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= k8s.io/component-base v0.21.1/go.mod h1:NgzFZ2qu4m1juby4TnrmpR8adRk6ka62YdH5DkIIyKA= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= @@ -817,23 +825,23 @@ k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210527160623-6fdb442a123b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/controller-runtime v0.9.0/go.mod h1:TgkfvrhhEw3PlI0BRL/5xM+89y3/yc0ZDfdbTl84si8= -sigs.k8s.io/controller-runtime v0.18.2 h1:RqVW6Kpeaji67CY5nPEfRz6ZfFMk0lWQlNrLqlNpx+Q= -sigs.k8s.io/controller-runtime v0.18.2/go.mod h1:tuAt1+wbVsXIT8lPtk5RURxqAnq7xkpv2Mhttslg7Hw= +sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q= +sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= 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/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= diff --git a/hack/tools/go.mod b/hack/tools/go.mod index e25b5dd96..0b02c14bc 100644 --- a/hack/tools/go.mod +++ b/hack/tools/go.mod @@ -9,9 +9,9 @@ require ( github.com/golangci/golangci-lint v1.59.0 github.com/onsi/ginkgo/v2 v2.19.0 golang.org/x/vuln v1.1.1 - k8s.io/code-generator v0.30.1 + k8s.io/code-generator v0.31.0 sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240524133911-be2f383334bd - sigs.k8s.io/controller-tools v0.15.0 + sigs.k8s.io/controller-tools v0.16.1 sigs.k8s.io/kind v0.23.0 sigs.k8s.io/kubebuilder/v3 v3.15.1 sigs.k8s.io/kustomize/kustomize/v5 v5.4.2 @@ -32,6 +32,8 @@ require ( github.com/catenacyber/perfsprint v0.7.1 // indirect github.com/ccojocar/zxcvbn-go v1.0.2 // indirect github.com/ckaznocha/intrange v0.1.2 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/ghostiam/protogetter v0.3.6 // indirect github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect github.com/golangci/modinfo v0.3.4 // indirect @@ -40,8 +42,10 @@ require ( github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect github.com/lasiar/canonicalheader v1.1.1 // indirect github.com/macabu/inamedparam v0.1.3 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect + github.com/x448/float16 v0.8.4 // indirect github.com/xen0n/gosmopolitan v1.2.2 // indirect github.com/ykadowak/zerologlint v0.1.5 // indirect go-simpler.org/musttag v0.12.2 // indirect @@ -73,7 +77,7 @@ require ( github.com/breml/bidichk v0.2.7 // indirect github.com/breml/errchkjson v0.3.6 // indirect github.com/butuzov/ireturn v0.3.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect github.com/chavacava/garif v0.1.0 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect @@ -89,7 +93,7 @@ require ( github.com/fzipp/gocyclo v0.6.0 // indirect github.com/go-critic/go-critic v0.11.4 // indirect github.com/go-errors/errors v1.4.2 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect @@ -117,7 +121,7 @@ require ( github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect + github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect @@ -155,7 +159,6 @@ require ( github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mgechev/revive v1.3.7 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -175,10 +178,10 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/polyfloyd/go-errorlint v1.5.1 // indirect - github.com/prometheus/client_golang v1.16.0 // indirect - github.com/prometheus/client_model v0.4.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/quasilyte/go-ruleguard v0.4.2 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect @@ -197,7 +200,7 @@ require ( github.com/sourcegraph/go-diff v0.7.0 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.12.0 // indirect @@ -223,30 +226,30 @@ require ( go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.23.0 // indirect - golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc // indirect + golang.org/x/crypto v0.26.0 // indirect + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect - golang.org/x/mod v0.17.0 // indirect + golang.org/x/mod v0.20.0 // indirect // * https://github.com/vmware-tanzu/vm-operator/security/dependabot/33 // * https://github.com/vmware-tanzu/vm-operator/security/dependabot/35 - golang.org/x/net v0.25.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect - golang.org/x/tools v0.21.1-0.20240514024235-59d9797072e7 + golang.org/x/net v0.28.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect + golang.org/x/tools v0.24.0 golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect honnef.co/go/tools v0.4.7 // indirect - k8s.io/api v0.30.0 // indirect - k8s.io/apiextensions-apiserver v0.30.0 // indirect - k8s.io/apimachinery v0.30.1 // indirect - k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/api v0.31.0 // indirect + k8s.io/apiextensions-apiserver v0.31.0 // indirect + k8s.io/apimachinery v0.31.0 // indirect + k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect mvdan.cc/gofumpt v0.6.0 // indirect mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect diff --git a/hack/tools/go.sum b/hack/tools/go.sum index 260dda91e..b73619d01 100644 --- a/hack/tools/go.sum +++ b/hack/tools/go.sum @@ -74,8 +74,8 @@ github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyy github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50= github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= @@ -85,7 +85,7 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI= github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= @@ -99,6 +99,8 @@ github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42 github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/elastic/crd-ref-docs v0.0.12 h1:F3seyncbzUz3rT3d+caeYWhumb5ojYQ6Bl0Z+zOp16M= github.com/elastic/crd-ref-docs v0.0.12/go.mod h1:X83mMBdJt05heJUYiS3T0yJ/JkCuliuhSUNav5Gjo/U= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q= github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= @@ -113,6 +115,8 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk= @@ -121,8 +125,8 @@ github.com/go-critic/go-critic v0.11.4 h1:O7kGOCx0NDIni4czrkRIXTnit0mkyKOCePh3My github.com/go-critic/go-critic v0.11.4/go.mod h1:2QAdo4iuLik5S9YG0rT4wcZ8QxwHYkrr6/2MWAiv/vc= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= @@ -173,7 +177,6 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= @@ -207,8 +210,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 h1:SJ+NtwL6QaZ21U+IrK7d0gGgpjGGvd2kz+FzTHVzdqI= @@ -313,8 +316,6 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE= github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= @@ -334,6 +335,8 @@ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= github.com/moricho/tparallel v0.3.1 h1:fQKD4U1wRMAYNngDonW5XupoB/ZGJHdpzrWqgyg9krA= github.com/moricho/tparallel v0.3.1/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bcn8pqzeYNI= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhKRf3Swg= @@ -350,8 +353,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= @@ -373,14 +376,14 @@ github.com/polyfloyd/go-errorlint v1.5.1 h1:5gHxDjLyyWij7fhfrjYNNlHsUNQeyx0LFQKU github.com/polyfloyd/go-errorlint v1.5.1/go.mod h1:sH1QC1pxxi0fFecsVIzBmxtrgd9IF/SkJpA6wqyKAJs= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= @@ -428,8 +431,8 @@ github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -482,6 +485,8 @@ github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/ github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI= github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU= github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= @@ -522,10 +527,10 @@ 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.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc h1:ao2WRsKSzW6KuUY9IWPwWahcHCgR0s52IfwutMfEbdM= -golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= @@ -540,8 +545,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -556,9 +561,8 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -566,8 +570,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 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-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -592,8 +596,8 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -608,8 +612,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -636,8 +640,8 @@ golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.1-0.20240514024235-59d9797072e7 h1:DnP3aRQn/r68glNGB8/7+3iE77jA+YZZCxpfIXx2MdA= -golang.org/x/tools v0.21.1-0.20240514024235-59d9797072e7/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/vuln v1.1.1 h1:4nYQg4OSr7uYQMtjuuYqLAEVuTjY4k/CPMYqvv5OPcI= golang.org/x/vuln v1.1.1/go.mod h1:hNgE+SKMSp2wHVUpW0Ow2ejgKpNJePdML+4YjxrVxik= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -646,8 +650,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -669,30 +673,30 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= -k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= -k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= -k8s.io/apiextensions-apiserver v0.30.0 h1:jcZFKMqnICJfRxTgnC4E+Hpcq8UEhT8B2lhBcQ+6uAs= -k8s.io/apiextensions-apiserver v0.30.0/go.mod h1:N9ogQFGcrbWqAY9p2mUAL5mGxsLqwgtUce127VtRX5Y= -k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= -k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/code-generator v0.30.1 h1:ZsG++q5Vt0ScmKCeLhynUuWgcwFGg1Hl1AGfatqPJBI= -k8s.io/code-generator v0.30.1/go.mod h1:hFgxRsvOUg79mbpbVKfjJvRhVz1qLoe40yZDJ/hwRH4= +k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= +k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= +k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk= +k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk= +k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc= +k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/code-generator v0.31.0 h1:w607nrMi1KeDKB3/F/J4lIoOgAwc+gV9ZKew4XRfMp8= +k8s.io/code-generator v0.31.0/go.mod h1:84y4w3es8rOJOUUP1rLsIiGlO1JuEaPFXQPA9e/K6U0= k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo= k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= -k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1 h1:Nykk7fggxChwLK4rUPYESzeIwqsuxXXlFEAh5YhaMRo= mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1/go.mod h1:ZzZjEpJDOmx8TdVU6umamY3Xy0UAQUI2DHbf05USVbI= sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240524133911-be2f383334bd h1:JlibxtiujdBbkw2ARhB69a4hoanqE+xdt5bd3Q42kQ0= sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240524133911-be2f383334bd/go.mod h1:4+4tM2Es0ycqPedATtzPer5RTrUq3Xab59BYogt0mCE= -sigs.k8s.io/controller-tools v0.15.0 h1:4dxdABXGDhIa68Fiwaif0vcu32xfwmgQ+w8p+5CxoAI= -sigs.k8s.io/controller-tools v0.15.0/go.mod h1:8zUSS2T8Hx0APCNRhJWbS3CAQEbIxLa07khzh7pZmXM= +sigs.k8s.io/controller-tools v0.16.1 h1:gvIsZm+2aimFDIBiDKumR7EBkc+oLxljoUVfRbDI6RI= +sigs.k8s.io/controller-tools v0.16.1/go.mod h1:0I0xqjR65YTfoO12iR+mZR6s6UAVcUARgXRlsu0ljB0= 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.23.0 h1:8fyDGWbWTeCcCTwA04v4Nfr45KKxbSPH1WO9K+jVrBg= diff --git a/pkg/prober/fake/worker/fake_prober_worker.go b/pkg/prober/fake/worker/fake_prober_worker.go index cfe03bca1..56a6ce92b 100644 --- a/pkg/prober/fake/worker/fake_prober_worker.go +++ b/pkg/prober/fake/worker/fake_prober_worker.go @@ -8,7 +8,6 @@ import ( "fmt" "sync" - "k8s.io/client-go/util/workqueue" ctrl "sigs.k8s.io/controller-runtime" vmopv1 "github.com/vmware-tanzu/vm-operator/api/v1alpha3" @@ -26,10 +25,10 @@ type funcs struct { type FakeWorker struct { sync.Mutex funcs - queue workqueue.DelayingInterface + queue worker.DelayingInterface } -func NewFakeWorker(queue workqueue.DelayingInterface) worker.Worker { +func NewFakeWorker(queue worker.DelayingInterface) worker.Worker { return &FakeWorker{ queue: queue, } @@ -42,7 +41,7 @@ func (w *FakeWorker) Reset() { w.funcs = funcs{} } -func (w *FakeWorker) GetQueue() workqueue.DelayingInterface { +func (w *FakeWorker) GetQueue() worker.DelayingInterface { return w.queue } diff --git a/pkg/prober/prober_manager.go b/pkg/prober/prober_manager.go index 83376c240..2474c5af9 100644 --- a/pkg/prober/prober_manager.go +++ b/pkg/prober/prober_manager.go @@ -49,7 +49,7 @@ type Manager interface { // manager represents the probe manager, which implements the ManagerInterface. type manager struct { client client.Client - readinessQueue workqueue.DelayingInterface + readinessQueue worker.DelayingInterface prober *probe.Prober log logr.Logger recorder vmoprecord.Recorder @@ -210,7 +210,7 @@ func (m *manager) processVMProbe(w worker.Worker, ctx *proberctx.ProbeContext) e // addItemToQueue adds the vm to the queue. If immediate is true, immediately add the item. // Otherwise, add to queue after a time period. -func (m *manager) addItemToQueue(queue workqueue.DelayingInterface, ctx *proberctx.ProbeContext, item client.ObjectKey, immediate bool) { +func (m *manager) addItemToQueue(queue worker.DelayingInterface, ctx *proberctx.ProbeContext, item client.ObjectKey, immediate bool) { if immediate { queue.Add(item) } else { diff --git a/pkg/prober/worker/prober_worker.go b/pkg/prober/worker/prober_worker.go index 909742629..835ba7f24 100644 --- a/pkg/prober/worker/prober_worker.go +++ b/pkg/prober/worker/prober_worker.go @@ -12,9 +12,11 @@ import ( "github.com/vmware-tanzu/vm-operator/pkg/prober/probe" ) +type DelayingInterface = workqueue.TypedDelayingInterface[any] + // Worker represents a prober worker interface. type Worker interface { - GetQueue() workqueue.DelayingInterface + GetQueue() DelayingInterface CreateProbeContext(vm *vmopv1.VirtualMachine) (*context.ProbeContext, error) DoProbe(ctx *context.ProbeContext) error ProcessProbeResult(ctx *context.ProbeContext, res probe.Result, resErr error) error diff --git a/pkg/prober/worker/readiness_worker.go b/pkg/prober/worker/readiness_worker.go index 6dcab9f65..d630118c7 100644 --- a/pkg/prober/worker/readiness_worker.go +++ b/pkg/prober/worker/readiness_worker.go @@ -8,7 +8,6 @@ import ( "fmt" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/util/workqueue" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" @@ -29,7 +28,7 @@ const ( // readinessWorker implements Worker interface. type readinessWorker struct { - queue workqueue.DelayingInterface + queue DelayingInterface prober *probe.Prober client client.Client recorder vmoprecord.Recorder @@ -37,7 +36,7 @@ type readinessWorker struct { // NewReadinessWorker creates a new readiness worker to run readiness probes. func NewReadinessWorker( - queue workqueue.DelayingInterface, + queue DelayingInterface, prober *probe.Prober, client client.Client, recorder vmoprecord.Recorder, @@ -50,7 +49,7 @@ func NewReadinessWorker( } } -func (w *readinessWorker) GetQueue() workqueue.DelayingInterface { +func (w *readinessWorker) GetQueue() DelayingInterface { return w.queue }