Building Inventory¶
Atmosphere relies on an Ansible inventory in order to drive the deployment of all the components.
In order to deploy Atmosphere, you will need to build a directory structure that will contain all the configuration files and secrets required to deploy the platform.
The recommended layout is as follows:
cloud-config
├── inventory
│ ├── group_vars
│ │ ├── all
│ │ │ ├── ceph.yml
│ │ │ ├── cluster_issuer.yml
│ │ │ ├── endpoints.yml
│ │ │ ├── keepalived.yml
│ │ │ ├── kube-prometheus-stack.yml
│ │ │ ├── kubernetes.yml
│ │ │ ├── neutron.yml
│ │ │ └── secrets.sops.yml
│ │ ├── cephs
│ │ │ └── osds.yml
│ └── hosts.ini
├── playbooks
│ └── site.yml
└── requirements.yml
The requirements.yml
file is used to specify the atmosphere ansible collection
version that will be used to deploy the platform. Please refer to the Release Notes
for the version information. The file contents should look like this:
collections:
- name: vexxhost.atmosphere
version: 4.3.1
To generate the inventory configuration files, you can use the generate_workspace
playbook to simplify the process. The following command will generate the
inventory in the specified directory:
ansible-playbook -e domain_name="yourdomain.com" \
-e workspace_path="$(pwd)/cloud-config/inventory" \
vexxhost.atmosphere.generate_workspace
The cloud-config
directory can be managed by any SCM tool of your choice, such as Git,
and can be used to store all the configuration files and secrets required to deploy the
platform. You also need to assign the domain name of your cluster to the domain_name
variable for production deployments.
Refer to the other sections of the Deployment Guide to update the configuration files according to your network and hardware specification in the inventory directory.
The file contents should look like this:
collections:
- name: vexxhost.atmosphere
version: 4.3.1
hosts.ini
¶
The hosts.ini
file is the Ansible inventory file that will be used to deploy
the platform. It is recommended to use the following layout:
[controllers]
ctl1.cloud.atmosphere.dev
ctl2.cloud.atmosphere.dev
ctl3.cloud.atmosphere.dev
[computes]
kvm1.cloud.atmosphere.dev
kvm2.cloud.atmosphere.dev
kvm3.cloud.atmosphere.dev
[cephs]
ceph1.cloud.atmosphere.dev
ceph2.cloud.atmosphere.dev
ceph3.cloud.atmosphere.dev
FQDNs are required!
The hostnames listed in the inventory file must be a FQDN that resolves to the IP address of the host. If they do not, you will have failures such as agents failing to start, live migration failures and other transient and hard to diagnose issues.
HTTP proxy¶
If you nodes can only access the internet through an HTTP proxy, you will need
to set the following variables within your inventory which will make sure that
the containerd
and dockerd
services are able to pull images through
this HTTP proxy, as well as the download_artifact
role which is used to
download artifacts for deploying the cluster.
http_proxy: http://proxy.example.com:3128
https_proxy: http://proxy.example.com:3128
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
If you have any other services that need to access the internet without going
through the proxy, you can add them to the no_proxy
variable.