apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kubedirectorconfigs.kubedirector.hpe.com
spec:
  group: kubedirector.hpe.com
  names:
    kind: KubeDirectorConfig
    listKind: KubeDirectorConfigList
    plural: kubedirectorconfigs
    singular: kubedirectorconfig
    shortNames:
      - kdconfig
  scope: Namespaced
  versions:
    - name: v1beta1
      served: true
      storage: true
      subresources:
        status: {}
      schema:
        openAPIV3Schema:
          type: object
          required: [apiVersion, kind, metadata]
          properties:
            apiVersion:
              type: string
            kind:
              type: string
            metadata:
              type: object
              properties:
                name:
                  type: string
                  pattern: '^kd-global-config$'
            spec:
              type: object
              nullable: true
              properties:
                defaultStorageClassName:
                  type: string
                  minLength: 1
                defaultServiceType:
                  type: string
                  pattern: '^ClusterIP$|^NodePort$|^LoadBalancer$'
                nativeSystemdSupport:
                  type: boolean
                requiredSecretPrefix:
                  type: string
                clusterSvcDomainBase:
                  type: string
                defaultNamingScheme:
                  type: string
                  pattern: '^UID$|^CrNameRole$'
                masterEncryptionKey:
                  type: string
                podLabels:
                  type: object
                  nullable: true
                podAnnotations:
                  type: object
                  nullable: true
                serviceLabels:
                  type: object
                  nullable: true
                serviceAnnotations:
                  type: object
                  nullable: true
                backupClusterStatus:
                  type: boolean
                allowRestoreWithoutConnections:
                  type: boolean
            status:
              type: object
              nullable: true
              properties:
                generationUID:
                  type: string
                state:
                  type: string