Docs: Updated developer documentation to use -infra repo
This PS updates the developer documentation to make use of the openstack-helm-infra repo and new developer environment. Implements: blueprint developer-environment Change-Id: I45b627f78b9504dc0abfbe7d0061ea3475ee4748
This commit is contained in:
parent
48a4d0cfba
commit
704cbcbcea
13
.zuul.yaml
13
.zuul.yaml
@ -18,6 +18,8 @@
|
|||||||
jobs:
|
jobs:
|
||||||
- openstack-helm-linter:
|
- openstack-helm-linter:
|
||||||
voting: true
|
voting: true
|
||||||
|
- openstack-helm-dev-deploy:
|
||||||
|
voting: true
|
||||||
- openstack-helm-legacy-ubuntu-vm-ovs-radosgw:
|
- openstack-helm-legacy-ubuntu-vm-ovs-radosgw:
|
||||||
voting: false
|
voting: false
|
||||||
irrelevant-files:
|
irrelevant-files:
|
||||||
@ -39,6 +41,17 @@
|
|||||||
run: tools/gate/playbooks/zuul-linter.yaml
|
run: tools/gate/playbooks/zuul-linter.yaml
|
||||||
nodeset: openstack-helm-single-node
|
nodeset: openstack-helm-single-node
|
||||||
|
|
||||||
|
- job:
|
||||||
|
timeout: 7200
|
||||||
|
name: openstack-helm-dev-deploy
|
||||||
|
vars:
|
||||||
|
zuul_osh_infra_relative_path: ../openstack-helm-infra/
|
||||||
|
run: tools/gate/playbooks/dev-deploy.yaml
|
||||||
|
post-run: tools/gate/playbooks/legacy-gate-post.yaml
|
||||||
|
required-projects:
|
||||||
|
- openstack/openstack-helm-infra
|
||||||
|
nodeset: openstack-helm-single-node
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
timeout: 7200
|
timeout: 7200
|
||||||
vars:
|
vars:
|
||||||
|
8
Makefile
8
Makefile
@ -12,12 +12,17 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
# It's necessary to set this because some environments don't link sh -> bash.
|
||||||
|
SHELL := /bin/bash
|
||||||
|
|
||||||
HELM := helm
|
HELM := helm
|
||||||
TASK := build
|
TASK := build
|
||||||
|
|
||||||
EXCLUDES := helm-toolkit doc tests tools logs
|
EXCLUDES := helm-toolkit doc tests tools logs
|
||||||
CHARTS := helm-toolkit $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
|
CHARTS := helm-toolkit $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
|
||||||
|
|
||||||
|
.PHONY: $(EXCLUDES) $(CHARTS)
|
||||||
|
|
||||||
all: $(CHARTS)
|
all: $(CHARTS)
|
||||||
|
|
||||||
$(CHARTS):
|
$(CHARTS):
|
||||||
@ -47,4 +52,5 @@ clean:
|
|||||||
pull-all-images:
|
pull-all-images:
|
||||||
@./tools/pull-images.sh
|
@./tools/pull-images.sh
|
||||||
|
|
||||||
.PHONY: $(EXCLUDES) $(CHARTS)
|
pull-images:
|
||||||
|
@./tools/pull-images.sh $(filter-out $@,$(MAKECMDGOALS))
|
||||||
|
@ -7,7 +7,6 @@ Overview
|
|||||||
|
|
||||||
Below are some instructions and suggestions to help you get started with a
|
Below are some instructions and suggestions to help you get started with a
|
||||||
Kubeadm All-in-One environment on Ubuntu 16.04.
|
Kubeadm All-in-One environment on Ubuntu 16.04.
|
||||||
*Also tested on Centos and Fedora.*
|
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
============
|
============
|
||||||
@ -15,195 +14,73 @@ Requirements
|
|||||||
System Requirements
|
System Requirements
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
The minimum requirements for using the Kubeadm-AIO environment depend on the
|
The recommended minimum system requirements for a full deployment are:
|
||||||
desired backend for persistent volume claims.
|
|
||||||
|
|
||||||
For NFS, the minimum system requirements are:
|
|
||||||
|
|
||||||
- 8GB of RAM
|
|
||||||
- 4 Cores
|
|
||||||
- 48GB HDD
|
|
||||||
|
|
||||||
For Ceph, the minimum system requirements are:
|
|
||||||
|
|
||||||
- 16GB of RAM
|
- 16GB of RAM
|
||||||
- 8 Cores
|
- 8 Cores
|
||||||
- 48GB HDD
|
- 48GB HDD
|
||||||
|
|
||||||
This guide covers the minimum number of requirements to get started. For most
|
For a deployment without cinder and horizon the system requirements are:
|
||||||
users, the main prerequisites are to install the most recent versions of Kubectl
|
|
||||||
and Helm.
|
|
||||||
|
|
||||||
Setup etc/hosts
|
- 8GB of RAM
|
||||||
---------------
|
- 4 Cores
|
||||||
|
- 48GB HDD
|
||||||
|
|
||||||
::
|
This guide covers the minimum number of requirements to get started.
|
||||||
|
|
||||||
HOST_IFACE=$(ip route | grep "^default" | head -1 | awk '{ print $5 }')
|
Host Configuration
|
||||||
LOCAL_IP=$(ip addr | awk "/inet/ && /${HOST_IFACE}/{sub(/\/.*$/,\"\",\$2); print \$2}")
|
------------------
|
||||||
cat << EOF | sudo tee -a /etc/hosts
|
|
||||||
${LOCAL_IP} $(hostname)
|
OpenStack-Helm uses the hosts networking namespace for many pods including,
|
||||||
EOF
|
Ceph, Neutron and Nova components. For this, to function, as expected pods need
|
||||||
|
to be able to resolve DNS requests correctly. Ubuntu Desktop and some other
|
||||||
|
distributions make use of ``mdns4_minimal`` which does not operate as Kubernetes
|
||||||
|
expects with its default TLD of ``.local``. To operate at expected either
|
||||||
|
change the ``hosts`` line in the ``/etc/nsswitch.conf``, or confirm that it
|
||||||
|
matches:
|
||||||
|
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
hosts: files dns
|
||||||
|
|
||||||
Packages
|
Packages
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Install the latest versions of Docker, Network File System, Git, Make & Curl if
|
Install the latest versions of Git, CA Certs & Make if necessary
|
||||||
necessary
|
|
||||||
|
|
||||||
::
|
.. literalinclude:: ../../../../tools/deployment/developer/00-install-packages.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
sudo apt-get update
|
Clone the OpenStack-Helm Repos
|
||||||
sudo apt-get install --no-install-recommends -qq \
|
------------------------------
|
||||||
curl \
|
|
||||||
docker.io \
|
|
||||||
nfs-common \
|
|
||||||
git \
|
|
||||||
make
|
|
||||||
|
|
||||||
Kubectl
|
Once the host has been configured the repos containing the OpenStack-Helm charts
|
||||||
-------
|
should be cloned:
|
||||||
|
|
||||||
Download and install kubectl, the command line interface for running commands
|
.. code-block:: shell
|
||||||
against your Kubernetes cluster.
|
|
||||||
|
|
||||||
::
|
#!/bin/bash
|
||||||
|
set -xe
|
||||||
|
|
||||||
export KUBE_VERSION=v1.7.5
|
git clone https://git.openstack.org/openstack/openstack-helm-infra.git
|
||||||
export HELM_VERSION=v2.6.1
|
git clone https://git.openstack.org/openstack/openstack-helm.git
|
||||||
export TMP_DIR=$(mktemp -d)
|
|
||||||
|
|
||||||
curl -sSL https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl -o ${TMP_DIR}/kubectl
|
|
||||||
chmod +x ${TMP_DIR}/kubectl
|
|
||||||
sudo mv ${TMP_DIR}/kubectl /usr/local/bin/kubectl
|
|
||||||
|
|
||||||
Helm
|
|
||||||
----
|
|
||||||
|
|
||||||
Download and install Helm, the package manager for Kubernetes
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
curl -sSL https://storage.googleapis.com/kubernetes-helm/helm-${HELM_VERSION}-linux-amd64.tar.gz | tar -zxv --strip-components=1 -C ${TMP_DIR}
|
|
||||||
sudo mv ${TMP_DIR}/helm /usr/local/bin/helm
|
|
||||||
rm -rf ${TMP_DIR}
|
|
||||||
|
|
||||||
OpenStack-Helm
|
|
||||||
==============
|
|
||||||
|
|
||||||
Using git, clone the repository that holds all of the OpenStack service charts.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
git clone https://git.openstack.org/openstack/openstack-helm.git
|
|
||||||
cd openstack-helm
|
|
||||||
|
|
||||||
Setup Helm client
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Initialize the helm client and start listening on localhost:8879. Once the helm
|
|
||||||
client is available, add the local repository to the helm client. Use
|
|
||||||
``helm [command] --help`` for more information about the Helm commands.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
helm init --client-only
|
|
||||||
helm serve &
|
|
||||||
helm repo add local http://localhost:8879/charts
|
|
||||||
helm repo remove stable
|
|
||||||
|
|
||||||
Make
|
|
||||||
----
|
|
||||||
|
|
||||||
The provided Makefile in OpenStack-Helm will perform the following:
|
|
||||||
|
|
||||||
* **Lint:** Validate that your helm charts have no basic syntax errors
|
|
||||||
* **Package:** Each chart will be compiled into a helm package that will contain
|
|
||||||
all of the resource definitions necessary to run an application,tool, or service
|
|
||||||
inside of a Kubernetes cluster.
|
|
||||||
* **Push:** Push the Helm packages to your local Helm repository
|
|
||||||
|
|
||||||
Run ``make`` from the root of the openstack-helm repository:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
Kubeadm-AIO Container
|
|
||||||
=====================
|
|
||||||
|
|
||||||
Pull
|
|
||||||
----
|
|
||||||
|
|
||||||
It is recommended to pull the kubeadm-aio container as it is stable
|
|
||||||
at the time it was built
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.7.5
|
|
||||||
sudo docker pull ${KUBEADM_IMAGE}
|
|
||||||
|
|
||||||
|
|
||||||
|
Deploy Kubernetes & Helm
|
||||||
|
------------------------
|
||||||
|
|
||||||
Build
|
You may now deploy kubernetes, and helm onto your machine, first move into the
|
||||||
-----
|
``openstack-helm`` directory and then run the following:
|
||||||
|
|
||||||
Optionally, using the Dockerfile defined in tools/kubeadm-aio directory, build the
|
.. literalinclude:: ../../../../tools/deployment/developer/01-deploy-k8s.sh
|
||||||
'openstackhelm/kubeadm-aio:v1.7.5' image. Warning - this may pull packages that
|
:language: shell
|
||||||
have not been tested.
|
:lines: 1,17-
|
||||||
|
|
||||||
::
|
This command will deploy a single node KubeADM administered cluster. This will
|
||||||
|
use the parameters in ``${OSH_INFRA_PATH}/tools/gate/playbooks/vars.yaml`` to control the
|
||||||
export KUBEADM_IMAGE=openstackhelm/kubeadm-aio:v1.7.5
|
deployment, which can be over-ridden by adding entries to
|
||||||
sudo docker build --pull -t ${KUBEADM_IMAGE} tools/kubeadm-aio
|
``${OSH_INFRA_PATH}/tools/gate/devel/local-vars.yaml``.
|
||||||
|
|
||||||
CNI Configuration
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Before deploying AIO, you may optionally set additional parameters which
|
|
||||||
control aspects of the CNI used:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
export KUBE_CNI=calico # or "canal" "weave" "flannel"
|
|
||||||
export CNI_POD_CIDR=192.168.0.0/16
|
|
||||||
|
|
||||||
Deploy
|
|
||||||
------
|
|
||||||
|
|
||||||
After the image is built, execute the kubeadm-aio-launcher script which creates
|
|
||||||
a single node Kubernetes environment by default with Helm, Calico, an NFS PVC
|
|
||||||
provisioner with appropriate RBAC rules and node labels to start developing. The
|
|
||||||
following deploys the Kubeadm-AIO environment. It should be noted these
|
|
||||||
commands may take a few minutes to execute. The output of these commands is
|
|
||||||
displayed during execution.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
export KUBE_VERSION=v1.7.5
|
|
||||||
./tools/kubeadm-aio/kubeadm-aio-launcher.sh
|
|
||||||
export KUBECONFIG=${HOME}/.kubeadm-aio/admin.conf
|
|
||||||
mkdir -p ${HOME}/.kube
|
|
||||||
cat ${KUBECONFIG} > ${HOME}/.kube/config
|
|
||||||
|
|
||||||
Dummy Neutron Networks
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
If you wish to create dummy network devices for Neutron to manage there is a
|
|
||||||
helper script that can set them up for you:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
sudo docker exec kubelet /usr/bin/openstack-helm-aio-network-prep
|
|
||||||
|
|
||||||
Logs
|
|
||||||
----
|
|
||||||
|
|
||||||
You can get the logs from your kubeadm-aio container by running:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
sudo docker logs -f kubeadm-aio
|
|
||||||
|
|
||||||
Helm Chart Installation
|
Helm Chart Installation
|
||||||
=======================
|
=======================
|
||||||
@ -214,75 +91,258 @@ During installation, the helm client will print useful information about
|
|||||||
resources created, the state of the Helm releases, and whether any additional
|
resources created, the state of the Helm releases, and whether any additional
|
||||||
configuration steps are necessary.
|
configuration steps are necessary.
|
||||||
|
|
||||||
Helm Install Examples
|
Install OpenStack-Helm
|
||||||
---------------------
|
----------------------
|
||||||
|
|
||||||
To install a helm chart, use the general command:
|
.. note:: The following commands all assume that they are run from the
|
||||||
|
``openstack-helm`` directory and the repos have been cloned as above.
|
||||||
|
|
||||||
|
Setup Clients on the host and assemble the charts
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The OpenStack clients and Kubernetes RBAC rules, along with assembly of the
|
||||||
|
charts can be performed by running the following commands:
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/02-setup-client.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
helm install --name=${NAME} ${PATH_TO_CHART}/${NAME} --namespace=${NAMESPACE}
|
./tools/deployment/developer/02-setup-client.sh
|
||||||
|
|
||||||
The below snippet will install the given chart name from the local repository
|
|
||||||
using the default values. These services must be installed first, as the
|
Deploy the ingress controller
|
||||||
OpenStack services depend upon them.
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/03-ingress.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
helm install --name=mariadb ./mariadb --namespace=openstack
|
./tools/deployment/developer/03-ingress.sh
|
||||||
helm install --name=memcached ./memcached --namespace=openstack
|
|
||||||
helm install --name=etcd-rabbitmq ./etcd --namespace=openstack
|
|
||||||
helm install --name=rabbitmq ./rabbitmq --namespace=openstack
|
|
||||||
helm install --name=ingress ./ingress --namespace=openstack
|
|
||||||
helm install --name=openvswitch ./openvswitch --namespace=openstack
|
|
||||||
|
|
||||||
Libvirt backs persistent volume claims with Ceph by default. To run libvirt
|
Deploy Ceph
|
||||||
in an all-in-one environment without Ceph, ceph for libvirt must be disabled.
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/04-ceph.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
helm install --name=libvirt ./libvirt --namespace=openstack \
|
./tools/deployment/developer/04-ceph.sh
|
||||||
--set ceph.enabled=false
|
|
||||||
|
|
||||||
If Ceph is included as part of an all-in-one deployment, libvirt can be
|
Activate the openstack namespace to be able to use Ceph
|
||||||
installed as normal.
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/05-ceph-ns-activate.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
helm install --name=libvirt ./libvirt --namespace=openstack
|
./tools/deployment/developer/05-ceph-ns-activate.sh
|
||||||
|
|
||||||
Once the OpenStack infrastructure components are installed and running, the
|
Deploy MariaDB
|
||||||
OpenStack services can be installed. In the below examples the default values
|
^^^^^^^^^^^^^^
|
||||||
that would be used in a production-like environment have been overridden with
|
|
||||||
more sensible values for the All-in-One environment using the ``--values`` and
|
.. literalinclude:: ../../../../tools/deployment/developer/06-mariadb.sh
|
||||||
``--set`` options.
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
helm install --name=keystone ./keystone --namespace=openstack
|
./tools/deployment/developer/06-mariadb.sh
|
||||||
helm install --name=glance ./glance --namespace=openstack \
|
|
||||||
--set storage=pvc
|
|
||||||
helm install --name=nova ./nova --namespace=openstack \
|
|
||||||
--values=./tools/overrides/mvp/nova.yaml \
|
|
||||||
--set conf.nova.libvirt.virt_type=qemu
|
|
||||||
helm install --name=neutron ./neutron \
|
|
||||||
--namespace=openstack --values=./tools/overrides/mvp/neutron-ovs.yaml
|
|
||||||
helm install --name=horizon ./horizon --namespace=openstack \
|
|
||||||
--set network.enable_node_port=true
|
|
||||||
|
|
||||||
Once the install commands have been issued, executing the following will provide
|
Deploy RabbitMQ
|
||||||
insight into the services' deployment status.
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
::
|
.. literalinclude:: ../../../../tools/deployment/developer/07-rabbitmq.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
watch kubectl get pods --namespace=openstack
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
Once the pods all register as Ready, the OpenStack services should be ready to
|
./tools/deployment/developer/07-rabbitmq.sh
|
||||||
receive requests.
|
|
||||||
|
Deploy Memcached
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/08-memcached.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/08-memcached.sh
|
||||||
|
|
||||||
|
Deploy Keystone
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/09-keystone.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/09-keystone.sh
|
||||||
|
|
||||||
|
Create Ceph endpoints and service account for use with keystone
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/10-ceph-radosgateway.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/10-ceph-radosgateway.sh
|
||||||
|
|
||||||
|
Deploy Horizon
|
||||||
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. warning:: Horizon deployment is not tested in the OSH development environment
|
||||||
|
community gates
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/11-horizon.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/11-horizon.sh
|
||||||
|
|
||||||
|
Deploy Glance
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/12-glance.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/12-glance.sh
|
||||||
|
|
||||||
|
Deploy OpenvSwitch
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/13-openvswitch.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/13-openvswitch.sh
|
||||||
|
|
||||||
|
Deploy Libvirt
|
||||||
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/14-libvirt.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/14-libvirt.sh
|
||||||
|
|
||||||
|
Deploy Compute Kit (Nova and Neutron)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/15-compute-kit.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/15-compute-kit.sh
|
||||||
|
|
||||||
|
Setup the gateway to the public network
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/16-setup-gateway.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/16-setup-gateway.sh
|
||||||
|
|
||||||
|
Deploy Cinder
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. warning:: Cinder deployment is not tested in the OSH development environment
|
||||||
|
community gates
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/17-cinder.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/17-cinder.sh
|
||||||
|
|
||||||
|
Deploy Heat
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/18-heat.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/18-heat.sh
|
||||||
|
|
||||||
|
Exercise the cloud
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. literalinclude:: ../../../../tools/deployment/developer/19-use-it.sh
|
||||||
|
:language: shell
|
||||||
|
:lines: 1,17-
|
||||||
|
|
||||||
|
Alternatively, this step can be performed by running the script directly:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
./tools/deployment/developer/19-use-it.sh
|
||||||
|
|
||||||
Removing Helm Charts
|
Removing Helm Charts
|
||||||
=======================
|
====================
|
||||||
|
|
||||||
To delete an installed helm chart, use the following command:
|
To delete an installed helm chart, use the following command:
|
||||||
|
|
||||||
@ -291,14 +351,33 @@ To delete an installed helm chart, use the following command:
|
|||||||
helm delete ${RELEASE_NAME} --purge
|
helm delete ${RELEASE_NAME} --purge
|
||||||
|
|
||||||
This will delete all Kubernetes resources generated when the chart was
|
This will delete all Kubernetes resources generated when the chart was
|
||||||
instantiated. However for Openstack charts, by default, this will not delete
|
instantiated. However for OpenStack charts, by default, this will not delete
|
||||||
the database and database users that were created when the chart was installed.
|
the database and database users that were created when the chart was installed.
|
||||||
All OpenStack projects can be configured such that upon deletion, their database
|
All OpenStack projects can be configured such that upon deletion, their database
|
||||||
will also be removed. To delete the database when the chart is deleted the database
|
will also be removed. To delete the database when the chart is deleted the
|
||||||
drop job must be enabled before installing the chart. There are two ways to enable
|
database drop job must be enabled before installing the chart. There are two
|
||||||
the job, set the job_db_drop value to true in the chart's values.yaml file, or override
|
ways to enable the job, set the job_db_drop value to true in the chart's
|
||||||
the value using the helm install command as follows:
|
values.yaml file, or override the value using the helm install command as
|
||||||
|
follows:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
helm install ${RELEASE_NAME} --set manifests.job_db_drop=true
|
helm install ${RELEASE_NAME} --set manifests.job_db_drop=true
|
||||||
|
|
||||||
|
|
||||||
|
Environment tear-down
|
||||||
|
=====================
|
||||||
|
|
||||||
|
To tear-down, the development environment charts should be removed firstly from
|
||||||
|
the 'openstack' namespace and then the 'ceph' namespace using the commands from
|
||||||
|
the `Removing Helm Charts`_ section. Once this has been done the namespaces
|
||||||
|
themselves can be cleaned by running:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
kubectl delete namespace <namespace_name>
|
||||||
|
|
||||||
|
Final cleanup of the development environment is then performed by removing the
|
||||||
|
``/var/lib/openstack-helm`` directory from the host. This will restore the
|
||||||
|
environment back to a clean Kubernetes deployment, that can either be manually
|
||||||
|
removed or over-written by restarting the deployment process.
|
||||||
|
26
tools/deployment/developer/00-install-packages.sh
Executable file
26
tools/deployment/developer/00-install-packages.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install --no-install-recommends -y \
|
||||||
|
ca-certificates \
|
||||||
|
git \
|
||||||
|
make \
|
||||||
|
jq \
|
||||||
|
nmap \
|
||||||
|
curl
|
22
tools/deployment/developer/01-deploy-k8s.sh
Executable file
22
tools/deployment/developer/01-deploy-k8s.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
: ${OSH_INFRA_PATH:="../openstack-helm-infra"}
|
||||||
|
cd ${OSH_INFRA_PATH}
|
||||||
|
make dev-deploy setup-host
|
||||||
|
make dev-deploy k8s
|
41
tools/deployment/developer/02-setup-client.sh
Executable file
41
tools/deployment/developer/02-setup-client.sh
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
sudo -H pip install python-openstackclient python-heatclient
|
||||||
|
|
||||||
|
sudo -H mkdir -p /etc/openstack
|
||||||
|
cat << EOF | sudo -H tee -a /etc/openstack/clouds.yaml
|
||||||
|
clouds:
|
||||||
|
openstack_helm:
|
||||||
|
region_name: RegionOne
|
||||||
|
identity_api_version: 3
|
||||||
|
auth:
|
||||||
|
username: 'admin'
|
||||||
|
password: 'password'
|
||||||
|
project_name: 'admin'
|
||||||
|
project_domain_name: 'default'
|
||||||
|
user_domain_name: 'default'
|
||||||
|
auth_url: 'http://keystone.openstack.svc.cluster.local/v3'
|
||||||
|
EOF
|
||||||
|
sudo -H chown -R $(id -un): /etc/openstack
|
||||||
|
|
||||||
|
#NOTE: Relax RBAC
|
||||||
|
kubectl replace -f ./tools/kubeadm-aio/assets/opt/rbac/dev.yaml
|
||||||
|
|
||||||
|
#NOTE: Build charts
|
||||||
|
make all
|
31
tools/deployment/developer/03-ingress.sh
Executable file
31
tools/deployment/developer/03-ingress.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images ingress
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./ingress \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=ingress
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Display info
|
||||||
|
helm status ingress
|
48
tools/deployment/developer/04-ceph.sh
Executable file
48
tools/deployment/developer/04-ceph.sh
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images ceph
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
WORK_DIR=$(pwd)
|
||||||
|
helm install --namespace=ceph ${WORK_DIR}/ceph --name=ceph \
|
||||||
|
--set endpoints.identity.namespace=openstack \
|
||||||
|
--set endpoints.object_store.namespace=ceph \
|
||||||
|
--set endpoints.ceph_mon.namespace=ceph \
|
||||||
|
--set ceph.rgw_keystone_auth=true \
|
||||||
|
--set network.public=172.17.0.1/16 \
|
||||||
|
--set network.cluster=172.17.0.1/16 \
|
||||||
|
--set deployment.storage_secrets=true \
|
||||||
|
--set deployment.ceph=true \
|
||||||
|
--set deployment.rbd_provisioner=true \
|
||||||
|
--set deployment.client_secrets=false \
|
||||||
|
--set deployment.rgw_keystone_user_and_endpoints=false \
|
||||||
|
--set bootstrap.enabled=true \
|
||||||
|
--values=${WORK_DIR}/tools/overrides/mvp/ceph.yaml
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh ceph
|
||||||
|
|
||||||
|
#NOTE: Validate deploy
|
||||||
|
MON_POD=$(kubectl get pods \
|
||||||
|
--namespace=ceph \
|
||||||
|
--selector="application=ceph" \
|
||||||
|
--selector="component=mon" \
|
||||||
|
--no-headers | awk '{ print $1; exit }')
|
||||||
|
kubectl exec -n ceph ${MON_POD} -- ceph -s
|
44
tools/deployment/developer/05-ceph-ns-activate.sh
Executable file
44
tools/deployment/developer/05-ceph-ns-activate.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images ceph
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
WORK_DIR=$(pwd)
|
||||||
|
helm install --namespace=openstack ${WORK_DIR}/ceph --name=ceph-openstack-config \
|
||||||
|
--set endpoints.identity.namespace=openstack \
|
||||||
|
--set endpoints.object_store.namespace=ceph \
|
||||||
|
--set endpoints.ceph_mon.namespace=ceph \
|
||||||
|
--set ceph.rgw_keystone_auth=true \
|
||||||
|
--set network.public=172.17.0.1/16 \
|
||||||
|
--set network.cluster=172.17.0.1/16 \
|
||||||
|
--set deployment.storage_secrets=false \
|
||||||
|
--set deployment.ceph=false \
|
||||||
|
--set deployment.rbd_provisioner=false \
|
||||||
|
--set deployment.client_secrets=true \
|
||||||
|
--set deployment.rgw_keystone_user_and_endpoints=false \
|
||||||
|
--values=${WORK_DIR}/tools/overrides/mvp/ceph.yaml
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
kubectl get -n openstack jobs --show-all
|
||||||
|
kubectl get -n openstack secrets
|
||||||
|
kubectl get -n openstack configmaps
|
32
tools/deployment/developer/06-mariadb.sh
Executable file
32
tools/deployment/developer/06-mariadb.sh
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images mariadb
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./mariadb \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=mariadb \
|
||||||
|
--set pod.replicas.server=1
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status mariadb
|
37
tools/deployment/developer/07-rabbitmq.sh
Executable file
37
tools/deployment/developer/07-rabbitmq.sh
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images etcd
|
||||||
|
make pull-images rabbitmq
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./etcd \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=etcd-rabbitmq
|
||||||
|
helm install ./rabbitmq \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=rabbitmq \
|
||||||
|
--set pod.replicas.server=1
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status etcd-rabbitmq
|
||||||
|
helm status rabbitmq
|
31
tools/deployment/developer/08-memcached.sh
Executable file
31
tools/deployment/developer/08-memcached.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images memcached
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./memcached \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=memcached
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status memcached
|
33
tools/deployment/developer/09-keystone.sh
Executable file
33
tools/deployment/developer/09-keystone.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images keystone
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./keystone \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=keystone
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status keystone
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
openstack endpoint list
|
47
tools/deployment/developer/10-ceph-radosgateway.sh
Executable file
47
tools/deployment/developer/10-ceph-radosgateway.sh
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images ceph
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
WORK_DIR=$(pwd)
|
||||||
|
helm install --namespace=openstack ${WORK_DIR}/ceph --name=radosgw-openstack \
|
||||||
|
--set endpoints.identity.namespace=openstack \
|
||||||
|
--set endpoints.object_store.namespace=ceph \
|
||||||
|
--set endpoints.ceph_mon.namespace=ceph \
|
||||||
|
--set ceph.rgw_keystone_auth=true \
|
||||||
|
--set network.public=172.17.0.1/16 \
|
||||||
|
--set network.cluster=172.17.0.1/16 \
|
||||||
|
--set deployment.storage_secrets=false \
|
||||||
|
--set deployment.ceph=false \
|
||||||
|
--set deployment.rbd_provisioner=false \
|
||||||
|
--set deployment.client_secrets=false \
|
||||||
|
--set deployment.rgw_keystone_user_and_endpoints=true \
|
||||||
|
--values=${WORK_DIR}/tools/overrides/mvp/ceph.yaml
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status radosgw-openstack
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
openstack service list
|
||||||
|
openstack container create 'mygreatcontainer'
|
||||||
|
curl -L -o /tmp/important-file.jpg https://imgflip.com/s/meme/Cute-Cat.jpg
|
||||||
|
openstack object create --name 'superimportantfile.jpg' 'mygreatcontainer' /tmp/important-file.jpg
|
33
tools/deployment/developer/11-horizon.sh
Executable file
33
tools/deployment/developer/11-horizon.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images horizon
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./horizon \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=horizon \
|
||||||
|
--set network.node_port.enabled=true \
|
||||||
|
--set network.node_port.port=31000
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status horizon
|
38
tools/deployment/developer/12-glance.sh
Executable file
38
tools/deployment/developer/12-glance.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images glance
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
GLANCE_BACKEND="radosgw" # NOTE(portdirect), this could be: radosgw, rbd, swift or pvc
|
||||||
|
helm install ./glance \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=glance \
|
||||||
|
--set storage=${GLANCE_BACKEND}
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status glance
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
openstack service list
|
||||||
|
sleep 15
|
||||||
|
openstack image list
|
||||||
|
openstack image show 'Cirros 0.3.5 64-bit'
|
30
tools/deployment/developer/13-openvswitch.sh
Executable file
30
tools/deployment/developer/13-openvswitch.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images openvswitch
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./openvswitch \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=openvswitch
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status openvswitch
|
30
tools/deployment/developer/14-libvirt.sh
Executable file
30
tools/deployment/developer/14-libvirt.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images libvirt
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./libvirt \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=libvirt
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
helm status libvirt
|
40
tools/deployment/developer/15-compute-kit.sh
Executable file
40
tools/deployment/developer/15-compute-kit.sh
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images nova
|
||||||
|
make pull-images neutron
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./nova \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=nova \
|
||||||
|
--set conf.nova.libvirt.virt_type=qemu
|
||||||
|
helm install ./neutron \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=neutron \
|
||||||
|
--values=./tools/overrides/mvp/neutron-ovs.yaml
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
openstack service list
|
||||||
|
sleep 15
|
||||||
|
openstack hypervisor list
|
||||||
|
openstack network agent list
|
26
tools/deployment/developer/16-setup-gateway.sh
Executable file
26
tools/deployment/developer/16-setup-gateway.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
# Assign IP address to br-ex
|
||||||
|
OSH_BR_EX_ADDR="172.24.4.1/24"
|
||||||
|
OSH_EXT_SUBNET="172.24.4.0/24"
|
||||||
|
sudo ip addr add ${OSH_BR_EX_ADDR} dev br-ex
|
||||||
|
sudo ip link set br-ex up
|
||||||
|
|
||||||
|
# Setup masquerading on default route dev to public subnet
|
||||||
|
DEFAULT_ROUTE_DEV="ens3"
|
||||||
|
sudo iptables -t nat -A POSTROUTING -o ${DEFAULT_ROUTE_DEV} -s ${OSH_EXT_SUBNET} -j MASQUERADE
|
33
tools/deployment/developer/17-cinder.sh
Executable file
33
tools/deployment/developer/17-cinder.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images cinder
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./cinder \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=cinder
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
openstack service list
|
||||||
|
sleep 15
|
||||||
|
openstack volume type list
|
33
tools/deployment/developer/18-heat.sh
Executable file
33
tools/deployment/developer/18-heat.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
#NOTE: Pull images and lint chart
|
||||||
|
make pull-images heat
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
helm install ./heat \
|
||||||
|
--namespace=openstack \
|
||||||
|
--name=heat
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/developer/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
openstack service list
|
||||||
|
sleep 15
|
||||||
|
openstack orchestration service list
|
99
tools/deployment/developer/19-use-it.sh
Executable file
99
tools/deployment/developer/19-use-it.sh
Executable file
@ -0,0 +1,99 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
|
||||||
|
export OSH_EXT_NET_NAME="public"
|
||||||
|
export OSH_EXT_SUBNET_NAME="public-subnet"
|
||||||
|
export OSH_EXT_SUBNET="172.24.4.0/24"
|
||||||
|
export OSH_BR_EX_ADDR="172.24.4.1/24"
|
||||||
|
openstack stack create --wait \
|
||||||
|
--parameter network_name=${OSH_EXT_NET_NAME} \
|
||||||
|
--parameter physical_network_name=public \
|
||||||
|
--parameter subnet_name=${OSH_EXT_SUBNET_NAME} \
|
||||||
|
--parameter subnet_cidr=${OSH_EXT_SUBNET} \
|
||||||
|
--parameter subnet_gateway=${OSH_BR_EX_ADDR%/*} \
|
||||||
|
-t ./tools/gate/files/heat-public-net-deployment.yaml \
|
||||||
|
heat-public-net-deployment
|
||||||
|
|
||||||
|
export OSH_PRIVATE_SUBNET_POOL="10.0.0.0/8"
|
||||||
|
export OSH_PRIVATE_SUBNET_POOL_NAME="shared-default-subnetpool"
|
||||||
|
export OSH_PRIVATE_SUBNET_POOL_DEF_PREFIX="24"
|
||||||
|
openstack stack create --wait \
|
||||||
|
--parameter subnet_pool_name=${OSH_PRIVATE_SUBNET_POOL_NAME} \
|
||||||
|
--parameter subnet_pool_prefixes=${OSH_PRIVATE_SUBNET_POOL} \
|
||||||
|
--parameter subnet_pool_default_prefix_length=${OSH_PRIVATE_SUBNET_POOL_DEF_PREFIX} \
|
||||||
|
-t ./tools/gate/files/heat-subnet-pool-deployment.yaml \
|
||||||
|
heat-subnet-pool-deployment
|
||||||
|
|
||||||
|
|
||||||
|
export OSH_EXT_NET_NAME="public"
|
||||||
|
export OSH_VM_FLAVOR="m1.tiny"
|
||||||
|
export OSH_VM_KEY_STACK="heat-vm-key"
|
||||||
|
export OSH_PRIVATE_SUBNET="10.0.0.0/24"
|
||||||
|
|
||||||
|
# NOTE(portdirect): We do this fancy, and seemingly pointless, footwork to get
|
||||||
|
# the full image name for the cirros Image without having to be explicit.
|
||||||
|
export IMAGE_NAME=$(openstack image show -f value -c name \
|
||||||
|
$(openstack image list -f csv | awk -F ',' '{ print $2 "," $1 }' | \
|
||||||
|
grep "^\"Cirros" | head -1 | awk -F ',' '{ print $2 }' | tr -d '"'))
|
||||||
|
|
||||||
|
# Setup SSH Keypair in Nova
|
||||||
|
mkdir -p ${HOME}/.ssh
|
||||||
|
openstack keypair create --private-key ${HOME}/.ssh/osh_key ${OSH_VM_KEY_STACK}
|
||||||
|
chmod 600 ${HOME}/.ssh/osh_key
|
||||||
|
|
||||||
|
openstack stack create --wait \
|
||||||
|
--parameter public_net=${OSH_EXT_NET_NAME} \
|
||||||
|
--parameter image="${IMAGE_NAME}" \
|
||||||
|
--parameter flavor=${OSH_VM_FLAVOR} \
|
||||||
|
--parameter ssh_key=${OSH_VM_KEY_STACK} \
|
||||||
|
--parameter cidr=${OSH_PRIVATE_SUBNET} \
|
||||||
|
-t ./tools/gate/files/heat-basic-vm-deployment.yaml \
|
||||||
|
heat-basic-vm-deployment
|
||||||
|
|
||||||
|
FLOATING_IP=$(openstack floating ip show \
|
||||||
|
$(openstack stack resource show \
|
||||||
|
heat-basic-vm-deployment \
|
||||||
|
server_floating_ip \
|
||||||
|
-f value -c physical_resource_id) \
|
||||||
|
-f value -c floating_ip_address)
|
||||||
|
|
||||||
|
function wait_for_ssh_port {
|
||||||
|
# Default wait timeout is 180 seconds
|
||||||
|
set +x
|
||||||
|
end=$(date +%s)
|
||||||
|
if ! [ -z $2 ]; then
|
||||||
|
end=$((end + $2))
|
||||||
|
else
|
||||||
|
end=$((end + 180))
|
||||||
|
fi
|
||||||
|
while true; do
|
||||||
|
# Use Nmap as its the same on Ubuntu and RHEL family distros
|
||||||
|
nmap -Pn -p22 $1 | awk '$1 ~ /22/ {print $2}' | grep -q 'open' && \
|
||||||
|
break || true
|
||||||
|
sleep 1
|
||||||
|
now=$(date +%s)
|
||||||
|
[ $now -gt $end ] && echo "Could not connect to $1 port 22 in time" && exit -1
|
||||||
|
done
|
||||||
|
set -x
|
||||||
|
}
|
||||||
|
wait_for_ssh_port $FLOATING_IP
|
||||||
|
|
||||||
|
# SSH into the VM and check it can reach the outside world
|
||||||
|
ssh-keyscan "$FLOATING_IP" >> ~/.ssh/known_hosts
|
||||||
|
ssh -i ${HOME}/.ssh/osh_key cirros@${FLOATING_IP} ping -q -c 1 -W 2 ${OSH_BR_EX_ADDR%/*}
|
43
tools/deployment/developer/wait-for-pods.sh
Executable file
43
tools/deployment/developer/wait-for-pods.sh
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# From Kolla-Kubernetes, orginal authors Kevin Fox & Serguei Bezverkhi
|
||||||
|
# Default wait timeout is 300 seconds
|
||||||
|
end=$(date +%s)
|
||||||
|
if ! [ -z $2 ]; then
|
||||||
|
end=$((end + $2))
|
||||||
|
else
|
||||||
|
end=$((end + 300))
|
||||||
|
fi
|
||||||
|
while true; do
|
||||||
|
kubectl get pods --namespace=$1 -o json | jq -r \
|
||||||
|
'.items[].status.phase' | grep Pending > /dev/null && \
|
||||||
|
PENDING=True || PENDING=False
|
||||||
|
query='.items[]|select(.status.phase=="Running")'
|
||||||
|
query="$query|.status.containerStatuses[].ready"
|
||||||
|
kubectl get pods --namespace=$1 -o json | jq -r "$query" | \
|
||||||
|
grep false > /dev/null && READY="False" || READY="True"
|
||||||
|
kubectl get jobs -o json --namespace=$1 | jq -r \
|
||||||
|
'.items[] | .spec.completions == .status.succeeded' | \
|
||||||
|
grep false > /dev/null && JOBR="False" || JOBR="True"
|
||||||
|
[ $PENDING == "False" -a $READY == "True" -a $JOBR == "True" ] && \
|
||||||
|
break || true
|
||||||
|
sleep 1
|
||||||
|
now=$(date +%s)
|
||||||
|
[ $now -gt $end ] && echo containers failed to start. && \
|
||||||
|
kubectl get pods --namespace $1 -o wide && exit -1
|
||||||
|
done
|
138
tools/gate/playbooks/dev-deploy.yaml
Normal file
138
tools/gate/playbooks/dev-deploy.yaml
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
# Copyright 2017 The Openstack-Helm Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
- hosts: primary
|
||||||
|
tasks:
|
||||||
|
- name: Deploy Required packages
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/00-install-packages.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Required packages
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/01-deploy-k8s.sh
|
||||||
|
vars:
|
||||||
|
OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}"
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Setup OS and K8s Clients
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/02-setup-client.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Ingress
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/03-ingress.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Ceph
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/04-ceph.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Ceph NS Activate
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/05-ceph-ns-activate.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Mariadb
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/06-mariadb.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy RabbitMQ
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/07-rabbitmq.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Memcached
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/08-memcached.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Keystone
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/09-keystone.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Ceph Keystone RadosGW
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/10-ceph-radosgateway.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
# - name: Deploy Horizon
|
||||||
|
# shell: |
|
||||||
|
# set -xe;
|
||||||
|
# ./tools/deployment/developer/11-horizon.sh
|
||||||
|
# args:
|
||||||
|
# chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy Glance
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/12-glance.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy openvswitch
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/13-openvswitch.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy libvirt
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/14-libvirt.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy compute kit
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/15-compute-kit.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy setup gateway
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/16-setup-gateway.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
# - name: Deploy cinder
|
||||||
|
# shell: |
|
||||||
|
# set -xe;
|
||||||
|
# ./tools/deployment/developer/17-cinder.sh
|
||||||
|
# args:
|
||||||
|
# chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy heat
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/18-heat.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
- name: Deploy use the cloud
|
||||||
|
shell: |
|
||||||
|
set -xe;
|
||||||
|
./tools/deployment/developer/19-use-it.sh
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
@ -1,6 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -x
|
set -x
|
||||||
for CHART_DIR in ./*/ ; do
|
|
||||||
|
if [ "x$1" == "x" ]; then
|
||||||
|
CHART_DIRS="$(echo ./*/)"
|
||||||
|
else
|
||||||
|
CHART_DIRS="$(echo ./$1/)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for CHART_DIR in ${CHART_DIRS} ; do
|
||||||
if [ -e ${CHART_DIR}values.yaml ]; then
|
if [ -e ${CHART_DIR}values.yaml ]; then
|
||||||
for IMAGE in $(cat ${CHART_DIR}values.yaml | yq '.images.tags | map(.) | join(" ")' | tr -d '"'); do
|
for IMAGE in $(cat ${CHART_DIR}values.yaml | yq '.images.tags | map(.) | join(" ")' | tr -d '"'); do
|
||||||
sudo docker inspect $IMAGE >/dev/null|| sudo docker pull $IMAGE
|
sudo docker inspect $IMAGE >/dev/null|| sudo docker pull $IMAGE
|
||||||
|
Loading…
Reference in New Issue
Block a user