blob: 58b386306e57d2a6021c73063132a9ac8113842a [file] [log] [blame]
Mohammed Naser90128aa2024-04-29 13:21:58 -04001==================
2Building Inventory
3==================
4
5Atmosphere relies on an Ansible inventory in order to drive the deployment of
6all the components.
7
8In order to deploy Atmosphere, you will need to build a directory structure
9that will contain all the configuration files and secrets required to deploy
10the platform.
11
12The recommended layout is as follows:
13
14.. code-block:: text
15
16 cloud-config
17 ├── inventory
18 ├── group_vars
19 ├── all
20 ├── ceph.yml
21 ├── cluster_issuer.yml
22 ├── endpoints.yml
23 ├── keepalived.yml
24 ├── kube-prometheus-stack.yml
25 ├── kubernetes.yml
26 ├── neutron.yml
27 └── secrets.sops.yml
28 ├── cephs
29 └── osds.yml
30 └── hosts.ini
31 ├── playbooks
32 └── site.yml
33 └── requirements.yml
34
35*************
36``hosts.ini``
37*************
38
39The ``hosts.ini`` file is the Ansible inventory file that will be used to deploy
40the platform. It is recommended to use the following layout:
41
42.. code-block:: ini
43
44 [controllers]
45 ctl1.cloud.atmosphere.dev
46 ctl2.cloud.atmosphere.dev
47 ctl3.cloud.atmosphere.dev
48
49 [computes]
50 kvm1.cloud.atmosphere.dev
51 kvm2.cloud.atmosphere.dev
52 kvm3.cloud.atmosphere.dev
53
54 [cephs]
55 ceph1.cloud.atmosphere.dev
56 ceph2.cloud.atmosphere.dev
57 ceph3.cloud.atmosphere.dev
58
59.. admonition:: FQDNs are required!
60
61 The hostnames listed in the inventory file must be a FQDN that resolves to
62 the IP address of the host. If they do not, you will have failures such
63 as agents failing to start, live migration failures and other transient
64 and hard to diagnose issues.
Mohammed Naserf9561762024-07-05 11:25:01 -040065
66**********
67HTTP proxy
68**********
69
70If you nodes can only access the internet through an HTTP proxy, you will need
71to set the following variables within your inventory which will make sure that
72the ``containerd`` and ``dockerd`` services are able to pull images through
73this HTTP proxy, as well as the ``download_artifact`` role which is used to
74download artifacts for deploying the cluster.
75
76.. code-block:: yaml
77
78 http_proxy: http://proxy.example.com:3128
79 https_proxy: http://proxy.example.com:3128
80 no_proxy: localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,.svc,.cluster.local
81
82If you have any other services that need to access the internet without going
83through the proxy, you can add them to the ``no_proxy`` variable.