apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: meteringconfigs.metering.openshift.io
spec:
  group: metering.openshift.io
  scope: Namespaced
  names:
    kind: MeteringConfig
    listKind: MeteringConfigList
    plural: meteringconfigs
    singular: meteringconfig
  versions:
  - name: v1
    served: true
    storage: true
    subresources:
      status: {}
    schema:
      openAPIV3Schema:
        type: object
        required:
        - spec
        properties:
          status:
            type: object
            x-kubernetes-preserve-unknown-fields: true
          spec:
            type: object
            required:
            - storage
            properties:
              logHelmTemplate:
                type: boolean

              unsupportedFeatures:
                type: object
                properties:
                  enableHDFS:
                    type: boolean

              disableOCPFeatures:
                type: boolean

              storage:
                type: object
                required:
                - type
                - hive
                properties:
                  type:
                    type: string
                    enum:
                    - hive
                  hive:
                    type: object
                    required:
                    - type
                    properties:
                      type:
                        type: string
                        enum:
                        - hdfs
                        - sharedPVC
                        - s3
                        - azure
                        - gcs
                        - s3Compatible
                      hdfs:
                        type: object
                        required:
                        - namenode
                        properties:
                          namenode:
                            type: string
                            format: uri
                            minLength: 1
                      s3:
                        type: object
                        required:
                        - bucket
                        - secretName
                        properties:
                          bucket:
                            type: string
                            minLength: 1
                          region:
                            type: string
                            minLength: 1
                          secretName:
                            type: string
                            minLength: 1
                          createBucket:
                            type: boolean
                      azure:
                        type: object
                        required:
                        - container
                        oneOf:
                        - required:
                          - secretName
                          allOf:
                          - not:
                              required:
                              - storageAccountName
                          - not:
                              required:
                              - secretAccessKey
                        - required:
                          - storageAccountName
                          - secretAccessKey
                          allOf:
                          - not:
                              required:
                              - secretName
                        properties:
                          createSecret:
                            type: boolean
                          container:
                            type: string
                            minLength: 1
                          secretName:
                            type: string
                            minLength: 1
                          storageAccountName:
                            type: string
                            minLength: 1
                          secretAccessKey:
                            type: string
                            minLength: 1
                          rootDirectory:
                            type: string
                            minLength: 1
                      gcs:
                        type: object
                        required:
                          - bucket
                        oneOf:
                        - required:
                          - serviceAccountKeyJSON
                          allOf:
                          - not:
                              required:
                              - secretName
                        - required:
                          - secretName
                          allOf:
                          - not:
                              required:
                              - serviceAccountKeyJSON
                        properties:
                          bucket:
                            type: string
                            minLength: 1
                          secretName:
                            type: string
                            minLength: 1
                          createSecret:
                            type: boolean
                          serviceAccountKeyJSON:
                            type: string
                            minLength: 1
                      s3Compatible:
                        type: object
                        required:
                          - bucket
                          - endpoint
                        properties:
                          bucket:
                            type: string
                            minLength: 1
                          secretName:
                            type: string
                            minLength: 1
                          createSecret:
                            type: boolean
                          accessKeyID:
                            type: string
                            minLength: 1
                          secretAccessKey:
                            type: string
                            minLength: 1
                          endpoint:
                            type: string
                            format: uri
                            minLength: 1
                          ca:
                            type: object
                            properties:
                              createSecret:
                                type: boolean
                              secretName:
                                type: string
                                minLength: 1
                              content:
                                type: string
                                minLength: 1
                        oneOf:
                        - required:
                          - accessKeyID
                          - secretAccessKey
                          properties:
                            createSecret:
                              enum:
                              - true
                          allOf:
                          - not:
                              required:
                              - secretName
                        - required:
                          - secretName
                          properties:
                            createSecret:
                              enum:
                              - false
                          allOf:
                          - not:
                              required:
                              - accessKeyID
                              - secretAccessKey
                      sharedPVC:
                        type: object
                        properties:
                          createPVC:
                            type: boolean
                          claimName:
                            type: string
                            minLength: 1
                          storageClass:
                            type: string
                            minLength: 1
                          size:
                            type: string
                            minLength: 1
                          mountPath:
                            type: string
                            minLength: 1
                        oneOf:
                        - required:
                          - claimName
                        - required:
                          - storageClass
                          - createPVC
                          properties:
                            createPVC:
                              enum:
                              - true
                    oneOf:
                    # note: this is for spec.storage.hive
                    - required:
                      - hdfs
                      properties:
                        type:
                          enum:
                          - hdfs
                      allOf:
                      - not:
                          required:
                          - s3
                      - not:
                          required:
                          - azure
                      - not:
                          required:
                          - gcs
                      - not:
                          required:
                          - s3Compatible
                      - not:
                          required:
                          - sharedPVC
                    - required:
                      - s3
                      properties:
                        type:
                          enum:
                          - s3
                      allOf:
                      - not:
                          required:
                          - hdfs
                      - not:
                          required:
                          - azure
                      - not:
                          required:
                          - gcs
                      - not:
                          required:
                          - s3Compatible
                      - not:
                          required:
                          - sharedPVC
                    - required:
                      - azure
                      properties:
                        type:
                          enum:
                          - azure
                      allOf:
                      - not:
                          required:
                          - hdfs
                      - not:
                          required:
                          - s3
                      - not:
                          required:
                          - gcs
                      - not:
                          required:
                          - s3Compatible
                      - not:
                          required:
                          - sharedPVC
                    - required:
                      - gcs
                      properties:
                        type:
                          enum:
                          - gcs
                      allOf:
                      - not:
                          required:
                          - hdfs
                      - not:
                          required:
                          - s3
                      - not:
                          required:
                          - azure
                      - not:
                          required:
                          - sharedPVC
                      - not:
                          required:
                          - s3Compatible
                    - required:
                      - s3Compatible
                      properties:
                        type:
                          enum:
                          - s3Compatible
                      allOf:
                      - not:
                          required:
                          - hdfs
                      - not:
                          required:
                          - azure
                      - not:
                          required:
                          - gcs
                      - not:
                          required:
                          - s3
                      - not:
                          required:
                          - sharedPVC
                    - required:
                      - sharedPVC
                      properties:
                        type:
                          enum:
                          - sharedPVC
                      allOf:
                      - not:
                          required:
                          - hdfs
                      - not:
                          required:
                          - s3
                      - not:
                          required:
                          - gcs
                      - not:
                          required:
                          - s3Compatible
                      - not:
                          required:
                          - azure

              tls:
                type: object
                properties:
                  enabled:
                    type: boolean
                  certificate:
                    type: string
                  key:
                    type: string
                  secretName:
                    type: string
                oneOf:
                - required:
                  - enabled
                  allOf:
                  - not:
                      required:
                      - certificate
                  - not:
                      required:
                      - key
                - required:
                  - enabled
                  - certificate
                  - key
                  properties:
                    enabled:
                      enum:
                      - false
                    certificate:
                      minLength: 1
                    key:
                      minLength: 1

              permissions:
                type: object
                properties:
                  meteringAdmins:
                    type: array
                    items:
                      type: object
                      required:
                      - kind
                      - name
                      properties:
                        kind:
                          type: string
                          minLength: 1
                        name:
                          type: string
                          minLength: 1
                        namespace:
                          type: string
                          minLength: 1
                        apiGroup:
                          type: string
                          minLength: 1
                  meteringViewers:
                    type: array
                    items:
                      type: object
                      required:
                      - kind
                      - name
                      properties:
                        kind:
                          type: string
                          minLength: 1
                        name:
                          type: string
                          minLength: 1
                        namespace:
                          type: string
                          minLength: 1
                        apiGroup:
                          type: string
                          minLength: 1
                  reportExporters:
                    type: array
                    items:
                      type: object
                      required:
                      - kind
                      - name
                      properties:
                        kind:
                          type: string
                          minLength: 1
                        name:
                          type: string
                          minLength: 1
                        namespace:
                          type: string
                          minLength: 1
                        apiGroup:
                          type: string
                          minLength: 1
                  reportingAdmins:
                    type: array
                    items:
                      type: object
                      required:
                      - kind
                      - name
                      properties:
                        kind:
                          type: string
                          minLength: 1
                        name:
                          type: string
                          minLength: 1
                        namespace:
                          type: string
                          minLength: 1
                        apiGroup:
                          type: string
                          minLength: 1
                  reportingViewers:
                    type: array
                    items:
                      type: object
                      required:
                      - kind
                      - name
                      properties:
                        kind:
                          type: string
                          minLength: 1
                        name:
                          type: string
                          minLength: 1
                        namespace:
                          type: string
                          minLength: 1

              monitoring:
                type: object
                properties:
                  createRBAC:
                    type: boolean
                  enabled:
                    type: boolean
                  namespace:
                    type: string

              openshift-reporting:
                type: object
                properties:
                  spec:
                    type: object
                    properties:
                      defaultStorageLocation:
                        type: object
                        required:
                        - enabled
                        - isDefault
                        - name
                        - type
                        - hive
                        properties:
                          enabled:
                            type: boolean
                          isDefault:
                            type: boolean
                          name:
                            type: string
                          type:
                            type: string
                          hive:
                            type: object
                            required:
                            - databaseName
                            - unmanagedDatabase
                            properties:
                              databaseName:
                                type: string
                              unmanagedDatabase:
                                type: boolean
                              location:
                                type: string
                      awsBillingReportDataSource:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          bucket:
                            type: string
                          prefix:
                            type: string
                          region:
                            type: string
                      defaultReportDataSources:
                        type: object
                        properties:
                          base:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                              items:
                                type: array
                                items:
                                  type: object
                                  required:
                                  - name
                                  - spec
                                  properties:
                                    name:
                                      type: string
                                    spec:
                                      type: object
                                      required:
                                      - reportQueryView
                                      properties:
                                        reportQueryView:
                                          type: object
                                          required:
                                          - queryName
                                          properties:
                                            queryName:
                                              type: string
                          postKube_1_14:
                            type: object
                            properties:
                              enabled:
                                type: boolean

              reporting-operator:
                type: object
                required:
                - spec
                properties:
                  spec:
                    type: object
                    properties:
                      affinity:
                        type: object
                      annotations:
                        type: object
                        additionalProperties:
                          type: string
                      apiService:
                        type: object
                        properties:
                          nodePort:
                            type: integer
                          type:
                            type: string
                      authProxy:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          authenticatedEmails:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                              createSecret:
                                type: boolean
                              data:
                                type: string
                                minLength: 1
                              secretName:
                                type: string
                                minLength: 1
                            oneOf:
                            - required:
                              - enabled
                              properties:
                                enabled:
                                  enum:
                                  - false
                              allOf:
                              - not:
                                  required:
                                  - createSecret
                              - not:
                                  required:
                                  - data
                              - not:
                                  required:
                                  - secretName
                            - required:
                              - enabled
                              - createSecret
                              - secretName
                              properties:
                                enabled:
                                  enum:
                                  - true
                                createSecret:
                                  enum:
                                  - false
                              allOf:
                              - not:
                                  required:
                                  - seed
                            - required:
                              - enabled
                              - createSecret
                              - data
                              properties:
                                enabled:
                                  enum:
                                  - true
                                createSecret:
                                  enum:
                                  - true
                          cookie:
                            type: object
                            properties:
                              createSecret:
                                type: boolean
                              secretName:
                                type: string
                                minLength: 1
                              seed:
                                type: string
                                minLength: 32
                            oneOf:
                            - required:
                              - createSecret
                              - seed
                              properties:
                                createSecret:
                                  enum:
                                  - true
                            - required:
                              - createSecret
                              - secretName
                              properties:
                                createSecret:
                                  enum:
                                  - false
                              allOf:
                              - not:
                                  required:
                                  - seed
                          delegateURLs:
                            type: object
                            properties:
                              enabled:
                                type: boolean
                              policy:
                                type: string
                                minLength: 1
                          htpasswd:
                            type: object
                            properties:
                              createSecret:
                                type: boolean
                              data:
                                type: string
                                minLength: 1
                              secretName:
                                type: string
                                minLength: 1
                            oneOf:
                            - required:
                              - createSecret
                              - data
                              properties:
                                createSecret:
                                  enum:
                                  - true
                            - required:
                              - createSecret
                              - secretName
                              properties:
                                createSecret:
                                  enum:
                                  - false
                              allOf:
                              - not:
                                  required:
                                  - data
                          image:
                            type: object
                            properties:
                              pullPolicy:
                                type: string
                                minLength: 1
                              pullSecrets:
                                type: array
                                items:
                                  type: string
                              repository:
                                type: string
                                minLength: 1
                              tag:
                                type: string
                                minLength: 1
                          rbac:
                            type: object
                            required:
                            - createAuthProxyClusterRole
                            properties:
                              createAuthProxyClusterRole:
                                type: boolean
                          resources:
                            type: object
                            properties:
                              limits:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                              requests:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                          subjectAccessReview:
                            type: object
                            required:
                            - enabled
                            properties:
                              enabled:
                                type: boolean
                              policy:
                                type: string
                                minLength: 1
                      config:
                        type: object
                        properties:
                          allNamespaces:
                            type: boolean
                          aws:
                            type: object
                            properties:
                              accessKeyID:
                                type: string
                              createSecret:
                                type: boolean
                              secretAccessKey:
                                type: string
                              secretName:
                                type: string
                          enableFinalizers:
                            type: boolean
                          hive:
                            type: object
                            properties:
                              auth:
                                type: object
                                properties:
                                  certificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  key:
                                    type: string
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                - required:
                                  - certificate
                                  - key
                                  - createSecret
                                  - secretName
                                  properties:
                                    certificate:
                                      minLength: 1
                                    key:
                                      minLength: 1
                                    createSecret:
                                      enum:
                                      - true
                                    enabled:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                              host:
                                type: string
                              tls:
                                type: object
                                properties:
                                  caCertificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                - required:
                                  - caCertificate
                                  - createSecret
                                  - secretName
                                  properties:
                                    caCertificate:
                                      minLength: 1
                                    createSecret:
                                      enum:
                                      - true
                                    enabled:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                          leaderLeaseDuration:
                            type: string
                          logDDLQueries:
                            type: boolean
                          logDMLQueries:
                            type: boolean
                          logLevel:
                            type: string
                          logReports:
                            type: boolean
                          presto:
                            type: object
                            properties:
                              auth:
                                type: object
                                properties:
                                  certificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  key:
                                    type: string
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                - required:
                                  - certificate
                                  - key
                                  - createSecret
                                  - secretName
                                  properties:
                                    certificate:
                                      minLength: 1
                                    key:
                                      minLength: 1
                                    enabled:
                                      enum:
                                      - true
                                    createSecret:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                              host:
                                type: string
                              maxQueryLength:
                                type: integer
                              tls:
                                type: object
                                properties:
                                  caCertificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                - required:
                                  - caCertificate
                                  - createSecret
                                  - secretName
                                  properties:
                                    certificate:
                                      minLength: 1
                                    enabled:
                                      enum:
                                      - true
                                    createSecret:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                          prometheus:
                            type: object
                            properties:
                              certificateAuthority:
                                type: object
                                properties:
                                  configMap:
                                    type: object
                                    properties:
                                      create:
                                        type: boolean
                                      enabled:
                                        type: boolean
                                      filename:
                                        type: string
                                      name:
                                        type: string
                                      value:
                                        type: string
                                  useServiceAccountCA:
                                    type: boolean
                              metricsImporter:
                                type: object
                                properties:
                                  auth:
                                    type: object
                                    properties:
                                      tokenSecret:
                                        type: object
                                        properties:
                                          create:
                                            type: boolean
                                          enabled:
                                            type: boolean
                                          name:
                                            type: string
                                          value:
                                            type: string
                                      useServiceAccountToken:
                                        type: boolean
                                  config:
                                    type: object
                                    properties:
                                      chunkSize:
                                        type: string
                                      importFrom:
                                        type: string
                                      maxImportBackfillDuration:
                                        type: string
                                      maxQueryRangeDuration:
                                        type: string
                                      pollInterval:
                                        type: string
                                      stepSize:
                                        type: string
                                  enabled:
                                    type: boolean
                              url:
                                type: string
                          tls:
                            type: object
                            properties:
                              api:
                                type: object
                                properties:
                                  caCertificate:
                                    type: string
                                  certificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  key:
                                    type: string
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                - required:
                                  - caCertificate
                                  - certificate
                                  - key
                                  - createSecret
                                  - secretName
                                  properties:
                                    caCertificate:
                                      minLength: 1
                                    certificate:
                                      minLength: 1
                                    key:
                                      minLength: 1
                                    enabled:
                                      enum:
                                      - true
                                    createSecret:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                      image:
                        type: object
                        properties:
                          pullPolicy:
                            type: string
                          pullSecrets:
                            type: array
                            items:
                              type: string
                          repository:
                            type: string
                          tag:
                            type: string
                      labels:
                        type: object
                        additionalProperties:
                          type: string
                      nodeSelector:
                        type: object
                        additionalProperties:
                          type: string
                      rbac:
                        type: object
                        required:
                        - createClusterMonitoringViewRBAC
                        properties:
                          createClusterMonitoringViewRBAC:
                            type: boolean
                      replicas:
                        type: integer
                        format: int32
                      resources:
                        type: object
                        properties:
                          limits:
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                          requests:
                            type: object
                            x-kubernetes-preserve-unknown-fields: true
                      route:
                        type: object
                        required:
                        - enabled
                        properties:
                          enabled:
                            type: boolean
                          name:
                            type: string
                      tolerations:
                        type: array
                        items:
                          type: object
                          properties:
                            effect:
                              type: string
                            key:
                              type: string
                            operator:
                              type: string
                            tolerationSeconds:
                              format: int64
                              type: integer
                            value:
                              type: string
                      updateStrategy:
                        type: object
                        required:
                        - type
                        properties:
                          type:
                            type: string
                      securityContext:
                        type: object
                        properties:
                          fsGroup:
                            type: integer
                            format: int64
                          runAsGroup:
                            type: integer
                            format: int64
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            type: integer
                            format: int64

              presto:
                type: object
                required:
                - spec
                properties:
                  spec:
                    type: object
                    properties:
                      annotations:
                        type: object
                        additionalProperties:
                          type: string
                      terminationGracePeriodSeconds:
                        type: integer
                      config:
                        type: object
                        properties:
                          auth:
                            type: object
                            properties:
                              caCertificate:
                                type: string
                              certificate:
                                type: string
                              createSecret:
                                type: boolean
                              enabled:
                                type: boolean
                              key:
                                type: string
                              secretName:
                                type: string
                            oneOf:
                            - required:
                              - enabled
                              properties:
                                enabled:
                                  enum:
                                  - false
                              allOf:
                              - not:
                                  required:
                                  - caCertificate
                              - not:
                                  required:
                                  - certificate
                              - not:
                                  required:
                                  - key
                              - not:
                                  required:
                                  - createSecret
                              - not:
                                  required:
                                  - secretName
                            - required:
                              - createSecret
                              - secretName
                              properties:
                                createSecret:
                                  enum:
                                  - false
                                secretName:
                                  minLength: 1
                              allOf:
                              - not:
                                  required:
                                  - caCertificate
                              - not:
                                  required:
                                  - certificate
                              - not:
                                  required:
                                  - key
                            - required:
                              - caCertificate
                              - certificate
                              - key
                              - createSecret
                              - secretName
                              properties:
                                caCertificate:
                                  minLength: 1
                                certificate:
                                  minLength: 1
                                key:
                                  minLength: 1
                                enabled:
                                  enum:
                                  - true
                                createSecret:
                                  enum:
                                  - true
                                secretName:
                                  minLength: 1
                          aws:
                            type: object
                            properties:
                              accessKeyID:
                                type: string
                              createSecret:
                                type: boolean
                              secretAccessKey:
                                type: string
                              secretName:
                                type: string
                          azure:
                            type: object
                            properties:
                              createSecret:
                                type: boolean
                              secretAccessKey:
                                type: string
                              secretName:
                                type: string
                              storageAccountName:
                                type: string
                          gcs:
                            type: object
                            properties:
                              secretName:
                                type: string
                              createSecret:
                                type: boolean
                              serviceAccountKeyJSON:
                                type: string

                          s3Compatible:
                            type: object
                            properties:
                              secretName:
                                type: string
                              createSecret:
                                type: boolean
                              accessKeyID:
                                type: string
                              secretAccessKey:
                                type: string
                              endpoint:
                                type: string
                                format: uri
                              ca:
                                type: object
                                properties:
                                  createSecret:
                                    type: boolean
                                  secretName:
                                    type: string
                                    minLength: 1
                                  content:
                                    type: string
                                    minLength: 1

                          connectors:
                            type: object
                            properties:
                              extraConnectorFiles:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    content:
                                      type: string
                              hive:
                                type: object
                                properties:
                                  useHadoopConfig:
                                    type: boolean
                                  hadoopConfigSecretName:
                                    type: string
                                  metastoreTimeout:
                                    type: string
                                  metastoreURI:
                                    type: string
                                  tls:
                                    type: object
                                    properties:
                                      caCertificate:
                                        type: string
                                      certificate:
                                        type: string
                                      createSecret:
                                        type: boolean
                                      enabled:
                                        type: boolean
                                      key:
                                        type: string
                                      secretName:
                                        type: string
                                    oneOf:
                                    - required:
                                      - enabled
                                      properties:
                                        enabled:
                                          enum:
                                          - false
                                      allOf:
                                      - not:
                                          required:
                                          - caCertificate
                                      - not:
                                          required:
                                          - certificate
                                      - not:
                                          required:
                                          - key
                                      - not:
                                          required:
                                          - createSecret
                                      - not:
                                          required:
                                          - secretName
                                    - required:
                                      - createSecret
                                      - secretName
                                      properties:
                                        createSecret:
                                          enum:
                                          - false
                                        secretName:
                                          minLength: 1
                                      allOf:
                                      - not:
                                          required:
                                          - caCertificate
                                      - not:
                                          required:
                                          - certificate
                                      - not:
                                          required:
                                          - key
                                    - required:
                                      - caCertificate
                                      - certificate
                                      - key
                                      - createSecret
                                      - secretName
                                      properties:
                                        caCertificate:
                                          minLength: 1
                                        certificate:
                                          minLength: 1
                                        key:
                                          minLength: 1
                                        enabled:
                                          enum:
                                          - true
                                        createSecret:
                                          enum:
                                          - true
                                        secretName:
                                          minLength: 1
                                  s3:
                                    type: object
                                    properties:
                                      useInstanceCredentials:
                                        type: boolean
                              prometheus:
                                type: object
                                properties:
                                  enabled:
                                    description: Whether or not to enable the Presto-Prometheus connector.
                                    type: boolean
                                  config:
                                    type: object
                                    properties:
                                      uri:
                                        description: URI for Prometheus.
                                        type: string
                                        format: uri
                                      chunkSizeDuration:
                                        description: Default size of each Prometheus query chunk.
                                        type: string
                                      maxQueryRangeDuration:
                                        description: Default range for Prometheus query, divided into chunkSizeDuration chunks.
                                        type: string
                                      cacheDuration:
                                        description: Time to live for Presto checking connector properties values.
                                        type: string
                                  auth:
                                    type: object
                                    properties:
                                      bearerTokenFile:
                                        description: Path to token file for bearer authentication to Prometheus.
                                        type: string
                                      useServiceAccountToken:
                                        description: Whether to use the cluster service account token for the bearer token
                                        type: boolean
                          environment:
                            type: string
                          maxQueryLength:
                            type: integer
                          nodeSchedulerIncludeCoordinator:
                            type: boolean
                          tls:
                            type: object
                            properties:
                              caCertificate:
                                type: string
                              certificate:
                                type: string
                              createSecret:
                                type: boolean
                              enabled:
                                type: boolean
                              key:
                                type: string
                              secretName:
                                type: string
                            oneOf:
                            - required:
                              - enabled
                              properties:
                                enabled:
                                  enum:
                                  - false
                              allOf:
                              - not:
                                  required:
                                  - caCertificate
                              - not:
                                  required:
                                  - certificate
                              - not:
                                  required:
                                  - key
                              - not:
                                  required:
                                  - createSecret
                              - not:
                                  required:
                                  - secretName
                            - required:
                              - createSecret
                              - secretName
                              properties:
                                createSecret:
                                  enum:
                                  - false
                                secretName:
                                  minLength: 1
                              allOf:
                              - not:
                                  required:
                                  - caCertificate
                            - required:
                              - caCertificate
                              - createSecret
                              - secretName
                              properties:
                                certificate:
                                  minLength: 1
                                enabled:
                                  enum:
                                  - true
                                createSecret:
                                  enum:
                                  - true
                                secretName:
                                  minLength: 1
                      coordinator:
                        type: object
                        properties:
                          affinity:
                            type: object
                            properties:
                              podAntiAffinity:
                                type: object
                                properties:
                                  requiredDuringSchedulingIgnoredDuringExecution:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                      - topologyKey
                                      properties:
                                        labelSelector:
                                          type: object
                                          properties:
                                            matchExpressions:
                                              type: array
                                              items:
                                                type: object
                                                required:
                                                - key
                                                - operator
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    type: array
                                                    items:
                                                      type: string
                                        topologyKey:
                                          type: string
                          config:
                            type: object
                            properties:
                              jvm:
                                type: object
                                properties:
                                  G1HeapRegionSize:
                                    x-kubernetes-int-or-string: true
                                    anyOf:
                                    - type: integer
                                    - type: string
                                  concGCThreads:
                                    type: integer
                                    minimum: 0
                                  extraFlags:
                                    type: array
                                    items:
                                      type: string
                                  initialRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  initiatingHeapOccupancyPercent:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  maxCachedBufferSize:
                                    type: integer
                                    minimum: 0
                                  maxDirectMemorySize:
                                    x-kubernetes-int-or-string: true
                                    anyOf:
                                    - type: integer
                                    - type: string
                                  maxGcPauseMillis:
                                    type: integer
                                    minimum: 0
                                  maxRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  minRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  parallelGCThreads:
                                    type: integer
                                    minimum: 0
                                  permSize:
                                    type: string
                                    minLength: 2
                                  reservedCodeCacheSize:
                                    type: string
                                    minLength: 2
                              logLevel:
                                type: string
                              taskMaxWorkerThreads:
                                type: integer
                              taskMinDrivers:
                                type: integer
                          nodeSelector:
                            type: object
                            additionalProperties:
                              type: string
                          resources:
                            type: object
                            properties:
                              limits:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                              requests:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                          terminationGracePeriodSeconds:
                            type: integer
                          tolerations:
                            type: array
                            items:
                              type: object
                              properties:
                                effect:
                                  type: string
                                key:
                                  type: string
                                operator:
                                  type: string
                                tolerationSeconds:
                                  format: int64
                                  type: integer
                                value:
                                  type: string
                      image:
                        type: object
                        properties:
                          pullPolicy:
                            type: string
                          repository:
                            type: string
                          tag:
                            type: string
                      labels:
                        type: object
                        additionalProperties:
                          type: string
                      securityContext:
                        type: object
                        properties:
                          fsGroup:
                            type: integer
                            format: int64
                          runAsGroup:
                            type: integer
                            format: int64
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            type: integer
                            format: int64
                      worker:
                        type: object
                        properties:
                          affinity:
                            type: object
                            properties:
                              podAntiAffinity:
                                type: object
                                properties:
                                  requiredDuringSchedulingIgnoredDuringExecution:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                      - topologyKey
                                      properties:
                                        labelSelector:
                                          type: object
                                          required:
                                          - matchExpressions
                                          properties:
                                            matchExpressions:
                                              type: array
                                              items:
                                                type: object
                                                required:
                                                - key
                                                - operator
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    type: array
                                                    items:
                                                      type: string
                                        topologyKey:
                                          type: string
                          config:
                            type: object
                            properties:
                              jvm:
                                type: object
                                properties:
                                  G1HeapRegionSize:
                                    x-kubernetes-int-or-string: true
                                    anyOf:
                                    - type: integer
                                    - type: string
                                  concGCThreads:
                                    type: integer
                                    minimum: 0
                                  extraFlags:
                                    type: array
                                    items:
                                      type: string
                                  initialRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  initiatingHeapOccupancyPercent:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  maxCachedBufferSize:
                                    type: integer
                                    minimum: 0
                                  maxDirectMemorySize:
                                    x-kubernetes-int-or-string: true
                                    anyOf:
                                    - type: integer
                                    - type: string
                                  maxGcPauseMillis:
                                    type: integer
                                    minimum: 0
                                  maxRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  minRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  parallelGCThreads:
                                    type: integer
                                    minimum: 0
                                  permSize:
                                    type: string
                                    minLength: 2
                                  reservedCodeCacheSize:
                                    type: string
                                    minLength: 2
                              logLevel:
                                type: string
                              taskMaxWorkerThreads:
                                type: integer
                              taskMinDrivers:
                                type: integer
                          nodeSelector:
                            type: object
                            additionalProperties:
                              type: string
                          replicas:
                            type: integer
                            format: int32
                          resources:
                            type: object
                            properties:
                              limits:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                              requests:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                          terminationGracePeriodSeconds:
                            type: integer
                          tolerations:
                            type: array
                            items:
                              type: object
                              properties:
                                effect:
                                  type: string
                                key:
                                  type: string
                                operator:
                                  type: string
                                tolerationSeconds:
                                  format: int64
                                  type: integer
                                value:
                                  type: string

              hive:
                type: object
                required:
                - spec
                properties:
                  spec:
                    type: object
                    properties:
                      annotations:
                        type: object
                        additionalProperties:
                          type: string
                      config:
                        type: object
                        properties:
                          aws:
                            type: object
                            properties:
                              accessKeyID:
                                type: string
                              createSecret:
                                type: boolean
                              secretAccessKey:
                                type: string
                              secretName:
                                type: string
                          azure:
                            type: object
                            properties:
                              createSecret:
                                type: boolean
                              secretAccessKey:
                                type: string
                              secretName:
                                type: string
                              storageAccountName:
                                type: string
                          gcs:
                            type: object
                            properties:
                              secretName:
                                type: string
                              createSecret:
                                type: boolean
                              serviceAccountKeyJSON:
                                type: string
                          s3Compatible:
                            type: object
                            properties:
                              secretName:
                                type: string
                              createSecret:
                                type: boolean
                              accessKeyID:
                                type: string
                              secretAccessKey:
                                type: string
                              endpoint:
                                type: string
                                format: uri
                              ca:
                                type: object
                                properties:
                                  createSecret:
                                    type: boolean
                                  secretName:
                                    type: string
                                    minLength: 1
                                  content:
                                    type: string
                                    minLength: 1
                          db:
                            type: object
                            properties:
                              autoCreateMetastoreSchema:
                                type: boolean
                              driver:
                                type: string
                              enableMetastoreSchemaVerification:
                                type: boolean
                              password:
                                type: string
                              url:
                                type: string
                              username:
                                type: string
                          defaultFileFormat:
                            type: string
                          hadoopConfigSecretName:
                            type: string
                          metastoreClientSocketTimeout:
                            type: string
                          metastoreWarehouseDir:
                            type: string
                          sharedVolume:
                            type: object
                            properties:
                              claimName:
                                type: string
                              createPVC:
                                type: boolean
                              enabled:
                                type: boolean
                              mountPath:
                                type: string
                              size:
                                type: string
                              storageClass:
                                type: string
                          useHadoopConfig:
                            type: boolean
                      image:
                        type: object
                        properties:
                          pullPolicy:
                            type: string
                          pullSecrets:
                            type: array
                            items:
                              type: string
                          repository:
                            type: string
                          tag:
                            type: string
                      labels:
                        type: object
                        additionalProperties:
                          type: string
                      metastore:
                        type: object
                        properties:
                          affinity:
                            type: object
                          config:
                            type: object
                            properties:
                              auth:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                              jvm:
                                type: object
                                properties:
                                  initialRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  maxRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  minRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                              logLevel:
                                type: string
                              tls:
                                type: object
                                properties:
                                  caCertificate:
                                    type: string
                                  certificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  key:
                                    type: string
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                - required:
                                  - caCertificate
                                  - certificate
                                  - key
                                  - createSecret
                                  - secretName
                                  properties:
                                    caCertificate:
                                      minLength: 1
                                    certificate:
                                      minLength: 1
                                    key:
                                      minLength: 1
                                    enabled:
                                      enum:
                                      - true
                                    createSecret:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                          livenessProbe:
                            type: object
                            properties:
                              failureThreshold:
                                type: integer
                              initialDelaySeconds:
                                type: integer
                              periodSeconds:
                                type: integer
                              successThreshold:
                                type: integer
                              tcpSocket:
                                type: object
                                properties:
                                  port:
                                    type: integer
                              timeoutSeconds:
                                type: integer
                          nodeSelector:
                            type: object
                            additionalProperties:
                              type: string
                          resources:
                            type: object
                            properties:
                              limits:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                              requests:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                          storage:
                            type: object
                            properties:
                              class:
                                type: string
                              create:
                                type: boolean
                              size:
                                type: string
                          tolerations:
                            type: array
                            items:
                              type: object
                              properties:
                                effect:
                                  type: string
                                key:
                                  type: string
                                operator:
                                  type: string
                                tolerationSeconds:
                                  format: int64
                                  type: integer
                                value:
                                  type: string
                      securityContext:
                        type: object
                        properties:
                          fsGroup:
                            type: integer
                            format: int64
                          runAsGroup:
                            type: integer
                            format: int64
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            type: integer
                            format: int64
                      server:
                        type: object
                        properties:
                          affinity:
                            type: object
                          config:
                            type: object
                            properties:
                              auth:
                                type: object
                                properties:
                                  enabled:
                                    type: boolean
                              jvm:
                                type: object
                                properties:
                                  initialRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  maxRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                                  minRAMPercentage:
                                    type: integer
                                    minimum: 0
                                    maximum: 100
                              logLevel:
                                type: string
                              metastoreTLS:
                                type: object
                                properties:
                                  caCertificate:
                                    type: string
                                  certificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  key:
                                    type: string
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                - required:
                                  - caCertificate
                                  - certificate
                                  - key
                                  - createSecret
                                  - secretName
                                  properties:
                                    caCertificate:
                                      minLength: 1
                                    certificate:
                                      minLength: 1
                                    key:
                                      minLength: 1
                                    enabled:
                                      enum:
                                      - true
                                    createSecret:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                              tls:
                                type: object
                                properties:
                                  caCertificate:
                                    type: string
                                  certificate:
                                    type: string
                                  createSecret:
                                    type: boolean
                                  enabled:
                                    type: boolean
                                  key:
                                    type: string
                                  secretName:
                                    type: string
                                oneOf:
                                - required:
                                  - enabled
                                  properties:
                                    enabled:
                                      enum:
                                      - false
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                  - not:
                                      required:
                                      - createSecret
                                  - not:
                                      required:
                                      - secretName
                                - required:
                                  - createSecret
                                  - secretName
                                  properties:
                                    enabled:
                                      enum:
                                      - true
                                    createSecret:
                                      enum:
                                      - false
                                    secretName:
                                      minLength: 1
                                  allOf:
                                  - not:
                                      required:
                                      - caCertificate
                                  - not:
                                      required:
                                      - certificate
                                  - not:
                                      required:
                                      - key
                                - required:
                                  - caCertificate
                                  - certificate
                                  - key
                                  - createSecret
                                  - secretName
                                  properties:
                                    caCertificate:
                                      minLength: 1
                                    certificate:
                                      minLength: 1
                                    key:
                                      minLength: 1
                                    enabled:
                                      enum:
                                      - true
                                    createSecret:
                                      enum:
                                      - true
                                    secretName:
                                      minLength: 1
                          livenessProbe:
                            type: object
                            properties:
                              failureThreshold:
                                type: integer
                              initialDelaySeconds:
                                type: integer
                              periodSeconds:
                                type: integer
                              successThreshold:
                                type: integer
                              tcpSocket:
                                type: object
                                properties:
                                  port:
                                    type: integer
                              timeoutSeconds:
                                type: integer
                          nodeSelector:
                            type: object
                            additionalProperties:
                              type: string
                          resources:
                            type: object
                            properties:
                              limits:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                              requests:
                                type: object
                                x-kubernetes-preserve-unknown-fields: true
                          tolerations:
                            type: array
                            items:
                              type: object
                              properties:
                                effect:
                                  type: string
                                key:
                                  type: string
                                operator:
                                  type: string
                                tolerationSeconds:
                                  format: int64
                                  type: integer
                                value:
                                  type: string
                      terminationGracePeriodSeconds:
                        type: integer

              __ghostunnel:
                type: object
                properties:
                  image:
                    type: object
                    properties:
                      pullPolicy:
                        type: string
                      repository:
                        type: string
                      tag:
                        type: string

              hadoop:
                type: object
                required:
                - spec
                properties:
                  spec:
                    type: object
                    properties:
                      config:
                        type: object
                        properties:
                          aws:
                            type: object
                            properties:
                              accessKeyID:
                                type: string
                              createSecret:
                                type: boolean
                              secretAccessKey:
                                type: string
                              secretName:
                                type: string
                          azure:
                            type: object
                            properties:
                              createSecret:
                                type: boolean
                              secretAccessKey:
                                type: string
                              secretName:
                                type: string
                              storageAccountName:
                                type: string
                          gcs:
                            type: object
                            properties:
                              secretName:
                                type: string
                              createSecret:
                                type: boolean
                              serviceAccountKeyJSON:
                                type: string
                          s3Compatible:
                            type: object
                            properties:
                              secretName:
                                type: string
                              createSecret:
                                type: boolean
                              accessKeyID:
                                type: string
                              secretAccessKey:
                                type: string
                              endpoint:
                                type: string
                                format: uri
                              ca:
                                type: object
                                properties:
                                  createSecret:
                                    type: boolean
                                  secretName:
                                    type: string
                                    minLength: 1
                                  content:
                                    type: string
                                    minLength: 1
                          defaultFS:
                            type: string
                      configSecretName:
                        type: string
                      hdfs:
                        type: object
                        properties:
                          enabled:
                            type: boolean
                          config:
                            type: object
                            properties:
                              datanodeDataDirPerms:
                                type: string
                              logLevel:
                                type: string
                              replicationFactor:
                                type: integer
                          datanode:
                            type: object
                            properties:
                              affinity:
                                type: object
                                properties:
                                  podAntiAffinity:
                                    type: object
                                    properties:
                                      requiredDuringSchedulingIgnoredDuringExecution:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            labelSelector:
                                              type: object
                                              properties:
                                                matchExpressions:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      key:
                                                        type: string
                                                      operator:
                                                        type: string
                                                      values:
                                                        type: array
                                                        items:
                                                          type: string
                                            topologyKey:
                                              type: string
                              annotations:
                                type: object
                                additionalProperties:
                                  type: string
                              config:
                                type: object
                                properties:
                                  jvm:
                                    type: object
                                    properties:
                                      initialRAMPercentage:
                                        type: integer
                                        minimum: 0
                                        maximum: 100
                                      maxRAMPercentage:
                                        type: integer
                                        minimum: 0
                                        maximum: 100
                                      minRAMPercentage:
                                        type: integer
                                        minimum: 0
                                        maximum: 100
                              labels:
                                type: object
                                additionalProperties:
                                  type: string
                              nodeSelector:
                                type: object
                                additionalProperties:
                                  type: string
                              replicas:
                                type: integer
                                format: int32
                              resources:
                                type: object
                                properties:
                                  limits:
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                                  requests:
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                              storage:
                                type: object
                                properties:
                                  class:
                                    type: string
                                  size:
                                    type: string
                              terminationGracePeriodSeconds:
                                type: integer
                              tolerations:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    effect:
                                      type: string
                                    key:
                                      type: string
                                    operator:
                                      type: string
                                    tolerationSeconds:
                                      format: int64
                                      type: integer
                                    value:
                                      type: string
                                  enabled:
                                    type: boolean
                          namenode:
                            type: object
                            properties:
                              affinity:
                                type: object
                                properties:
                                  podAntiAffinity:
                                    type: object
                                    properties:
                                      requiredDuringSchedulingIgnoredDuringExecution:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            labelSelector:
                                              type: object
                                              properties:
                                                matchExpressions:
                                                  type: array
                                                  items:
                                                    type: object
                                                    properties:
                                                      key:
                                                        type: string
                                                      operator:
                                                        type: string
                                                      values:
                                                        type: array
                                                        items:
                                                          type: string
                                            topologyKey:
                                              type: string
                              annotations:
                                type: object
                                additionalProperties:
                                  type: string
                              config:
                                type: object
                                properties:
                                  jvm:
                                    type: object
                                    properties:
                                      initialRAMPercentage:
                                        type: integer
                                        minimum: 0
                                        maximum: 100
                                      maxRAMPercentage:
                                        type: integer
                                        minimum: 0
                                        maximum: 100
                                      minRAMPercentage:
                                        type: integer
                                        minimum: 0
                                        maximum: 100
                              labels:
                                type: object
                                additionalProperties:
                                  type: string
                              nodeSelector:
                                type: object
                                additionalProperties:
                                  type: string
                              resources:
                                type: object
                                properties:
                                  limits:
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                                  requests:
                                    type: object
                                    x-kubernetes-preserve-unknown-fields: true
                              storage:
                                type: object
                                properties:
                                  class:
                                    type: string
                                  size:
                                    type: string
                              terminationGracePeriodSeconds:
                                type: integer
                              tolerations:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    effect:
                                      type: string
                                    key:
                                      type: string
                                    operator:
                                      type: string
                                    tolerationSeconds:
                                      format: int64
                                      type: integer
                                    value:
                                      type: string
                          securityContext:
                            type: object
                            properties:
                              fsGroup:
                                type: integer
                                format: int64
                              runAsGroup:
                                type: integer
                                format: int64
                              runAsNonRoot:
                                type: boolean
                              runAsUser:
                                type: integer
                                format: int64
                      image:
                        type: object
                        properties:
                          pullPolicy:
                            type: string
                          pullSecrets:
                            type: array
                            items:
                              type: string
                          repository:
                            type: string
                          tag:
                            type: string

