Neutron using ovn

# NOTE: This file serves as an example only!
# It demonstrates a subset of the API features which are available and
# is NOT FIT FOR PRODUCTIVE USE. You need to adapt them to your
# specific environment, needs and scale.
# DO NOT DEPLOY THIS FILE WITH THE EXPECTATION THAT YOU WILL GET A
# YAOOK DEPLOYMENT FIT FOR ANY USE EXCEPT LOOKING AT IT.
apiVersion: yaook.cloud/v1
kind: NeutronDeployment
metadata:
  name: neutron-ovn
spec:
  api:
    ingress:
      fqdn: "neutron.yaook.cloud"
      port: 32443
    replicas: 1
  database:
    backup:
      schedule: "0 * * * *"
    proxy: {}
    replicas: 1
    timeoutClient: 300
  issuerRef:
    name: ca-issuer
  keystoneRef:
    name: keystone
  messageQueue:
    replicas: 1
    resources:
      rabbitmq:
        limits:
          memory: 1G
          cpu: 1000m
  memcached: {}
  neutronConfig:
    DEFAULT:
      debug: true
    database:
      # (optional) connection_recycle_time hould always be ~10%
      # smaller than the haproxy timeoutClient
      connection_recycle_time: 280
  neutronML2Config:
    ml2_type_flat:
      flat_networks:
      - physnet1
  novaRef:
    name: nova
  policy:
    "context_is_admin": "role:admin"
  region:
    name: MyRegion
  setup:
    ovn:
      bgp: # remove this section if you don't use bgp
        mybgpspeaker:
          configTemplates:
          - config:
                addressScopes:
                  - 443d99a2-0531-498a-86f9-3a6bd987083c # UUID to your addressScope
                bridgeName: br-mybgp
                driver: ovn_stretched_l2_bgp_driver
                localAS: 4200240042
                peers:
                    switcha:
                        AS: 4200240041
                        IP: 10.42.2.21
                    switchb:
                        AS: 4200240041
                        IP: 10.42.2.22
                syncInterval: 60
            nodeSelectors:
              - matchLabels:
                  network.yaook.cloud/neutron-ovn-agent: "true"
      northboundOVSDB:
        replicas: 3
        backup:
          schedule: 0 12 * * *
      northd: {}
      southboundOVSDB:
        # recommended to increase inactivityProbe at scale (default 5s)
        inactivityProbeMs: 60000
        ovnRelay:  # add this section to deploy ovn-relays
          replicas: 5
        replicas: 3
        backup:
          schedule: 0 12 * * *
      controller:
        configTemplates:
        - nodeSelectors:
          - matchLabels: {}  # all nodes
        - nodeSelectors:
          - matchLabels:
              "network.yaook.cloud/neutron-ovn-agent": "true"
          bridgeConfig:
            - bridgeName: br-ex
              uplinkDevice: eth1
              openstackPhysicalNetwork: "physnet1"
  targetRelease: zed

Further parameters

spec:setup:ovs:l2:configTemplates:nodeSelectors[]:overlayNetworkConfig:ovs_local_ip_subnet

The IP address configured via [ovs]/local_ip is used for the local overlay (tunnel) network endpoint by the Neutron Open vSwitch agent. If not specified in the NeutronDeployment resource the Kubernetes node IP address is used. By specifying a subnet via spec:setup:ovs:l2:configTemplates:nodeSelectors[]:overlayNetworkConfig:ovs_local_ip_subnet the IP address of the corresponding interface of the node which has an IP address for that subnet is used for [ovs]/local_ip instead.