
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.0
  creationTimestamp: null
  name: nodeqoss.ensurance.crane.io
spec:
  group: ensurance.crane.io
  names:
    kind: NodeQOS
    listKind: NodeQOSList
    plural: nodeqoss
    shortNames:
    - nq
    singular: nodeqos
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: NodeQOS is the Schema for the nodeqos API
        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: NodeQOSSpec defines the desired status of NodeQOS
            properties:
              elasticCpuLimit:
                description: ElasticCpuLimit is the cpu limit for workloads using
                  elastic cpu in the node
                properties:
                  elasticCoreCpuLimit:
                    description: Limit the amount of single core CPU that can be used
                      by workloads which use extended resource
                    items:
                      properties:
                        coreNum:
                          type: string
                        percent:
                          format: int64
                          type: integer
                      type: object
                    type: array
                  elasticCoreCpuLimitPeriod:
                    description: Limit the amount of single core CPU and its corresponding
                      time that can be used by workloads which use extended resource
                    items:
                      properties:
                        coreNum:
                          type: string
                        offlineCpuLimit:
                          type: string
                        percent:
                          format: int64
                          type: integer
                      type: object
                    type: array
                  elasticCpuAvoidance:
                    description: Workloads which use extended resource only run on
                      CPUs where high priority tasks are not running
                    properties:
                      enable:
                        type: boolean
                    type: object
                  elasticNodeCpuLimit:
                    description: ElasticNodeCpuLimit is the total cpu usage limit
                      for the workloads which use extended resource in node Suppress
                      the workloads which use extended resource when the CPU usage
                      of the node exceedes ElasticNodeCpuLimit
                    properties:
                      percent:
                        format: int64
                        type: integer
                    type: object
                type: object
              memLimit:
                description: MemoryLimit is the mem limit in the node
                properties:
                  pageCacheLimitGlobal:
                    type: boolean
                  pageCacheLimitRetryTimes:
                    format: int64
                    type: integer
                type: object
              memoryCompression:
                properties:
                  enable:
                    type: boolean
                type: object
              netLimits:
                description: NetLimits is the net IO limit in the node
                properties:
                  rxBpsMax:
                    format: int64
                    type: integer
                  rxBpsMin:
                    format: int64
                    type: integer
                  txBpsMax:
                    format: int64
                    type: integer
                  txBpsMin:
                    format: int64
                    type: integer
                required:
                - rxBpsMax
                - rxBpsMin
                - txBpsMax
                - txBpsMin
                type: object
              nodeQualityProbe:
                description: NodeQualityProbe defines the way to probe a node
                properties:
                  httpGet:
                    description: HTTPGet specifies the http request to perform.
                    properties:
                      host:
                        description: Host name to connect to, defaults to the pod
                          IP. You probably want to set "Host" in httpHeaders instead.
                        type: string
                      httpHeaders:
                        description: Custom headers to set in the request. HTTP allows
                          repeated headers.
                        items:
                          description: HTTPHeader describes a custom header to be
                            used in HTTP probes
                          properties:
                            name:
                              description: The header field name
                              type: string
                            value:
                              description: The header field value
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                      path:
                        description: Path to access on the HTTP server.
                        type: string
                      port:
                        anyOf:
                        - type: integer
                        - type: string
                        description: Name or number of the port to access on the container.
                          Number must be in the range 1 to 65535. Name must be an
                          IANA_SVC_NAME.
                        x-kubernetes-int-or-string: true
                      scheme:
                        description: Scheme to use for connecting to the host. Defaults
                          to HTTP.
                        type: string
                    required:
                    - port
                    type: object
                  nodeLocalGet:
                    description: NodeLocalGet specifies how to request node local
                    properties:
                      localCacheTTLSeconds:
                        default: 60
                        description: LocalCacheTTLSeconds is the cache expired time.
                          Defaults to 60
                        format: int32
                        type: integer
                    type: object
                  timeoutSeconds:
                    description: TimeoutSeconds is the timeout for request. Defaults
                      to 0, no timeout forever.
                    format: int32
                    type: integer
                type: object
              rules:
                description: Rules is an array of Rules and its corresponding action
                items:
                  properties:
                    actionName:
                      description: Avoidance action to be executed when the rule triggered
                      type: string
                    avoidanceThreshold:
                      default: 1
                      description: How many times the rule is reach, to trigger avoidance
                        action. Defaults to 1. Minimum value is 1.
                      format: int32
                      type: integer
                    metricRule:
                      description: Metric rule define the metric identifier and target
                      properties:
                        name:
                          description: Name is the name of the given metric
                          type: string
                        selector:
                          description: Selector is the selector for the given metric
                            it is the string-encoded form of a standard kubernetes
                            label selector
                          properties:
                            matchExpressions:
                              description: matchExpressions is a list of label selector
                                requirements. The requirements are ANDed.
                              items:
                                description: A label selector requirement is a selector
                                  that contains values, a key, and an operator that
                                  relates the key and values.
                                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.
                                    items:
                                      type: string
                                    type: array
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                            matchLabels:
                              additionalProperties:
                                type: string
                              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
                          type: object
                        value:
                          anyOf:
                          - type: integer
                          - type: string
                          description: Value is the target value of the metric (as
                            a quantity).
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                      required:
                      - name
                      type: object
                    name:
                      description: Name of the objective ensurance
                      type: string
                    restoreThreshold:
                      default: 1
                      description: How many times the rule can restore. Defaults to
                        1. Minimum value is 1.
                      format: int32
                      type: integer
                    strategy:
                      default: None
                      description: Action only preview, not to do the real action.
                        Default AvoidanceActionStrategy is None.
                      enum:
                      - None
                      - Preview
                      type: string
                  required:
                  - actionName
                  type: object
                type: array
              selector:
                description: Selector is a label query over pods that should match
                  the policy
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: A label selector requirement is a selector that
                        contains values, a key, and an operator that relates the key
                        and values.
                      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.
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    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
                type: object
            type: object
          status:
            description: NodeQOSStatus defines the observed status of NodeQOS
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
