Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Kolla project onboarding - OpenStack Summit Berlin 2018

150 visualizaciones

Publicado el

OpenStack project onboarding during OpenStack Summit Berlin 2018.
Onboarding projects are meant to attract new contributors and show them how the project works in terms of code and contributions.

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Kolla project onboarding - OpenStack Summit Berlin 2018

  1. 1. Kolla Project Onboarding OpenStack Summit Berlin Eduardo Gonzalez Gutierrez (egonzalez) Surya Prakash Singh (spsurya)
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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
  11. 11. Kolla-ansible - Architecture layout
  12. 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. 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. 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. 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. 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. 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. 18. Kolla-cli - Repo structure ● doc ○ Project documentation ● kolla-cli/locale ○ Translations ● kolla_cli ○ Python code ● tools ○ Helper tools for the repository
  19. 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. 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. 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
  22. 22. Questions Thank you!

×