diff --git a/Home_OSP_Network.drawio b/Home_OSP_Network.drawio new file mode 100644 index 0000000..dbc5c66 --- /dev/null +++ b/Home_OSP_Network.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/devstack_setup.yml b/devstack_setup.yml index 59488e1..3d4ec04 100644 --- a/devstack_setup.yml +++ b/devstack_setup.yml @@ -15,12 +15,20 @@ name: '*' state: latest + - name: Install full curl package with allowerasing + ansible.builtin.dnf: + name: curl + state: present + allowerasing: true + - name: Packages installed ansible.builtin.dnf: name: "{{ install_packages }}" state: present allowerasing: true +# TODO: Properly handle getting kmod from centos-kmod-rebuild + # TODO: Restart NetworkManager service if NetworkManager-ovs package is updated - name: Create stack user for admin diff --git a/files/openstack_user_config.yml b/files/openstack_user_config.yml index e19d29b..23d7011 100644 --- a/files/openstack_user_config.yml +++ b/files/openstack_user_config.yml @@ -13,10 +13,15 @@ global_overrides: external_lb_vip_address: 172.29.236.10 management_bridge: "br-mgmt" tunnel_bridge: "br-vxlan" + neutron_provider_networks: + network_types: "geneve" + network_geneve_ranges: "1:1000" + network_vlan_ranges: "public" + network_mappings: "public:br-publicnet" + network_interface_mappings: "br-publicnet:bond1" provider_networks: - network: container_bridge: "br-mgmt" - container_bridge_type: openvswitch container_type: "veth" container_interface: "eth1" ip_from_q: "container" @@ -26,33 +31,8 @@ global_overrides: - hosts is_management_address: true is_container_address: true - - network: - container_bridge: "br-vxlan" - container_bridge_type: openvswitch - container_type: "veth" - container_interface: "eth10" - container_mtu: "9000" - ip_from_q: "tunnel" - type: "vxlan" - range: "1:1000" - group_binds: - - neutron_openvswitch_agent - # - network: - # container_bridge: "br-vlan" - # container_bridge_type: openvswitch - # container_type: "veth" - # container_interface: "eth11" - # container_mtu: "9000" - # type: "vlan" - # range: "701:800,801:900" - # net_name: "vlan" - # group_binds: - # - neutron_openvswitch_agent - # host_bind_override: - # - - network: container_bridge: "br-storage" - container_bridge_type: openvswitch container_type: "veth" container_interface: "eth2" container_mtu: "9000" @@ -64,13 +44,44 @@ global_overrides: - cinder_volume - nova_compute - repo_container - - neutron_openvswitch_agent + - network: + container_bridge: "br-tunnel" + container_type: "veth" + container_interface: "eth10" + container_mtu: "9000" + ip_from_q: "tunnel" + type: "geneve" + range: "1:1000" + group_binds: + - neutron_ovn_controller + # - network: + # container_bridge: "br-vlan" + # container_type: "veth" + # container_interface: "eth11" + # container_mtu: "9000" + # type: "vlan" + # range: "700:899" + # net_name: "vlan" + # network_interface: "br-ex" + # group_binds: + # - neutron_ovn_controller -neutron_plugin_type: ml2.ovs +# Workaround for https://github.com/eventlet/eventlet/issues/781 +venv_default_pip_packages: + - eventlet==0.33.3 + +neutron_plugin_type: ml2.ovn -neutron_ml2_drivers_type: "flat,vlan,vxlan" neutron_plugin_base: - - router + - ovn-router + +neutron_ml2_drivers_type: "vlan,local,geneve" + +# neutron_plugin_type: ml2.ovs + +# neutron_ml2_drivers_type: "flat,vlan,vxlan" +# neutron_plugin_base: +# - router ### ### Infrastructure @@ -135,6 +146,22 @@ network_hosts: infra1: ip: 172.29.236.11 +neutron_ovn_northd: + infra1: + ip: 172.29.236.11 + +network_gateway_hosts: + infra1: + ip: 172.29.236.11 + +neutron_ovn_controller: + infra1: + ip: 172.29.236.11 + +neutron_ovn_gateway: + infra1: + ip: 172.29.236.11 + # nova hypervisors compute_hosts: compute1: diff --git a/files/user_variables.yml b/files/user_variables.yml index 27b456f..8a32531 100644 --- a/files/user_variables.yml +++ b/files/user_variables.yml @@ -37,7 +37,7 @@ debug: false # Default option (source) is to install the OpenStack services using PIP # packages. An alternative method (distro) is to use the distribution cloud # repositories to install OpenStack using distribution packages -install_method: distro +install_method: source ## Common Glance Overrides # Set glance_default_store to "swift" if using Cloud Files backend diff --git a/inventory/group_vars/compute.yaml b/inventory/group_vars/compute.yaml index d8be57c..f491dad 100644 --- a/inventory/group_vars/compute.yaml +++ b/inventory/group_vars/compute.yaml @@ -6,6 +6,14 @@ install_packages: - sudo - tcpdump - python3 - - curl-minimal + - curl - rdo-openvswitch - NetworkManager-ovs + - centos-release-kmods # For be2net driver + +neutron_provider_networks: + network_types: "geneve" + network_geneve_ranges: "1:1000" + network_vlan_ranges: "public:700:899" + network_mappings: "public:br-publicnet" + network_interface_mappings: "br-publicnet:bond1" \ No newline at end of file diff --git a/inventory/host_vars/compute1.lab.toal.ca/networking.yml b/inventory/host_vars/compute1.lab.toal.ca/networking.yml index ecb690f..b173fae 100644 --- a/inventory/host_vars/compute1.lab.toal.ca/networking.yml +++ b/inventory/host_vars/compute1.lab.toal.ca/networking.yml @@ -8,11 +8,18 @@ network_state: routes: config: - destination: 0.0.0.0/0 - next-hop-interface: ens2f1.6 + next-hop-interface: enp3s0f0 next-hop-address: 192.168.90.1 metric: 400 table-id: 254 interfaces: + - name: enp3s0f0 + type: ethernet + state: up + mtu: 9000 + ipv4: + enabled: true + dhcp: true - name: ens2f1 type: ethernet state: up @@ -24,24 +31,6 @@ network_state: enabled: false dhcp: false autoconf: false - - name: ens2f1.6 - type: vlan - state: up - mtu: 1500 - ipv4: - enabled: true - dhcp: false - address: - - ip: 192.168.90.18 - prefix-length: 24 - ipv6: - enabled: true - dhcp: false - autoconf: false - vlan: - base-iface: ens2f1 - id: 6 - protocol: 802.1q - name: ens2f1.236 type: vlan state: up @@ -76,16 +65,11 @@ network_state: id: 244 protocol: 802.1q - name: br-mgmt - type: ovs-bridge + type: linux-bridge state: up - mtu: 9000 bridge: port: - name: ens2f1.236 - - name: br-mgmt - - name: br-mgmt - type: ovs-interface - state: up ipv4: enabled: true dhcp: false @@ -96,17 +80,13 @@ network_state: enabled: true dhcp: false autoconf: false - - name: br-vxlan - type: ovs-bridge - state: up + - name: br-tunnel + type: linux-bridge mtu: 9000 + state: up bridge: port: - name: ens2f1.240 - - name: br-vxlan - - name: br-vxlan - type: ovs-interface - state: up ipv4: enabled: true dhcp: false @@ -117,24 +97,13 @@ network_state: enabled: true dhcp: false autoconf: false - # - name: br-vlan - # type: ovs-bridge - # state: up - # mtu: 9000 - # bridge: - # port: - # - name: ens2f1 - name: br-storage - type: ovs-bridge + type: linux-bridge state: up mtu: 9000 bridge: port: - name: ens2f1.244 - - name: br-storage - - name: br-storage - type: ovs-interface - state: up ipv4: enabled: true dhcp: false diff --git a/inventory/host_vars/ospc.lab.toal.ca/networking.yml b/inventory/host_vars/ospc.lab.toal.ca/networking.yml index dc595e5..3bcd650 100644 --- a/inventory/host_vars/ospc.lab.toal.ca/networking.yml +++ b/inventory/host_vars/ospc.lab.toal.ca/networking.yml @@ -8,12 +8,12 @@ network_state: routes: config: - destination: 0.0.0.0/0 - next-hop-interface: enp2s0 + next-hop-interface: ens4 next-hop-address: 192.168.90.1 metric: 400 table-id: 254 interfaces: - - name: enp2s0 + - name: ens4 type: ethernet state: up mtu: 1500 @@ -29,8 +29,7 @@ network_state: autoconf: false # lldp: # enabled: true - - - name: enp3s0 + - name: ens3 type: ethernet state: up mtu: 9000 @@ -43,7 +42,7 @@ network_state: autoconf: false # lldp: # enabled: true - - name: enp3s0.236 + - name: ens3.236 type: vlan state: up mtu: 9000 @@ -51,10 +50,10 @@ network_state: enabled: false dhcp: false vlan: - base-iface: enp3s0 + base-iface: ens3 id: 236 protocol: 802.1q - - name: enp3s0.240 + - name: ens3.240 type: vlan state: up mtu: 9000 @@ -62,30 +61,22 @@ network_state: enabled: false dhcp: false vlan: - base-iface: enp3s0 + base-iface: ens3 id: 240 protocol: 802.1q - - name: enp3s0.244 - type: vlan + - name: ens5 + type: ethernet state: up mtu: 9000 ipv4: enabled: false dhcp: false - vlan: - base-iface: enp3s0 - id: 244 - protocol: 802.1q - name: br-mgmt - type: ovs-bridge + type: linux-bridge state: up bridge: port: - - name: enp3s0.236 - - name: br-mgmt - - name: br-mgmt - type: ovs-interface - state: up + - name: ens3.236 ipv4: enabled: true dhcp: false @@ -98,16 +89,13 @@ network_state: enabled: true dhcp: false autoconf: false - - name: br-vxlan - type: ovs-bridge + - name: br-tunnel + type: linux-bridge + mtu: 9000 state: up bridge: port: - - name: enp3s0.240 - - name: br-vxlan - - name: br-vxlan - type: ovs-interface - state: up + - name: ens3.240 ipv4: enabled: true dhcp: false @@ -118,22 +106,13 @@ network_state: enabled: true dhcp: false autoconf: false - # - name: br-vlan - # type: ovs-bridge - # state: up - # bridge: - # port: - # - name: enp3s0 - name: br-storage - type: ovs-bridge + type: linux-bridge state: up + mtu: 9000 bridge: port: - - name: enp3s0.244 - - name: br-storage - - name: br-storage - type: ovs-interface - state: up + - name: ens5 ipv4: enabled: true dhcp: false