apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    include.release.openshift.io/single-node-developer: "true"
  name: profiles.tuned.openshift.io
spec:
  group: tuned.openshift.io
  names:
    kind: Profile
    listKind: ProfileList
    plural: profiles
    singular: profile
  preserveUnknownFields: false
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .spec.config.tunedProfile
          name: Tuned
          type: string
        - jsonPath: .status.conditions[?(@.type=="Applied")].status
          name: Applied
          type: string
        - jsonPath: .status.conditions[?(@.type=="Degraded")].status
          name: Degraded
          type: string
        - jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          description: Profile is a specification for a Profile resource.
          type: object
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
              type: string
            kind:
              description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              type: object
              required:
                - config
              properties:
                config:
                  type: object
                  required:
                    - tunedProfile
                  properties:
                    debug:
                      description: option to debug TuneD daemon execution
                      type: boolean
                    providerName:
                      description: 'Name of the cloud provider as taken from the Node providerID: <ProviderName>://<ProviderSpecificNodeID>'
                      type: string
                    tunedConfig:
                      description: Global configuration for the TuneD daemon as defined in tuned-main.conf
                      type: object
                      properties:
                        reapply_sysctl:
                          description: 'turn reapply_sysctl functionality on/off for the TuneD daemon: true/false'
                          type: boolean
                    tunedProfile:
                      description: TuneD profile to apply
                      type: string
            status:
              description: ProfileStatus is the status for a Profile resource; the status is for internal use only and its fields may be changed/removed in the future.
              type: object
              required:
                - tunedProfile
              properties:
                bootcmdline:
                  description: kernel parameters calculated by tuned for the active Tuned profile
                  type: string
                conditions:
                  description: conditions represents the state of the per-node Profile application
                  type: array
                  items:
                    description: ProfileStatusCondition represents a partial state of the per-node Profile application.
                    type: object
                    required:
                      - lastTransitionTime
                      - status
                      - type
                    properties:
                      lastTransitionTime:
                        description: lastTransitionTime is the time of the last update to the current status property.
                        type: string
                        format: date-time
                      message:
                        description: message provides additional information about the current condition. This is only to be consumed by humans.
                        type: string
                      reason:
                        description: reason is the CamelCase reason for the condition's current status.
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        type: string
                      type:
                        description: type specifies the aspect reported by this condition.
                        type: string
                stalld:
                  description: 'deploy stall daemon: https://git.kernel.org/pub/scm/utils/stalld/stalld.git'
                  type: boolean
                tunedProfile:
                  description: the current profile in use by the Tuned daemon
                  type: string
