--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.18.0 creationTimestamp: "2025-10-11T10:50:42Z" generation: 1 labels: openstack.openstack.org/crd: "" managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} 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:50:43Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:controller-gen.kubebuilder.io/version: {} f:labels: .: {} f:openstack.openstack.org/crd: {} f:spec: f:conversion: .: {} f:strategy: {} f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:shortNames: {} f:singular: {} f:scope: {} f:versions: {} manager: operator operation: Update time: "2025-10-11T10:51:46Z" name: openstackdataplanenodesets.dataplane.openstack.org resourceVersion: "31972" uid: 696736a0-63d9-4e8e-a878-e78ab9e84d00 spec: conversion: strategy: None group: dataplane.openstack.org names: kind: OpenStackDataPlaneNodeSet listKind: OpenStackDataPlaneNodeSetList plural: openstackdataplanenodesets shortNames: - osdpns - osdpnodeset - osdpnodesets singular: openstackdataplanenodeset scope: Namespaced versions: - additionalPrinterColumns: - description: Status jsonPath: .status.conditions[0].status name: Status type: string - description: Message jsonPath: .status.conditions[0].message name: Message type: string name: v1beta1 schema: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: baremetalSetTemplate: properties: agentImageUrl: type: string apacheImageUrl: type: string automatedCleaningMode: default: metadata enum: - metadata - disabled type: string bmhLabelSelector: additionalProperties: type: string type: object bmhNamespace: default: openshift-machine-api type: string cloudUserName: default: cloud-admin type: string ctlplaneInterface: type: string deploymentSSHSecret: type: string domainName: type: string hardwareReqs: properties: cpuReqs: properties: arch: enum: - x86_64 - ppc64le type: string countReq: properties: count: minimum: 1 type: integer exactMatch: type: boolean type: object mhzReq: properties: exactMatch: type: boolean mhz: minimum: 1 type: integer type: object type: object diskReqs: properties: gbReq: properties: exactMatch: type: boolean gb: minimum: 1 type: integer type: object ssdReq: properties: exactMatch: type: boolean ssd: type: boolean type: object type: object memReqs: properties: gbReq: properties: exactMatch: type: boolean gb: minimum: 1 type: integer type: object type: object type: object osContainerImageUrl: type: string osImage: default: edpm-hardened-uefi.qcow2 type: string passwordSecret: properties: name: type: string namespace: type: string type: object x-kubernetes-map-type: atomic provisionServerName: type: string provisionServerNodeSelector: additionalProperties: type: string type: object provisioningInterface: type: string required: - cloudUserName - ctlplaneInterface - deploymentSSHSecret type: object env: items: properties: name: type: string value: type: string valueFrom: properties: configMapKeyRef: properties: key: type: string name: default: "" type: string optional: type: boolean required: - key type: object x-kubernetes-map-type: atomic fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object x-kubernetes-map-type: atomic resourceFieldRef: properties: containerName: type: string divisor: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: type: string required: - resource type: object x-kubernetes-map-type: atomic secretKeyRef: properties: key: type: string name: default: "" type: string optional: type: boolean required: - key type: object x-kubernetes-map-type: atomic type: object required: - name type: object type: array networkAttachments: items: type: string type: array nodeTemplate: properties: ansible: properties: ansibleHost: type: string ansiblePort: type: integer ansibleUser: type: string ansibleVars: x-kubernetes-preserve-unknown-fields: true ansibleVarsFrom: items: properties: configMapRef: properties: name: maxLength: 253 type: string optional: type: boolean type: object x-kubernetes-map-type: atomic prefix: type: string secretRef: properties: name: maxLength: 253 type: string optional: type: boolean type: object x-kubernetes-map-type: atomic type: object type: array type: object ansibleSSHPrivateKeySecret: maxLength: 253 type: string extraMounts: items: properties: extraVolType: type: string mounts: items: properties: mountPath: type: string mountPropagation: type: string name: type: string readOnly: type: boolean recursiveReadOnly: type: string subPath: type: string subPathExpr: type: string required: - mountPath - name type: object type: array propagation: items: type: string type: array volumes: items: properties: cephfs: properties: monitors: items: type: string type: array x-kubernetes-list-type: atomic path: type: string readOnly: type: boolean secretFile: type: string secretRef: properties: name: default: "" type: string type: object x-kubernetes-map-type: atomic user: type: string required: - monitors type: object configMap: properties: defaultMode: format: int32 type: integer items: items: properties: key: type: string mode: format: int32 type: integer path: type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" type: string optional: type: boolean type: object x-kubernetes-map-type: atomic csi: properties: driver: type: string fsType: type: string nodePublishSecretRef: properties: name: default: "" type: string type: object x-kubernetes-map-type: atomic readOnly: type: boolean volumeAttributes: additionalProperties: type: string type: object required: - driver type: object downwardAPI: properties: defaultMode: format: int32 type: integer items: items: properties: fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: format: int32 type: integer path: type: string resourceFieldRef: properties: containerName: type: string divisor: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: type: string required: - resource type: object x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object emptyDir: properties: medium: type: string sizeLimit: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object fc: properties: fsType: type: string lun: format: int32 type: integer readOnly: type: boolean targetWWNs: items: type: string type: array x-kubernetes-list-type: atomic wwids: items: type: string type: array x-kubernetes-list-type: atomic type: object hostPath: properties: path: type: string type: type: string required: - path type: object iscsi: properties: chapAuthDiscovery: type: boolean chapAuthSession: type: boolean fsType: type: string initiatorName: type: string iqn: type: string iscsiInterface: default: default type: string lun: format: int32 type: integer portals: items: type: string type: array x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: default: "" type: string type: object x-kubernetes-map-type: atomic targetPortal: type: string required: - iqn - lun - targetPortal type: object name: type: string nfs: properties: path: type: string readOnly: type: boolean server: type: string required: - path - server type: object persistentVolumeClaim: properties: claimName: type: string readOnly: type: boolean required: - claimName type: object projected: properties: defaultMode: format: int32 type: integer sources: items: properties: clusterTrustBundle: properties: labelSelector: properties: matchExpressions: items: properties: key: type: string operator: type: string values: items: type: string type: array x-kubernetes-list-type: atomic required: - key - operator type: object type: array x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string type: object type: object x-kubernetes-map-type: atomic name: type: string optional: type: boolean path: type: string signerName: type: string required: - path type: object configMap: properties: items: items: properties: key: type: string mode: format: int32 type: integer path: type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" type: string optional: type: boolean type: object x-kubernetes-map-type: atomic downwardAPI: properties: items: items: properties: fieldRef: properties: apiVersion: type: string fieldPath: type: string required: - fieldPath type: object x-kubernetes-map-type: atomic mode: format: int32 type: integer path: type: string resourceFieldRef: properties: containerName: type: string divisor: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true resource: type: string required: - resource type: object x-kubernetes-map-type: atomic required: - path type: object type: array x-kubernetes-list-type: atomic type: object secret: properties: items: items: properties: key: type: string mode: format: int32 type: integer path: type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic name: default: "" type: string optional: type: boolean type: object x-kubernetes-map-type: atomic serviceAccountToken: properties: audience: type: string expirationSeconds: format: int64 type: integer path: type: string required: - path type: object type: object type: array x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: default: xfs type: string gateway: type: string protectionDomain: type: string readOnly: type: boolean secretRef: properties: name: default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: default: ThinProvisioned type: string storagePool: type: string system: type: string volumeName: type: string required: - gateway - secretRef - system type: object secret: properties: defaultMode: format: int32 type: integer items: items: properties: key: type: string mode: format: int32 type: integer path: type: string required: - key - path type: object type: array x-kubernetes-list-type: atomic optional: type: boolean secretName: type: string type: object storageos: properties: fsType: type: string readOnly: type: boolean secretRef: properties: name: default: "" type: string type: object x-kubernetes-map-type: atomic volumeName: type: string volumeNamespace: type: string type: object required: - name type: object type: array required: - mounts - volumes type: object type: array managementNetwork: default: ctlplane type: string networkData: properties: name: type: string namespace: type: string type: object x-kubernetes-map-type: atomic networks: items: properties: defaultRoute: type: boolean fixedIP: type: string name: pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-_]*[a-zA-Z0-9]$ type: string subnetName: pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-_]*[a-zA-Z0-9]$ type: string required: - name - subnetName type: object type: array userData: properties: name: type: string namespace: type: string type: object x-kubernetes-map-type: atomic required: - ansibleSSHPrivateKeySecret type: object nodes: additionalProperties: properties: ansible: properties: ansibleHost: type: string ansiblePort: type: integer ansibleUser: type: string ansibleVars: x-kubernetes-preserve-unknown-fields: true ansibleVarsFrom: items: properties: configMapRef: properties: name: maxLength: 253 type: string optional: type: boolean type: object x-kubernetes-map-type: atomic prefix: type: string secretRef: properties: name: maxLength: 253 type: string optional: type: boolean type: object x-kubernetes-map-type: atomic type: object type: array type: object bmhLabelSelector: additionalProperties: type: string type: object ctlplaneInterface: type: string hostName: type: string managementNetwork: type: string networkData: properties: name: type: string namespace: type: string type: object x-kubernetes-map-type: atomic networks: items: properties: defaultRoute: type: boolean fixedIP: type: string name: pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-_]*[a-zA-Z0-9]$ type: string subnetName: pattern: ^[a-zA-Z0-9][a-zA-Z0-9\-_]*[a-zA-Z0-9]$ type: string required: - name - subnetName type: object type: array userData: properties: name: type: string namespace: type: string type: object x-kubernetes-map-type: atomic type: object type: object preProvisioned: type: boolean secretMaxSize: default: 1048576 type: integer services: default: - redhat - download-cache - bootstrap - configure-network - validate-network - install-os - configure-os - ssh-known-hosts - run-os - reboot-os - install-certs - ovn - neutron-metadata - libvirt - nova - telemetry items: type: string type: array tags: items: type: string type: array tlsEnabled: default: true type: boolean required: - nodeTemplate - nodes type: object status: properties: allHostnames: additionalProperties: additionalProperties: type: string type: object type: object allIPs: additionalProperties: additionalProperties: type: string type: object type: object bmhRefHash: type: string conditions: items: properties: lastTransitionTime: format: date-time type: string message: type: string reason: type: string severity: type: string status: type: string type: type: string required: - lastTransitionTime - status - type type: object type: array configHash: type: string configMapHashes: additionalProperties: type: string type: object containerImages: additionalProperties: type: string type: object ctlplaneSearchDomain: type: string deployedBmhHash: type: string deployedConfigHash: type: string deployedVersion: type: string deploymentStatuses: additionalProperties: items: properties: lastTransitionTime: format: date-time type: string message: type: string reason: type: string severity: type: string status: type: string type: type: string required: - lastTransitionTime - status - type type: object type: array type: object dnsClusterAddresses: items: type: string type: array inventorySecretName: type: string observedGeneration: format: int64 type: integer secretHashes: additionalProperties: type: string type: object type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: OpenStackDataPlaneNodeSet listKind: OpenStackDataPlaneNodeSetList plural: openstackdataplanenodesets shortNames: - osdpns - osdpnodeset - osdpnodesets singular: openstackdataplanenodeset conditions: - lastTransitionTime: "2025-10-11T10:50:43Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2025-10-11T10:50:43Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1beta1