Role - edpm_cyborg¶
This role deploys the OpenStack Cyborg agent as a Podman container on EDPM compute nodes. The cyborg-agent discovers accelerator hardware (GPUs, FPGAs, etc.) and reports it to the Cyborg conductor on the controlplane.
The service is opt-in: users add cyborg to their
OpenStackDataPlaneNodeSet services list when accelerator management
is needed.
Configuration¶
The cyborg-agent receives its configuration from two sources, all synced to the compute host by this role:
Base secret (
cyborg-agent-config) – generated by the controlplane operator and declared as asecretRefin theOpenStackDataPlaneServiceCRdataSources. Contains the default agent configuration.Extra config – an optional
configMapRefin the samedataSourcesfor user-provided.confoverrides.
All .conf files from these sources are placed into
/etc/cyborg/cyborg.conf.d/ inside the container.
If the same extra configuration applies to all compute nodes, a single
OpenStackDataPlaneService with one configMapRef (e.g.,
cyborg-extra-config) is sufficient.
If different compute nodes require different configurations (e.g., GPU nodes
vs FPGA nodes), create a separate OpenStackDataPlaneService per
accelerator type, each pointing to its own ConfigMap. All variants use the
same playbook (osp.edpm.cyborg):
# GPU service
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneService
metadata:
name: cyborg-gpu
spec:
dataSources:
- secretRef:
name: cyborg-agent-config
- configMapRef:
name: cyborg-gpu-extra-config
playbook: osp.edpm.cyborg
caCerts: combined-ca-bundle
edpmServiceType: cyborg
# FPGA service
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneService
metadata:
name: cyborg-fpga
spec:
dataSources:
- secretRef:
name: cyborg-agent-config
- configMapRef:
name: cyborg-fpga-extra-config
playbook: osp.edpm.cyborg
caCerts: combined-ca-bundle
edpmServiceType: cyborg
Then reference the appropriate service in each NodeSet:
# GPU NodeSet
spec:
services:
- cyborg-gpu
# FPGA NodeSet
spec:
services:
- cyborg-fpga
Bind mounts¶
The cyborg-agent container includes the following device and system mounts by default:
/dev– Host devices/sys– Sysfs/etc/nvme– NVMe configuration
Accelerator devices often require additional host paths (e.g., /dev/dri)
to be mounted into the container. Use edpm_cyborg_extra_bind_mounts to
declare them:
edpm_cyborg_extra_bind_mounts:
- src: /dev/dri
dest: /dev/dri
options: rw
The role validates that source directories exist and that destination
paths do not collide with the standard mounts (/var/lib/cyborg,
/var/lib/openstack, /etc/cyborg).
osp.edpm.edpm_cyborg role – The main entry point for the edpm_cyborg role.¶
Entry point main – The main entry point for the edpm_cyborg role.¶
Synopsis¶
Parameters¶
Parameter |
Comments |
|---|---|
The container image to use for the cyborg agent container. This image is used to create the cyborg-agent container on the compute node and generally will be set via the container bundle by the dataplane operator. Default: |
|
The path to the directory where the cyborg config files will be rendered on the compute node. Default: |
|
The path to the directory containing the cyborg config files in the ansibleEE container. This is the directory where all configmaps and secrets containing cyborg config files are mounted. Default: |
|
A list of additional host mounts to be added to the cyborg agent container. This enables passing device paths for accelerators (GPUs, FPGAs, etc.) to the container. Each item should be a dictionary with the following keys: - src: The path to the file or directory on the host - dest: The path to the file or directory in the container - options: The options to set for the bind mount in podman format (optional) src directories must exist on the host. dest must not collide with standard mounts: - /var/lib/cyborg - /var/lib/openstack - /etc/cyborg options defaults to “ro” if not specified. Default: |
|
The seconds between retries for failed download tasks. Default: |
|
The number of retries for failed download tasks. Default: |
|
The service name identifier used for config path construction. Default: |
|
The path to the directory containing the TLS CA bundle to mount into the cyborg agent container. Default: |