---
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
                rdmaMode:
                  description: RDMA subsystem. Allowed value "shared", "exclusive".
                  enum:
                    - shared
                    - exclusive
                  type: string
              type: object
            status:
              description: SriovNetworkPoolConfigStatus defines the observed state of
                SriovNetworkPoolConfig
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
