apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.openshift.io: https://github.com/openshift/api/pull/527
  name: clusternetworks.network.openshift.io
spec:
  group: network.openshift.io
  names:
    kind: ClusterNetwork
    listKind: ClusterNetworkList
    plural: clusternetworks
    singular: clusternetwork
  scope: Cluster
  versions:
    - additionalPrinterColumns:
        - description: The primary cluster network CIDR
          jsonPath: .network
          name: Cluster Network
          type: string
        - description: The service network CIDR
          jsonPath: .serviceNetwork
          name: Service Network
          type: string
        - description: The OpenShift SDN network plug-in in use
          jsonPath: .pluginName
          name: Plugin Name
          type: string
      name: v1
      schema:
        openAPIV3Schema:
          description: "ClusterNetwork describes the cluster network. There is normally only one object of this type, named \"default\", which is created by the SDN network plugin based on the master configuration when the cluster is brought up for the first time. \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)."
          type: object
          required:
            - clusterNetworks
            - serviceNetwork
          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
            clusterNetworks:
              description: ClusterNetworks is a list of ClusterNetwork objects that defines the global overlay network's L3 space by specifying a set of CIDR and netmasks that the SDN can allocate addresses from.
              type: array
              items:
                description: ClusterNetworkEntry defines an individual cluster network. The CIDRs cannot overlap with other cluster network CIDRs, CIDRs reserved for external ips, CIDRs reserved for service networks, and CIDRs reserved for ingress ips.
                type: object
                required:
                  - CIDR
                  - hostSubnetLength
                properties:
                  CIDR:
                    description: CIDR defines the total range of a cluster networks address space.
                    type: string
                    pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$
                  hostSubnetLength:
                    description: HostSubnetLength is the number of bits of the accompanying CIDR address to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods.
                    type: integer
                    format: int32
                    maximum: 30
                    minimum: 2
            hostsubnetlength:
              description: HostSubnetLength is the number of bits of network to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods
              type: integer
              format: int32
              maximum: 30
              minimum: 2
            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
            mtu:
              description: MTU is the MTU for the overlay network. This should be 50 less than the MTU of the network connecting the nodes. It is normally autodetected by the cluster network operator.
              type: integer
              format: int32
              maximum: 65536
              minimum: 576
            network:
              description: Network is a CIDR string specifying the global overlay network's L3 space
              type: string
              pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$
            pluginName:
              description: PluginName is the name of the network plugin being used
              type: string
            serviceNetwork:
              description: ServiceNetwork is the CIDR range that Service IP addresses are allocated from
              type: string
              pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$
            vxlanPort:
              description: VXLANPort sets the VXLAN destination port used by the cluster. It is set by the master configuration file on startup and cannot be edited manually. Valid values for VXLANPort are integers 1-65535 inclusive and if unset defaults to 4789. Changing VXLANPort allows users to resolve issues between openshift SDN and other software trying to use the same VXLAN destination port.
              type: integer
              format: int32
              maximum: 65535
              minimum: 1
      served: true
      storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
