Client package for the Workload Management System of CTAO DPPS
Project description
CTAO Workload Management System
This project provides Helm chart to deploy WMS with all necessary dependencies and services.
Chart
The WMS Helm chart aims to provide a complete deployment of DIRAC with all necessary dependencies. It contains:
- DIRAC Master CS
- DIRAC services and agents
- DIRAC Web App
- DIRAC Databases
- Authentication services
- Bootstrap jobs
- External dependencies
The WMS chart is integrated in the global DPPS deployment.
Chart Dependencies
The chart includes the following external dependencies:
diracx: complete DiracX deploymentcert-generator-grid: a DPPS custom grid certificate issuercvmfs: CVMFS stratum deploymentmariadb: databases for DIRAC and DiracX data storagedpps-iam: IAM deployment provided by CTAO within DPPS framework
Components description
DIRAC Master CS
The DIRAC Master Configuration Server deployment consists of:
- statefulset (
master-cs/statefulset.yaml): to ensure the uniqueness of the deployment - secret (
master-cs/secret.yaml): contains specific DIRAC configuration which shouldn't be exposed in the remote configuration
DIRAC components
All DIRAC components (services, agents and executors) deployment:
- deployments (
deployment.yaml): iteratively generated deployment and service for each enabled DIRAC component - configuration files (
dirac-configuration-configmap.yaml): a configmap containing DIRAC configuration files, separate into DIRAC sections (Operations, Resources, Registry, ...). Each installed component as its own specificSystemssection configuration - environment configuration (
dirac-env-configmap.yaml): environment specific configuration
DIRAC Web App
A deployment of the DIRAC Web App:
- deployment (
web-app/deployment.yaml) - configuration (
web-app/configmap.yaml): web app specific configuration
Computing Element
A simple SSH computing element:
- deployment (
computing-element/deployment.yaml): a ssh server acting as a CE
Ingress
TODO.
Bootstrap sequence diagram
The bootstrap sequence is composed of several Jobs to make sure DIRAC is correctly configured and running.
- DIRAC configuration initialization (
bootstraps/configure-dirac-job.yaml)
Apply the DIRAC configuration contained in the configmap to the Master CS. This job runs once MariaDB and MasteCS statefulsets are running.
- DIRAC DB initialization (
bootstraps/init-dirac-db-job.yaml)
Install the DIRAC DB and the DiracX AuthDB. The Job runs once the ComponentMonitoring service is running.
- Synchronize DIRAC configuration (
bootstraps/sync-dirac-job.yaml)
Synchronize RSS configuration, then synchronize DIRAC and DiracX configuration and finally initialize/synchronize IAM users. This job runs after Databases initialization and when DiracX is running.
- First Proxy initialization (
bootstraps/first-proxy-job.yaml)
Initialize DIRAC proxies, at installation is necessary to initialize a first time the pilot proxy. This job runs once the ProxyManager, BundleDelivery and SystemAdministrato services are running.
---
title: WMS Bootstrap sequence
---
flowchart TB
subgraph mariadb ["MariaDB Statefulset"]
direction LR
mdb["dirac-db"]
end
subgraph mastercs ["Master CS statefulset"]
direction LR
mcs["dirac-master-cs"]
end
subgraph bootdiracconf ["Bootstrap DIRAC Conf Job"]
direction LR
confdirac("bootstrap-dirac-configure")
end
subgraph compmon ["Component Monitoring deployment"]
direction LR
bootcomp["bootstrap-component-monitoring"]-->compmondep["component-monitoring"]
end
subgraph bootdb ["Bootstrap DIRAC DB Job"]
direction LR
authdb("install-diracx-auth-db")-->compdb("install-dirac-db")
end
subgraph bootcnf ["Sync DIRAC Conf Job"]
direction LR
syncrss("bootstrap-dirac-sync-rss")-->syncdiracxcs("sync-diracx-cs")
syncdiracxcs-->synciamusers("sync-iam-users")
end
subgraph diracx ["DiracX deployment"]
direction LR
dx("DiracX")
end
subgraph dcomp ["DIRAC Components deployment"]
direction TB
proxyman["dirac-proxy-manager"]
bundledeliv["dirac-bundle-delivery"]
systemadmin["dirac-system-admin"]
rest["..."]
end
subgraph fproxy ["First proxy init Job"]
direction LR
initproxy("first-proxy")
end
mariadb --wait for--> mastercs
mastercs --wait for--> bootdiracconf
bootdiracconf --wait for--> compmon
compmon --wait for--> bootdb
bootdb --wait for--> bootcnf
bootcnf --wait for--> dcomp
syncdiracxcs --needs--> diracx
diracx --wait for--> fproxy
proxyman --wait for--> fproxy
bundledeliv --wait for--> fproxy
systemadmin --wait for--> fproxy
Storage Volumes
- CS backup (
master-cs/statefulset.yaml): persistent volume to keep CS backup while restarting the Master CS statefulset - Storage Element Data (
pvc.yaml): persistent storage for data stored in the test SE
Configuration Structure
DIRAC server configuration
All the configuration related to DIRAC server is contained in the values.yaml under diracServer section. This section will allow you to configure master-cs, web-app, components and configurations.
- Master CS
.diracServer.masterCS - WebApp
.diracServer.webApp - DIRAC components
.diracServer.diracComponents: in this section each components can be enabled or disabled, configured (port, specific configuration), specify the replica counts. For each componennt a default configuration is provided but can be overwritten.
Example:
diracServer:
diracComponents:
componentMonitoring:
port: 9190 # the port on which contact the service
cmd: Framework/ComponentMonitoring # the command run by `dirac-service`
replicaCount: 1
config: | # to overwrite the default configuration
Systems
{
Framework
{
Services
{
ComponentMonitoring
{
...
}
}
}
}
Note: the name of the subsection (e.g. componentMonitoring) is used to generate deployment, service and associated configmap names.
-
bootstrap: bootstrap jobs can be individually disabled or enabled, and configured under
diracServer.bootstrap -
DIRAC databases: the list of the DIRAC databases to be installed must be provided under
diracServer.diracDatabases -
DIRAC configuration: To set specific DIRAC configuration there is
diracServer.diracConfig. Since the full DIRAC configuration is very long, the configurability of it is separated into sections:Systems,Registry,Resources,Operations,DiracX. For each a file in a configmap is generated which is then apply at bootstrap.
One can write a section using the yaml format, which will be automatically translated, or using a string template.
One can decide to provide its own full DIRAC configuration by overwriting the configmap itself using diracServer.diracConfig.configmap.create: false and diracServer.diracConfig.configmap.name: config-map-name
Test Report
The WMS test report can be retrieve from the CI pipeline artifact.
Deploy WMS locally
The first time you want to run the local cluster:
pixi run install-tools
To start a Kind local cluster, deploy the chart in it, and run the test, do:
pixi run make -e dev
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ctao_wms_clients-0.8.0rc3.tar.gz.
File metadata
- Download URL: ctao_wms_clients-0.8.0rc3.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32311a73f8469f723e41ca3d02d71ed6d1ae57a326d9d10e33749fc594a4d887
|
|
| MD5 |
399a6c5a52a4dcefa86fba17cadbcd90
|
|
| BLAKE2b-256 |
2d007c71026fb3eea88ee75a58549654f68e9f86668ecfbfa2d6823a47c508df
|
File details
Details for the file ctao_wms_clients-0.8.0rc3-py3-none-any.whl.
File metadata
- Download URL: ctao_wms_clients-0.8.0rc3-py3-none-any.whl
- Upload date:
- Size: 28.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9577ee1c8eb01b32838a9f69b8908fbecdadb1e27255f5d8e4d1268c6c386322
|
|
| MD5 |
53a88ae417e32549dd72e62ca8ac0e37
|
|
| BLAKE2b-256 |
3ca3d29f660ed275ea32ad711f68b4511f9c010f0e58639f7bfdbc72ee5357a5
|