Skip to content

Commit 27dc2a6

Browse files
Merge pull request #419 from nunnatsa/sync_upstream_main_2026-04-23
OCPBUGS-66890: Sync upstream main 2026-04-23
2 parents 1f31532 + 99404d0 commit 27dc2a6

29 files changed

Lines changed: 628 additions & 276 deletions

.github/workflows/e2e.yaml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push: {}
55
name: e2e
66
jobs:
7-
integration:
7+
integration-tests:
88
runs-on: ubuntu-latest
99
if: (github.repository == 'kubernetes-sigs/cluster-api-provider-kubevirt') && contains(github.event.pull_request.labels.*.name, 'ok-to-test')
1010
strategy:
@@ -29,3 +29,16 @@ jobs:
2929
- name: Test
3030
run: |
3131
$GITHUB_WORKSPACE/project-infra/hack/mkpj.sh --job ${{ matrix.prowjobname }} --pull-number ${{github.event.number}} --kubeconfig $GITHUB_WORKSPACE/project-infra/.kubeconfig --trigger-job --fail-with-job
32+
33+
integration:
34+
runs-on: ubuntu-latest
35+
needs: integration-tests
36+
if: github.repository == 'kubernetes-sigs/cluster-api-provider-kubevirt'
37+
steps:
38+
- name: Check integration status
39+
run: |
40+
if [[ "${{ needs.integration-tests.result }}" != "success" ]]; then
41+
echo "Integration tests failed or were skipped"
42+
exit 1
43+
fi
44+
echo "All integration tests passed"

.github/workflows/test.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
mkdir -p coverprofiles
3737
make test
3838
- name: Push to coveralls.io
39+
continue-on-error: true
3940
env:
4041
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4142
run: |-
@@ -55,7 +56,7 @@ jobs:
5556
uses: golangci/golangci-lint-action@v7
5657
with:
5758
args: --timeout=5m -v
58-
version: v2.7.2
59+
version: v2.11.2
5960

6061
check-gen:
6162
if: github.repository == 'kubernetes-sigs/cluster-api-provider-kubevirt'

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
# Build the manager binary
1818
# Run this with docker build --build-arg builder_image=<golang:x.y.z>
19-
ARG builder_image=docker.io/golang:1.24
19+
ARG builder_image=docker.io/golang:1.25
2020
FROM ${builder_image} as builder
2121
WORKDIR /workspace
2222

Dockerfile.rhtap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_1.24 as builder
1+
FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_1.25 as builder
22

33
# Run this with docker build --build_arg $(go env GOPROXY) to override the goproxy
44
ARG goproxy=https://proxy.golang.org

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ goimports:
341341

342342
GOLANGCI_LINT = $(shell pwd)/bin/golangci-lint
343343
golangci-lint: ## Download golangci-lint locally if necessary.
344-
$(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.4.0)
344+
$(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.11.2)
345345

346346
.PHONY: linter
347347
linter: golangci-lint

config/crd/bases/infrastructure.cluster.x-k8s.io_kubevirtmachines.yaml

