apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: kubeletconfigs.machineconfiguration.openshift.io
  labels:
    "openshift.io/operator-managed": ""
spec:
  group: machineconfiguration.openshift.io
  names:
    kind: KubeletConfig
    listKind: KubeletConfigList
    plural: kubeletconfigs
    singular: kubeletconfig
  scope: Cluster
  preserveUnknownFields: false
  subresources:
    status: {}
  versions:
  - name: v1
    served: true
    storage: true
  "validation":
    "openAPIV3Schema":
      description: KubeletConfig describes a customized Kubelet configuration.
      type: object
      required:
      - spec
      properties:
        apiVersion:
          description: 'APIVersion defines the versioned schema of this representation
            of an object. Servers should convert recognized schemas to the latest
            internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
          type: string
        kind:
          description: 'Kind is a string value representing the REST resource this
            object represents. Servers may infer this from the endpoint the client
            submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
          type: string
        metadata:
          type: object
        spec:
          description: KubeletConfigSpec defines the desired state of KubeletConfig
          type: object
          properties:
            kubeletConfig:
              description: The fields of the kubelet configuration are defined in
                kubernetes upstream. Please refer to the types defined in the
                version/commit used by OpenShift of the upstream kubernetes.
                It's important to note that, since the fields of the kubelet
                configuration are directly fetched from upstream the validation
                of those values is handled directly by the kubelet. Please refer
                to the upstream version of the relevant kubernetes for the
                valid values of these fields. Invalid values of the kubelet
                configuration fields may render cluster nodes unusable.
              type: object
              x-kubernetes-preserve-unknown-fields: true
            machineConfigPoolSelector:
              description: A label selector is a label query over a set of resources.
                The result of matchLabels and matchExpressions are ANDed. An empty
                label selector matches all objects. A null label selector matches
                no objects.
              type: object
              properties:
                matchExpressions:
                  description: matchExpressions is a list of label selector requirements.
                    The requirements are ANDed.
                  type: array
                  items:
                    description: A label selector requirement is a selector that contains
                      values, a key, and an operator that relates the key and values.
                    type: object
                    required:
                    - key
                    - operator
                    properties:
                      key:
                        description: key is the label key that the selector applies
                          to.
                        type: string
                      operator:
                        description: operator represents a key's relationship to a
                          set of values. Valid operators are In, NotIn, Exists and
                          DoesNotExist.
                        type: string
                      values:
                        description: values is an array of string values. If the operator
                          is In or NotIn, the values array must be non-empty. If the
                          operator is Exists or DoesNotExist, the values array must
                          be empty. This array is replaced during a strategic merge
                          patch.
                        type: array
                        items:
                          type: string
                matchLabels:
                  description: matchLabels is a map of {key,value} pairs. A single
                    {key,value} in the matchLabels map is equivalent to an element
                    of matchExpressions, whose key field is "key", the operator is
                    "In", and the values array contains only "value". The requirements
                    are ANDed.
                  type: object
                  additionalProperties:
                    type: string
        status:
          description: KubeletConfigStatus defines the observed state of a KubeletConfig
          type: object
          properties:
            conditions:
              description: conditions represents the latest available observations
                of current state.
              type: array
              items:
                description: KubeletConfigCondition defines the state of the KubeletConfig
                type: object
                properties:
                  lastTransitionTime:
                    description: lastTransitionTime is the time of the last update
                      to the current status object.
                    type: string
                    format: date-time
                    nullable: true
                  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 reason for the condition's last transition.  Reasons
                      are PascalCase
                    type: string
                  status:
                    description: status of the condition, one of True, False, Unknown.
                    type: string
                  type:
                    description: type specifies the state of the operator's reconciliation
                      functionality.
                    type: string
            observedGeneration:
              description: observedGeneration represents the generation observed by
                the controller.
              type: integer
              format: int64
