
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.6.2
  labels:
    heritage: deckhouse
    module: deckhouse
  name: ciliumbgppeeringpolicies.cilium.io
spec:
  group: cilium.io
  names:
    categories:
    - cilium
    - ciliumbgp
    kind: CiliumBGPPeeringPolicy
    listKind: CiliumBGPPeeringPolicyList
    plural: ciliumbgppeeringpolicies
    shortNames:
    - bgpp
    singular: ciliumbgppeeringpolicy
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v2alpha1
    schema:
      openAPIV3Schema:
        description: CiliumBGPPeeringPolicy is a Kubernetes third-party resource for
          instructing Cilium's BGP control plane to create virtual BGP routers.
        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: Spec is a human readable description of a BGP peering policy
            properties:
              nodeSelector:
                description: "NodeSelector selects a group of nodes where this BGP
                  Peering Policy applies. \n If nil this policy applies to all 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.
                          enum:
                          - In
                          - NotIn
                          - Exists
                          - 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:
                      description: MatchLabelsValue represents the value from the
                        MatchLabels {key,value} pair.
                      maxLength: 63
                      pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$
                      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
              virtualRouters:
                description: A list of CiliumBGPVirtualRouter(s) which instructs the
                  BGP control plane how to instantiate virtual BGP routers.
                items:
                  description: CiliumBGPVirtualRouter defines a discrete BGP virtual
                    router configuration.
                  properties:
                    exportPodCIDR:
                      description: ExportPodCIDR determines whether to export the
                        Node's private CIDR block to the configured neighbors.
                      type: boolean
                    localASN:
                      description: LocalASN is the ASN of this virtual router. Supports
                        extended 32bit ASNs
                      maximum: 4294967295
                      minimum: 0
                      type: integer
                    neighbors:
                      description: Neighbors is a list of neighboring BGP peers for
                        this virtual router
                      items:
                        description: CiliumBGPNeighbor is a neighboring peer for use
                          in a CiliumBGPVirtualRouter configuration.
                        properties:
                          peerASN:
                            description: PeerASN is the ASN of the peer BGP router.
                              Supports extended 32bit ASNs
                            maximum: 4294967295
                            minimum: 0
                            type: integer
                          peerAddress:
                            description: PeerAddress is the IP address of the peer.
                              This must be in CIDR notation and use a /32 to express
                              a single host.
                            format: cidr
                            type: string
                        required:
                        - peerASN
                        - peerAddress
                        type: object
                      minItems: 1
                      type: array
                  required:
                  - localASN
                  - neighbors
                  type: object
                minItems: 1
                type: array
            required:
            - virtualRouters
            type: object
        required:
        - metadata
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
