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.2.tar.gz (47.1 kB view details)

Uploaded Source

Built Distribution

File details

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

File metadata

  • Download URL: valve_gfx_ci.executor.server-0.0.2.tar.gz
  • Upload date:
  • Size: 47.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for valve_gfx_ci.executor.server-0.0.2.tar.gz
Algorithm Hash digest
SHA256 58823681144460f2ba15020300cb6784ba502d97d2fdf24cfd377453f1b9072e
MD5 ac967b7b94e9a6bfe5059816be9ab3a8
BLAKE2b-256 f679c9bb2deab083c0d498ddb3ddf0fc3fa7748dbf23d3fe3a57a78fb849d74d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: valve_gfx_ci.executor.server-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for valve_gfx_ci.executor.server-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b0dd6dce674ccb95ef4522b8d882e1e454c91f00bd08bd8e1c1740e72d267899
MD5 d3eaa65fe575aba4be88a01e05bfb114
BLAKE2b-256 010658c16ed3d38eb7cc2357c0fa0d4af9b618b7c796f9b71226978c0494df72

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