| Quickstart |
| ========== |
| |
| The quick start intends to provide the most near-production experience possible, |
| as it is architected purely towards production-only environments. In order to |
| get a quick production-ready experience of Atmosphere, you will need access to |
| an OpenStack cloud. |
| |
| The quick start is powered by Molecule and it is used in continuous integration |
| running against the VEXXHOST public cloud so that would be an easy target to |
| use to try it out. |
| |
| You will need the following quotas set up in your cloud account: |
| |
| * 8 instances |
| * 32 cores |
| * 128GB RAM |
| * 360GB storage |
| |
| These resources will be used to create a total of 8 instances broken up as |
| follows: |
| |
| * 3 Controller nodes |
| * 3 Ceph OSD nodes |
| * 2 Compute nodes |
| |
| First of all, you'll have to make sure you clone the repository locally to your |
| system with ``git`` by running the following command:: |
| |
| $ git clone https://github.com/vexxhost/atmosphere |
| |
| You will need ``tox`` installed on your operating system. You will need to make |
| sure that you have the appropriate OpenStack environment variables set (such |
| as ``OS_CLOUD`` or ``OS_AUTH_URL``, etc.). You can also use the following |
| environment variables to tweak the behaviour of the Heat stack that is created: |
| |
| ``ATMOSPHERE_STACK_NAME`` |
| The name of the Heat stack to be created (defaults to ``atmosphere``). |
| |
| ``ATMOSPHERE_PUBLIC_NETWORK`` |
| The name of the public network to attach floating IPs from (defaults to |
| ``public``). |
| |
| ``ATMOSPHERE_IMAGE`` |
| The name or UUID of the image to be used for deploying the instances ( |
| defaults to ``Ubuntu 20.04.3 LTS (x86_64) [2021-10-04]``). |
| |
| ``ATMOSPHERE_INSTANCE_TYPE`` |
| The instance type used to deploy all of the different instances (defaults |
| to ``v3-standard-4``). |
| |
| ``ATMOSPHERE_NAMESERVERS`` |
| A comma-separated list of nameservers to be used for the instances (defaults |
| to `1.1.1.1`). |
| |
| ``ATMOSPHERE_USERNAME`` |
| The username what is used to login into the instances (defaults to ``ubuntu``). |
| |
| ``ATMOSPHERE_DNS_SUFFIX_NAME`` |
| The DNS domainname that is used for the API and Horizon. (defaults |
| to ``nip.io``). |
| |
| ``ATMOSPHERE_ACME_SERVER`` |
| The ACME server, currenly this is from Letsencrypt, with |
| StepCA from smallstep it is possible to run a internal ACME server. |
| The CA of that ACME server should be present in the instance image. |
| |
| Once you're ready to get started, you can run the following command to build |
| the Heat stack and :: |
| |
| $ tox -e molecule -- converge |
| |
| This will create a Heat stack with the name ``atmosphere`` and start deploying |
| the cloud. Once it's complete, you can login to any of the systems by using |
| the ``login`` sub-command. For exampel, to login to the first controller node, |
| you can run the following:: |
| |
| $ tox -e molecule -- login -h ctl1 |
| |
| In all the controllers, you will find an ``openrc`` file location inside the |
| ``root`` account home directory, as well as the OpenStack client installed there |
| as well. You can use it by running the following after logging in:: |
| |
| $ source /root/openrc |
| $ openstack server list |
| |
| The Kubernetes administrator configuration will also be available on all of the |
| control plane nodes, you can simply use it by running ``kubectl`` commands on |
| any of the controllers as ``root``:: |
| |
| $ kubectl get nodes -owide |
| |
| Once you're done with your environment and you need to tear it down, you can |
| use the ``destroy`` sub-command:: |
| |
| $ tox -e molecule -- destroy |
| |
| For more information about the different commands used by Molecule, you can |
| refer to the Molecule documentation. |