ci_multus
Creates additional networks in a OCP cluster using NetworkAttachmentDefinition (NAD) resources.
Parameters
cifmw_ci_multus_basedir: (String) Base directory. Defaults tocifmw_basedirwhich defaults to~/ci-framework-data.cifmw_ci_multus_manifests_dir: (String) Directory in where OCP manifests will be placed. Defaults to"{{ cifmw_manifests | default(cifmw_ci_multus_basedir ~ '/artifacts/manifests') }}".cifmw_ci_multus_namespace: (String) The namespace where OCP resources will be installed. Defaults toopenstack.cifmw_ci_multus_ocp_hostname: (String) The OCP inventory hostname. Used to gather network information specific to those nodes, mostly the interfaces. Defaults tocrc.cifmw_ci_multus_cniversion: (String) The CNI specification version used when creating the resource. Defaults to0.3.1.cifmw_ci_multus_default_nad_type: (String) Default NAD type used when not specified by the network configuration. Defaults tomacvlan. You can select the type of each NAD by “multus_type”cifmw_ci_multus_default_bridge_attach: (String) Set place to attach the bridge when NAD type is bridge. Defaults tointerface. You can select the place to attach it by “multus_attach”.cifmw_ci_multus_default_nad_ipam_type: (String) Default NAD IPAM type to be used when not specified by the network configuration. Defaults towhereabouts.cifmw_ci_multus_default_nad_ipam_type_ip_version``: (String) Default IP version to use in IPAM config. Defaults tov4`.cifmw_ci_multus_dryrun: (Bool) When enabled, tasks that require an OCP environment are skipped. Defaults tofalse.cifmw_ci_multus_allow_list: (List) Adding network names to this list allows you to define what networks will be rendered into the NAD manifest. Defaults to[].cifmw_ci_multus_deny_list: (List) Adding network names to this list allows you to define what networks should be skipped from being rendered into the NAD manifest. Defaults to[].
By default the ci_multus role reads the cifmw_networking_env_definition variable to generate NetworkAttachmentDefinition manifests for networks who have the Multus tool defined.
In addition to that, you can also pass any number of “patch” variables using cifmw_ci_multus_net_info_patch that allow you to extend the config used to render the NetworkAttachmentDefinition manifests.
For a working example, please see cifmw_ci_multus_net_info_patch_1 in molecule/local/molecule.yml
cifmw_ci_multus_net_info_patch example
cifmw_ci_multus_net_info_patch_1:
patchnetwork:
gw_v4: 192.168.122.1
network_name: patchnetwork
network_v4: 192.168.122.0/24
interface_name: eth2
tools:
multus:
ipv4_ranges:
- start: 192.168.122.30
end: 192.168.122.70
type: bridge
attach: linux-bridge
Limitations
Not all NetworkAttachmentDefinition types and parameters are supported by this role.
Not all IPAM configurations are supported by this role.
When consuming network info from CI variables, the user must provide the OCP host, using
cifmw_ci_multus_ocp_hostnameparameter, since the role doesn’t perform a Node discovery on the OCP node.
Examples
1 - Default use case consuming cifmw_networking_env_definition
- name: Configure additional networks using multus
ansible.builtin.include_role:
name: "ci_multus"
2 - Using patch:
- name: Configure additional networks using multus
vars:
cifmw_ci_multus_net_info_patch_1:
patchnetwork:
gw_v4: 192.168.122.1
network_name: patchnetwork
network_v4: 192.168.122.0/24
interface_name: eth2
tools:
multus:
ipv4_ranges:
- start: 192.168.122.30
end: 192.168.122.70
type: macvlan
ansible.builtin.include_role:
name: "ci_multus"
2 - Using allow and deny list:
- name: Configure additional networks using multus
vars:
cifmw_ci_multus_allow_list:
- default
- awesomenet
- maybenet
cifmw_ci_multus_deny_list:
- maybenet
ansible.builtin.include_role:
name: "ci_multus"