Skip to main content

Valve GFX CI's executor

Project description

Executor

TODO: Document the rest of the executor

MarsDB

MarsDB is the database for all the runtime data of the CI instance:

  • List of PDUs connected
  • List of test machines
  • List of Gitlab instances where to expose the test machines

Its location is set using the MARS_DB_FILE environment variable, and is live-editable. This means you can edit the file directly and changes will be reflected instantly in the executor.

New machines will be added automatically when POSTing or PUTing to the /api/v1/machine/ REST endpoint, but they won't be useable until

Here is an annotated sample file, where AUTO means you should not be modifying this value (and all children of it) while MANUAL means that you are expected to set these values. All the other values should be machine-generated, for example using the machine_registration container:

pdus:                                        # List of all the power delivery units (MANUAL)
  APC:                                       # Name of the PDU
    driver: apc_masterswitch                 # The [driver of your PDU](pdu/README.md)
    config:                                  # The configuration of the driver (driver-dependent)
      hostname: 10.0.0.2
duts:                                        # List of all the test machines
  de:ad:be:ef:ca:fe:                         # MAC address of the machine
    base_name: gfx9                          # Most significant characteristic of the machine. Basis of the auto-generated name
    tags:                                    # List of tags representing the machine
    - amdgpu:architecture:GCN5.1
    - amdgpu:family:RV
    - amdgpu:codename:RENOIR
    - amdgpu:gfxversion:gfx9
    - amdgpu:APU
    - amdgpu:pciid:0x1002:0x1636
    ip_address: 192.168.0.42                 # IP address of the machine
    local_tty_device: ttyUSB0                # Test machine's serial port to talk to the gateway
    gitlab:                                  # List of GitLab instances to expose this runner on
      freedesktop:                           # Parameters for the `freedesktop` GitLab instance
        token: <token>                       # Token given by the registration process (AUTO)
        exposed: true                        # Should this machine be exposed on `freedesktop`? (MANUAL)
    pdu: APC                                 # Name of the PDU to contact to turn ON/OFF this machine (MANUAL)
    pdu_port_id: 1                           # ID of the port where the machine is connected (MANUAL)
    pdu_off_delay: 30                        # How long should the PDU port be off when rebooting the machine? (MANUAL)
    ready_for_service: true                  # The machine has been tested and can now be used by users (AUTO)
    is_retired: false                        # The user specified that the machine is no longer in use
    first_seen: 2021-12-22 16:57:08.146275   # When was the machine first seen in CI (AUTO)
gitlab:                                      # Configuration of anything related to exposing the machines on GitLab (MANUAL)
  freedesktop:                               # Name of the gitlab instance
    url: https://gitlab.freedesktop.org/     # URL of the instance
    registration_token: <token>              # Registration token, as found in your GitLab project/group/instance settings
    expose_runners: true                     # Expose the test machines on this instance? Handy for quickly disabling all machines
    maximum_timeout: 21600                   # Maximum timeout allowed for any job running on our test machines
    gateway_runner:                          # Expose a runner that will run locally, and not on test machines
      token: <token>                         # Token given by the registration process (AUTO)
      exposed: true                          # Should the gateway runner be exposed?

Frequently asked questions

How do I move runners from one GitLab project to another?

First, we need to remove the runners from the current project:

  1. Open MarsDB's config file
  2. Find the gitlab instance in your configuration file
  3. Set expose_runners to false
  4. Save and exit your text editor

Don't forget to exit, as the config file will change. Now let's expose the runners to the new project:

  1. Re-open MarsDB's config file
  2. Find the gitlab instance in your configuration file
  3. Set the new registration token
  4. Set expose_runners to true
  5. Save and exit your text editor

That's it!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

valve_gfx_ci.executor.server-0.0.1.tar.gz (47.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file valve_gfx_ci.executor.server-0.0.1.tar.gz.

File metadata

  • Download URL: valve_gfx_ci.executor.server-0.0.1.tar.gz
  • Upload date:
  • Size: 47.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

File hashes

Hashes for valve_gfx_ci.executor.server-0.0.1.tar.gz
Algorithm Hash digest
SHA256 42d9a3709bbb9f9605b328287fed1c95ed9abb836868afac1281d98d11d83318
MD5 3815e2608fbed218a16a9363d55d0ce6
BLAKE2b-256 33db5d62b3d172f4907ae9c41fb905af65433855a1cc7a2e447185423ee8e950

See more details on using hashes here.

File details

Details for the file valve_gfx_ci.executor.server-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: valve_gfx_ci.executor.server-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

File hashes

Hashes for valve_gfx_ci.executor.server-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9b49b3adcf88b10ea85fefc4790dcb156c022117bdf9c9c6b13b9737a4aaef0f
MD5 b59750cf2a9afe725c5cca049f5d9e12
BLAKE2b-256 99d62c90e517ae456c57c6939deb8f4fab0cb96e304dc90539cfdd686c42d855

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page