diff --git a/environments/cavium-liquidio.yaml b/environments/cavium-liquidio.yaml new file mode 100644 index 0000000000..67a572bb1a --- /dev/null +++ b/environments/cavium-liquidio.yaml @@ -0,0 +1,25 @@ +resource_registry: + OS::TripleO::Services::LiquidioCompute: ../puppet/services/liquidio-compute-config.yaml + +parameter_defaults: + LiquidioSriovVfNum: 4 + LiquidioConfigureMode: ml2-odl + LiquidioEnableBonding: true + LiquidioBondingOptions: active-backup + LiquidioProviderMappings: 'datacentre:eth1' + + #LiquidioConfigureMode takes three valid values + #ml2-odl:- Installation is OpenStack and Opendaylight + #ml2-ovn:- Installation is OpenStack and OVN + #ml2-ovs:- Standard Openstack with OVS + #LiquidioEnableBonding, if set to true then DVR on LiquidioCompute nodes + #is disabled by default. to Enable DVR on LiquidioCompute nodes, + #set it to false. + #Liquidio supports three bonding options, these are considered + #only when bonding is enabled + # 1) active-backup + # 2) balance-tcp + # 3) balance-slb + #LiquidioProviderMappings: Valid input : + #Interface is connected to external network and used only when bonding + #is disabled diff --git a/puppet/services/liquidio-compute-config.yaml b/puppet/services/liquidio-compute-config.yaml new file mode 100644 index 0000000000..c9ad3724c1 --- /dev/null +++ b/puppet/services/liquidio-compute-config.yaml @@ -0,0 +1,78 @@ +heat_template_version: queens + +description: > + Configures Compute Nodes for liquidio ODL integration + +parameters: + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. This + mapping overrides those in ServiceNetMapDefaults. + type: json + DefaultPasswords: + default: {} + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + EndpointMap: + default: {} + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + type: json + LiquidioSriovVfNum: + type: number + description: Number of vf interfaces to be created on Compute nodes + default: 4 + constraints: + - range: { min: 1, max: 64 } + description: Vfs should be between 1 and 64 + LiquidioConfigureMode: + type: string + description: Mode of installation, either odl, ovn or ovs + default: ml2-odl + constraints: + - allowed_values: [ 'ml2-odl', 'ml2-ovn', 'ml2-ovs' ] + description: ConfigureMode for Liquidio service + LiquidioEnableBonding: + type: boolean + description: DVR Enabled or not + default: true + LiquidioBondingOptions: + type: string + description: Bonding options for Liquido interfaces + default: active-backup + constraints: + - allowed_values: + - active-backup + - balance-tcp + - balance-slb + LiquidioProviderMappings: + type: string + description: BridgeMappings used in ODL/OVN Deployments + default: 'datacentre:eth1' + constraints: + - allowed_pattern: "[a-zA-Z0-9]*:eth[0-1]" +outputs: + role_data: + description: Role data for the LiquidioCompute node + value: + service_name: liquidio_compute_config + config_settings: + tripleo::network::cavium::liquidio::vf_nums: {get_param: LiquidioSriovVfNum} + tripleo::network::cavium::liquidio::configure_mode: {get_param: LiquidioConfigureMode} + tripleo::network::cavium::liquidio::enable_bonding: {get_param: LiquidioEnableBonding} + tripleo::network::cavium::liquidio::bonding_options: {get_param: LiquidioBondingOptions} + tripleo::network::cavium::liquidio::provider_mappings: {get_param: LiquidioProviderMappings} + step_config: | + include ::tripleo::network::cavium::liquidio diff --git a/roles/ComputeLiquidio.yaml b/roles/ComputeLiquidio.yaml new file mode 100644 index 0000000000..c4ee043381 --- /dev/null +++ b/roles/ComputeLiquidio.yaml @@ -0,0 +1,44 @@ +############################################################################### +## Role: ComputeLiquidio # +################################################################################ +- name: ComputeLiquidio + description: | + Compute Node with Cavium Liquidio smart NIC + CountDefault: 1 + networks: + - InternalApi + - Tenant + - Storage + HostnameFormatDefault: '%stackname%-lionovacompute-%index%' + ServicesDefault: + - OS::TripleO::Services::AuditD + - OS::TripleO::Services::CACerts + - OS::TripleO::Services::CephClient + - OS::TripleO::Services::CephExternal + - OS::TripleO::Services::CertmongerUser + - OS::TripleO::Services::Collectd + - OS::TripleO::Services::ComputeCeilometerAgent + - OS::TripleO::Services::ComputeNeutronCorePlugin + - OS::TripleO::Services::ComputeNeutronL3Agent + - OS::TripleO::Services::ComputeNeutronMetadataAgent + - OS::TripleO::Services::ComputeNeutronOvsAgent + - OS::TripleO::Services::Docker + - OS::TripleO::Services::FluentdClient + - OS::TripleO::Services::Iscsid + - OS::TripleO::Services::Kernel + - OS::TripleO::Services::MySQLClient + - OS::TripleO::Services::NovaCompute + - OS::TripleO::Services::NovaLibvirt + - OS::TripleO::Services::NovaMigrationTarget + - OS::TripleO::Services::Ntp + - OS::TripleO::Services::LiquidioCompute + - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::Securetty + - OS::TripleO::Services::Snmp + - OS::TripleO::Services::Sshd + - OS::TripleO::Services::Timezone + - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::TripleoPackages + - OS::TripleO::Services::Tuned + - OS::TripleO::Services::Vpp + - OS::TripleO::Services::OVNController