--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 operatorframework.io/installed-alongside-64c1ad118c5e6e35: openshift-storage/lvms-operator.v4.18.3 creationTimestamp: "2025-10-11T10:47:17Z" generation: 1 labels: olm.managed: "true" operators.coreos.com/lvms-operator.openshift-storage: "" managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:controller-gen.kubebuilder.io/version: {} f:operatorframework.io/installed-alongside-64c1ad118c5e6e35: {} f:labels: .: {} f:olm.managed: {} f:spec: f:conversion: .: {} f:strategy: {} f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:scope: {} f:versions: {} manager: catalog operation: Update time: "2025-10-11T10:47:17Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:conditions: k:{"type":"Established"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"NamesAccepted"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} manager: kube-apiserver operation: Update subresource: status time: "2025-10-11T10:47:17Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:operators.coreos.com/lvms-operator.openshift-storage: {} manager: olm operation: Update time: "2025-10-11T10:47:30Z" name: lvmvolumegroups.lvm.topolvm.io resourceVersion: "25656" uid: 7ecfe288-9a9d-42fb-a8b2-8a36eb756d2a spec: conversion: strategy: None group: lvm.topolvm.io names: kind: LVMVolumeGroup listKind: LVMVolumeGroupList plural: lvmvolumegroups singular: lvmvolumegroup scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: LVMVolumeGroup is the Schema for the lvmvolumegroups API properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: LVMVolumeGroupSpec defines the desired state of LVMVolumeGroup properties: default: description: Default is a flag to indicate whether the device-class is the default type: boolean deviceSelector: description: DeviceSelector is a set of rules that should match for a device to be included in this TopoLVMCluster properties: forceWipeDevicesAndDestroyAllData: description: |- ForceWipeDevicesAndDestroyAllData is a flag to force wipe the selected devices. This wipes the file signatures on the devices. Use this feature with caution. Force wipe the devices only when you know that they do not contain any important data. type: boolean optionalPaths: description: OptionalPaths specify the optional device paths. items: type: string type: array paths: description: Paths specify the device paths. items: type: string type: array type: object nodeSelector: description: NodeSelector chooses nodes properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: |- A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. items: description: |- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: |- Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: |- An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object x-kubernetes-map-type: atomic thinPoolConfig: description: ThinPoolConfig contains configurations for the thin-pool properties: chunkSize: anyOf: - type: integer - type: string description: |- ChunkSize specifies the statically calculated chunk size for the thin pool. Thus, It is only used when the ChunkSizeCalculationPolicy is set to Static. No ChunkSize with a ChunkSizeCalculationPolicy set to Static will result in a default chunk size of 128Ki. It can be between 64Ki and 1Gi 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 chunkSizeCalculationPolicy: default: Static description: |- ChunkSizeCalculationPolicy specifies the policy to calculate the chunk size for the underlying volume. When set to Host, the chunk size is calculated based on the lvm2 host setting on the node. When set to Static, the chunk size is calculated based on the static size attribute provided within ChunkSize. enum: - 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 overprovisionRatio: description: OverProvisionRatio specifies a factor by which you can provision additional storage based on the available storage in the thin pool. To prevent over-provisioning through validation, set this field to 1. minimum: 1 type: integer sizePercent: default: 90 description: |- SizePercent specifies the percentage of space in the LVM volume group for creating the thin pool. If the size configuration is 100, the whole disk will be used. By default, 90% of the disk is used for the thin pool to allow for data or metadata expansion later on. maximum: 100 minimum: 10 type: integer required: - name - overprovisionRatio type: object type: object status: description: LVMVolumeGroupStatus defines the observed state of LVMVolumeGroup type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: LVMVolumeGroup listKind: LVMVolumeGroupList plural: lvmvolumegroups singular: lvmvolumegroup conditions: - lastTransitionTime: "2025-10-11T10:47:17Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2025-10-11T10:47:17Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1alpha1