Lines changed: 144 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ spec:
286286
resources:
287287
description: |-
288288
resources represents the minimum resources the volume should have.
289-
If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
289+
Users are allowed to specify resource requirements
290290
that are lower than previous value but must still be higher than capacity recorded in the
291291
status field of the claim.
292292
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
@@ -880,6 +880,12 @@ spec:
880880
description: |-
881881
Running state indicates the requested running state of the VirtualMachineInstance
882882
mutually exclusive with Running
883+
Following are allowed values:
884+
- "Always": VMI should always be running.
885+
- "Halted": VMI should never be running.
886+
- "Manual": VMI can be started/stopped using API endpoints.
887+
- "RerunOnFailure": VMI will initially be running and restarted if a failure occurs, but will not be restarted upon successful completion.
888+
- "Once": VMI will run once and not be restarted upon completion regardless if the completion is of phase Failure or Success.
883889
type: string
884890
running:
885891
description: |-
@@ -2673,6 +2679,11 @@ spec:
26732679
please refer to Kubevirt user guide for alternatives.
26742680
Deprecated: Removed in v1.3
26752681
type: object
2682+
passtBinding:
2683+
description: InterfacePasstBinding connects
2684+
to a given network using passt usermode
2685+
networking.
2686+
type: object
26762687
pciAddress:
26772688
description: 'If specified, the virtual
26782689
network interface will be placed on
@@ -3003,18 +3014,44 @@ spec:
30033014
type: boolean
30043015
type: object
30053016
enabled:
3017+
description: |-
3018+
Enabled determines if the feature should be enabled or disabled on the guest.
3019+
Defaults to true.
30063020
type: boolean
30073021
type: object
30083022
tlbflush:
30093023
description: |-
30103024
TLBFlush improves performances in overcommited environments. Requires vpindex.
30113025
Defaults to the machine type setting.
30123026
properties:
3027+
direct:
3028+
description: |-
3029+
Direct allows sending the TLB flush command directly to the hypervisor.
3030+
It can be useful to optimize performance in nested virtualization cases, such as Windows VBS.
3031+
properties:
3032+
enabled:
3033+
description: |-
3034+
Enabled determines if the feature should be enabled or disabled on the guest.
3035+
Defaults to true.
3036+
type: boolean
3037+
type: object
30133038
enabled:
30143039
description: |-
30153040
Enabled determines if the feature should be enabled or disabled on the guest.
30163041
Defaults to true.
30173042
type: boolean
3043+
extended:
3044+
description: Extended allows the guest
3045+
to execute partial TLB flushes.
3046+
It can be helpful for general purpose
3047+
workloads.
3048+
properties:
3049+
enabled:
3050+
description: |-
3051+
Enabled determines if the feature should be enabled or disabled on the guest.
3052+
Defaults to true.
3053+
type: boolean
3054+
type: object
30183055
type: object
30193056
vapic:
30203057
description: |-
@@ -3299,7 +3336,46 @@ spec:
32993336
The delta between MaxGuest and Guest is the amount of memory that can be hot(un)plugged.
33003337
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
33013338
x-kubernetes-int-or-string: true
3339+
reservedOverhead:
3340+
description: |-
3341+
ReservedOverhead configures the memory overhead applied to a VM
3342+
and its characteristics.
3343+
properties:
3344+
addedOverhead:
3345+
anyOf:
3346+
- type: integer
3347+
- type: string
3348+
description: |-
3349+
AddedOverhead determines the memory overhead that will be reserved
3350+
for the VM. It increases the virt-launcher pod memory limit.
3351+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3352+
x-kubernetes-int-or-string: true
3353+
memLock:
3354+
description: |-
3355+
RequiresLock determines whether the VM's and its overhead memory
3356+
need to be locked or not. It is a common practice to enable this
3357+
if vDPA, VFIO or any other specialized hardware that depends on
3358+
DMA is being used by the VM.
3359+
False - (Default) memory lock RLimits are not modified.
3360+
True - Memory lock RLimits will be updated to consider VM memory
3361+
size and memory overhead
3362+
enum:
3363+
- NotRequired
3364+
- Required
3365+
type: string
3366+
type: object
33023367
type: object
3368+
rebootPolicy:
3369+
description: |-
3370+
RebootPolicy specifies how the guest should behave on reboot.
3371+
Reboot (default): The guest is allowed to reboot silently.
3372+
Terminate: The VMI will be terminated on guest reboot, allowing
3373+
higher level controllers (such as the VM controller) to recreate
3374+
the VMI with any updated configuration such as boot order changes.
3375+
enum:
3376+
- Reboot
3377+
- Terminate
3378+
type: string
33033379
resources:
33043380
description: Resources describes the Compute Resources
33053381
required by this vmi.
@@ -3787,9 +3863,10 @@ spec:
37873863
operator:
37883864
description: |-
37893865
Operator represents a key's relationship to the value.
3790-
Valid operators are Exists and Equal. Defaults to Equal.
3866+
Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
37913867
Exists is equivalent to wildcard for value, so that a pod can
37923868
tolerate all taints of a particular category.
3869+
Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
37933870
type: string
37943871
tolerationSeconds:
37953872
description: |-
@@ -3987,6 +4064,41 @@ spec:
39874064
- topologyKey
39884065
- whenUnsatisfiable
39894066
x-kubernetes-list-type: map
4067+
utilityVolumes:
4068+
description: |-
4069+
List of utility volumes that can be mounted to the vmi virt-launcher pod
4070+
without having a matching disk in the domain.
4071+
Used to collect data for various operational workflows.
4072+
items:
4073+
properties:
4074+
claimName:
4075+
description: |-
4076+
claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
4077+
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
4078+
type: string
4079+
name:
4080+
description: |-
4081+
UtilityVolume's name.
4082+
Must be unique within the vmi, including regular Volumes.
4083+
type: string
4084+
readOnly:
4085+
description: |-
4086+
readOnly Will force the ReadOnly setting in VolumeMounts.
4087+
Default false.
4088+
type: boolean
4089+
type:
4090+
description: Type represents the type of the
4091+
utility volume.
4092+
type: string
4093+
required:
4094+
- claimName
4095+
- name
4096+
type: object
4097+
maxItems: 256
4098+
type: array
4099+
x-kubernetes-list-map-keys:
4100+
- name
4101+
x-kubernetes-list-type: map
39904102
volumes:
39914103
description: List of volumes that can be mounted by
39924104
disks belonging to the vmi.
@@ -4162,6 +4274,36 @@ spec:
41624274
required:
41634275
- image
41644276
type: object
4277+
containerPath:
4278+
description: |-
4279+
ContainerPath exposes a path from the virt-launcher container to the VM via virtiofs.
4280+
The path must correspond to an existing volumeMount in the compute container.
4281+
properties:
4282+
path:
4283+
description: |-
4284+
Path is the absolute path within the virt-launcher container to expose to the VM.
4285+
The path must correspond to an existing volumeMount in the compute container.
4286+
maxLength: 4096
4287+
type: string
4288+
x-kubernetes-validations:
4289+
- message: path must be absolute (start
4290+
with '/')
4291+
rule: self.startsWith('/')
4292+
- message: path must not contain '..'
4293+
rule: '!self.contains(''..'')'
4294+
readOnly:
4295+
default: true
4296+
description: |-
4297+
ReadOnly controls whether the volume is exposed as read-only to the VM.
4298+
Defaults to true. Write access is not currently supported.
4299+
type: boolean
4300+
x-kubernetes-validations:
4301+
- message: readOnly must be true, write
4302+
access is not supported
4303+
rule: self == true
4304+
required:
4305+
- path
4306+
type: object
41654307
dataVolume:
41664308
description: |-
41674309
DataVolume represents the dynamic creation a PVC for this volume as well as

0 commit comments

Comments
 (0)