---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  name: sriovnetworkpoolconfigs.sriovnetwork.openshift.io
spec:
  group: sriovnetwork.openshift.io
  names:
    kind: SriovNetworkPoolConfig
    listKind: SriovNetworkPoolConfigList
    plural: sriovnetworkpoolconfigs
    singular: sriovnetworkpoolconfig
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: SriovNetworkPoolConfig is the Schema for the sriovnetworkpoolconfigs
          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: SriovNetworkPoolConfigSpec defines the desired state of SriovNetworkPoolConfig
            properties:
              maxUnavailable:
                anyOf:
                - type: integer
                - type: string
                description: |-
                  maxUnavailable defines either an integer number or percentage
                  of nodes in the pool that can go Unavailable during an update.


                  A value larger than 1 will mean multiple nodes going unavailable during
                  the update, which may affect your workload stress on the remaining nodes.
                  Drain will respect Pod Disruption Budgets (PDBs) such as etcd quorum guards,
                  even if maxUnavailable is greater than one.
                x-kubernetes-int-or-string: true
              nodeSelector:
                description: nodeSelector specifies a label selector for Nodes
                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
                x-kubernetes-map-type: atomic
              ovsHardwareOffloadConfig:
                description: OvsHardwareOffloadConfig describes the OVS HWOL configuration
                  for selected Nodes
                properties:
                  name:
                    description: |-
                      Name is mandatory and must be unique.
                      On Kubernetes:
                      Name is the name of OvsHardwareOffloadConfig
                      On OpenShift:
                      Name is the name of MachineConfigPool to be enabled with OVS hardware offload
                    type: string
                type: object
            type: object
          status:
            description: SriovNetworkPoolConfigStatus defines the observed state of
              SriovNetworkPoolConfig
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
