Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] upstream CI: Add support for multihost testing. #1010

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

rjeffman
Copy link
Member

A playground to run deployment roles and multihost testing.

@rjeffman rjeffman force-pushed the multihost_upstream branch 30 times, most recently from bcdbf46 to 5c276ce Compare December 29, 2022 19:30
@rjeffman rjeffman force-pushed the multihost_upstream branch 13 times, most recently from 0c0a8c0 to bfd0104 Compare January 3, 2023 14:09
@rjeffman rjeffman added the DRAFT label Jan 6, 2023
@rjeffman rjeffman force-pushed the multihost_upstream branch 2 times, most recently from 3f081b9 to 1062a86 Compare May 19, 2023 00:23
To be able to use a multihost testing environment, it is required that a
domain with a server along with clients or replcas and clients be
deployed. This environment is much more complex to obtain using the
current CI infrastructure that uses molecule and containers, due to the
need of more isolation between the testing nodes.

By using Github actions, and Github's hosted macOS runner along with
Vagrant to spawn multiple virtual hosts, it is possible to create an
environment with a few virtual machines, that provided the required
isolation. This setup allows for both deployment role testing, and
multihost testing.

The runner has to be a macOS runner due to Github restrictions on nested
virtualization. The runner has support for Python 3, and the latest
versio of ansible-core is installed through 'pip. This host has a 3-core
vCPU, 14 GB of RAM and 14Gb of storage.

The guests configuration are:

* server.ipa.test: 2500 MB of RAM
* rep-01.ipa.test: 2500 MB of RAM
* cli-01.ipa.test: 768 MB of RAM

All guests are deployed with the oficial Fedora 38 cloud-base image.

Workflow steps are executed from '<repo>/tests/multihost' unless this is
overriden with 'working-directory'. As Github sets the proper working
directory only when 'run' is executed, the default directory is the
repository root (e.g. setting 'working-directory: .' will set the
working directory to the repository root). Although it is possible to
change the working-directory, a different configuration has not been
tested.

The playbooks were created so that environment variables can be used to
change the domain configuration. This can be used to create multiple
parallel jobs in a test matrix. The default configuration installs a
server with embedded DNS, a replica with no extra service, and a client.
@rjeffman rjeffman force-pushed the multihost_upstream branch 2 times, most recently from 3d42ffa to 7663db2 Compare May 19, 2023 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant