SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Kolla Project Onboarding
OpenStack Summit Berlin
Eduardo Gonzalez Gutierrez (egonzalez)
Surya Prakash Singh (spsurya)
What is kolla?
Kolla’s mission is to provide production-ready containers and deployment tools for
operating OpenStack clouds.
Composed by three deliverables
- Kolla provides docker container images
- Kolla-ansible provides the deployment tool
- Kolla-cli provides an user interface
Kolla project background
● Founded during Kilo cycle
● Joined the Big Tent in Liberty cycle
● Kolla Rocky is the 7th stable release
● Kolla adoption in the latest user survey*
○ 115 production deployments with kolla-ansible
○ 25 deployments with custom tooling (Puppet, Nomad, etc)
* Only english answers, others still in translation process
Kolla images - Overview
Docker images build tool, highly customizable using Jinja2
● Images built from source code or binary packages
● Support for main distributions
○ CentOS/RHEL, Ubuntu, OracleLinux and Debian
● Multiple architectures
○ x86_64, aarch64 and ppc64le
Kolla images - Repo structure
● contrib
○ Build overrides templates
■ Not tested in CI, not supported
■ Examples for third party builds
● doc
○ Documentation
● docker
○ Dockerfile directories
● kolla
○ Kolla python build code
Kolla images - kolla/ directory
● common
○ Packages + version
○ User/group IDs
○ Configuration file and CLI options
● image
○ Image build logic
● template
○ Dockerfile overrides logic
● tests
○ Unittest
Kolla images - docker/ directory
● base
○ Add repositories
○ Common packages
○ Base kolla configurations (set_configs, dump-init, kolla_start, etc)
● openstack-base
○ Shared image for OpenStack services
● macros.j2
○ Jinja2 macros with re-usable build commands (yum/apt/pip install)
● <service_name>
○ N subfolder number with Dockerfile per service
Kolla images - Sample Dockerfile
FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% block <service_name>_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{{ macros.configure_user(name='<service_username>') }}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set <service_name>_packages = ['service_package_rpm'] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% set <service_name>_packages = ['service_package_deb'] %}
{% endif %}
{{ macros.install_packages(<service_name>_packages | customizable("packages")) }}
{% block <service_name>_footer %}{% endblock %}
{% block footer %}{% endblock %}
USER <service_username>
Kolla images - Customizations
{% extends parent_template %}
{% block <service_name_1>_install %}
{% set <service_name>_packages_append = ['wanted-package'] %}
{% set <service_name>_packages_remove = ['unwanted-package'] %}
{% endblock %}
{% block <service_name_2>_footer %}
RUN curl http://example.com
{% endblock %}
$ kolla-build --template-override <overrides_file>
Kolla-ansible - Overview
Ansible based deployment tool for kolla images.
● High availability and scalable by design
● More than 50 different services supported
● Highly customizable by operators
● Fast deployments and upgrades
● Ability to choose different solutions
○ Monitoring stack
○ Networking
○ Storage
Kolla-ansible - Architecture layout
Kolla-ansible - Repo structure
● ansible
○ Ansible roles, plugins, etc
● contrib
○ Vagrant development scripts
○ Sample config, in example tacker VNF
● doc
○ Documentation
● etc
○ Configuration files
● kolla_ansible
○ Python tools
Kolla-ansible - ansible/ directory
● action_plugins
○ Ansible action plugins (merge_yaml and merge_configs)
● group_vars
○ Ansible group variables, default values
● inventory
○ Sample inventory files
● library
○ Python modules
● roles
○ Ansible roles
Kolla-ansible - Roles
Almost all roles follows similar structure
● register.yml
○ Create services, endpoints and users
● config.yml
○ Copy configuration files to destination nodes
● clone.yml
○ Configure development mode
● bootstrap.yml
○ Creates databases and run schema migrations
● flush_handlers
○ Start containers
Kolla-ansible - Custom configurations [part 1]
Easy custom configuration
● File formats which allows override single options
○ INI files
○ yaml files
● Other formats only support configuration file replacement
Kolla-ansible - Custom configurations [part 2]
Fine grained configuration per service, node and container
- name: Copying over tacker.conf
merge_configs:
sources:
- "{{ role_path }}/templates/tacker.conf.j2"
- "{{ node_custom_config }}/global.conf"
- "{{ node_custom_config }}/tacker.conf"
- "{{ node_custom_config }}/tacker/{{ item.key }}.conf"
- "{{ node_custom_config }}/tacker/{{ inventory_hostname }}/tacker.conf"
dest: "{{ node_config_directory }}/{{ item.key }}/tacker.conf"
with_dict: "{{ tacker_services }}"
Kolla-cli - Overview
Eases management of kolla-ansible deployments
● Command line interface and Python API
● Edit inventories, hosts and groups
● Configure deployments
● Run deployments and upgrades
Kolla-cli - Repo structure
● doc
○ Project documentation
● kolla-cli/locale
○ Translations
● kolla_cli
○ Python code
● tools
○ Helper tools for the repository
Kolla-cli - kolla_cli/ directory
● api
○ kolla-cli API classes
● command
○ kolla-cli CLI modules
● common
○ Shared libraries
● tests
○ Unit and functional tests
Work in progress - Help needed
● Upgrades improvement
● New features as services or images
● A lot of CI work
● Code reusability and DRY(don’t repeat yourself) ansible
● Documentation
● Testing
● Code reviews
● More...
Join our amazing team
● IRC channel #openstack-kolla at freenode
● Meetings at #openstack-meeting-4 on Wednesdays at 15:00 UTC
● Mailing List with [kolla] tags
● Bugs / reviews / patches are welcome.
○ Filter by Wishlist for easy fixes at Launchpad
Questions
Thank you!

Contenu connexe

Tendances

Introducing OpenStack for Beginners
Introducing OpenStack for Beginners Introducing OpenStack for Beginners
Introducing OpenStack for Beginners
openstackindia
 
Openstack overview thomas-goirand
Openstack overview thomas-goirandOpenstack overview thomas-goirand
Openstack overview thomas-goirand
OpenCity Community
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
NETWAYS
 
Deep dive into highly available open stack architecture openstack summit va...
Deep dive into highly available open stack architecture   openstack summit va...Deep dive into highly available open stack architecture   openstack summit va...
Deep dive into highly available open stack architecture openstack summit va...
Arthur Berezin
 

Tendances (20)

Building CLI Applications with Golang
Building CLI Applications with GolangBuilding CLI Applications with Golang
Building CLI Applications with Golang
 
Introducing OpenStack for Beginners
Introducing OpenStack for Beginners Introducing OpenStack for Beginners
Introducing OpenStack for Beginners
 
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
Ceph & OpenStack talk given @ OpenStack Meetup @ Bangalore, June 2015
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
 
Introduction to OpenStack Cinder
Introduction to OpenStack CinderIntroduction to OpenStack Cinder
Introduction to OpenStack Cinder
 
Ceph Block Devices: A Deep Dive
Ceph Block Devices: A Deep DiveCeph Block Devices: A Deep Dive
Ceph Block Devices: A Deep Dive
 
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
OpenNebula Conf 2014 | Cloud Automation for OpenNebula by Kishorekumar Neelam...
 
OpenStack Toronto: Juno Community Update
OpenStack Toronto: Juno Community UpdateOpenStack Toronto: Juno Community Update
OpenStack Toronto: Juno Community Update
 
A Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon ValleyA Container Stack for Openstack - OpenStack Silicon Valley
A Container Stack for Openstack - OpenStack Silicon Valley
 
Openstack overview thomas-goirand
Openstack overview thomas-goirandOpenstack overview thomas-goirand
Openstack overview thomas-goirand
 
Manila, an update from Liberty, OpenStack Summit - Tokyo
Manila, an update from Liberty, OpenStack Summit - TokyoManila, an update from Liberty, OpenStack Summit - Tokyo
Manila, an update from Liberty, OpenStack Summit - Tokyo
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
 
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier FontanOpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
OpenNebula Conf 2014 | OpenNebula as Open Replacement of vCloud by Javier Fontan
 
To Russia with Love: Deploying Kubernetes in Exotic Locations On Prem
To Russia with Love: Deploying Kubernetes in Exotic Locations On PremTo Russia with Love: Deploying Kubernetes in Exotic Locations On Prem
To Russia with Love: Deploying Kubernetes in Exotic Locations On Prem
 
Deep dive into highly available open stack architecture openstack summit va...
Deep dive into highly available open stack architecture   openstack summit va...Deep dive into highly available open stack architecture   openstack summit va...
Deep dive into highly available open stack architecture openstack summit va...
 
OpenNebula Conf 2014 | OpenNebula as alternative to commercial virtualization...
OpenNebula Conf 2014 | OpenNebula as alternative to commercial virtualization...OpenNebula Conf 2014 | OpenNebula as alternative to commercial virtualization...
OpenNebula Conf 2014 | OpenNebula as alternative to commercial virtualization...
 
Openstack In Real Life
Openstack In Real LifeOpenstack In Real Life
Openstack In Real Life
 
