Implements: Heat template for integrating Cavium SmartNIC LiquidIO

Contains Tripleo Heat templates to deploy Liquidio Compute nodes.
Creates a New role ComputeLiquidio, which contains Cavium SmartNIC.

Depends-On: Idfd094d344d7419557139dbcee98e42307eb465b
Change-Id: I777ae696e54da70d6bb8311d372742435638a172
This commit is contained in:
hanish gogada 2017-12-11 13:59:01 +05:30
parent 1724c7d088
commit b97fa08eb5
3 changed files with 147 additions and 0 deletions

View File

@ -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 <external-network-name>:<Interface>
#Interface is connected to external network and used only when bonding
#is disabled

View File

@ -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

View File

@ -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