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

Commits on May 19, 2023

  1. upstream CI multihost: Create multihost environment

    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 committed May 19, 2023
    Configuration menu
    Copy the full SHA
    3ce5b36 View commit details
    Browse the repository at this point in the history
  2. TEMP: Disable other tests.

    rjeffman committed May 19, 2023
    Configuration menu
    Copy the full SHA
    418571d View commit details
    Browse the repository at this point in the history
  3. fixup: Increase timeout.

    rjeffman committed May 19, 2023
    Configuration menu
    Copy the full SHA
    f67d305 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    68475a0 View commit details
    Browse the repository at this point in the history
  5. fixup: netbios name

    rjeffman committed May 19, 2023
    Configuration menu
    Copy the full SHA
    ed27baa View commit details
    Browse the repository at this point in the history
  6. fixup: Better test log.

    rjeffman committed May 19, 2023
    Configuration menu
    Copy the full SHA
    44e81eb View commit details
    Browse the repository at this point in the history
  7. fixup: fix artifacts.

    rjeffman committed May 19, 2023
    Configuration menu
    Copy the full SHA
    af66fc9 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    ff8207d View commit details
    Browse the repository at this point in the history