From 5ce857a4cbe0244034489b625172a619fea8c3cd Mon Sep 17 00:00:00 2001 From: Rabi Mishra Date: Tue, 5 May 2020 08:56:06 +0530 Subject: [PATCH] Cleanup contributor guide for new developers Change-Id: Ie4c02f793537cea9ade0d3dc55abbb8300c71513 --- doc/source/contributor/new_developers.rst | 65 ++++++++--------------- 1 file changed, 21 insertions(+), 44 deletions(-) diff --git a/doc/source/contributor/new_developers.rst b/doc/source/contributor/new_developers.rst index 635679a5..7a2e0174 100644 --- a/doc/source/contributor/new_developers.rst +++ b/doc/source/contributor/new_developers.rst @@ -5,37 +5,29 @@ The intention of this document is to give new developers some information regarding how to get started with TripleO as well as some best practices that the TripleO community has settled on. -In general TripleO is a very complex chunk of software. It uses numerous -technologies to implement an OpenStack installer. The premise of TripleO was +In general TripleO is a very complex chunk of software. It uses numerous +technologies to implement an OpenStack installer. The premise of TripleO was to use the OpenStack platform itself as the installer and API for user interfaces. As such the first step to installing TripleO is to create what is -called an `undercloud`. Today this is typically done using an undercloud image -which contains all the software necessary to stand up an all-in-one style -OpenStack installation. +called an `undercloud`. We use almost similar architecture for both +`undercloud` and `overcloud` that leverages same set of Heat templates found +in `tripleo-heat-templates` repository, with a few minor differences. The +`undercloud` services are deployed in containers and can be managed by the +same tool chain used for `overcloud`. -Once the `undercloud` is deployed, we use a combination of Mistral and a set of -Heat templates, found in the `tripleo-heat-templates` repository, to drive the -deployment of an overcloud. Ironic is used to provision hardware and boot an -operating system either on baremetal (for real deployments) or on VMs (for -development). As of the Pike release we now deploy almost all services in -containers on the overcloud. By the end of Queens all services should be -containerized and the overcloud image should be reduced to a basic operating -system image. - -We are also working on unifying the architecture of the overcloud and -undercloud by moving to a containerized undercloud. This allows you to do -development on the undercloud using the same Heat templates as are used to -deploy the overcloud. This greatly accelerates development iteration cycle -speed. +Once the `undercloud` is deployed, we use a combination of Ansible playbooks +and a set of Heat templates, to drive the deployment of an overcloud. Ironic +is used to provision hardware and boot an operating system either on baremetal +(for real deployments) or on VMs (for development). All services are deployed +in containers on the overcloud like undercloud. Repositories that are part of TripleO ------------------------------------- * `tripleo-common `_: - This is intended to be for TripleO libraries of common code including Mistral - workflows and actions. Unfortunately it has become a bit overrun with - unrelated bits. Work is ongoing to clean this up and split this into - separate repositories. + This is intended to be for TripleO libraries of common code. + Unfortunately it has become a bit overrun with unrelated bits. Work + is ongoing to clean this up and split this into separate repositories. * `tripleo-ansible `_: Contains Ansible playbooks, roles, plugins, modules, filters for use with @@ -76,10 +68,6 @@ Repositories that are part of TripleO * `tripleo-ui `_: The web based graphical user interface for deploying TripleO. -* `paunch `_: - This is a library that is used to deploy containers. It is called from the - Heat templates during installation to deploy our containerized services. - * `kolla `_: We use the containers built by the Kolla project for services in TripleO. Any new containers or additions to existing containers should be submitted @@ -93,15 +81,8 @@ Definition of Done ------------------ This is basically a check list of things that you want to think about when -implementing a new feature. Especially important is considering how the user -interface functions along side the command line interface. +implementing a new feature. -- Ensure that any new feature is provided through Rest API in form of Mistral - actions, workflow or by directly accessing an OpenStack service API. -- Ensure that GUI and CLI can both operate this feature through this API. -- Start your feature work by creating Mistral action or Mistral workflow - - defining inputs and outputs. This is necessary so that the CI and UI have - feature parity and both use the same API calls to implement a given feature. - Ensure that the continuous integration (CI) is in place and passing, adding coverage to tests if required. See http://specs.openstack.org/openstack/tripleo-specs/specs/policy/adding-ci-jobs.html @@ -120,21 +101,17 @@ interface functions along side the command line interface. - If any new dependencies are used for your feature, be sure they are properly packaged and available in RDO. You can ask on #rdo (on freenode server) for help with this. -- If a Mistral workflow changes between releases, make version notes so that - users know how they might have to update their workflow call. Make sure it's - backwards-compatible, or have at least one cycle deprecation period before - removing the old way of doing things. -Using the Containerized Undercloud for Development. ---------------------------------------------------- +Using TripleO Standalone for Development +---------------------------------------- -The containerized undercloud can be used for development purposes. +The Standalone container based deployment can be used for development purposes. This reuses the existing TripleO Heat Templates, allowing you to do the development using this framework instead of a complete overcloud. This is very useful if you are developing Heat templates or containerized services. -Please see `Undercloud Deployment Guide `_ -on how to set up a containerized undercloud. +Please see `Standalone Deployment Guide `_ +on how to set up a Standalone OpenStack node.