Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright © 2016 Mirantis, Inc. All rights reserved
www.mirantis.com
Fuel Plugins
The best way to integrate your project w...
Copyright © 2016 Mirantis, Inc. All rights reserved
software.mirantis.com
Michał Skalski
mskalski@mirantis.com
Sr. OpenSta...
Copyright © 2016 Mirantis, Inc. All rights reserved
Agenda
● How the Fuel deployment works?
● Fuel Plugin capabilities
● C...
Copyright © 2016 Mirantis, Inc. All rights reserved
Deployment phases
Provisioning Deployment
MAIN
MAIN
MAIN
MAIN
PRE
DEPL...
Copyright © 2016 Mirantis, Inc. All rights reserved
Task-Based deployment
Provisioning
Primary
Controller
Controller Contr...
Copyright © 2016 Mirantis, Inc. All rights reserved
What you can do with Plugins?
Fuel plugin capabilities
Copyright © 2016 Mirantis, Inc. All rights reserved
Fuel plugins capabilities
● Install your own software
● Create new nod...
Copyright © 2016 Mirantis, Inc. All rights reserved
How to start?
Create your own plugin
Copyright © 2016 Mirantis, Inc. All rights reserved
Plugin developer environment
Fuel plugins: https://github.com/openstac...
Copyright © 2016 Mirantis, Inc. All rights reserved
Plugin structure
# tree my_plugin
my_plugin
├── components.yaml
├── de...
Copyright © 2016 Mirantis, Inc. All rights reserved
metadata.yaml
Describe plugin
Supported types of environments:
release...
Copyright © 2016 Mirantis, Inc. All rights reserved
nodes_role.yaml and volumes.yaml
Define your own role for nodes:
nodes...
Copyright © 2016 Mirantis, Inc. All rights reserved
environment_config.yaml
Create configuration of plugin
Define Web UI f...
Copyright © 2016 Mirantis, Inc. All rights reserved
environment_config.yaml
Copyright © 2016 Mirantis, Inc. All rights reserved
pre_build_hook
Bash script run before plugin compilation
Can be used t...
Copyright © 2016 Mirantis, Inc. All rights reserved
deployment_tasks.yaml
Add your own tasks
- id: odl_dashboard_registrat...
Copyright © 2016 Mirantis, Inc. All rights reserved
deployment_tasks.yaml
When my task should run?
PRE
DEPLOYMENT
MAIN
POS...
Copyright © 2016 Mirantis, Inc. All rights reserved
deployment_tasks.yaml
Task graph
# fuel graph --env 1 --download > gra...
Copyright © 2016 Mirantis, Inc. All rights reserved
Deployment scripts
Put your puppet manifest in deployment_scripts/pupp...
Copyright © 2016 Mirantis, Inc. All rights reserved
Build and install plugin
# fpb --build my_plugin
# fuel plugins --inst...
Copyright © 2016 Mirantis, Inc. All rights reserved
OPNFV Fuel plugins
Userspace OVS support, OpenvSwitch with DPDK
Mark G...
Copyright © 2016 Mirantis, Inc. All rights reserved
OPNFV Fuel plugins
OVS with NSH
Ling Yu, Ruijing Guo
Intel
https://git...
Copyright © 2016 Mirantis, Inc. All rights reserved
Other resources
Fuel Plugins Handbook:
https://goo.gl/d6y8ct
Fuel plug...
Copyright © 2016 Mirantis, Inc. All rights reserved
Thank you
Questions?
Upcoming SlideShare
Loading in …5
×

Fuel Plugins

622 views

Published on

  • Be the first to comment

  • Be the first to like this

