airship-in-a-bottle/docs/source/ucp-basic-deployment.rst
Bryan Strassner c51d75705d Provide for UCP standards and conventions
This change intends to account for various standards and conventions
used by the undercloud components. As the topic of conventions for
any active project is naturally open ended, this set of changes does
not intend to be a complete representation.

Several of the sections identified for conventions are marked as under
development, and will not be formalized as part of this change.

Change-Id: Ideaa9ed4146f4a6dcd2d3c44037bcac2ed3755bb
2018-01-02 14:48:51 -06:00

8.6 KiB

Deployment Guide

Note

The Undercloud Platform is still under active development and this guide will evolve along the way

The current deployment makes use of the ucp-integration repository to set up the underlaying Kubernetes infrastructure, Ceph and UCP components. This approach sets up an 'All-In-One' UCP environment that allows developers to bring up the UCP components on a single Ubuntu 16.04 Virtual Machine.

Note

Note that the minimum recommended size of the VM is 4 vCPUs, 16GB of RAM with 64GB disk space

Pre-Deployment Preparations

Update these to use env vars as input to the UCP basic process instead of sed.

  1. Set up etc/hosts on a freshly installed Ubuntu 16.04 Virtual Machine such that the local IP address is referenced by the hostname.

    E.g. 127.0.0.1 host1

HOST_IFACE=$(ip route | grep "^default" | head -1 | awk '{ print $5 }')
LOCAL_IP=$(ip addr | awk "/inet/ && /${HOST_IFACE}/{sub(/\/.*$/,\"\",\$2); print \$2}")
cat << EOF | sudo tee -a /etc/hosts
${LOCAL_IP} $(hostname)
EOF

2. Clone the ucp-integration repository. :

git clone https://github.com/att-comdev/ucp-integration.git

Deployment

This deploys UCP in a production-like mode using the basic_ucp deployment. Setup for specific components in a development mode may require some additional setup prior to these steps.

  1. Switch to root user after performing the steps in the Pre-Deployment Preparations section.
sudo -i
cd /home/ubuntu/ucp-integration/manifests/basic_ucp/
  1. Source the set-env.sh script
source set-env.sh
  1. Export/override the variables that are unique to the environment. For instance, we can do the following to update the environment variables for a VM that is assigned an IP of 30.30.30.4 on interface ens3 (network 30.30.30.0/24):
export CEPH_CLUSTER_NET=30.30.30.0/24
export CEPH_PUBLIC_NET=30.30.30.0/24
export GENESIS_NODE_IP=30.30.30.4
export NODE_NET_IFACE=ens3
export GENESIS_NODE_NAME=$(hostname)

Note

These may be overridden directly in the set-env.sh instead of exporting these as a separate step.

  1. Start the UCP deployment
./deploy_ucp.sh

Post Deployment

  1. The deployment is fully automated and can take a while to complete (it can take 30 minutes to an hour for a full deployment to complete)
  2. The environment should resemble the following after executing the required steps:
# sudo kubectl get pods -n ucp
NAME                                   READY     STATUS    RESTARTS   AGE
airflow-flower-6cdc6f9cb4-5r62v        1/1       Running   0          3h
airflow-scheduler-6d54445bf8-6ldrd     1/1       Running   0          3h
airflow-web-7bd69d857d-qlptj           1/1       Running   0          3h
airflow-worker-666696d6c5-vffpg        1/1       Running   0          3h
armada-api-84df5b7fc9-4nxp5            1/1       Running   0          4h
barbican-api-85c956c84f-p4q7h          1/1       Running   0          4h
deckhand-5468d59455-2mcqd              1/1       Running   0          4h
drydock-api-f9897cf44-csbc8            1/1       Running   0          4h
drydock-api-f9897cf44-jgv4q            1/1       Running   0          4h
etcd-5bcbbd679c-rb5rf                  1/1       Running   0          4h
ingress-api-xvkzx                      1/1       Running   0          4h
ingress-error-pages-5d79688f6c-9b8xc   1/1       Running   0          4h
keystone-api-6bc85c98-886mg            1/1       Running   0          4h
maas-rack-5d4b84c4d5-dt87j             1/1       Running   0          4h
maas-region-0                          1/1       Running   0          4h
mariadb-0                              1/1       Running   0          4h
mariadb-1                              1/1       Running   0          4h
mariadb-2                              1/1       Running   0          4h
memcached-5bf49657db-kq6qh             1/1       Running   0          4h
postgresql-0                           1/1       Running   0          4h
rabbitmq-f68649644-pnw6p               1/1       Running   0          4h
shipyard-6f4c7765d-n2kx6               1/1       Running   0          3h

