commit | 3f96178f7bd23451a8c1fd9c229c75b09c35c8b4 | [log] [tgz] |
---|---|---|
author | Mohammed Naser <mnaser@vexxhost.com> | Thu Apr 20 10:48:21 2023 -0400 |
committer | GitHub <noreply@github.com> | Thu Apr 20 10:48:21 2023 -0400 |
tree | 6edd69a556a8b4e1b5e15d036ba32d6ab596754d | |
parent | 3e5885eade2ded30754e0e0039a41f7d41f82fbb [diff] |
test: add aio tests (#318) * test: add aio tests * ci: fix runs-on node * ci: add tmate * Tmate after converge * Run destroy always * Disable ipv6 in runner * Fix permission for ipv6 disable * disable ipv6 permanently * Fix sysctl configuration * Fix typo * ci: test disable_ipv6 * ci: use focal node * ci: add aio inside gha * wip: aio * ci: fix become for prepare * ci: add ceph bootstrap * ci: add ceph backend * ci: fix ceph + use bigger node * ci: fix ci for aio * ci: increase number of cores * Set virt_type as qemu * Fix nic name in auto bridge add * Disable auto bridge add in molecule aio * ci: run full suite with eth1 * ci: fix molecule command * ci: clean-up more values * ci: use correct ip * ci: use correct keepalived interface * Fix glance_images * fix ceph_mon_config_overrides keys and set mon_max_pg_per_osd as 500 * Enable fact gathering in tempest playbook * Use other address for ceph_public_network and reduce image upload - 10.0.0.0/22 is confused with cilium network. So mon ip is catched from cilium host nic in idempotence. * fix(ceph-provisioners): stop depending on ceph-csi-rbd * fix: allow for hci label adding * fix: add ceph scenario * ci: enable nested virt * ci: final cleanup --------- Co-authored-by: okozachenko1203 <okozachenko1203@users.noreply.github.com>
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:
These resources will be used to create a total of 8 instances broken up as follows:
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 poetry
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 install poetry dependencies:
poetry install
Then you can run the following command to build the Heat stack :
poetry run 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:
poetry run 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:
poetry run molecule destroy
For more information about the different commands used by Molecule, you can refer to the Molecule documentation.
You'll need to make sure that you have pre-commit
setup and installed in your environment by running these commands:
pre-commit install --hook-type commit-msg