Skip to content

Releases: kubernetes-sigs/cluster-api-provider-vsphere

v1.12.0-beta.0

06 Nov 17:34
v1.12.0-beta.0
8432187
Compare
Choose a tag to compare
v1.12.0-beta.0 Pre-release
Pre-release

🚨 This is a BETA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.

Changes since v1.11.0

πŸ“ˆ Overview

  • 45 new commits merged
  • 5 feature additions ✨
  • 2 bugs fixed πŸ›

✨ New Features

  • Bump to CAPI v1.9.0-beta.0 (#3249)
  • Enable NSX LB healthcheck on kube-apiserver (#3128)
  • Enables explicit disabling of cluster module (#3224)
  • Govmomi: support vCenter 9 (#3225)
  • Supervisor: implement support for autoscale to/from zero (#3161)

πŸ› Bug Fixes

  • Proper ignore IPv6 announcements when IPv6 is not requested (#3246)
  • Small test fix. Remove OwnerReference & Check for Finalizers being empty (#3178)

🌱 Others

  • Bump cluster-api and govmomi, separate flavorgen (#3233)
  • Bump nsx-operator API mod (#3174)
  • Bump sigs.k8s.io/cluster-api to [email protected] (#3206)
  • Bump sigs.k8s.io/cluster-api to v1.8.2 (#3184)
  • Bump to Go 1.22.7 (#3195)
  • Bump ubuntu to 24.04 images (#3156)
  • Csi: use images from new location (#3200)
  • Drop actions for release-1.7 & release-1.8 jobs (#3172)
  • Fix return messages to contain proper VM information (#3235)
  • Golangci-lint: only exclude specific deprecations (#3160)
  • Hack: add script for creating mirror repo PRs (#3234)
  • Main.go: add flags for webhook cert-name and -key (#3215)
  • Makefile: set GOTOOLCHAIN=auto for generate-flavors to make it work in cloudbuild (#3237)
  • Move ProviderServiceAccount & ServiceDiscovery controller to supervisor package (#3179)
  • Pr-verify: use env var for passing the PR title (#3207)
  • Prepare main branch for v1.12 development (#3159)
  • Remove killianmuldoon as maintainer (#3244)
  • Replace CAPI's clustercache tracker by the new clustercache (#3236)
  • Switch to using ECR mirror for trivy DB repo (#3238)
  • Test: Bump autoscaler to v1.31.0 (#3176)
  • Test: check failureDomains on VSphereCluster in e2e test (#3148)
  • Test: use ubuntu 24.04 in Runtime SDK test (#3163)
  • Verify PR titles with shell script (#3188)

Dependencies

Added

  • cel.dev/expr: v0.15.0
  • dario.cat/mergo: v1.0.1
  • github.com/antlr4-go/antlr/v4: v4.13.0

Changed

  • github.com/Masterminds/semver/v3: v3.2.0 β†’ v3.3.0
  • github.com/Masterminds/sprig/v3: v3.2.3 β†’ v3.3.0
  • github.com/adrg/xdg: v0.5.0 β†’ v0.5.3
  • github.com/alecthomas/kingpin/v2: v2.3.2 β†’ v2.4.0
  • github.com/cenkalti/backoff/v4: v4.2.1 β†’ v4.3.0
  • github.com/cespare/xxhash/v2: v2.2.0 β†’ v2.3.0
  • github.com/cncf/xds/go: 0fa0005 β†’ 555b57e
  • github.com/coredns/corefile-migration: v1.0.23 β†’ v1.0.24
  • github.com/fatih/color: v1.17.0 β†’ v1.18.0
  • github.com/fxamacker/cbor/v2: v2.6.0 β†’ v2.7.0
  • github.com/gobuffalo/flect: v1.0.2 β†’ v1.0.3
  • github.com/golang/glog: v1.2.0 β†’ v1.2.1
  • github.com/google/cel-go: v0.17.8 β†’ v0.20.1
  • github.com/google/pprof: 813a5fb β†’ d1b30fe
  • github.com/grpc-ecosystem/grpc-gateway/v2: v2.16.0 β†’ v2.20.0
  • github.com/huandu/xstrings: v1.3.3 β†’ v1.5.0
  • github.com/matttproud/golang_protobuf_extensions: v1.0.4 β†’ v1.0.1
  • github.com/moby/spdystream: v0.2.0 β†’ v0.4.0
  • github.com/moby/term: 1aeaba8 β†’ v0.5.0
  • github.com/onsi/ginkgo/v2: v2.20.0 β†’ v2.21.0
  • github.com/onsi/gomega: v1.34.1 β†’ v1.35.1
  • github.com/prometheus/client_golang: v1.18.0 β†’ v1.19.1
  • github.com/prometheus/client_model: v0.6.0 β†’ v0.6.1
  • github.com/prometheus/common: v0.45.0 β†’ v0.55.0
  • github.com/prometheus/procfs: v0.12.0 β†’ v0.15.1
  • github.com/rogpeppe/go-internal: v1.11.0 β†’ v1.12.0
  • github.com/shopspring/decimal: v1.3.1 β†’ v1.4.0
  • github.com/sirupsen/logrus: v1.9.0 β†’ v1.9.3
  • github.com/spf13/cast: v1.6.0 β†’ v1.7.0
  • github.com/vmware-tanzu/nsx-operator/pkg/apis: v0.1.0 β†’ 8f09829
  • github.com/vmware/govmomi: v0.39.0 β†’ v0.45.1
  • go.etcd.io/bbolt: v1.3.8 β†’ v1.3.9
  • go.etcd.io/etcd/api/v3: v3.5.15 β†’ v3.5.16
  • go.etcd.io/etcd/client/pkg/v3: v3.5.15 β†’ v3.5.16
  • go.etcd.io/etcd/client/v2: v2.305.10 β†’ v2.305.13
  • go.etcd.io/etcd/client/v3: v3.5.15 β†’ v3.5.16
  • go.etcd.io/etcd/pkg/v3: v3.5.10 β†’ v3.5.13
  • go.etcd.io/etcd/raft/v3: v3.5.10 β†’ v3.5.13
  • go.etcd.io/etcd/server/v3: v3.5.10 β†’ v3.5.13
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.42.0 β†’ v0.53.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.49.0 β†’ v0.53.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.20.0 β†’ v1.27.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.20.0 β†’ v1.28.0
  • go.opentelemetry.io/otel/metric: v1.24.0 β†’ v1.28.0
  • go.opentelemetry.io/otel/sdk: v1.20.0 β†’ v1.28.0
  • go.opentelemetry.io/otel/trace: v1.24.0 β†’ v1.28.0
  • go.opentelemetry.io/otel: v1.24.0 β†’ v1.28.0
  • go.opentelemetry.io/proto/otlp: v1.0.0 β†’ v1.3.1
  • golang.org/x/crypto: v0.26.0 β†’ v0.28.0
  • golang.org/x/mod: v0.20.0 β†’ v0.21.0
  • golang.org/x/net: v0.28.0 β†’ v0.30.0
  • golang.org/x/oauth2: v0.21.0 β†’ v0.23.0
  • golang.org/x/sys: v0.23.0 β†’ v0.26.0
  • golang.org/x/term: v0.23.0 β†’ v0.25.0
  • golang.org/x/text: v0.17.0 β†’ v0.19.0
  • golang.org/x/tools: v0.24.0 β†’ v0.26.0
  • google.golang.org/appengine: v1.6.8 β†’ v1.6.7
  • google.golang.org/genproto/googleapis/api: a219d84 β†’ 5315273
  • google.golang.org/genproto/googleapis/rpc: 6e1732d β†’ f6361c8
  • google.golang.org/genproto: ef43131 β†’ b8732ec
  • google.golang.org/grpc: v1.62.2 β†’ v1.65.1
  • google.golang.org/protobuf: v1.34.1 β†’ v1.35.1
  • k8s.io/api: v0.30.3 β†’ v0.31.2
  • k8s.io/apiextensions-apiserver: v0.30.3 β†’ v0.31.2
  • k8s.io/apimachinery: v0.30.3 β†’ v0.31.2
  • k8s.io/apiserver: v0.30.3 β†’ v0.31.2
  • k8s.io/client-go: v0.30.3 β†’ v0.31.2
  • k8s.io/cluster-bootstrap: v0.30.3 β†’ v0.31.2
  • k8s.io/code-generator: v0.30.3 β†’ v0.31.2
  • k8s.io/component-base: v0.30.3 β†’ v0.31.2
  • k8s.io/klog/v2: v2.120.1 β†’ v2.130.1
  • k8s.io/kms: v0.30.3 β†’ v0.31.2
  • k8s.io/utils: b307cd5 β†’ 18e509b
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.30.0 β†’ v0.30.3
  • sigs.k8s.io/cluster-api: v1.8.1 β†’ v1.9.0-beta.0
  • sigs.k8s.io/controller-runtime: v0.18.5 β†’ v0.19.1

Removed

  • cloud.google.com/go/compute: v1.23.3
  • cloud.google.com/go: v0.26.0
  • github.com/antlr/antlr4/runtime/Go/antlr/v4: 8188dc5
  • github.com/chai2010/gettext-go: v1.0.2
  • github.com/chzyer/logex: v1.1.10
  • github.com/chzyer/test: a1ea475
  • github.com/client9/misspell: v0.3.4
  • github.com/cncf/udpa/go: c52dc94
  • github.com/daviddengcn/go-colortext: v1.0.0
  • github.com/exponent-io/jsonpath: d6023ce
  • github.com/fatih/camelcase: v1.0.0
  • github.com/fvbommel/sortorder: v1.1.0
  • github.com/go-errors/errors: v1.4.2
  • github.com/golang/mock: v1.1.1
  • github.com/google/shlex: e7afc7f
  • github.com/liggitt/tabwriter: 89fcab3
  • github.com/lithammer/dedent: v1.1.0
  • github.com/mitchellh/go-wordwrap: v1.0.1
  • github.com/monochromegane/go-gitignore: 205db1a
  • github.com/sergi/go-diff: v1.2.0
  • go.starlark.net: a134d8f
  • golang.org/x/lint: d0100b6
  • k8s.io/cli-runtime: v0.30.3
    ...
Read more

v1.11.2

17 Oct 09:09
v1.11.2
b311ee8
Compare
Choose a tag to compare

Changes since v1.11.1

πŸ“ˆ Overview

  • 2 new commits merged
  • 1 feature addition ✨

✨ New Features

  • Govmomi: support vCenter 9 (#3227)

🌱 Others

  • Pr-verify: use env var for passing the PR title (#3208)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.10.4

17 Oct 09:09
v1.10.4
a3d29f8
Compare
Choose a tag to compare

Changes since v1.10.3

πŸ“ˆ Overview

  • 3 new commits merged
  • 1 feature addition ✨

✨ New Features

  • Govmomi: support vCenter 9 (#3228)

🌱 Others

  • [release-1.10] Improve ReconcileDependencies for VM Operator to handle concurrency on availabityZone changes (#3220)
  • Pr-verify: use env var for passing the PR title (#3209)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.9.6

17 Oct 09:09
v1.9.6
0035f82
Compare
Choose a tag to compare

Changes since v1.9.5

πŸ“ˆ Overview

  • 3 new commits merged
  • 1 feature addition ✨

✨ New Features

  • Govmomi: support vCenter 9 (#3226)

🌱 Others

  • Fix v1.8 clusterctl upgrade e2e tests (#3204)
  • Pr-verify: use env var for passing the PR title (#3210)

Thanks to all our contributors! 😊

v1.9.5

24 Sep 14:03
v1.9.5
aad8649
Compare
Choose a tag to compare

Highlights

With this release CSI images are referenced from the official community registry (registry.k8s.io) because the old location (gcr.io) was deleted.
We recommend all users to upgrade to this patch release.

Changes since v1.9.4

πŸ“ˆ Overview

  • 5 new commits merged
  • 1 bug fixed πŸ›

πŸ› Bug Fixes

  • Drop caBundle from CRDs to support Kubernetes 1.31 (#3132)

🌱 Others

  • Bump CAPV to from v1.8.10 and v1.7.7 for upgrade tests (#3124)
  • Bump to Go 1.22.7 (#3198)
  • csi: use images from new location (#3203)
  • Test: add env var to allow setting CPI to insecure and use it in CI (#3116)
  • Verify PR titles with shell script (#3192)

Thanks to all our contributors! 😊

v1.11.1

23 Sep 17:25
v1.11.1
228bb2f
Compare
Choose a tag to compare

Highlights

With this release CSI images are referenced from the official community registry (registry.k8s.io) because the old location (gcr.io) was deleted.
We recommend all users to upgrade to this release.

Changes since v1.11.0

πŸ“ˆ Overview

  • 11 new commits merged
  • 2 feature additions ✨

✨ New Features

  • Enable NSX LB healthcheck on kube-apiserver (#3170)
  • Supervisor: implement support for autoscale to/from zero (#3171)

🌱 Others

  • [release-1.11] csi: use images from new location (#3201)
  • Bump nsx-operator API mod (#3175)
  • Bump sigs.k8s.io/cluster-api to v1.8.2 (#3185)
  • Bump to Go 1.22.7 (#3196)
  • Bump ubuntu to 24.04 images (#3169)
  • Set base branch correctly for link checker (#3111)
  • Test: Bump autoscaler to v1.31.0 (#3177)
  • Test: use ubuntu 24.04 in Runtime SDK test (#3165)
  • Verify PR titles with shell script (#3190)

Dependencies

Added

Nothing has changed.

Changed

  • github.com/vmware-tanzu/nsx-operator/pkg/apis: v0.1.0 β†’ 8f09829
  • sigs.k8s.io/cluster-api: v1.8.1 β†’ v1.8.2

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.10.3

23 Sep 17:25
v1.10.3
ec192ef
Compare
Choose a tag to compare

Highlights

With this release CSI images are referenced from the official community registry (registry.k8s.io) because the old location (gcr.io) was deleted.
We recommend all users to upgrade to this patch release.

Changes since v1.10.2

πŸ“ˆ Overview

  • 4 new commits merged
  • 1 bug fixed πŸ›

πŸ› Bug Fixes

  • Drop caBundle from CRDs to support Kubernetes 1.31 (#3133)

🌱 Others

  • csi: use images from new location (#3202)
  • Bump to Go 1.22.7 (#3197)
  • Verify PR titles with shell script (#3191)

Dependencies

Added

Nothing has changed.

Changed

Nothing has changed.

Removed

Nothing has changed.

Thanks to all our contributors! 😊

v1.11.1-rc.0

03 Sep 12:52
v1.11.1-rc.0
b4bb9e3
Compare
Choose a tag to compare
v1.11.1-rc.0 Pre-release
Pre-release

🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an issue.

Changes since v1.11.0

✨ New Features

  • Enable NSX LB healthcheck on kube-apiserver (#3170)
  • Supervisor: implement support for autoscale to/from zero (#3171)

🌱 Others

  • Bump nsx-operator API mod (#3175)
  • Bump ubuntu to 24.04 images (#3169)
  • Set base branch correctly for link checker (#3111)
  • Test: Bump autoscaler to v1.31.0 (#3177)
  • Test: use ubuntu 24.04 in Runtime SDK test (#3165)

Dependencies

Added

Nothing has changed.

Changed

  • github.com/vmware-tanzu/nsx-operator/pkg/apis: v0.1.0 β†’ 8f09829
  • sigs.k8s.io/cluster-api: v1.8.1 β†’ 18d9dd9

Removed

Nothing has changed.


_Thanks to all our contributors!_ 😊

v1.11.0

14 Aug 11:26
v1.11.0
a26d51d
Compare
Choose a tag to compare

Highlights

  • Tested with Kubernetes v1.31 & cloud-provider-vsphere v1.31
  • Based on Cluster API v1.8
  • Bumped to controller-runtime v0.18, k8s.io/* v0.30, controller-gen v0.15
  • Bumped to Go 1.22

supervisor mode:

  • Significantly improved unit and e2e test coverage (#2995)
  • VirtualMachine namingStrategy (#3099)
  • Now uses vm-operator v1alpha2 APIs (#3029, #3104)
  • Dropped ProviderServiceAccount ConfigMap and deprecated ProviderServiceAccountFinalizer (#3009)
  • Support for namespace-scoped Zones (#3146)

govmomi mode:

  • Support for vGPU (#3025)
  • Removed the keep alive feature (#2984)
  • Use sha256 thumbprint in tests (#3076) (using sha1 thumbprint is now deprecated)

Changes since v1.10

πŸ“ˆ Overview

  • 142 new commits merged
  • 13 feature additions ✨
  • 5 bugs fixed πŸ›

✨ New Features

  • Add Namespace Scoped Zone Discovery and Watch (#3146)
  • Add validating and mutating webhook for supervisor mode (#2651)
  • Bump CAPI to v1.8.0 (#3151)
  • Bump CAPI to v1.8.0-beta.0 (#3107)
  • Bump CAPI to v1.8.1 and CPI to v1.31.0 (#3155)
  • Bump Cluster API to v1.8.0-rc.1 (#3142)
  • Bump CPI to v1.31.0-beta.0 (#3108)
  • Bump e2e tests to kubernetes v1.31.0 (#3154)
  • Implement VirtualMachine namingStrategy (#3099)
  • Test/e2e: use vSphere projects from Boskos (#3034)
  • VGPU implementation (#3025)
  • VGPU implementation - follow-ups (#3101)
  • Vm-operator: migrate to v1alpha2 (#3029)

πŸ› Bug Fixes

  • Config: drop the deprecated --enable-keep-alive flag from the template (#2947)
  • Drop caBundle from CRDs to support Kubernetes 1.31 (#3131)
  • Fix unit tests, improve debuggability (#3126)
  • Run only one manager with webhooks for supervisor tests (#3021)
  • Vmoperator: fix nil pointer when reconciling VM (#3112)

🌱 Others

  • Add Go directive check as Makefile target (#3004)
  • Add release-1.11 to GitHub actions (#3110)
  • Bump CAPI to v1.7.0 (#2911)
  • Bump CAPI to v1.7.1 (#2940)
  • Bump CAPI to v1.8.0-rc.0 (#3127)
  • Bump CPI to v1.31.0-rc.1 (#3144)
  • Bump Go to 1.21.11 (#3041)
  • Bump Kubernetes images to v1.30.0 (#2918)
  • Bump Kubernetes version in tests to 1.31.0-rc.1 (#3138)
  • Bump sigs.k8s.io/cluster-api to v1.8.0-beta.1 (#3119)
  • Bump to CAPI main (v1.8.0 pre alpha) (#3033)
  • Bump to Go 1.22.5 (#3090)
  • Bump to golangci-lint v1.59.0 (#3062)
  • Bump vm-operator to v1.8.6 (#2914)
  • Bump vSphere CPI to v1.30.0 (#2923)
  • Cleanup janitor (#3057)
  • Cloudbuild: bump images to match capi (#3051)
  • Controllers: add unit test coverage for esxi host label on supervisor (#3085)
  • Controllers: fix ProviderServiceAccount tests to create objects on-demand (#2983)
  • Drop integration tests (#2919)
  • Drop pre-load of cert-manager images in E2E tests (#3060)
  • Drop redundant e2e tests (#2996)
  • Drop test coverage for release-1.6 and update README.md (#2958)
  • Drop WCP fault domains feature gate (#3118)
  • E2e: introduce and use KUBERNETES_VERSION_MANAGEMENT variable which builds kindest/node image on demand (#3137)
  • Fill up supervisor e2e test - ClusterClass changes (#3011)
  • Fill up supervisor e2e test - ClusterClass rollouts (#3023)
  • Fill up supervisor e2e test - clusterctl upgrades using ClusterClass (#3024)
  • Fix flake where VSphereFailureDomain still exists from previous test (#3123)
  • Flavorgen: Bump CSI to v3.3.0 (#3088)
  • Flavorgen: enforce VSPHERE_USERNAME and VSPHERE_PASSWORD variables to be set as string in templates (#3028)
  • Generate vm-operator YAML instead of downloading it from GCS (#2931)
  • Github: adjust weekly actions to also test release-1.10 (#2903)
  • Hack/e2e don't add binary files to artifacts and also censor base64 encoded values (#2989)
  • Hack: remove references to GCR_KEY_FILE (#2990)
  • Improve checking if guest cluster client works in unit tests (#3136)
  • Improve vm operator target + use config/wcp (#2932)
  • Makefile: add hack/tools to go test (#3063)
  • Makefile: adjust prowjob-gen for upstream job removal (#3143)
  • Makefile: drop OVERRIDES_DIR and dependent make targets (#3052)
  • Optimize dependabot config (#2979)
  • Packaging: write kubeadm script log for ignition (#3149)
  • Prepare main for development of release v1.11 (#2950)
  • Push manifests for main & release-.* (#2949)
  • Remove keep alive feature (#2984)
  • Retry CRD detection during startup (#2917)
  • Set terminationMessagePolicy to FallbackToLogsOnError for all managers (#2988)
  • Store nightly manifests in k8s-staging-capi-vsphere (#2930)
  • Supervisor: drop ProviderServiceAccount ConfigMap and deprecate ProviderServiceAccountFinalizer (#3009)
  • Surface more conditions about VirtualMachine pre-prequisites (#3104)
  • Sync dependabot config with core CAPI (#3066)
  • Templates: add a script to run prekubeadmcommands in order of files defined in /etc/pre-kubeadm-scripts (#2906)
  • Test OwnerReferences and Finalizers for Supervisor (#3059)
  • Test VirtualMachine pre-requisites only before creation (#3105)
  • Test: add coverage to find issues running on the next kubernetes release as management cluster (#3139)
  • Test: allow retries creating vcsim (#3096)
  • Test: bump core-CAPI v1.8.0-beta.0 to nightly image build (#3113)
  • Test: Bump CPI to v1.31.0-rc.0 (#3129)
  • Test: dump resources before ValidateResourceVersionStable test (#3120)
  • Test: enable vcsim for clusterclass rollout test (#3117)
  • Test: enable vcsim to run clusterctl upgrade e2e tests (#3109)
  • Test: ensure we can collect machine logs (#3145)
  • Test: fix collector for machines not having an IP in status and change ignition ssh user to capv (#3010)
  • Test: fix wording in vsphere.yaml comment, always use bootstrapClusterProxy to get vCenterSimulator (#3097)
  • Test: implement check for all pods running (#3089)
  • Test: implement cluster upgrade with Runtime SDK (#3069)
  • Test: migrate to vm-operator v1alpha2 (#3032)
  • Test: use a daemonset and kubectl exec to provide images to remote clusters (#2955)
  • Test: use rolloutStrategy to speed up K8s-Upgrade tests to not hit rollout timeout (#3061)
  • Test: wait for nodes being ready before testing resource versions being stable (#3114)
  • Testutil: fix import name for fake client library (#3147)
  • Update Makefile doc about nightly manifests (#2939)
  • Use absolute paths for folder and resourcePool (#3035)
  • Use kind for clusterctl upgrade tests (#3050)
  • Use release markers in e2e config to fetch lastest releases (#2895)
  • Use setup-envtest from CR main (05/2024) to use envtest binaries from CT releases (#3016)
  • Use sha256 thumbprint in tests (#3076)
  • Use vm operator v1.8.6 for supervisor e2e testing (#2894)
  • Vcsim: implement cluster proxy to allow more e2e tests to be compatible to vcsim (#3072)

πŸ“– Additionally, there have been 5 contributions to our documentation and book. (#2928, #2951, #2959, #2999, #3157)

Dependencies

Added

  • github.com/dvyukov/go-fuzz: 6a8e9d1
  • github.com/fxamacker/cbor/v2: v2.6.0
  • github.com/go-task/slim-sprig/v3: v3.0.0
  • github.com/x448/float16: v0.8.4
  • go4.org/netipx: fdeea32
  • golang.org/x/exp/typeparams: 732eee0
  • k8s.io/gengo/v2: 51d4e06

Changed

Read more

templates/v1.31.0

14 Aug 08:17
31ee7f1
Compare
Choose a tag to compare

VM templates for Kubernetes v1.31

If an OVA image consists of multiple parts, use cat <image>-parts* > <image>.ova to join them back.