blob: 0bc0173ca01371657f8cd13634b3562a35b1ef77 [file] [log] [blame]
Fatih Degirmencif4a2bbf2020-01-14 15:59:15 +00001.. _framework-user-guide:
Fatih Degirmenci66d1e602020-01-13 12:50:03 +00002
Fatih Degirmencif4a2bbf2020-01-14 15:59:15 +00003===========================================
4Cloud Infra Automation Framework User Guide
5===========================================
Fatih Degirmenci66d1e602020-01-13 12:50:03 +00006
7Introduction
8============
9
Fatih Degirmencif4a2bbf2020-01-14 15:59:15 +000010Cloud Infra Automation Framework provides one-command deployments
11of various open source cloud technologies and different configurations
12of those.
13
14This guide is structured in a way to give the users the most basic
15way to start using the framework. Later sections are structured after
16the technologies as they have differences such as the target environment
17support and so on.
18
19Running Your First Deployment
20=============================
21
22In order to give a quick try to framework and see its capabilities,
23you need to run **3** commands in total. Once the execution of the command
24is completed, you will have fully functional platform which you can play
25with or get rid of it and deploy another and perhaps different one
26that serves your needs better.
27
28Requirements
29------------
30
31Before proceeding with the steps, it is important to list the requirements
32for this simple stack. You need to have a decent Linux computer with
33the distro and specs below.
34
35* Linux Distribution: Ubuntu 1804
36* Minimum no of cores: 10
37* Minimum RAM: 14G
38* Minimum Disk Space: 150G
39
40If you do not have a computer which meets the minimum requirements, you can
41always reach out to Nordix Infra Team on `Nordix Discuss Maillist <https://lists.nordix.org/mailman/listinfo/discuss>`_
42and asks to borrow resources for trying things out.
43
44Deploy Now!
45-----------
46
47As promised above, here are the commands you need to run to get your
48first deployment started. We will start with cloning the Git repository
49where the framework is developed and version controlled followed by the
50actual command to initiate the deployment.
51
521. Clone the repository from Nordix Gerrit
53
54 | ``git clone https://gerrit.nordix.org/infra/engine.git``
55
562. Navigate to engine directory in your clone
57
58 | ``cd engine/engine``
59
603. Issue the command to initiate the deployment
61
62 | ``./deploy.sh``
63
64and that's it. It will take approximately 40 to 50 minutes for deployment
65to complete.
66
67What Just Happened and What You Have There?
68-------------------------------------------
69
70When you issue *deploy.sh* command, the framework starts with preparing
71your machine by installing few requirements which you can see by looking
72into *engine/bindep.txt* followed by creating of Python virtualenv to
73install Python dependencies listed in *engine/requirements.txt*.
74
75Once the basic preparation is done, the next step is cloning the repositories
76that are needed for framework to continue with the rest.
77
78After completion of this step, framework creates 2 libvirt VMs and installs the
79provisioning tool `OpenStack Bifrost <https://docs.openstack.org/bifrost/latest/>`_.
80After the installation of the provisioning tool, the VMs are booted up
81and the provisioning process starts. The VMs will be PXE booted and they
82are supplied the operating system images which is Ubuntu 1804. They
83are remotely controlled by Bifrost to power cycle which the framework
84uses `OpenStack VirtualBMC <https://docs.openstack.org/virtualbmc/latest/user/index.html>`_.
85
86After the completion of the provisioning, the VMs have remote connectivity
87but their configuration is incomplete. At this step, the framework proceeds
88with various configuration steps on the VMs such as installing operating system
89packages network configuration and so on.
90
91Basic configuration of the VMs is followed by yet another clone operation
92which we pull down the installer for the platform we have chosen to install.
93The default configuration that gets deployed by the framework is Kubernetes
94with Calico Network Plugin. The framework uses another open source tool
95from CNCF named `Kubespray <https://github.com/kubernetes-sigs/kubespray>`_.
96Kubespray is a `CNCF certified Kubernetes Distribution <https://www.cncf.io/certification/software-conformance/>`_
97so what you get in the end is pretty solid. In addition to Kubernetes itself
98with Calico Network Plugin, the stack will have `Helm <https://helm.sh/>`_
99and `Prometheus <https://prometheus.io/>`_ so you can use this deployment
100for real development purposes.
101
102Once the installation of Kubernetes together with the components end, you
103will be presented with a summary and the script will exit successfully - at
104least this is what we hope at this point. You should have **kubectl** and
105**helm** client installed on your machine to operate against Kubernetes cluster.
106
107We already noted what you get in the end but we list them here as well to
108summarize the deployment you have.
109
110* Platform: Kubernetes
111* Network Plugin: Calico
112* Storage: CEPH installed using Rook
113* Application Development: Helm
114* Metrics/Monitoring: Prometheus
115
116Congratulations, you made it! \o/
117
118Scenarios Supported by Cloud Infra Automation Framework
119=======================================================
120
121As noted in earlier sections, the framework supports various scenarios. In
122this section, we will provide steps to deploy those scenarios and operate
123against them. This part of the guide is structured after the platforms
124as the scenarios are platform specific.
125
126OpenStack Scenarios
127-------------------
128
129Engine currently supports single OpenStack scenario with OVS and CEPH.
130Deployment of this scenario is same as the default scenario you deployed
131by following the steps documented in *Running Your First Deployment*
132with few additional parameters to set the right scenario.
133
134
135The machine requirements are same as the one you deployed earlier but
136putting them here as well for the sake of completion.
137
138
139* Linux Distribution: Ubuntu 1804
140* Minimum no of cores: 10
141* Minimum RAM: 14G
142* Minimum Disk Space: 150G
143
144
145What happens during the deployment process is nearly the same as the default
146scenario as well - the framework creates libvirt VMs, provisions them using
147Bifrost, and configures them. The main difference here is the configuration
148as the network setup for OpenStack deployments is different from Kubernetes
149deployments.
150
151
152Provisioning is followed by installation of OpenStack which is perhaps the
153biggest difference comparing to the deployment of the Kubernetes based default
154scenario. For OpenStack installation, framework utilizes OpenStack installer
155`Kolla-Ansible <https://docs.openstack.org/kolla-ansible/latest/>`_.
156
157
158Now the commands to issue.
159
1601. Clone the repository from Nordix Gerrit - *you can skip this step if you have the clone already*
161
162 | ``git clone https://gerrit.nordix.org/infra/engine.git``
163
1642. Navigate to engine directory in your clone
165
166 | ``cd engine/engine``
167
1683. Issue the command to initiate the deployment
169
170 | ``./deploy.sh -d kolla -s os-nosdn-nofeature -c``
171
172Once the installation of OpenStack together with the components end, you
173will be presented with a summary and the script will exit successfully.
174Your machine will have the OpenStack clients installed and openrc file
175so you can operate against your deployment. Please note that you may
176need to activate Python virtual environment to access them which you
177can do using the command below.
178
179 | ``source /opt/engine/.venv/bin/activate``
180
181We already noted what you get in the end but we list them here as well to
182summarize the deployment you have.
183
184
185* Platform: OpenStack
186* Networking: Neutron with OVS
187* Storage: CEPH
188
189
190Installed OpenStack components are
191
192* Keystone
193* Nova
194* Neutron
195
196 - OVS
197 - VXLAN
198
199* Heat
200* Glance
201* Cinder
202
203 - CEPH as volume backend
204 - NFS as backup backend
205
206* Horizon
207
208Installed infra services are
209
210* RabbitMQ
211* MariaDB
212* Memcached
213* Chrony
214* Fluentd
215
216Kubernetes Scenarios
217--------------------
218
219TBD
220
221ONAP Scenarios
222--------------
223
224TBD
225
226Testing Your Deployments
227========================
228
Fatih Degirmenci66d1e602020-01-13 12:50:03 +0000229TBD