blob: 67f3c5cace483d32d50fa2509c9cb1e208c75dc4 [file] [log] [blame]
Mohammed Naserdaf1bee2022-03-14 19:57:15 -04001Quickstart
2==========
3
4The quick start intends to provide the most near-production experience possible,
5as it is architected purely towards production-only environments. In order to
6get a quick production-ready experience of Atmosphere, you will need access to
7an OpenStack cloud.
8
9The quick start is powered by Molecule and it is used in continuous integration
10running against the VEXXHOST public cloud so that would be an easy target to
11use to try it out.
12
13You will need the following quotas set up in your cloud account:
14
15 * 8 instances
16 * 32 cores
17 * 128GB RAM
18 * 360GB storage
19
20These resources will be used to create a total of 8 instances broken up as
21follows:
22
23 * 3 Controller nodes
24 * 3 Ceph OSD nodes
25 * 2 Compute nodes
26
27First of all, you'll have to make sure you clone the repository locally to your
28system with ``git`` by running the following command::
29
Mohammed Naser9914e472022-08-29 15:00:29 -040030 $ git clone https://github.com/vexxhost/atmosphere
Mohammed Naserdaf1bee2022-03-14 19:57:15 -040031
Michiel Piscaer97b7fd32022-03-17 12:15:21 +010032You will need ``tox`` installed on your operating system. You will need to make
Mohammed Naserdaf1bee2022-03-14 19:57:15 -040033sure that you have the appropriate OpenStack environment variables set (such
Michiel Piscaer97b7fd32022-03-17 12:15:21 +010034as ``OS_CLOUD`` or ``OS_AUTH_URL``, etc.). You can also use the following
35environment variables to tweak the behaviour of the Heat stack that is created:
36
37``ATMOSPHERE_STACK_NAME``
38 The name of the Heat stack to be created (defaults to ``atmosphere``).
39
40``ATMOSPHERE_PUBLIC_NETWORK``
41 The name of the public network to attach floating IPs from (defaults to
42 ``public``).
43
44``ATMOSPHERE_IMAGE``
45 The name or UUID of the image to be used for deploying the instances (
46 defaults to ``Ubuntu 20.04.3 LTS (x86_64) [2021-10-04]``).
47
48``ATMOSPHERE_INSTANCE_TYPE``
49 The instance type used to deploy all of the different instances (defaults
50 to ``v3-standard-4``).
51
52``ATMOSPHERE_NAMESERVERS``
53 A comma-separated list of nameservers to be used for the instances (defaults
54 to `1.1.1.1`).
55
56``ATMOSPHERE_USERNAME``
57 The username what is used to login into the instances (defaults to ``ubuntu``).
58
Michiel Piscaerb490d712022-04-08 11:02:40 +020059``ATMOSPHERE_DNS_SUFFIX_NAME``
60 The DNS domainname that is used for the API and Horizon. (defaults
61 to ``nip.io``).
62
63``ATMOSPHERE_ACME_SERVER``
64 The ACME server, currenly this is from Letsencrypt, with
65 StepCA from smallstep it is possible to run a internal ACME server.
66 The CA of that ACME server should be present in the instance image.
67
Michiel Piscaer97b7fd32022-03-17 12:15:21 +010068Once you're ready to get started, you can run the following command to build
69the Heat stack and ::
Mohammed Naserdaf1bee2022-03-14 19:57:15 -040070
71 $ tox -e molecule -- converge
72
73This will create a Heat stack with the name ``atmosphere`` and start deploying
74the cloud. Once it's complete, you can login to any of the systems by using
75the ``login`` sub-command. For exampel, to login to the first controller node,
76you can run the following::
77
78 $ tox -e molecule -- login -h ctl1
79
80In all the controllers, you will find an ``openrc`` file location inside the
81``root`` account home directory, as well as the OpenStack client installed there
82as well. You can use it by running the following after logging in::
83
84 $ source /root/openrc
85 $ openstack server list
86
87The Kubernetes administrator configuration will also be available on all of the
88control plane nodes, you can simply use it by running ``kubectl`` commands on
89any of the controllers as ``root``::
90
91 $ kubectl get nodes -owide
92
93Once you're done with your environment and you need to tear it down, you can
94use the ``destroy`` sub-command::
95
96 $ tox -e molecule -- destroy
97
98For more information about the different commands used by Molecule, you can
Michiel Piscaer97b7fd32022-03-17 12:15:21 +010099refer to the Molecule documentation.