bf321d2969
This PS introduces a Spec for the updated OpenStack-Helm developer environment. Change-Id: I02ac56e39049f866dc875374f596e169d952f148 Implements: blueprint developer-environment
125 lines
4.1 KiB
ReStructuredText
125 lines
4.1 KiB
ReStructuredText
..
|
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
|
License.
|
|
|
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
|
|
|
..
|
|
|
|
=====================
|
|
Developer Environment
|
|
=====================
|
|
|
|
https://blueprints.launchpad.net/openstack-helm/+spec/developer-environment
|
|
|
|
Problem Description
|
|
===================
|
|
|
|
Developers require a simple way of instantiating a working environment for
|
|
OpenStack-Helm, that allows them to quickly begin development of the project.
|
|
This is more complex to achieve than many OpenStack Projects that can simply
|
|
rely upon a devstack plugin to achieve this. This is as OpenStack-Helm is
|
|
focused on the deployment of OpenStack (and associated) Projects, rather than
|
|
the development of the projects themselves, and also requires additional
|
|
supporting infrastructure, e.g. Kubernetes and a CNI.
|
|
|
|
Use cases
|
|
---------
|
|
1. Development of OpenStack-Helm
|
|
2. PoC deployments of OpenStack-Helm
|
|
|
|
Proposed Change
|
|
===============
|
|
|
|
The OpenStack-Helm Zuulv2 gates were written to allow use outside of
|
|
OpenStack-Infra, to quickly set up a Kubernetes cluster, with the adoption of
|
|
Zuulv3 underway it is logical to extend this paradigm to the Zuulv3 Playbooks.
|
|
This will be driven via a ``Makefile`` that will allow developers to perform the
|
|
following actions:
|
|
|
|
* Prepare Host(s) for OpenStack-Helm deployment
|
|
* Deploy Kubernetes via KubeADM, with charts for CNI and DNS services
|
|
|
|
At this point, curated scripts will be used to deploy OpenStack-Helm services on
|
|
demand as desired, with documentation provided to allow a new developer to
|
|
quickly set up either a single or multimode deployment of a reference
|
|
`OpenStack Compute Kit <https://governance.openstack.org/tc/reference/tags/starter-kit_compute.html>`_
|
|
environment with the addition of:
|
|
|
|
* Ceph backed Object Storage
|
|
* Ceph backed Block Storage (cinder)
|
|
* Orchestration (heat)
|
|
* Web UI (horizon)
|
|
|
|
A set of scripts will be provided to exercise the deployed environment that
|
|
checks the basic functionality of the deployed cloud, driven where possible via
|
|
OpenStack heat:
|
|
|
|
* Create external network
|
|
* Setup access to the external network from the development machine
|
|
* Create tenant network
|
|
* Create tenant router to link tenant network and external
|
|
* Create SSH Key in nova
|
|
* Create VM on tenant network
|
|
* Assign Floating IP to VM
|
|
* SSH into VM and check it can access the internet
|
|
|
|
This deployment process will be gated, to ensure that the development
|
|
the environment is consistently working against ``master`` for the
|
|
OpenStack-Helm repositories.
|
|
|
|
Security Impact
|
|
---------------
|
|
There will be no security impact, as it will deploy the charts in
|
|
OpenStack-Helm[-infra/-addons] upon a reference KubeADM administered cluster.
|
|
|
|
Performance Impact
|
|
------------------
|
|
This feature will not affect the performance of OpenStack-Helm.
|
|
|
|
Alternatives
|
|
------------
|
|
The alternative would be to continue supporting the current bash driven
|
|
containerized KubeADM and Kubelet approach, though this has the following
|
|
issues:
|
|
|
|
* The containerized Kubelet cannot survive a restart, as it does not setup
|
|
mounts correctly.
|
|
* The bash scripts are largely undocumented and have grown to the point where
|
|
they are very hard for a new developer to work on.
|
|
* The move to Zuulv3 native operation of the OpenStack-Helm gates mean there
|
|
would be no code reuse between the gate and developer environments, so
|
|
supporting the existing code for Zuulv2 will incur significant tech-debt.
|
|
|
|
Implementation
|
|
==============
|
|
|
|
Assignee(s)
|
|
-----------
|
|
|
|
Primary assignee:
|
|
portdirect (Pete Birley)
|
|
|
|
Work Items
|
|
----------
|
|
|
|
The following work items need to be completed for this Specification to be
|
|
implemented.
|
|
|
|
* Update of Developer Documentation
|
|
* Update of Makefile for OpenStack-Helm-Infra to allow modular deployment of
|
|
components
|
|
* Develop scripts for bringing up OpenStack-Helm Charts and perform basic
|
|
interactive tests
|
|
* Add gate for developer environment
|
|
|
|
Testing
|
|
=======
|
|
A gate will be added to OpenStack-Helm that runs through the developer
|
|
environment deployment process.
|
|
|
|
Documentation Impact
|
|
====================
|
|
The developer documentation in OpenStack-Helm should be updated to match the
|
|
gated developer deploy process.
|