Skip to content

Commit ea8652b

Browse files
docs: fix mkdocs warnings and add CERN SSO guide (#170)
* docs: add CERN SSO configuration guide * docs: fix broken links in documentation - Remove broken k3s and values.yaml links in RUN_PROD.md - Fix installing.md path references in chart-structure.md - Fix configuration.md path in installing.md - Fix deployment template references in run_locally.md - Fix run_demo.md path reference * docs: add proper S3-hosted image link for OTEL collector - Upload otel-collector.png to S3 static hosting - Replace broken local image reference with proper S3 URL * [pre-commit.ci lite] apply automatic fixes * docs: remove otel-collector.png from repo Image is now hosted on S3 static site as per documentation guidelines: https://diracx-docs-static.s3.cern.ch/assets/images/admin/tutorials/otel-collector.png * docs: link deployment templates to GitHub instead of broken local paths - Replace broken local file references with working GitHub links - Users can now directly view the deployment.yaml templates - Links point to main branch for stable references * docs: fix GitHub links to use master branch instead of main - diracx-charts uses master branch, not main - Update deployment template links to correct branch --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
1 parent 0bd6221 commit ea8652b

File tree

7 files changed

+65
-21
lines changed

7 files changed

+65
-21
lines changed

demo/otel-collector.png

-152 KB
Binary file not shown.

docs/README.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

docs/RUN_PROD.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ The aim of this documentation is to give pointers on how to install the `diracx-
44

55
Effectively, this means that you will be using your existing databases (`MySQL`, `OpenSearch`), and just install the new dependencies of `diracx`.
66

7-
We go here with the assumption that you have a `kubernetes` cluster at hand. If you do no have one, see the [k3s example](../k3s/README.md).
7+
We go here with the assumption that you have a `kubernetes` cluster at hand.
88

99

1010
If your central infrastructure already provide the following services, by all mean, use them.
1111

12-
More configuration options are available, please refer to the [values.yaml](../diracx/values.yaml)
12+
More configuration options are available in the chart's values.yaml file
1313

1414
## Getting started
1515

docs/SSO.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# CERN SSO Configuration
2+
3+
This document describes how to configure CERN SSO as an Identity Provider (IdP) for DiracX.
4+
5+
## Prerequisites
6+
7+
- Access to CERN Application Portal
8+
- Administrative rights to register a new application
9+
10+
## Registration Steps
11+
12+
1. Go to the [CERN Application Portal](https://application-portal.web.cern.ch/)
13+
2. Click "Register a new application"
14+
3. Fill in the application details:
15+
- **Application Name**: DiracX [Your VO/Installation]
16+
- **Description**: DiracX authentication for [Your VO]
17+
- **SSO Protocol**: OpenID Connect
18+
19+
## Configuration
20+
21+
### Redirect URLs
22+
23+
Configure the following redirect URLs in your CERN SSO application:
24+
25+
```
26+
https://<youdiracx.invalid>/api/auth/device/complete
27+
https://<youdiracx.invalid>/api/auth/authorize/complete
28+
```
29+
30+
Replace `<youdiracx.invalid>` with your actual DiracX hostname.
31+
32+
### Client Configuration
33+
34+
- **Client Type**: Public (no client authentication required)
35+
- **Required Scopes**: `email`, `openid`, `profile`
36+
- **Grant Type**: Authorization Code Flow with PKCE
37+
- **Token Endpoint Authentication**: None (public client)
38+
39+
## Integration with DiracX
40+
41+
Once your CERN SSO application is registered, you'll receive:
42+
- Client ID
43+
- Discovery URL (usually `https://auth.cern.ch/auth/realms/cern/.well-known/openid_configuration`)
44+
45+
Configure these in your DiracX values:
46+
47+
```yaml
48+
diracx:
49+
settings:
50+
DIRACX_AUTH_OIDC_PROVIDER_NAME: "cern"
51+
DIRACX_AUTH_OIDC_CLIENT_ID: "your-client-id"
52+
DIRACX_AUTH_OIDC_DISCOVERY_URL: "https://auth.cern.ch/auth/realms/cern/.well-known/openid_configuration"
53+
```
54+
55+
## User Registration
56+
57+
Note that users still need to be registered in DiracX by configuring the `CsSync` section in the Configuration Service (CS).

docs/admin/explanations/chart-structure.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Detailed documentation with justification for technical decisions can be found [
2020
The chart includes the following external dependencies, all conditionally enabled:
2121

2222
!!! warning "Production Deployments"
23-
The bundled dependencies listed below are primarily intended for development and testing environments. For production deployments, you should use externally managed services. See the [installation guide](../how-to/installing.md) for production deployment recommendations.
23+
The bundled dependencies listed below are primarily intended for development and testing environments. For production deployments, you should use externally managed services. See the [installation guide](../how-to/install/installing.md) for production deployment recommendations.
2424

2525
### Core Infrastructure
2626
- **MySQL** (`mysql`): Primary database for DiracX data storage
@@ -215,7 +215,7 @@ For production deployments:
215215
- Configures proper resource limits and requests
216216
- Sets up monitoring and alerting
217217

218-
To find more about running in production mode see [here](../how-to/installing.md).
218+
To find more about running in production mode see [here](../how-to/install/installing.md).
219219

220220
## Bootstrap Sequence
221221

docs/admin/how-to/install/installing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, CREATE TEMPORARY TABLES, LOCK TABLE
212212

213213
## DiracX Config URL
214214

215-
This should be the URL of the repository populated by synchronizing the CS. You should already have completed the CS synchronization step. For more details about the configuration, see the [dedicated explanations](../explanations/configuration.md)
215+
This should be the URL of the repository populated by synchronizing the CS. You should already have completed the CS synchronization step. For more details about the configuration, see the [dedicated explanations](../../explanations/configuration.md)
216216

217217
!!! note "You do not need write permissions"
218218

docs/admin/tutorials/run_locally.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ To understand this ``chart`` you will need to familiarize yourself with a few k8
1010
* A ``node`` is one of the machine (VM, physical) which sustains your k8s cluster.
1111
* Your application runs inside a container which is part of a ``pod``. A ``pod`` is the atomic unit with which kubernetes will work, and in most cases it corresponds to a single container. ``pods`` are deployed on ``nodes``.
1212
* A ``ReplicaSet`` represents how many ``pods`` of a given type you want to run. For example, you want to run 3 ``pods`` containing the ``diracx`` container for redundancy reasons.
13-
* A ``Deployment`` is how you describe your workload to k8s. It ensures that any number of replicas of your ``pod`` are running (via ``ReplicaSEt``). This chart contains a ``deployment`` for ``diracx`` (see [here](diracx/templates/diracx/deployment.yaml)), and a ``deployment`` for ``diracx-web`` (see [here](diracx/templates/diracx-web/deployment.yaml)). Kubernetes will always make sure that the ``deployment`` is satisfied.
13+
* A ``Deployment`` is how you describe your workload to k8s. It ensures that any number of replicas of your ``pod`` are running (via ``ReplicaSEt``). This chart contains a ``deployment`` for ``diracx`` (see [here](https://github.com/DIRACGrid/diracx-charts/blob/master/diracx/templates/diracx/deployment.yaml)), and a ``deployment`` for ``diracx-web`` (see [here](https://github.com/DIRACGrid/diracx-charts/blob/master/diracx/templates/diracx-web/deployment.yaml)). Kubernetes will always make sure that the ``deployment`` is satisfied.
1414
* A ``Service`` is how you expose your ``Deployment``. If I want to talk to my ``diracx`` application, it is a ``Service`` which will take care of redirecting me within the cluster to one of the ``pod``. Most of the time, the ``Service`` is used for routing inside the cluster
1515
* An ``Ingress`` exposes your ``Services`` outside of the cluster.
1616

@@ -78,7 +78,7 @@ helm diff upgrade diracx-demo ./diracx --values .demo/values.yaml --set rabbitm
7878
helm upgrade diracx-demo ./diracx --values .demo/values.yaml
7979
```
8080

81-
See [here](../../../dev/explanations/run_demo.md) for more details on what you can do to alter the behavior of the local installation.
81+
See [here](../../dev/explanations/run_demo.md) for more details on what you can do to alter the behavior of the local installation.
8282

8383

8484
## OpenTelemetry
@@ -96,4 +96,4 @@ To enable it, run ``run_demo.sh`` with ``enable-open-telemetry``
9696

9797
Note that this configuration is trivial and does not follow production recommandations (like using batch processing)
9898

99-
![OTEL collector configuration](../../../demo/otel-collector.png)
99+
![OTEL collector configuration](https://diracx-docs-static.s3.cern.ch/assets/images/admin/tutorials/otel-collector.png)

0 commit comments

Comments
 (0)