Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f907662
add initial implementation of SatelliteAdapter and configuration file
lsowa Aug 15, 2025
21df447
refactor: improve SatelliteAdapter power management and resource hand…
lsowa Aug 19, 2025
6110814
first draft for sateliitel adapter
lsowa Sep 29, 2025
484fa4e
cleanup
lsowa Sep 29, 2025
70be66b
refactor: streamline SatelliteClient and improve asynchronous requests
lsowa Sep 29, 2025
43cf939
handle resource.status in handle_response function
lsowa Sep 30, 2025
a0e1766
add doc strings, rename unreserved -> not_reserved
lsowa Sep 30, 2025
1b84544
wording
lsowa Oct 1, 2025
2ffc33a
drop debugging files
lsowa Oct 1, 2025
102eda5
catch logging statement, use a given list (machine_pool) as used hosts
lsowa Oct 1, 2025
5f80498
drop unnecessary request, correct stop_resource return value
lsowa Oct 1, 2025
35b3db9
add kwargs, start with satellite tests (deploy_resource & resource_st…
lsowa Oct 8, 2025
c3b6712
add first tests
lsowa Oct 14, 2025
5f6f48e
add exception handling
lsowa Oct 14, 2025
5077a52
typo, test for machine_type and site_name
lsowa Oct 14, 2025
349d6d7
add documentation
lsowa Oct 15, 2025
2b69231
better variable naming
lsowa Oct 16, 2025
84e2669
correct doc
lsowa Oct 16, 2025
452f239
cosmetics
lsowa Oct 16, 2025
c63463a
caching - interim
lsowa Oct 31, 2025
04c71ab
rename dict for status coroutines, update cache after parameter changes,
lsowa Nov 2, 2025
45f888a
add tests for forced status updates
lsowa Nov 2, 2025
369c72f
fix satellite tests
lsowa Nov 3, 2025
3753e2b
add lock avoiding two ressources asking for the same resource at once
lsowa Dec 16, 2025
98086c8
fix: booting machines falsely identified as Deleted ones
lsowa Dec 17, 2025
ac5d9ef
update reservation parameter naming
lsowa Dec 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions docs/source/adapters/site.rst
Original file line number Diff line number Diff line change
Expand Up @@ -679,3 +679,73 @@ Available machine type configuration options

Your favorite site is currently not supported?
Please, have a look at how to contribute.


Satellite Site Adapter
---------------------

.. content-tabs:: left-col

The :py:class:`~tardis.adapters.sites.satellite.SatelliteAdapter` integrates with a Satellite instance.
Drones run as local processes and claim a free remote host from the configured pool. Once a host is
available, the adapter is able to boot and shut down the remote resource through the Satellite API.

When a resource is allocated for the first time, it is marked with a ``tardis_reservation_state`` parameter
(values ``free``, ``booting``, ``active`` and ``terminating``) in Satellite. ``booting`` and ``terminating`` are used to
identify reserved machines that are currently being booted or terminated. This flag prevents double allocation of not-online resources that are still linked to a
booting/terminating drone. If TARDIS crashes and its drone database is lost, the parameter has to be reset manually.

Available adapter configuration options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. content-tabs:: left-col

+----------------+------------------------------------------------------------------------------------------+-----------------+
| Option | Short Description | Requirement |
+================+==========================================================================================+=================+
| host | Hostname of the Satellite server. HTTPS and ``/api/v2/hosts`` are added automatically. | **Required** |
+----------------+------------------------------------------------------------------------------------------+-----------------+
| ssl_cert | Path to a CA certificate used to validate the Satellite HTTPS endpoint. | **Required** |
+----------------+------------------------------------------------------------------------------------------+-----------------+
| username | Satellite account used for API access and the corresponding rights. | **Required** |
+----------------+------------------------------------------------------------------------------------------+-----------------+
| secret | Personal access token or password of the Satellite account. | **Required** |
+----------------+------------------------------------------------------------------------------------------+-----------------+
| max_age | The result of Satellite API calls are cached for `max_age` in minutes. | **Required** |
+----------------+------------------------------------------------------------------------------------------+-----------------+
| machine_pool | Sequence of Satellite host identifiers that form the pool of machines to allocate from. | **Required** |
| | Entries must match ``https://<site_name>/api/v2/hosts/<identifier>``. | |
+----------------+------------------------------------------------------------------------------------------+-----------------+

The Satellite adapter does not introduce additional machine type specific options.
Provide ``MachineMetaData`` entries for each machine type to describe cores, memory and disk.

.. content-tabs:: right-col

.. rubric:: Example configuration

.. code-block:: yaml

Sites:
- name: SatelliteSite
adapter: Satellite
quota: 20

SatelliteSite:
host: satellite.example.com
username: MaxMustermann
secret: super-secret-token
ssl_cert: /path/to/CA/cert.pem
max_age: 2
machine_pool:
- compute-node-01
- compute-node-02
MachineTypes:
- machine-type-a
MachineTypeConfiguration:
machine-type-a: {}
MachineMetaData:
machine-type-a:
Cores: 16
Memory: 64
Disk: 400
Loading