Fuel Plugins

  1. 1. Copyright © 2016 Mirantis, Inc. All rights reserved www.mirantis.com Fuel Plugins The best way to integrate your project with FUEL@OPNFV
  2. 2. Copyright © 2016 Mirantis, Inc. All rights reserved software.mirantis.com Michał Skalski mskalski@mirantis.com Sr. OpenStack Deployment Engineer Fuel@OPNFV commiter Fuel ODL plugin author
  3. 3. Copyright © 2016 Mirantis, Inc. All rights reserved Agenda ● How the Fuel deployment works? ● Fuel Plugin capabilities ● Create your own plugin ● FUEL@OPNFV plugins ● Questions
  4. 4. Copyright © 2016 Mirantis, Inc. All rights reserved Deployment phases Provisioning Deployment MAIN MAIN MAIN MAIN PRE DEPLOYMENT MAIN POST DEPLOYMENT Puppet modules: https://github.com/openstack/fuel-library OS
  5. 5. Copyright © 2016 Mirantis, Inc. All rights reserved Task-Based deployment Provisioning Primary Controller Controller Controller Compute Cinder ... Compute Cinder Task 1 Task 2 Task 3 Task N ... Task 1 Task 2 Task 3 Task N ... Task 1 Task 2 Task 3 Task N ... Task 1 Task 2 Task 3 Task N ... Task 1 Task 2 Task 3 Task N ... Source: https://docs.google.com/presentation/d/1jZCFZlXHs_VhjtVYS2VuWgdxge5Q6sOMLz4bRLuw7YE
  6. 6. Copyright © 2016 Mirantis, Inc. All rights reserved What you can do with Plugins? Fuel plugin capabilities
  7. 7. Copyright © 2016 Mirantis, Inc. All rights reserved Fuel plugins capabilities ● Install your own software ● Create new node role ● Assign tasks to new role ● Manage disk partition scheme ● Define compatibility with other roles ● Modify OpenStack installation ● Add your own tasks ● Skip or modify existing tasks
  8. 8. Copyright © 2016 Mirantis, Inc. All rights reserved How to start? Create your own plugin
  9. 9. Copyright © 2016 Mirantis, Inc. All rights reserved Plugin developer environment Fuel plugins: https://github.com/openstack/fuel-plugins Install dependencies: Create plugin directory: # apt-get install build-essential python-pip git rpm createrepo dpkg-dev ruby-dev # pip install fuel-plugin-builder # gem install fpm # fpb --create my_plugin
  10. 10. Copyright © 2016 Mirantis, Inc. All rights reserved Plugin structure # tree my_plugin my_plugin ├── components.yaml ├── deployment_scripts │ └── deploy.sh ├── deployment_tasks.yaml ├── environment_config.yaml ├── my_plugin-1.0-1.0.0-1.noarch.rpm ├── LICENSE ├── metadata.yaml ├── network_roles.yaml ├── node_roles.yaml ├── pre_build_hook ├── README.md ├── repositories │ ├── centos │ └── ubuntu ├── tasks.yaml └── volumes.yaml Fuel UI wizard components Directory for plugin tasks' code Example shell script Definition of plugin tasks Fuel UI plugin specific parameters A plugin package created after you build a plugin. Standard Apache 2.0 license file Information about plugin Network roles specific data Definition of new node roles created by a plugin Actions to run on plugin build Free-form description of plugin Directory for plugin specific packages for centos packages for ubuntu packages Deprecated, use deployment_tasks.yaml instead Mapping between node roles and volume allocation
  11. 11. Copyright © 2016 Mirantis, Inc. All rights reserved metadata.yaml Describe plugin Supported types of environments: releases: - os: ubuntu version: mitaka-9.0 mode: ['ha'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu
  12. 12. Copyright © 2016 Mirantis, Inc. All rights reserved nodes_role.yaml and volumes.yaml Define your own role for nodes: nodes_role.yaml: opendaylight: name: "OpenDaylight controller" description: "OpenDaylight SDN controller" public_ip_required: false limits: max: 1 min: 1 volumes.yaml: volumes: [] volumes_roles_mapping: opendaylight: - {allocate_size: "min", id: "os"}
  13. 13. Copyright © 2016 Mirantis, Inc. All rights reserved environment_config.yaml Create configuration of plugin Define Web UI fields enable_l3_odl: weight: 12 type: "checkbox" value: false label: "Use ODL to manage L3 traffic" restrictions: - networking_parameters:segmentation_type == 'vlan': Use tunneling segmentation type. Configuration stored in hiera: # hiera plugin_name
  14. 14. Copyright © 2016 Mirantis, Inc. All rights reserved environment_config.yaml
  15. 15. Copyright © 2016 Mirantis, Inc. All rights reserved pre_build_hook Bash script run before plugin compilation Can be used to fetch / build custom packages Use fpm gem to create deb packages: fpm -s dir -t deb --prefix /opt/opendaylight --deb-upstart "service" -- name opendaylight -d "openjdk-8-jre-headless" -C "src_directory"
  16. 16. Copyright © 2016 Mirantis, Inc. All rights reserved deployment_tasks.yaml Add your own tasks - id: odl_dashboard_registration type: puppet role: [primary-controller] required_for: [post_deployment_end] requires: [post_deployment_start] version: 2.0.0 parameters: puppet_manifest: puppet/manifests/odl-dashboard.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 180
  17. 17. Copyright © 2016 Mirantis, Inc. All rights reserved deployment_tasks.yaml When my task should run? PRE DEPLOYMENT MAIN POST DEPLOYMENT role: [compute] [post_deployment_start] [post_deployment_end] groups: [controller, compute] requires: [openstack- network-start required_for: [openstack- network-end] role: [master] [pre_deployment_start] [pre_deployment_end]
  18. 18. Copyright © 2016 Mirantis, Inc. All rights reserved deployment_tasks.yaml Task graph # fuel graph --env 1 --download > graph.gv # fuel graph --render graph.gv --tred
  19. 19. Copyright © 2016 Mirantis, Inc. All rights reserved Deployment scripts Put your puppet manifest in deployment_scripts/puppet To simplify troubleshooting start manifest with: notice('MODULAR: my_plugin/new_task') To fetch your plugin configuration inside puppet manifests: my_plugin = hiera('my_plugin', {})
  20. 20. Copyright © 2016 Mirantis, Inc. All rights reserved Build and install plugin # fpb --build my_plugin # fuel plugins --install my_plugin-1.0-1.0.0-1.noarch.rpm # fuel plugins list id | name | version | package_version | releases ---+-----------+---------+-----------------+-------------- 1 | my_plugin | 1.0.1 | 4.0.0 | ubuntu (mitaka-9.0) Transfer compiled plugin to fuel master
  21. 21. Copyright © 2016 Mirantis, Inc. All rights reserved OPNFV Fuel plugins Userspace OVS support, OpenvSwitch with DPDK Mark Gray, Billy Mahony Intel https://gerrit.opnfv.org/gerrit/#/admin/projects/ovsnfv ONOS SDN controller Wu Wenbin Huawei http://git.openstack.org/cgit/openstack/fuel-plugin-onos/
  22. 22. Copyright © 2016 Mirantis, Inc. All rights reserved OPNFV Fuel plugins OVS with NSH Ling Yu, Ruijing Guo Intel https://github.com/openstack/fuel-plugin-ovs BGPVPN and OpenDaylight plugins Nikolas Hermanns, Ferenc Cserepkei, Manuel Buil Ericsson Michal Skalski, Mirantis https://github.com/openstack/fuel-plugin-bgpvpn https://github.com/openstack/fuel-plugin-opendaylight
  23. 23. Copyright © 2016 Mirantis, Inc. All rights reserved Other resources Fuel Plugins Handbook: https://goo.gl/d6y8ct Fuel plugins wiki: https://wiki.openstack.org/wiki/Fuel/Plugins
  24. 24. Copyright © 2016 Mirantis, Inc. All rights reserved Thank you Questions?

×