freeipa/ipatests/azure/templates/ipa-test-config-template.yaml
Stanislav Levin 879855ce70 Azure: Allow to run integration tests
Azure provides Microsoft-hosted agents having tasty resources [0].
For now (Feb 2020),
- (Linux only) Run steps in a cgroup that offers 6 GB of physical memory and
13 GB of total memory
- Provide at least 10 GB of storage for your source and build outputs.

This is enough to set up IPA environments consisted of not only master but also
replicas and clients and thus, run IPA integration tests.

New Azure IPA tests workflow:

+ 1) Azure generate jobs using Matrix strategy
  2) each job is run in parallel (up to 10) within its own VM (Ubuntu-18.04):
    a) downloads prepared Docker container image (artifact) from Azure cloud
       (built on Build Job) and loads the received image into local pool
  + b) docker-compose creates the Docker environment having a required number
       of replicas and/or clients
  + c) setup_containers.py script does the needed container's changes (DNS,
       SSH, etc.)
  + d) launch IPA tests on tests' controller
    e) publish tests results in JUnit format to provide a comprehensive test
       reporting and analytics experience via Azure WebUI [1]
    f) publish regular system logs as artifacts

[0] https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops
[1] https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/publish-test-results?view=azure-devops&tabs=yaml

Fixes: https://pagure.io/freeipa/issue/8202
Signed-off-by: Stanislav Levin <slev@altlinux.org>
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
2020-02-25 18:02:12 +02:00

29 lines
796 B
YAML

admin_name: admin
admin_password: Secret123
debug: false
dirman_dn: cn=Directory Manager
dirman_password: Secret123
domain_level: 1
dns_forwarder: {{ dns_forwarder }}
root_ssh_key_filename: {{ ssh_private_key }}
domains:
- name: {{ domain_name }}
type: IPA
hosts:
- external_hostname: master1.{{ domain_name }}
name: master1.{{ domain_name }}
ip: {{ master[0] }}
role: master
{% for repl_ip in replicas: %}
- external_hostname: replica{{ loop.index }}.{{ domain_name }}
name: replica{{ loop.index }}.{{ domain_name }}
ip: {{ repl_ip }}
role: replica
{% endfor %}
{% for client_ip in clients: %}
- external_hostname: client{{ loop.index }}.{{ domain_name }}
name: client{{ loop.index }}.{{ domain_name }}
ip: {{ client_ip }}
role: client
{% endfor %}