[openstack-dev] [TripleO] Summary of In-Progress TripleO Workflow and REST API Development
Dmitry Tantsur
dtantsur at redhat.com
Fri Dec 4 10:04:16 UTC 2015
On 12/03/2015 08:45 PM, Tzu-Mainn Chen wrote:
> Hey all,
>
> Over the past few months, there's been a lot of discussion and work around
> creating a new REST API-supported TripleO deployment workflow. However most
> of that discussion has been fragmented within spec reviews and weekly IRC
> meetings, so I thought it might make sense to provide a high-level overview
> of what's been going on. Hopefully it'll provide some useful perspective for
> those that are curious!
>
> Thanks,
> Tzu-Mainn Chen
>
> ------------------------------------------------------------------------------
> 1. Explanation for Deployment Workflow Change
>
> TripleO uses Heat to deploy clouds. Heat allows tremendous flexibility at the
> cost of enormous complexity. Fortunately TripleO has the space to allow
> developers to create tools to simplify the process tremendously, resulting in
> a deployment process that is both simple and flexible to user needs.
>
> The current CLI-based TripleO workflow asks the deployer to modify a base set
> of Heat environment files directly before calling Heat's stack-create command.
> This requires much knowledge and precision, and is a process prone to error.
>
> However this process can be eased by understanding that there is a pattern to
> these modifications; for example, if a deployer wishes to enable network
> isolation, a specific set of modifications must be made. These modification
> sets can be encapsulated through pre-created Heat environment files, and TripleO
> contains a library of these
> (https://github.com/openstack/tripleo-heat-templates/tree/master/environments).
>
> These environments are further categorized through the proposed environment
> capabilities map (https://review.openstack.org/#/c/242439). This mapping file
> contains programmatic metadata, adding items such as user-friendly text around
> environment files and marking certain environments as mutually exclusive.
>
>
> 2. Summary of Updated Deployment Workflow
>
> Here's a summary of the updated TripleO deployment workflow.
>
> 1. Create a Plan: Upload a base set of heat templates and environment files
> into a Swift container. This Swift container will be versioned to allow
> for future work with respect to updates and upgrades.
>
> 2. Environment Selection: Select the appropriate environment files for your
> deployment.
>
> 3. Modify Parameters: Modify additional deployment parameters. These
> parameters are influenced by the environment selection in step 2.
>
> 4. Deploy: Send the contents of the plan's Swift container to Heat for
> deployment.
>
> Note that the current CLI-based workflow still fits here: a deployer can modify
> Heat files directly prior to step 1, follow step 1, and then skip directly to
> step 4. This also allows for trial deployments with test configurations.
>
>
> 3. TripleO Python Library, REST API, and GUI
>
> Right now, much of the existing TripleO deployment logic lives within the TripleO
> CLI code, making it inaccessible to non-Python based UIs. Putting both old and
> new deployment logic into tripleo-common and then creating a REST API on top of
> that logic will enable modern Javascript-based GUIs to create cloud deployments
> using TripleO.
>
>
> 4. Future Work - Validations
>
> A possible next step is to add validations to the TripleO toolkit: scripts that
> can be used to check the validity of your deployment pre-, in-, and post-flight.
> These validations will be runnable and queryable through a REST API. Note that
> the above deployment workflow should not be a requirement for validations to be
> run.
>
>
> 5. In-Progress Development
>
> The initial spec for the tripleo-common library has already been approved, and
> various people have been pushing work forward. Here's a summary:
>
> * Move shared business logic out of CLI
> * https://review.openstack.org/249134 - simple validations (WIP)
When is this going to be finished? It's going to get me a huge merge
conflict in https://review.openstack.org/#/c/250405/ (and make it
impossible to backport to liberty btw).
> * https://review.openstack.org/228991 - deployment code (ready for review)
>
> * Additional TripleO business logic
> * rename tripleo-common repo to tripleo
> * https://review.openstack.org/#/c/249521/ (ready for review)
> * https://review.openstack.org/#/c/249524/ (ready for review)
> * https://review.openstack.org/#/c/247834/ (ready for review)
> * https://review.openstack.org/#/c/242439 - capabilities map (ready for review)
> * https://review.openstack.org/#/c/227297/ - base tripleo library code (ready for review)
> * https://review.openstack.org/#/c/232534/ - utility functions to manage environments (ready for review)
> * after the above is merged, plan.py will need to be updated to include environment methods
>
> * TripleO API
> * https://review.openstack.org/#/c/230432/ - API spec (ready for review)
> * https://review.openstack.org/#/c/243737/ - API (WIP)
> * after the library code is fully merged, API will need to be updated to allow access
> to a plan's environment manipulation methods
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list