Andy McCrae, Rackspace - Using Ansible to Deploy and Automate OpenStack, Open...
Andy McCrae, Rackspace - Using Ansible to Deploy and Automate OpenStack, Open...Andy McCrae, Rackspace - Using Ansible to Deploy and Automate OpenStack, Open...
Andy McCrae, Rackspace - Using Ansible to Deploy and Automate OpenStack, Open...
 
The road to enterprise ready open stack storage as service
The road to enterprise ready open stack storage as serviceThe road to enterprise ready open stack storage as service
The road to enterprise ready open stack storage as service
 
State of Containers in OpenStack
State of Containers in OpenStackState of Containers in OpenStack
State of Containers in OpenStack
 

Similaire à Kolla project onboarding - OpenStack Summit Berlin 2018

Similaire à Kolla project onboarding - OpenStack Summit Berlin 2018 (20)

Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
Running your dockerized application(s) on AWS Elastic Container Service
Running your dockerized application(s) on AWS Elastic Container ServiceRunning your dockerized application(s) on AWS Elastic Container Service
Running your dockerized application(s) on AWS Elastic Container Service
 
Troubleshooting containerized triple o deployment
Troubleshooting containerized triple o deploymentTroubleshooting containerized triple o deployment
Troubleshooting containerized triple o deployment
 
ARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CIARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CI
 
GradleFX
GradleFXGradleFX
GradleFX
 
Asian Spirit 3 Day Dba On Ubl
Asian Spirit 3 Day Dba On UblAsian Spirit 3 Day Dba On Ubl
Asian Spirit 3 Day Dba On Ubl
 
CMake_Tutorial.pdf
CMake_Tutorial.pdfCMake_Tutorial.pdf
CMake_Tutorial.pdf
 
Kolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyKolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in Sydney
 
Puppet
PuppetPuppet
Puppet
 
Clouds and Tools: Cheat Sheets & Infographics
Clouds and Tools: Cheat Sheets & InfographicsClouds and Tools: Cheat Sheets & Infographics
Clouds and Tools: Cheat Sheets & Infographics
 
Installing oracle grid infrastructure and database 12c r1
Installing oracle grid infrastructure and database 12c r1Installing oracle grid infrastructure and database 12c r1
Installing oracle grid infrastructure and database 12c r1
 
Best Practices for Developing & Deploying Java Applications with Docker
Best Practices for Developing & Deploying Java Applications with DockerBest Practices for Developing & Deploying Java Applications with Docker
Best Practices for Developing & Deploying Java Applications with Docker
 
MySQL on Docker and Kubernetes
MySQL on Docker and KubernetesMySQL on Docker and Kubernetes
MySQL on Docker and Kubernetes
 
DockerCC.pdf
DockerCC.pdfDockerCC.pdf
DockerCC.pdf
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
 
Linux configer
Linux configerLinux configer
Linux configer
 
BDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part IIBDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part II
 
Global objects in Node.pdf
Global objects in Node.pdfGlobal objects in Node.pdf
Global objects in Node.pdf
 
OpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with GradleOpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with Gradle
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Kolla project onboarding - OpenStack Summit Berlin 2018

  • 1. Kolla Project Onboarding OpenStack Summit Berlin Eduardo Gonzalez Gutierrez (egonzalez) Surya Prakash Singh (spsurya)
  • 2. What is kolla? Kolla’s mission is to provide production-ready containers and deployment tools for operating OpenStack clouds. Composed by three deliverables - Kolla provides docker container images - Kolla-ansible provides the deployment tool - Kolla-cli provides an user interface
  • 3. Kolla project background ● Founded during Kilo cycle ● Joined the Big Tent in Liberty cycle ● Kolla Rocky is the 7th stable release ● Kolla adoption in the latest user survey* ○ 115 production deployments with kolla-ansible ○ 25 deployments with custom tooling (Puppet, Nomad, etc) * Only english answers, others still in translation process
  • 4. Kolla images - Overview Docker images build tool, highly customizable using Jinja2 ● Images built from source code or binary packages ● Support for main distributions ○ CentOS/RHEL, Ubuntu, OracleLinux and Debian ● Multiple architectures ○ x86_64, aarch64 and ppc64le
  • 5. Kolla images - Repo structure ● contrib ○ Build overrides templates ■ Not tested in CI, not supported ■ Examples for third party builds ● doc ○ Documentation ● docker ○ Dockerfile directories ● kolla ○ Kolla python build code
  • 6. Kolla images - kolla/ directory ● common ○ Packages + version ○ User/group IDs ○ Configuration file and CLI options ● image ○ Image build logic ● template ○ Dockerfile overrides logic ● tests ○ Unittest
  • 7. Kolla images - docker/ directory ● base ○ Add repositories ○ Common packages ○ Base kolla configurations (set_configs, dump-init, kolla_start, etc) ● openstack-base ○ Shared image for OpenStack services ● macros.j2 ○ Jinja2 macros with re-usable build commands (yum/apt/pip install) ● <service_name> ○ N subfolder number with Dockerfile per service
  • 8. Kolla images - Sample Dockerfile FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" {% block <service_name>_header %}{% endblock %} {% import "macros.j2" as macros with context %} {{ macros.configure_user(name='<service_username>') }} {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} {% set <service_name>_packages = ['service_package_rpm'] %} {% elif base_distro in ['debian', 'ubuntu'] %} {% set <service_name>_packages = ['service_package_deb'] %} {% endif %} {{ macros.install_packages(<service_name>_packages | customizable("packages")) }} {% block <service_name>_footer %}{% endblock %} {% block footer %}{% endblock %} USER <service_username>
  • 9. Kolla images - Customizations {% extends parent_template %} {% block <service_name_1>_install %} {% set <service_name>_packages_append = ['wanted-package'] %} {% set <service_name>_packages_remove = ['unwanted-package'] %} {% endblock %} {% block <service_name_2>_footer %} RUN curl http://example.com {% endblock %} $ kolla-build --template-override <overrides_file>
  • 10. Kolla-ansible - Overview Ansible based deployment tool for kolla images. ● High availability and scalable by design ● More than 50 different services supported ● Highly customizable by operators ● Fast deployments and upgrades ● Ability to choose different solutions ○ Monitoring stack ○ Networking ○ Storage
  • 12. Kolla-ansible - Repo structure ● ansible ○ Ansible roles, plugins, etc ● contrib ○ Vagrant development scripts ○ Sample config, in example tacker VNF ● doc ○ Documentation ● etc ○ Configuration files ● kolla_ansible ○ Python tools
  • 13. Kolla-ansible - ansible/ directory ● action_plugins ○ Ansible action plugins (merge_yaml and merge_configs) ● group_vars ○ Ansible group variables, default values ● inventory ○ Sample inventory files ● library ○ Python modules ● roles ○ Ansible roles
  • 14. Kolla-ansible - Roles Almost all roles follows similar structure ● register.yml ○ Create services, endpoints and users ● config.yml ○ Copy configuration files to destination nodes ● clone.yml ○ Configure development mode ● bootstrap.yml ○ Creates databases and run schema migrations ● flush_handlers ○ Start containers
  • 15. Kolla-ansible - Custom configurations [part 1] Easy custom configuration ● File formats which allows override single options ○ INI files ○ yaml files ● Other formats only support configuration file replacement
  • 16. Kolla-ansible - Custom configurations [part 2] Fine grained configuration per service, node and container - name: Copying over tacker.conf merge_configs: sources: - "{{ role_path }}/templates/tacker.conf.j2" - "{{ node_custom_config }}/global.conf" - "{{ node_custom_config }}/tacker.conf" - "{{ node_custom_config }}/tacker/{{ item.key }}.conf" - "{{ node_custom_config }}/tacker/{{ inventory_hostname }}/tacker.conf" dest: "{{ node_config_directory }}/{{ item.key }}/tacker.conf" with_dict: "{{ tacker_services }}"
  • 17. Kolla-cli - Overview Eases management of kolla-ansible deployments ● Command line interface and Python API ● Edit inventories, hosts and groups ● Configure deployments ● Run deployments and upgrades
  • 18. Kolla-cli - Repo structure ● doc ○ Project documentation ● kolla-cli/locale ○ Translations ● kolla_cli ○ Python code ● tools ○ Helper tools for the repository
  • 19. Kolla-cli - kolla_cli/ directory ● api ○ kolla-cli API classes ● command ○ kolla-cli CLI modules ● common ○ Shared libraries ● tests ○ Unit and functional tests
  • 20. Work in progress - Help needed ● Upgrades improvement ● New features as services or images ● A lot of CI work ● Code reusability and DRY(don’t repeat yourself) ansible ● Documentation ● Testing ● Code reviews ● More...
  • 21. Join our amazing team ● IRC channel #openstack-kolla at freenode ● Meetings at #openstack-meeting-4 on Wednesdays at 15:00 UTC ● Mailing List with [kolla] tags ● Bugs / reviews / patches are welcome. ○ Filter by Wishlist for easy fixes at Launchpad