ctao-bdms-clients 0.1.0rc3__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.gitignore +8 -1
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.gitlab-ci.yml +11 -3
- ctao_bdms_clients-0.2.0/.gitmodules +3 -0
- ctao_bdms_clients-0.2.0/CHANGES.rst +69 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/Dockerfile +4 -4
- ctao_bdms_clients-0.2.0/MANIFEST.in +2 -0
- {ctao_bdms_clients-0.1.0rc3/src/ctao_bdms_clients.egg-info → ctao_bdms_clients-0.2.0}/PKG-INFO +12 -5
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/aiv-config.yml +3 -4
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/Chart.yaml +3 -3
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/README.md +28 -16
- ctao_bdms_clients-0.1.0rc3/report/inspection.tex → ctao_bdms_clients-0.2.0/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -0
- ctao_bdms_clients-0.2.0/chart/scripts/bootstrap_rucio/wait_for_rucio.sh +20 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/scripts/certificates/install_ca.sh +0 -7
- ctao_bdms_clients-0.2.0/chart/templates/_helpers_cert.tpl +40 -0
- ctao_bdms_clients-0.2.0/chart/templates/bootstrap_jobs.yaml +229 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/prepuller.yaml +4 -2
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/test_storages.yaml +34 -3
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/tests/test_jobs.yaml +13 -4
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/values.yaml +168 -30
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/Makefile +3 -1
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/conf.py +2 -0
- ctao_bdms_clients-0.2.0/docs/data_ingestion_acada.rst +35 -0
- ctao_bdms_clients-0.2.0/docs/data_transfers.rst +24 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/getting_started.rst +2 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/index.rst +3 -1
- ctao_bdms_clients-0.2.0/docs/reference/acada_ingestion.rst +8 -0
- ctao_bdms_clients-0.2.0/docs/reference/index.rst +7 -0
- ctao_bdms_clients-0.2.0/env_template +5 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/pyproject.toml +12 -6
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/report/preamble.tex +1 -1
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/sonar-project.properties +2 -1
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/_version.py +9 -4
- ctao_bdms_clients-0.2.0/src/bdms/acada_ingestion.py +479 -0
- ctao_bdms_clients-0.2.0/src/bdms/extract_fits_metadata.py +134 -0
- ctao_bdms_clients-0.2.0/src/bdms/tests/__init__.py +0 -0
- ctao_bdms_clients-0.2.0/src/bdms/tests/conftest.py +117 -0
- ctao_bdms_clients-0.2.0/src/bdms/tests/test_acada_ingestion.py +526 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_basic_rucio_functionality.py +14 -27
- ctao_bdms_clients-0.2.0/src/bdms/tests/test_extract_fits_metadata.py +97 -0
- ctao_bdms_clients-0.2.0/src/bdms/tests/test_onsite_storage.py +100 -0
- ctao_bdms_clients-0.2.0/src/bdms/tests/utils.py +130 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0/src/ctao_bdms_clients.egg-info}/PKG-INFO +12 -5
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/ctao_bdms_clients.egg-info/SOURCES.txt +13 -2
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/ctao_bdms_clients.egg-info/requires.txt +8 -2
- ctao_bdms_clients-0.1.0rc3/.gitmodules +0 -9
- ctao_bdms_clients-0.1.0rc3/CHANGES.rst +0 -15
- ctao_bdms_clients-0.1.0rc3/MANIFEST.in +0 -2
- ctao_bdms_clients-0.1.0rc3/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -62
- ctao_bdms_clients-0.1.0rc3/chart/templates/bootstrap_jobs.yaml +0 -171
- ctao_bdms_clients-0.1.0rc3/docs/reference.rst +0 -7
- ctao_bdms_clients-0.1.0rc3/src/bdms/_dev_version/__init__.py +0 -9
- ctao_bdms_clients-0.1.0rc3/src/bdms/tests/conftest.py +0 -53
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.codespell-ignores +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.dockerignore +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.flake8 +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.pre-commit-config.yaml +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/LICENSE +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/Makefile +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/README.md +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/aiv-config-dependencies.yml +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/Makefile +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/_helpers.tpl +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/configmap.yaml +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/changelog.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/changes/template.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/chart.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/bdms_repos_interaction.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/certificates.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/fts.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/index.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/rucio_configuration.rst +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/storage_elements.rst +0 -0
- /ctao_bdms_clients-0.1.0rc3/report/performance_verification.tex → /ctao_bdms_clients-0.2.0/report/inspection.tex +0 -0
- /ctao_bdms_clients-0.1.0rc3/src/bdms/tests/__init__.py → /ctao_bdms_clients-0.2.0/report/performance_verification.tex +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/setup.cfg +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/__init__.py +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_dpps_rel_0_0.py +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_file_replicas.py +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_metadata.py +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/version.py +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/ctao_bdms_clients.egg-info/dependency_links.txt +0 -0
- {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/ctao_bdms_clients.egg-info/top_level.txt +0 -0
@@ -1,4 +1,8 @@
|
|
1
|
-
#
|
1
|
+
# Downloaded test data
|
2
|
+
test_data/
|
3
|
+
|
4
|
+
# Files created by the dpps-aiv-toolkit
|
5
|
+
logger.pid
|
2
6
|
Chart.lock
|
3
7
|
helm
|
4
8
|
helm.tar.gz
|
@@ -141,3 +145,6 @@ dmypy.json
|
|
141
145
|
|
142
146
|
# Pyre type checker
|
143
147
|
.pyre/
|
148
|
+
|
149
|
+
# Test folder for Fits files
|
150
|
+
test_data/
|
@@ -1,6 +1,6 @@
|
|
1
1
|
include:
|
2
2
|
- project: 'cta-computing/dpps/aiv/dpps-aiv-toolkit'
|
3
|
-
ref:
|
3
|
+
ref: dd87c1aaf379ece916a8e11c069e79d07b521b56
|
4
4
|
file: 'ci-functions.yml'
|
5
5
|
- "aiv-config.yml"
|
6
6
|
|
@@ -8,13 +8,13 @@ include:
|
|
8
8
|
variables:
|
9
9
|
CHART_LOCATION: chart
|
10
10
|
CHART_NAME: bdms
|
11
|
-
CHART_EXTRA_VALUES: "--set client_image_tag=${DOCKER_TAG}"
|
12
|
-
DPPS_AIV_TOOLKIT_DIR: dpps-aiv-toolkit
|
11
|
+
CHART_EXTRA_VALUES: "--set dev.client_image_tag=${DOCKER_TAG}"
|
13
12
|
DOCKER_IMAGE_CONTEXT: '${CI_PROJECT_DIR}'
|
14
13
|
RUCIO_VERSION: "35.4.1"
|
15
14
|
RUCIO_TAG: "release-${RUCIO_VERSION}"
|
16
15
|
|
17
16
|
stages:
|
17
|
+
- prepare
|
18
18
|
- lint
|
19
19
|
- build
|
20
20
|
- sign
|
@@ -23,6 +23,14 @@ stages:
|
|
23
23
|
- publish
|
24
24
|
- report
|
25
25
|
|
26
|
+
k8s-integration-tests:
|
27
|
+
# override from toolkit
|
28
|
+
before_script:
|
29
|
+
- apk add --no-cache make wget || true # might fail depending on the image
|
30
|
+
- echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf && echo fs.inotify.max_user_instances=8192 | tee -a /etc/sysctl.conf && sysctl -p || true
|
31
|
+
# create .env file with CI secrets
|
32
|
+
- echo -e "MINIO_ACCESS_KEY=$MINIO_ACCESS_KEY\nMINIO_SECRET_KEY=$MINIO_SECRET_KEY\n" > .env
|
33
|
+
|
26
34
|
build:
|
27
35
|
variables:
|
28
36
|
CI_HARBOR_REGISTRY_IMAGE: '${HARBOR_HOST}/dpps/bdms-client:${DOCKER_TAG}'
|
@@ -0,0 +1,69 @@
|
|
1
|
+
BDMS 0.2.0 (2025-05-07)
|
2
|
+
-----------------------
|
3
|
+
|
4
|
+
|
5
|
+
API Changes
|
6
|
+
~~~~~~~~~~~
|
7
|
+
|
8
|
+
- Add basic ingestion of ACADA files (UC-110-1.1.1) [`!76 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/76>`__]
|
9
|
+
|
10
|
+
- Replicate Data Products (UC-110-1.6) with test case for copies=2 [`!83 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/83>`__]
|
11
|
+
|
12
|
+
- Extraction of metadata from ACADA-LST DL0 FITS files and adding metadata to ingested file (UC-110-1.1.1) [`!85 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/85>`__]
|
13
|
+
|
14
|
+
- Add test case for copies=1 for the replication (UC-110-1.6) [`!87 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/87>`__]
|
15
|
+
|
16
|
+
|
17
|
+
Bug Fixes
|
18
|
+
~~~~~~~~~
|
19
|
+
|
20
|
+
- Add missing permissions to fix onsite storage permissions [`!103 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/103>`__]
|
21
|
+
|
22
|
+
|
23
|
+
New Features
|
24
|
+
~~~~~~~~~~~~
|
25
|
+
|
26
|
+
- Adapt one RSE as onsite and exposing its diskspace to client test pod [`!69 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/69>`__]
|
27
|
+
|
28
|
+
- Add dcache and its dependencies in the BDMS helm chart (UC-170-1.6) [`!80 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/80>`__]
|
29
|
+
|
30
|
+
- Add FITS checksum verification [`!94 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/94>`__]
|
31
|
+
|
32
|
+
- Make storage configurable by providing additional config for RSE and also make xrootd image configurable [`!96 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/96>`__]
|
33
|
+
|
34
|
+
|
35
|
+
Maintenance
|
36
|
+
~~~~~~~~~~~
|
37
|
+
|
38
|
+
- Fix rucio server not using correct lfn2pfn algorithm [`!72 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/72>`__]
|
39
|
+
|
40
|
+
- Use test_vo fixture for ingestion tests [`!81 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/81>`__]
|
41
|
+
|
42
|
+
- Update dpps release for test report and signature matrix [`!82 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/82>`__]
|
43
|
+
|
44
|
+
- Update BDMS docs for Rel 0.1 [`!89 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/89>`__]
|
45
|
+
|
46
|
+
- Update fts image and toolkit [`!90 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/90>`__]
|
47
|
+
|
48
|
+
- Added download_test_file in utils.py to download a FITS file from MinIO server [`!93 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/93>`__]
|
49
|
+
|
50
|
+
- Update rucio to 35.7.0 [`!97 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/97>`__]
|
51
|
+
|
52
|
+
- Update FTS subchart version [`!99 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/99>`__]
|
53
|
+
|
54
|
+
- Resolve Test container build fails due to missing -y in autoremove [`!101 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/101>`__]
|
55
|
+
|
56
|
+
|
57
|
+
Refactoring and Optimization
|
58
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
59
|
+
|
60
|
+
- Update FTS chart to 0.3 to reduce integration test time [`!100 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/100>`__]
|
61
|
+
|
62
|
+
BDMS v0.1.0 (2025-02-21)
|
63
|
+
---------------------------
|
64
|
+
|
65
|
+
First release of the Bulk Data Management System (BDMS).
|
66
|
+
|
67
|
+
* Deployment of Rucio 35.4 using helm.
|
68
|
+
* Client package pinning the correct rucio and rucio policy package versions.
|
69
|
+
* Integration tests for DPPS release 0.0 use cases.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# rucio version used as base for the final image
|
2
|
-
ARG RUCIO_TAG=release-35.
|
2
|
+
ARG RUCIO_TAG=release-35.7.0
|
3
3
|
|
4
|
-
FROM python:3.9 AS builder
|
4
|
+
FROM harbor.cta-observatory.org/proxy_cache/python:3.9 AS builder
|
5
5
|
|
6
6
|
COPY pyproject.toml MANIFEST.in /tmp/bdms/
|
7
7
|
COPY .git /tmp/bdms/.git/
|
@@ -13,7 +13,7 @@ RUN python -m pip install build \
|
|
13
13
|
# second stage, copy and install wheel
|
14
14
|
# We are using the official python 3.11 image
|
15
15
|
# as base image in the slim variant to reduce image size.
|
16
|
-
FROM rucio/rucio-clients:${RUCIO_TAG}
|
16
|
+
FROM harbor.cta-observatory.org/proxy_cache/rucio/rucio-clients:${RUCIO_TAG}
|
17
17
|
|
18
18
|
ARG RUCIO_TAG
|
19
19
|
|
@@ -22,7 +22,7 @@ USER root
|
|
22
22
|
COPY --from=builder /tmp/dist/ /tmp/dist/
|
23
23
|
RUN dnf install -y --setopt=install_weak_deps=False git \
|
24
24
|
&& python3 -m pip install --no-cache-dir /tmp/dist/ctao_bdms* \
|
25
|
-
&& dnf autoremove \
|
25
|
+
&& dnf autoremove -y \
|
26
26
|
&& dnf clean all
|
27
27
|
|
28
28
|
USER user
|
{ctao_bdms_clients-0.1.0rc3/src/ctao_bdms_clients.egg-info → ctao_bdms_clients-0.2.0}/PKG-INFO
RENAMED
@@ -1,31 +1,38 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: ctao-bdms-clients
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.2.0
|
4
4
|
Summary: Client module for the CTAO DPPS Bulk Data Management System
|
5
5
|
Author-email: Georgios Zacharis <georgios.zacharis@inaf.it>, Stefano Gallozzi <Stefano.gallozzi@inaf.it>, Michele Mastropietro <michele.mastropietro@inaf.it>, Syed Anwar Ul Hasan <syedanwarul.hasan@cta-consortium.org>, Maximilian Linhoff <maximilian.linhoff@cta-observatory.org>, Volodymyr Savchenko <Volodymyr.Savchenko@epfl.ch>
|
6
|
-
License: BSD-3-Clause
|
6
|
+
License-Expression: BSD-3-Clause
|
7
7
|
Project-URL: repository, https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms
|
8
8
|
Project-URL: documentation, http://cta-computing.gitlab-pages.cta-observatory.org/dpps/bdms/bdms
|
9
9
|
Requires-Python: >=3.9
|
10
10
|
Description-Content-Type: text/markdown
|
11
11
|
License-File: LICENSE
|
12
|
-
Requires-Dist:
|
13
|
-
Requires-Dist: ctao-bdms-rucio-policy
|
12
|
+
Requires-Dist: astropy<8.0.0a0,>=6.0.1
|
13
|
+
Requires-Dist: ctao-bdms-rucio-policy~=0.1.0
|
14
|
+
Requires-Dist: rucio-clients~=35.7.0
|
15
|
+
Requires-Dist: protozfits>=2.7.2
|
14
16
|
Provides-Extra: test
|
15
17
|
Requires-Dist: pytest; extra == "test"
|
16
18
|
Requires-Dist: pytest-cov; extra == "test"
|
17
19
|
Requires-Dist: pytest-requirements; extra == "test"
|
20
|
+
Requires-Dist: python-dotenv; extra == "test"
|
21
|
+
Requires-Dist: minio; extra == "test"
|
22
|
+
Requires-Dist: pytest-xdist; extra == "test"
|
18
23
|
Provides-Extra: doc
|
19
24
|
Requires-Dist: sphinx; extra == "doc"
|
20
25
|
Requires-Dist: numpydoc; extra == "doc"
|
21
26
|
Requires-Dist: ctao-sphinx-theme; extra == "doc"
|
22
27
|
Requires-Dist: myst-parser; extra == "doc"
|
23
28
|
Requires-Dist: sphinx-changelog; extra == "doc"
|
29
|
+
Requires-Dist: sphinx-automodapi; extra == "doc"
|
24
30
|
Provides-Extra: dev
|
25
31
|
Requires-Dist: setuptools_scm; extra == "dev"
|
26
32
|
Requires-Dist: sphinx-autobuild; extra == "dev"
|
27
33
|
Provides-Extra: all
|
28
34
|
Requires-Dist: bdms[dev,doc,test]; extra == "all"
|
35
|
+
Dynamic: license-file
|
29
36
|
|
30
37
|
# Bulk Data Management System
|
31
38
|
|
@@ -3,16 +3,15 @@
|
|
3
3
|
variables:
|
4
4
|
# Comma-separated list of "UC Groups" to select UCs and Requirements, e.g. "BDMS,AIV"
|
5
5
|
DPPS_UC_GROUPS: BDMS
|
6
|
-
DPPS_RELEASE: v0.
|
6
|
+
DPPS_RELEASE: v0.1
|
7
7
|
|
8
8
|
# these paths are relative to TEST_ARTIFACTS_PATH
|
9
9
|
REPORT_XML: report.xml
|
10
|
-
RELEASE_PLAN_FN: dpps-release-plan/release_development_document/dpps-release-plan.tex
|
11
|
-
TRACEABILITY_CSV_FN: requirements-traceability/DPPS_Requirements_Traceability_Matrix.csv
|
10
|
+
RELEASE_PLAN_FN: dpps-aiv-toolkit/dpps-release-plan/release_development_document/dpps-release-plan.tex
|
11
|
+
TRACEABILITY_CSV_FN: dpps-aiv-toolkit/requirements-traceability/DPPS_Requirements_Traceability_Matrix.csv
|
12
12
|
|
13
13
|
APPLICATION_NAME: BDMS
|
14
14
|
APPLICATION_AUTHOR: BDMS Team
|
15
15
|
APPLICATION_AUTHOR_ORGANIZATION: CTAO
|
16
|
-
APPLICATION_VERSION: 0.0.0
|
17
16
|
|
18
17
|
EXTRA_CONFIG_FILES: aiv-config-dependencies.yml
|
@@ -12,7 +12,7 @@ keywords:
|
|
12
12
|
|
13
13
|
maintainers:
|
14
14
|
- name: The BDMS Authors
|
15
|
-
email:
|
15
|
+
email: ''
|
16
16
|
|
17
17
|
dependencies:
|
18
18
|
- name: postgresql
|
@@ -30,10 +30,10 @@ dependencies:
|
|
30
30
|
|
31
31
|
- name: cert-generator-grid
|
32
32
|
condition: cert-generator-grid.enabled
|
33
|
-
version:
|
33
|
+
version: v1.0.0
|
34
34
|
repository: oci://harbor.cta-observatory.org/dpps
|
35
35
|
|
36
36
|
- name: fts
|
37
37
|
condition: fts.enabled
|
38
|
-
version: v0.
|
38
|
+
version: v0.3.0
|
39
39
|
repository: oci://harbor.cta-observatory.org/dpps
|
@@ -14,8 +14,8 @@ A Helm chart for the bdms project
|
|
14
14
|
|
15
15
|
| Repository | Name | Version |
|
16
16
|
|------------|------|---------|
|
17
|
-
| oci://harbor.cta-observatory.org/dpps | cert-generator-grid |
|
18
|
-
| oci://harbor.cta-observatory.org/dpps | fts | v0.
|
17
|
+
| oci://harbor.cta-observatory.org/dpps | cert-generator-grid | v1.0.0 |
|
18
|
+
| oci://harbor.cta-observatory.org/dpps | fts | v0.3.0 |
|
19
19
|
| oci://harbor.cta-observatory.org/dpps | rucio-daemons | 35.0.0 |
|
20
20
|
| oci://harbor.cta-observatory.org/dpps | rucio-server | 35.0.0 |
|
21
21
|
| oci://registry-1.docker.io/bitnamicharts | postgresql | 15.5.10 |
|
@@ -32,22 +32,23 @@ A Helm chart for the bdms project
|
|
32
32
|
| auth.certificate.letsencrypt.email | string | `""` | Email address for Let's encrypt registration and renewal reminders |
|
33
33
|
| auth.certificate.letsencrypt.enabled | bool | `false` | Enables SSL/TLS certificate provisioning using Let's encrypt |
|
34
34
|
| bootstrap.image.repository | string | `"harbor.cta-observatory.org/dpps/bdms-rucio-server"` | The container image for bootstrapping Rucio (initialization, configuration) with the CTAO Rucio policy package installed |
|
35
|
-
| bootstrap.image.tag | string | `"35.
|
35
|
+
| bootstrap.image.tag | string | `"35.7.0-v0.2.0"` | The specific image tag to use for the bootstrap container |
|
36
36
|
| cert-generator-grid.enabled | bool | `true` | |
|
37
37
|
| cert-generator-grid.generatePreHooks | bool | `true` | |
|
38
|
-
|
|
38
|
+
| configure | object | `{"extra_script":"# add a scope\nrucio-admin scope add --account root --scope root\nrucio add-container /ctao.dpps.test\n","identities":[{"account":"root","email":"dpps-test@cta-observatory.org","id":"CN=DPPS User","type":"X509"}],"rse_distances":[["STORAGE-1","STORAGE-2",1,1],["STORAGE-2","STORAGE-1",1,1],["STORAGE-1","STORAGE-3",1,1],["STORAGE-3","STORAGE-1",1,1],["STORAGE-2","STORAGE-3",1,1],["STORAGE-3","STORAGE-2",1,1]],"rses":{"STORAGE-1":{"attributes":{"ANY":true,"ONSITE":true,"fts":"https://bdms-fts:8446"},"limits_by_account":{"root":-1},"protocols":[{"domains":{"lan":{"delete":1,"read":1,"write":1},"wan":{"delete":1,"read":1,"third_party_copy_read":1,"third_party_copy_write":1,"write":1}},"extended_attributes":"None","hostname":"rucio-storage-1","impl":"rucio.rse.protocols.gfal.Default","port":1094,"prefix":"//rucio","scheme":"root"}],"rse_type":"DISK"},"STORAGE-2":{"attributes":{"ANY":true,"OFFSITE":true,"fts":"https://bdms-fts:8446"},"limits_by_account":{"root":-1},"protocols":[{"domains":{"lan":{"delete":1,"read":1,"write":1},"wan":{"delete":1,"read":1,"third_party_copy_read":1,"third_party_copy_write":1,"write":1}},"extended_attributes":"None","hostname":"rucio-storage-2","impl":"rucio.rse.protocols.gfal.Default","port":1094,"prefix":"//rucio","scheme":"root"}],"recreate_if_exists":true},"STORAGE-3":{"attributes":{"ANY":true,"OFFSITE":true,"fts":"https://bdms-fts:8446"},"limits_by_account":{"root":-1},"protocols":[{"domains":{"lan":{"delete":1,"read":1,"write":1},"wan":{"delete":1,"read":1,"third_party_copy_read":1,"third_party_copy_write":1,"write":1}},"extended_attributes":"None","hostname":"rucio-storage-3","impl":"rucio.rse.protocols.gfal.Default","port":1094,"prefix":"//rucio","scheme":"root"}],"recreate_if_exists":true}}}` | a list of Rucio Storage Elements (RSE) TODO: make more clear mechanism to handle different upgrade scenarios If there is a conflict between existing configuration, the configuration will fail. In this case, likely the configuration should be deleted and re-created. |
|
39
|
+
| configure.extra_script | string | `"# add a scope\nrucio-admin scope add --account root --scope root\nrucio add-container /ctao.dpps.test\n"` | This script is executed after the Rucio server is deployed and configured. It can be used to perform additional configuration or setup tasks if they currently cannot be done with the chart values. |
|
40
|
+
| configure.rse_distances | list | `[["STORAGE-1","STORAGE-2",1,1],["STORAGE-2","STORAGE-1",1,1],["STORAGE-1","STORAGE-3",1,1],["STORAGE-3","STORAGE-1",1,1],["STORAGE-2","STORAGE-3",1,1],["STORAGE-3","STORAGE-2",1,1]]` | A list of RSE distance specifications, each a list of 4 values: source RSE, destination RSE, distance (integer), and ranking (integer) |
|
39
41
|
| configure_test_setup | bool | `true` | This will configure the rucio server with the storages |
|
40
42
|
| database | object | `{"default":"postgresql://rucio:XcL0xT9FgFgJEc4i3OcQf2DMVKpjIWDGezqcIPmXlM@bdms-postgresql:5432/rucio"}` | Databases Credentials used by Rucio to access the database. If postgresql subchart is deployed, these credentials should match those in postgresql.global.postgresql.auth. If postgresql subchart is not deployed, an external database must be provided |
|
41
43
|
| database.default | string | `"postgresql://rucio:XcL0xT9FgFgJEc4i3OcQf2DMVKpjIWDGezqcIPmXlM@bdms-postgresql:5432/rucio"` | The Rucio database connection URI |
|
44
|
+
| dev.client_image_tag | string | `nil` | |
|
42
45
|
| dev.mount_repo | bool | `true` | |
|
46
|
+
| dev.n_test_jobs | int | `4` | number of jobs to use for pytest |
|
43
47
|
| dev.run_tests | bool | `true` | |
|
44
48
|
| dev.sleep | bool | `false` | sleep after test to allow interactive development |
|
45
49
|
| fts.enabled | bool | `true` | Specifies the configuration for FTS test step (FTS server, FTS database, and ActiveMQ broker containers). Enables or disables the deployment of a FTS instance for testing. This is set to 'False' if an external FTS is used |
|
46
50
|
| fts.ftsdb_password | string | `"SDP2RQkbJE2f+ohUb2nUu6Ae10BpQH0VD70CsIQcDtM"` | Defines the password for the FTS database user |
|
47
51
|
| fts.ftsdb_root_password | string | `"iB7dMiIybdoaozWZMkvRo0eg9HbQzG9+5up50zUDjE4"` | Defines the root password for the FTS database |
|
48
|
-
| fts.image.pullPolicy | string | `"Always"` | |
|
49
|
-
| fts.image.repository | string | `"harbor.cta-observatory.org/proxy_cache/rucio/fts"` | The container image repository for the FTS deployment |
|
50
|
-
| fts.image.tag | string | `"35.4.1"` | Defines the specific version of the FTS image to use |
|
51
52
|
| fts.messaging.broker | string | `"localhost:61613"` | |
|
52
53
|
| fts.messaging.password | string | `"topsecret"` | |
|
53
54
|
| fts.messaging.use_broker_credentials | string | `"true"` | |
|
@@ -60,6 +61,7 @@ A Helm chart for the bdms project
|
|
60
61
|
| rethinkdb.enabled | bool | `false` | |
|
61
62
|
| rethinkdb.storageClassName | string | `nil` | |
|
62
63
|
| rethinkdb.storageSize | string | `"1Gi"` | |
|
64
|
+
| rucio-daemons.config.common.extract_scope | string | `"ctao_bdms"` | |
|
63
65
|
| rucio-daemons.config.database.default | string | `"postgresql://rucio:XcL0xT9FgFgJEc4i3OcQf2DMVKpjIWDGezqcIPmXlM@bdms-postgresql:5432/rucio"` | Specifies the connection URI for the Rucio database, these settings will be written to 'rucio.cfg' |
|
64
66
|
| rucio-daemons.config.messaging-fts3.brokers | string | `"fts-activemq"` | Specifies the message broker used for FTS messaging |
|
65
67
|
| rucio-daemons.config.messaging-fts3.destination | string | `"/topic/transfer.fts_monitoring_complete"` | Specifies the message broker queue path where FTS sends transfer status updates. This is the place where Rucio listens for completed transfer notifications |
|
@@ -68,7 +70,11 @@ A Helm chart for the bdms project
|
|
68
70
|
| rucio-daemons.config.messaging-fts3.port | int | `61613` | Defines the port used for the broker |
|
69
71
|
| rucio-daemons.config.messaging-fts3.use_ssl | bool | `false` | Determines whether to use SSL for message broker connections. If true, valid certificates are required for securing the connection |
|
70
72
|
| rucio-daemons.config.messaging-fts3.username | string | `"fts"` | Specifies the authentication credential (username) for connecting to the message broker |
|
71
|
-
| rucio-daemons.config.
|
73
|
+
| rucio-daemons.config.messaging-fts3.voname | string | `"ctao"` | |
|
74
|
+
| rucio-daemons.config.policy.lfn2pfn_algorithm_default | string | `"ctao_bdms"` | |
|
75
|
+
| rucio-daemons.config.policy.package | string | `"bdms_rucio_policy"` | Defines the policy permission model for Rucio for determining how authorization and access controls are applied, its value should be taken from the installed Rucio policy package |
|
76
|
+
| rucio-daemons.config.policy.permission | string | `"ctao"` | |
|
77
|
+
| rucio-daemons.config.policy.schema | string | `"ctao_bdms"` | |
|
72
78
|
| rucio-daemons.conveyorFinisher.activities | string | `"'User Subscriptions'"` | Specifies which Rucio activities to be handled. Some of the activities for data movements are 'User Subscriptions' and 'Production Transfers' |
|
73
79
|
| rucio-daemons.conveyorFinisher.resources.limits.cpu | string | `"3000m"` | |
|
74
80
|
| rucio-daemons.conveyorFinisher.resources.limits.memory | string | `"4Gi"` | |
|
@@ -95,21 +101,25 @@ A Helm chart for the bdms project
|
|
95
101
|
| rucio-daemons.conveyorTransferSubmitterCount | int | `1` | Number of container instances to deploy for each Rucio daemon, this daemon submits new transfer requests to the FTS |
|
96
102
|
| rucio-daemons.image.pullPolicy | string | `"Always"` | It defines when kubernetes should pull the container image, the options available are: Always, IfNotPresent, and Never |
|
97
103
|
| rucio-daemons.image.repository | string | `"harbor.cta-observatory.org/dpps/bdms-rucio-daemons"` | Specifies the container image repository for Rucio daemons |
|
98
|
-
| rucio-daemons.image.tag | string | `"35.
|
104
|
+
| rucio-daemons.image.tag | string | `"35.7.0-v0.2.0"` | Specific image tag to use for deployment |
|
105
|
+
| rucio-daemons.judgeEvaluator.resources.limits.cpu | string | `"3000m"` | |
|
106
|
+
| rucio-daemons.judgeEvaluator.resources.limits.memory | string | `"4Gi"` | |
|
107
|
+
| rucio-daemons.judgeEvaluator.resources.requests.cpu | string | `"700m"` | |
|
108
|
+
| rucio-daemons.judgeEvaluator.resources.requests.memory | string | `"1Gi"` | |
|
99
109
|
| rucio-daemons.judgeEvaluatorCount | int | `1` | Evaluates Rucio replication rules and triggers transfers |
|
100
110
|
| rucio-daemons.useDeprecatedImplicitSecrets | bool | `true` | Enables the use of deprecated implicit secrets for authentication |
|
101
111
|
| rucio-server.authRucioHost | string | `"rucio-server.local"` | The hostname of the Rucio authentication server. |
|
102
112
|
| rucio-server.config.database.default | string | `"postgresql://rucio:XcL0xT9FgFgJEc4i3OcQf2DMVKpjIWDGezqcIPmXlM@bdms-postgresql:5432/rucio"` | The database connection URI for Rucio |
|
103
|
-
| rucio-server.config.
|
104
|
-
| rucio-server.config.
|
105
|
-
| rucio-server.config.
|
106
|
-
| rucio-server.config.
|
113
|
+
| rucio-server.config.policy.lfn2pfn_algorithm_default | string | `"ctao_bdms"` | |
|
114
|
+
| rucio-server.config.policy.package | string | `"bdms_rucio_policy"` | Defines the policy permission model for Rucio for determining how authorization and access controls are applied, its value should be taken from the installed Rucio policy package |
|
115
|
+
| rucio-server.config.policy.permission | string | `"ctao"` | |
|
116
|
+
| rucio-server.config.policy.schema | string | `"ctao_bdms"` | |
|
107
117
|
| rucio-server.ftsRenewal.enabled | bool | `false` | Enables automatic renewal of FTS credentials using X.509 certificates and proxy |
|
108
118
|
| rucio-server.httpd_config.encoded_slashes | string | `"True"` | Allows for custom LFNs with slashes in request URLs so that Rucio server (Apache) can decode and handle such requests properly |
|
109
119
|
| rucio-server.httpd_config.grid_site_enabled | string | `"True"` | Enables Rucio server to support and interact with grid middleware (storages) for X509 authentication with proxies |
|
110
120
|
| rucio-server.image.pullPolicy | string | `"Always"` | It defines when kubernetes should pull the container image, the options available are: Always, IfNotPresent, and Never |
|
111
121
|
| rucio-server.image.repository | string | `"harbor.cta-observatory.org/dpps/bdms-rucio-server"` | The container image repository for Rucio server with the CTAO Rucio policy package installed |
|
112
|
-
| rucio-server.image.tag | string | `"35.
|
122
|
+
| rucio-server.image.tag | string | `"35.7.0-v0.2.0"` | The specific image tag to deploy |
|
113
123
|
| rucio-server.ingress.enabled | bool | `true` | Enables an ingress resource (controller) for exposing the Rucio server externally to allow clients connect to the Rucio server. It needs one of the ingress controllers (NGINX, Traefik) to be installed |
|
114
124
|
| rucio-server.ingress.hosts | list | `["rucio-server-manual-tc.local"]` | Defines the hostname to be used to access the Rucio server. It should match DNS configuration and TLS certificates |
|
115
125
|
| rucio-server.replicaCount | int | `1` | Number of replicas of the Rucio server to deploy. We can increase it to meet higher availability goals |
|
@@ -121,7 +131,7 @@ A Helm chart for the bdms project
|
|
121
131
|
| rucio-server.useSSL | bool | `true` | Enables the Rucio server to use SSL/TLS for secure communication, requiring valid certificates to be configured |
|
122
132
|
| rucio.password | string | `"secret"` | |
|
123
133
|
| rucio.username | string | `"dpps"` | Specifies the username for Rucio operations as part of Rucio configuration |
|
124
|
-
| rucio.version | string | `"35.
|
134
|
+
| rucio.version | string | `"35.7.0"` | The version of Rucio being deployed |
|
125
135
|
| rucio_db.connection | string | `"postgresql://rucio:XcL0xT9FgFgJEc4i3OcQf2DMVKpjIWDGezqcIPmXlM@bdms-postgresql:5432/rucio"` | The database connection URI for Rucio. It is of the format: `postgresql://<user>:<password>@<host>:<port>/<database>`, this field in use only if 'existingSecret.enabled' is set to 'false', otherwise ignored |
|
126
136
|
| rucio_db.deploy | bool | `true` | If true, deploys a postgresql instance for the Rucio database, otherwise use an external database |
|
127
137
|
| rucio_db.existingSecret.enabled | bool | `false` | If true, the database connection URI is obtained from a kubernetes secret in |
|
@@ -135,6 +145,8 @@ A Helm chart for the bdms project
|
|
135
145
|
| server.certificate.letsencrypt.email | string | `""` | |
|
136
146
|
| server.certificate.letsencrypt.enabled | bool | `false` | Enables SSL/TLS certificate provisioning using Let's encrypt |
|
137
147
|
| server.rucioHost | string | `"rucio-server-manual-tc.local"` | The hostname of the Rucio server. It is used by clients and services to communicate with Rucio |
|
138
|
-
| storages | list | `["rucio-storage-1","rucio-storage-2","rucio-storage-3"]` | a list of storage element (RSE) hostnames names, for each RSE, one deployment and service are configured, two configmaps xrdconfig and xrd-entrypoint for those three storages |
|
139
148
|
| suffix_namespace | string | `"default"` | Specifies the Namespace suffix used for managing deployments in kubernetes |
|
149
|
+
| test_storages | object | `{"xrootd":{"image":{"repository":"harbor.cta-observatory.org/proxy_cache/rucio/test-xrootd","tag":"37.1.0"},"instances":["rucio-storage-1","rucio-storage-2","rucio-storage-3"]}}` | - A list of test storages, deployed in the test setup |
|
150
|
+
| test_storages.xrootd.image.repository | string | `"harbor.cta-observatory.org/proxy_cache/rucio/test-xrootd"` | The container image repository for the XRootD storage deployment |
|
151
|
+
| test_storages.xrootd.image.tag | string | `"37.1.0"` | Defines the specific version of the XRootD image to use |
|
140
152
|
|
File without changes
|
@@ -0,0 +1,20 @@
|
|
1
|
+
while true; do
|
2
|
+
openssl s_client -connect ${HELM_RELEASE_NAME:?}-rucio-server:443 && break
|
3
|
+
sleep 3
|
4
|
+
done
|
5
|
+
|
6
|
+
echo "Rucio server is responding on port 443"
|
7
|
+
|
8
|
+
if [ -z "$WAIT_RUCIO_PING" ]; then
|
9
|
+
echo "Skipping rucio ping check"
|
10
|
+
else
|
11
|
+
while true; do
|
12
|
+
rucio ping && break
|
13
|
+
sleep 3
|
14
|
+
done
|
15
|
+
|
16
|
+
echo "Rucio server is responding to ping"
|
17
|
+
fi
|
18
|
+
|
19
|
+
ls -l /opt/rucio/etc/
|
20
|
+
cat /opt/rucio/etc/rucio.cfg
|
{ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/scripts/certificates/install_ca.sh
RENAMED
@@ -9,10 +9,3 @@ ls -lotr /etc/pki/tls/certs/ca-bundle.crt
|
|
9
9
|
|
10
10
|
# TODO: avoid attempt copying the certificate if it already exists
|
11
11
|
cp -fv /etc/grid-security/ca.pem /etc/grid-security/certificates/$hash.0 || echo "Certificate already exists"
|
12
|
-
|
13
|
-
# openssl x509 -in /etc/grid-security/ca.pem -noout -text
|
14
|
-
|
15
|
-
while true; do
|
16
|
-
openssl s_client -connect ${HELM_RELEASE_NAME:?}-rucio-server:443 && break
|
17
|
-
sleep 3
|
18
|
-
done
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{{- define "volume_mounts_rucio_config" }}
|
2
|
+
- name: rucio-config
|
3
|
+
mountPath: /opt/rucio/etc/rucio.cfg
|
4
|
+
subPath: rucio.cfg
|
5
|
+
- name: rucio-config
|
6
|
+
mountPath: /opt/rucio/etc/alembic.ini
|
7
|
+
subPath: alembic.ini
|
8
|
+
{{- end }}
|
9
|
+
{{- define "volume_mounts_cert" }}
|
10
|
+
- name: cafile
|
11
|
+
subPath: ca.pem
|
12
|
+
mountPath: /etc/grid-security/ca.pem
|
13
|
+
- name: dppsuser-certkey-400
|
14
|
+
mountPath: /opt/rucio/etc/userkey.pem
|
15
|
+
subPath: dppsuser.key.pem
|
16
|
+
- name: dppsuser-certkey-600
|
17
|
+
mountPath: /opt/rucio/etc/usercert.pem
|
18
|
+
subPath: dppsuser.pem
|
19
|
+
{{- end }}
|
20
|
+
{{- define "volumes_cert" }}
|
21
|
+
- name: rucio-config
|
22
|
+
configMap:
|
23
|
+
name: {{ template "bdms.fullname" . }}-rucio-config
|
24
|
+
- name: cafile
|
25
|
+
secret:
|
26
|
+
defaultMode: 420
|
27
|
+
secretName: {{ template "certprefix" . }}-server-cafile
|
28
|
+
- name: dppsuser-certkey-600
|
29
|
+
secret:
|
30
|
+
defaultMode: 0600
|
31
|
+
secretName: {{ template "certprefix" . }}-dppsuser-certkey
|
32
|
+
- name: dppsuser-certkey-400
|
33
|
+
secret:
|
34
|
+
defaultMode: 0400
|
35
|
+
secretName: {{ template "certprefix" . }}-dppsuser-certkey
|
36
|
+
{{- end }}
|
37
|
+
{{- define "env_helm_release" }}
|
38
|
+
- name: HELM_RELEASE_NAME
|
39
|
+
value: {{ .Release.Name }}
|
40
|
+
{{- end }}
|