The CentOS Project has some resources available for each SIG to run some CI jobs/tests for their projects. We'll document soon how to get onboarded (on request) on the CentOS CI infra platform.
We offer the following resources :
Duffy is the middle layer running ci.centos.org that manages the provisioning, maintenance and teardown / rebuild of the Nodes (physical hardware and VMs) that are used to run the tests in the CI Cluster.
Use pip
to install duffy client.
pip install --user duffy[client]
Duffy client needs the tenant's name and the tenant's API key to be able to request sessions from duffy server. If the tenant doesn't exist yet, it should be created in duffy server. Having the tenant's name and the tenant's API key, create the file .config/duffy
with the following content.
client: url: https://duffy.ci.centos.org/api/v1 auth: name: <tenant name> key: <API key>
Before creating a session, the name of the pool is required. Check the pool available executing the command.
duffy client list-pools
Note
The name of the pool is structured like this:
<AAA>-<BBB>-<CCC>-<DDD>-<EEE>-<FFF>
Having the name of the pool, request how many sessions needed. Duffy has a limit of sessions per tenant, this information is available in the duffy server.
duffy client request-session pool=<name of the pool>,quantity=<number of sessions>
By default this command outputs a json, but it's possible to change the format to yaml or flat using --format
. Under "node" key it's possible to find the node's hostname provisioned. Log in to it as root
user, using ssh
.
{ <...output ommited...> "nodes": [ { "hostname": "<hostname>", "ipaddr": "<ip address>", <...output ommited...> }
To retire a session, the session id is required. Check the id executing.
duffy client list-sessions
When needed to retire the session execute the command.
duffy client retire-session <session id>