Dan Radez, Red Hat, Tim Rozet, Red Hat
The OPNFV ecosystem is made up of projects that need to integrate with each other. Project Apex uses Triple-o under the covers which most people usually need some assistance to integrate with.
Come and spend a session with the Apex development team learning the ins and outs of Triple-o.
In this session participants will learn about the deployment process that is run when an Apex/Triple-o deployment is executed and how to assign services to nodes and generate networking configurations withing Triple-o to successfully integrate and deploy a new component in OpenStack.
Come learn how to untangle the learning curve presented when integrating and using Triple-o and simplify your future development and deployment endeavors with a new found intimate knowledge of the Apex & Triple-o platform.
How Many Ohs? (An Integration Guide to Apex & Triple-o)
1.
2. How many Ohs?
Apex Integration Guide
Dan Radez (Red Hat)
Tim Rozet (Red Hat)
3. The Basics
• Apex – Frontend UI for a forked version of TripleO.
• TripleO (OOO) – Deployment tool comprised of multiple sub
repos/projects.
• Undercloud – The TripleO installer VM
• Overcloud – Target deployment (OPNFV Control/Compute nodes)
4. Forked TripleO?
●
Forked TripleO used to incubate new NFV features before merged
upstream
●
Forks include three main subprojects for TripleO:
– Tripleo-heat-templates - Drives deployments via Heat orchestration
– Puppet-tripleo - Called by heat tools to configure OPNFV on each overcloud node
– os-net-config - Called by heat tools to configure NICs and bridges on the overcloud node
16. Deployment Command
●
Derived from Apex deploy settings (example “tacker: true”)
●
Example:
resource_registry:
OS::TripleO::Services::Tacker: ../puppet/services/tacker.yaml
●
Which includes enable_tacker.yaml env heat template:
openstack overcloud deploy -e opnfv-environment.yaml -e network-environment.yaml -e
/usr/share/openstack-tripleo-heat-templates/environments/enable_tacker.yaml
●
Resource registry used to register services
17. Tacker Heat Template
heat_template_version: 2016-04-08
description: >
OpenStack Tacker service configured with Puppet
parameters:
TackerPassword:
description: The password for the tacker service account.
type: string
hidden: true
outputs:
role_data:
description: Role data for the Tacker role.
value:
service_name: tacker
config_settings:
tacker_password: {get_param: TackerPassword}
step_config: |
include ::tripleo::profile::base::tacker
Sets hieradata
Runs puppet-tripleo manifest
Parameters which can be overridden in environment
files
18. Tacker Puppet TripleO
class tripleo::profile::base::tacker (
$bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
) {
if $::hostname == downcase($bootstrap_node) {
$sync_db = true
} else {
$sync_db = false
}
if $step >= 4 or ($step >= 3 and $sync_db){
include ::tacker::server
include ::tacker::db
}
}
Triggers openstack puppet tacker module:
https://github.com/openstack/puppet-tacker
“step” controls stage when puppet is applied
19. Deployment Network Settings
●
Apex parses network settings file
●
Writes NIC configuration to /home/stack/nics/
●
Writes network configuration to /home/stack/network-
environment.yaml
●
Included by environment file in deploy command:
openstack overcloud deploy -e opnfv-environment.yaml -e network-environment.yaml -e
/usr/share/openstack-tripleo-heat-templates/environments/enable_tacker.yaml
20. Apex Key Integration Files
●
Adding deploy settings:
apex/lib/python/apex/deploy_settings.py
●
Adding or modifying scenarios:
apex/config/deploy/
●
Modifying artifacts loaded into disk image during build:
apex/build/undercloud.sh
apex/build/overcloud-full.sh
apex/build/overcloud-opendaylight.sh
21. Apex Integration Workflow
●
Reference integration guide:
https://wiki.opnfv.org/display/apex/Integration+Guide
●
Create patches in apex-tripleo-heat-templates, apex-puppet-tripleo
●
Create patch in Apex to trigger including your templates based on
new deployment settings or scenario
●
Apex patch should include dependent patches:
Moving to forks on gerrit.opnfv.org
Migrating off of github onto opnfv.org to host our forked
projects that are side loaded into our builds
apex-tripleo-heat-templates: Ic65cfeee4a55e993629f831c8c9d9addf6f3dff4
apex-puppet-tripleo: If498c41d706c8f14a5b0bbee64cb4d26cd78c2d0
apex-os-net-config: I5281a57640f388e984b061702362f9c82d08da78