To check that all relevant helm charts have been deployed:

# sudo helm ls
NAME                                    REVISION        UPDATED                         STATUS          CHART                           NAMESPACE
ucp-armada                              1               Fri Dec  1 10:03:44 2017        DEPLOYED        armada-0.1.0                    ucp
ucp-barbican                            1               Fri Dec  1 10:03:47 2017        DEPLOYED        barbican-0.1.0                  ucp
ucp-calico                              1               Fri Dec  1 10:00:05 2017        DEPLOYED        calico-0.1.0                    kube-system
ucp-calico-etcd                         1               Fri Dec  1 09:59:28 2017        DEPLOYED        etcd-0.1.0                      kube-system
ucp-ceph                                1               Fri Dec  1 10:00:58 2017        DEPLOYED        ceph-0.1.0                      ceph
ucp-coredns                             1               Fri Dec  1 10:00:26 2017        DEPLOYED        coredns-0.1.0                   kube-system
ucp-deckhand                            1               Fri Dec  1 10:03:39 2017        DEPLOYED        deckhand-0.1.0                  ucp
ucp-drydock                             1               Fri Dec  1 10:03:37 2017        DEPLOYED        drydock-0.1.0                   ucp
ucp-etcd-rabbitmq                       1               Fri Dec  1 10:02:44 2017        DEPLOYED        etcd-0.1.0                      ucp
ucp-ingress                             1               Fri Dec  1 10:02:45 2017        DEPLOYED        ingress-0.1.0                   ucp
ucp-keystone                            1               Fri Dec  1 10:03:45 2017        DEPLOYED        keystone-0.1.0                  ucp
ucp-kubernetes-apiserver                1               Fri Dec  1 10:00:32 2017        DEPLOYED        apiserver-0.1.0                 kube-system
ucp-kubernetes-controller-manager       1               Fri Dec  1 10:00:33 2017        DEPLOYED        controller_manager-0.1.0        kube-system
ucp-kubernetes-etcd                     1               Fri Dec  1 10:00:31 2017        DEPLOYED        etcd-0.1.0                      kube-system
ucp-kubernetes-proxy                    1               Fri Dec  1 09:58:46 2017        DEPLOYED        proxy-0.1.0                     kube-system
ucp-kubernetes-scheduler                1               Fri Dec  1 10:00:34 2017        DEPLOYED        scheduler-0.1.0                 kube-system
ucp-maas                                1               Fri Dec  1 10:03:36 2017        DEPLOYED        maas-0.1.0                      ucp
ucp-maas-postgresql                     1               Fri Dec  1 10:02:44 2017        DEPLOYED        postgresql-0.1.0                ucp
ucp-rabbitmq                            1               Fri Dec  1 10:02:45 2017        DEPLOYED        rabbitmq-0.1.0                  ucp
ucp-rbac                                1               Fri Dec  1 10:00:44 2017        DEPLOYED        rbac-0.1.0                      kube-system
ucp-shipyard                            1               Fri Dec  1 10:38:08 2017        DEPLOYED        shipyard-0.1.0                  ucp
ucp-ucp-ceph-config                     1               Fri Dec  1 10:02:40 2017        DEPLOYED        ceph-0.1.0                      ucp
ucp-ucp-mariadb                         1               Fri Dec  1 10:02:43 2017        DEPLOYED        mariadb-0.1.0                   ucp
ucp-ucp-memcached                       1               Fri Dec  1 10:02:44 2017        DEPLOYED        memcached-0.1.0                 ucp