From 97abc3a5c69945d2a73f7192a0f1d4c77dd65e5f Mon Sep 17 00:00:00 2001 From: Gregory Giguashvili Date: Tue, 19 May 2026 09:57:24 +0300 Subject: [PATCH 1/5] update last_lvms_rebase.sh --- scripts/auto-rebase/last_lvms_rebase.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/auto-rebase/last_lvms_rebase.sh b/scripts/auto-rebase/last_lvms_rebase.sh index 5708e8b632..9f9e92df9a 100755 --- a/scripts/auto-rebase/last_lvms_rebase.sh +++ b/scripts/auto-rebase/last_lvms_rebase.sh @@ -1,2 +1,2 @@ #!/bin/bash -x -./scripts/auto-rebase/rebase-lvms.sh to "registry.redhat.io/lvms4/lvms-operator-bundle:v4.17.0-43" +./scripts/auto-rebase/rebase-lvms.sh to "registry.redhat.io/lvms4/lvms-operator-bundle:v4.19.2" From 98e77863aa6d475131510caeb58dc14db97679bb Mon Sep 17 00:00:00 2001 From: Gregory Giguashvili Date: Tue, 19 May 2026 09:57:24 +0300 Subject: [PATCH 2/5] update rebase_job_entrypoint.sh --- scripts/auto-rebase/rebase_job_entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/auto-rebase/rebase_job_entrypoint.sh b/scripts/auto-rebase/rebase_job_entrypoint.sh index 83e5f98e78..50b89fae8f 100755 --- a/scripts/auto-rebase/rebase_job_entrypoint.sh +++ b/scripts/auto-rebase/rebase_job_entrypoint.sh @@ -110,7 +110,7 @@ RHOAI_RELEASE=${rhoai_release} \ # For example, ocp-release at 4.13 will more often than not # correspond to 4.12 LVMS, until the official 4.13 release when both # components will be 4.13. -release_lvms="v4.17.0-43" +release_lvms="v4.19.2" # Since LVMS is not part of the release payload, it is not kept in # CI. Use the latest z-stream that coincides with the release From 400a1fdc8bbd0ad7ca725d8e1f51c646401dc3ee Mon Sep 17 00:00:00 2001 From: Gregory Giguashvili Date: Tue, 19 May 2026 09:57:29 +0300 Subject: [PATCH 3/5] update LVMS manifests --- .../lvms/lvm.topolvm.io_lvmclusters.yaml | 43 +++-- ...topolvm.io_lvmvolumegroupnodestatuses.yaml | 4 +- .../lvms/lvm.topolvm.io_lvmvolumegroups.yaml | 22 ++- .../lvms-operator_apps_v1_deployment.yaml | 3 + ...c.authorization.k8s.io_v1_clusterrole.yaml | 151 ++++-------------- .../lvms/topolvm-configmap_lvms-version.yaml | 2 +- assets/release/release-aarch64.json | 2 +- assets/release/release-x86_64.json | 2 +- 8 files changed, 87 insertions(+), 142 deletions(-) diff --git a/assets/components/lvms/lvm.topolvm.io_lvmclusters.yaml b/assets/components/lvms/lvm.topolvm.io_lvmclusters.yaml index 3d98a66038..bb641144a2 100644 --- a/assets/components/lvms/lvm.topolvm.io_lvmclusters.yaml +++ b/assets/components/lvms/lvm.topolvm.io_lvmclusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.17.3 creationTimestamp: null name: lvmclusters.lvm.topolvm.io spec: @@ -213,6 +213,26 @@ spec: - Host - Static type: string + metadataSize: + anyOf: + - type: integer + - type: string + description: |- + MetadataSize specifies metadata size for thin pool. It used only when MetadataSizeCalculationPolicy + is set to Static. No MetadataSize with a MetadataSizeCalculationPolicy set to Static will result in + default metadata size of 1Gi. It can be between 2Mi and 16Gi due to the underlying limitations of lvm2. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + metadataSizeCalculationPolicy: + default: Host + description: |- + MetadataSizeCalculationPolicy specifies the policy to calculate metadata size for the underlying volume. + When set to Host, the metadata size is calculated based on lvm2 default settings + When set to Static, the metadata size is calculated based on the static size attribute provided within MetadataSize + enum: + - Host + - Static + type: string name: description: Name specifies a name for the thin pool. type: string @@ -286,16 +306,8 @@ spec: conditions: description: Conditions describes the state of the resource. 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: |- @@ -336,12 +348,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 @@ -421,6 +428,8 @@ spec: description: Status tells if the volume group was created on the node type: string + required: + - deviceDiscoveryPolicy type: object type: array type: object diff --git a/assets/components/lvms/lvm.topolvm.io_lvmvolumegroupnodestatuses.yaml b/assets/components/lvms/lvm.topolvm.io_lvmvolumegroupnodestatuses.yaml index d1202d3bb3..a5ca0ada53 100644 --- a/assets/components/lvms/lvm.topolvm.io_lvmvolumegroupnodestatuses.yaml +++ b/assets/components/lvms/lvm.topolvm.io_lvmvolumegroupnodestatuses.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.17.3 creationTimestamp: null name: lvmvolumegroupnodestatuses.lvm.topolvm.io spec: @@ -94,6 +94,8 @@ spec: description: Status tells if the volume group was created on the node type: string + required: + - deviceDiscoveryPolicy type: object type: array type: object diff --git a/assets/components/lvms/lvm.topolvm.io_lvmvolumegroups.yaml b/assets/components/lvms/lvm.topolvm.io_lvmvolumegroups.yaml index b3e9e88fe9..336e5e70fa 100644 --- a/assets/components/lvms/lvm.topolvm.io_lvmvolumegroups.yaml +++ b/assets/components/lvms/lvm.topolvm.io_lvmvolumegroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.17.3 creationTimestamp: null name: lvmvolumegroups.lvm.topolvm.io spec: @@ -176,6 +176,26 @@ spec: - Host - Static type: string + metadataSize: + anyOf: + - type: integer + - type: string + description: |- + MetadataSize specifies metadata size for thin pool. It used only when MetadataSizeCalculationPolicy + is set to Static. No MetadataSize with a MetadataSizeCalculationPolicy set to Static will result in + default metadata size of 1Gi. It can be between 2Mi and 16Gi due to the underlying limitations of lvm2. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + metadataSizeCalculationPolicy: + default: Host + description: |- + MetadataSizeCalculationPolicy specifies the policy to calculate metadata size for the underlying volume. + When set to Host, the metadata size is calculated based on lvm2 default settings + When set to Static, the metadata size is calculated based on the static size attribute provided within MetadataSize + enum: + - Host + - Static + type: string name: description: Name specifies a name for the thin pool. type: string diff --git a/assets/components/lvms/lvms-operator_apps_v1_deployment.yaml b/assets/components/lvms/lvms-operator_apps_v1_deployment.yaml index c50a1b9eef..a4a912e296 100644 --- a/assets/components/lvms/lvms-operator_apps_v1_deployment.yaml +++ b/assets/components/lvms/lvms-operator_apps_v1_deployment.yaml @@ -66,6 +66,9 @@ spec: memory: 50Mi securityContext: allowPrivilegeEscalation: false + capabilities: + drop: + - NET_RAW terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs diff --git a/assets/components/lvms/lvms-operator_rbac.authorization.k8s.io_v1_clusterrole.yaml b/assets/components/lvms/lvms-operator_rbac.authorization.k8s.io_v1_clusterrole.yaml index c1eb320eac..7a3fac454a 100644 --- a/assets/components/lvms/lvms-operator_rbac.authorization.k8s.io_v1_clusterrole.yaml +++ b/assets/components/lvms/lvms-operator_rbac.authorization.k8s.io_v1_clusterrole.yaml @@ -1,56 +1,9 @@ rules: - - apiGroups: - - apps - resources: - - daemonsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - deployments - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - replicasets - verbs: - - get - - apiGroups: - - config.openshift.io - resources: - - infrastructures - verbs: - - get - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - apiGroups: - "" resources: - configmaps + - persistentvolumes verbs: - create - delete @@ -106,28 +59,24 @@ rules: - apiGroups: - "" resources: - - persistentvolumes + - pods verbs: - - create - delete - get - list - - patch - - update - watch - apiGroups: - - "" + - apiextensions.k8s.io resources: - - pods + - customresourcedefinitions verbs: - - delete - get - list - - watch - apiGroups: - - lvm.topolvm.io + - apps resources: - - lvmclusters + - daemonsets + - deployments verbs: - create - delete @@ -137,23 +86,35 @@ rules: - update - watch - apiGroups: - - lvm.topolvm.io + - apps resources: - - lvmclusters/finalizers + - replicasets verbs: - - update + - get - apiGroups: - - lvm.topolvm.io + - config.openshift.io resources: - - lvmclusters/status + - infrastructures verbs: - get + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - delete + - get + - list - patch - update + - watch - apiGroups: - lvm.topolvm.io resources: + - lvmclusters - lvmvolumegroupnodestatuses + - lvmvolumegroups verbs: - create - delete @@ -165,21 +126,25 @@ rules: - apiGroups: - lvm.topolvm.io resources: + - lvmclusters/finalizers - lvmvolumegroupnodestatuses/finalizers + - lvmvolumegroups/finalizers verbs: - update - apiGroups: - lvm.topolvm.io resources: + - lvmclusters/status - lvmvolumegroupnodestatuses/status + - lvmvolumegroups/status verbs: - get - patch - update - apiGroups: - - lvm.topolvm.io + - monitoring.coreos.com resources: - - lvmvolumegroups + - servicemonitors verbs: - create - delete @@ -188,20 +153,6 @@ rules: - patch - update - watch - - apiGroups: - - lvm.topolvm.io - resources: - - lvmvolumegroups/finalizers - verbs: - - update - - apiGroups: - - lvm.topolvm.io - resources: - - lvmvolumegroups/status - verbs: - - get - - patch - - update - apiGroups: - security.openshift.io resources: @@ -254,37 +205,7 @@ rules: - storage.k8s.io resources: - csidrivers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - storage.k8s.io - resources: - - csinodes - verbs: - - get - - list - - watch - - apiGroups: - - storage.k8s.io - resources: - csistoragecapacities - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - storage.k8s.io - resources: - storageclasses verbs: - create @@ -297,6 +218,7 @@ rules: - apiGroups: - storage.k8s.io resources: + - csinodes - volumeattachments verbs: - get @@ -306,17 +228,6 @@ rules: - topolvm.io resources: - logicalvolumes - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - topolvm.io - resources: - logicalvolumes/status verbs: - create diff --git a/assets/components/lvms/topolvm-configmap_lvms-version.yaml b/assets/components/lvms/topolvm-configmap_lvms-version.yaml index 3432ad6682..e0db3091e7 100644 --- a/assets/components/lvms/topolvm-configmap_lvms-version.yaml +++ b/assets/components/lvms/topolvm-configmap_lvms-version.yaml @@ -4,4 +4,4 @@ metadata: name: lvms-version namespace: kube-public data: - version: v4.17.0-43 + version: v4.19.2 diff --git a/assets/release/release-aarch64.json b/assets/release/release-aarch64.json index c977517605..0102bfb2b2 100644 --- a/assets/release/release-aarch64.json +++ b/assets/release/release-aarch64.json @@ -10,7 +10,7 @@ "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:0c4f0e3c690e23cd3810fe2e29227cbf663c88c41b28b0da468e35ede93ddf96", "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:bcefd0d98433dfcff2a48b5d053f94c9d285290f3d55f80119a815d6f07cb767", "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9d4ac2aa2c8bea7274e9c14d8d2b498c8c02b2707d4bbeec16a17dc4d1f64936", - "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:03771d66c0ed8a422c012ffaf6f390d8c3191e02330ef9b9dee00af518928d6e", + "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:bb826c5e38b7c0ced02cfce71b7e188d30a4adaff620ca458f25e4d2a602f2fd", "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:abe1bef4ef3dbca16f0bd8da1d94ee6558909368fe239e33b9ab90817cee0271" } } diff --git a/assets/release/release-x86_64.json b/assets/release/release-x86_64.json index e1fbc09cab..3d322b55d5 100644 --- a/assets/release/release-x86_64.json +++ b/assets/release/release-x86_64.json @@ -10,7 +10,7 @@ "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:62869cdbc4f489c0ed7eada63e3184d02b01cd240eb670d515e422e766b48ca5", "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:bf1c3fd0dcfc8a6fefacac01de99b1cb169fb0eb9e2267cda13e68dcb91bacac", "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fb4867207dbde05c2bacf1654efada97ca08cddebaf83e9f744c87c9946e190c", - "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:c5f0ad26372afdd4d3e6a37fdb5cdf0c91304c0e994ec885e2db89e851081504", + "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:a81da51f8d1ef03fdf1e64a94741f1d672e4fb970c4be570394c6a6e2e4f7363", "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:bd199d099388dbed15e42560fc4a56a5e67c172987dcce0bb12a1f205cfad9b9" } } From b71930f0ca60110e405c3cef63a7066ccbf74986 Mon Sep 17 00:00:00 2001 From: Pablo Acevedo Montserrat Date: Fri, 5 Sep 2025 11:30:37 +0200 Subject: [PATCH 4/5] Fix semver suffix handling for lvms rebase --- scripts/auto-rebase/rebase_job_entrypoint.sh | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/scripts/auto-rebase/rebase_job_entrypoint.sh b/scripts/auto-rebase/rebase_job_entrypoint.sh index 50b89fae8f..d0aa23a2b4 100755 --- a/scripts/auto-rebase/rebase_job_entrypoint.sh +++ b/scripts/auto-rebase/rebase_job_entrypoint.sh @@ -5,22 +5,19 @@ set -o errexit set -o pipefail set -x -check_semver_suffix() { +check_semver_no_suffix() { local version=$1 # Check if the version is not empty if [[ -z "$version" ]]; then - echo "false" - return 1 + return 0 fi # Check if the version string contains a numeric suffix of the form -xx if [[ $version =~ -[0-9]+$ ]]; then - echo "true" - return 0 - else - echo "false" return 1 + else + return 0 fi } @@ -120,8 +117,7 @@ pullspec_release_lvms="registry.redhat.io/lvms4/lvms-operator-bundle:${release_l # the latest lvms release candidate replicated from CPaaS into quay pullspec_release_lvms_fallback="quay.io/lvms_dev/lvms4-lvms-operator-bundle:${release_lvms}" -lvms_is_candidate_build=$(check_semver_suffix "${release_lvms}") -if [ "$lvms_is_candidate_build" == "false" ]; then +if check_semver_no_suffix "${release_lvms}"; then ./scripts/auto-rebase/rebase-lvms.sh to "${pullspec_release_lvms}" else ./scripts/auto-rebase/rebase-lvms.sh to "${pullspec_release_lvms_fallback}" From a4e8bb2738c871f686951352156a66dddd4b67be Mon Sep 17 00:00:00 2001 From: Pablo Acevedo Montserrat Date: Tue, 13 Jan 2026 12:24:46 +0100 Subject: [PATCH 5/5] Use source image instead of optionals for standard-suite2 scenario --- test/scenarios/presubmits/el96-src@standard-suite2.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/scenarios/presubmits/el96-src@standard-suite2.sh b/test/scenarios/presubmits/el96-src@standard-suite2.sh index 1fd6cfd47a..695d1b02e7 100644 --- a/test/scenarios/presubmits/el96-src@standard-suite2.sh +++ b/test/scenarios/presubmits/el96-src@standard-suite2.sh @@ -3,7 +3,7 @@ # Sourced from scenario.sh and uses functions defined there. scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template rhel-9.6-microshift-source-optionals + prepare_kickstart host1 kickstart.ks.template rhel-9.6-microshift-source launch_vm }