ctao-bdms-clients 0.2.0rc1__tar.gz → 0.3.0rc1__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.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.gitignore +7 -0
- ctao_bdms_clients-0.3.0rc1/.gitlab-ci.yml +60 -0
- ctao_bdms_clients-0.3.0rc1/CHANGES.rst +80 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/Dockerfile +2 -2
- ctao_bdms_clients-0.3.0rc1/Makefile +20 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/PKG-INFO +8 -2
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/aiv-config.yml +3 -1
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/Chart.yaml +5 -5
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/Makefile +1 -1
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/README.md +43 -14
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/scripts/bootstrap_rucio/wait_for_rucio.sh +1 -1
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/scripts/certificates/install_ca.sh +0 -1
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/bootstrap_jobs.yaml +66 -88
- ctao_bdms_clients-0.3.0rc1/chart/templates/ingestion-daemon.yaml +168 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/test_storages.yaml +4 -2
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/tests/test_jobs.yaml +3 -2
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/values.yaml +71 -8
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/changelog.rst +1 -0
- ctao_bdms_clients-0.3.0rc1/docs/changes/111.api.rst +1 -0
- ctao_bdms_clients-0.3.0rc1/docs/changes/113.optimization.rst +1 -0
- ctao_bdms_clients-0.3.0rc1/docs/changes/122.feature.rst +1 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/pyproject.toml +10 -1
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/sonar-project.properties +2 -2
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/_version.py +2 -2
- ctao_bdms_clients-0.3.0rc1/src/bdms/acada_ingest_cli.py +400 -0
- ctao_bdms_clients-0.3.0rc1/src/bdms/acada_ingestion.py +946 -0
- ctao_bdms_clients-0.3.0rc1/src/bdms/extract_fits_metadata.py +134 -0
- ctao_bdms_clients-0.3.0rc1/src/bdms/tests/conftest.py +237 -0
- ctao_bdms_clients-0.3.0rc1/src/bdms/tests/test_acada_ingest_cli.py +279 -0
- ctao_bdms_clients-0.3.0rc1/src/bdms/tests/test_acada_ingestion.py +1718 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_basic_rucio_functionality.py +0 -1
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_dpps_rel_0_0.py +6 -0
- ctao_bdms_clients-0.3.0rc1/src/bdms/tests/test_extract_fits_metadata.py +97 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_onsite_storage.py +16 -35
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/utils.py +28 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/PKG-INFO +8 -2
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/SOURCES.txt +9 -0
- ctao_bdms_clients-0.3.0rc1/src/ctao_bdms_clients.egg-info/entry_points.txt +2 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/requires.txt +6 -0
- ctao_bdms_clients-0.2.0rc1/.gitlab-ci.yml +0 -46
- ctao_bdms_clients-0.2.0rc1/CHANGES.rst +0 -8
- ctao_bdms_clients-0.2.0rc1/Makefile +0 -11
- ctao_bdms_clients-0.2.0rc1/src/bdms/acada_ingestion.py +0 -435
- ctao_bdms_clients-0.2.0rc1/src/bdms/tests/conftest.py +0 -94
- ctao_bdms_clients-0.2.0rc1/src/bdms/tests/test_acada_ingestion.py +0 -501
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.codespell-ignores +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.dockerignore +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.flake8 +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.gitmodules +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.pre-commit-config.yaml +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/LICENSE +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/MANIFEST.in +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/README.md +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/aiv-config-dependencies.yml +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/_helpers.tpl +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/_helpers_cert.tpl +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/configmap.yaml +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/prepuller.yaml +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/Makefile +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/changes/template.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/chart.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/conf.py +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/data_ingestion_acada.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/data_transfers.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/getting_started.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/index.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/reference/acada_ingestion.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/reference/index.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/bdms_repos_interaction.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/certificates.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/fts.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/index.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/rucio_configuration.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/storage_elements.rst +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/env_template +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/report/inspection.tex +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/report/performance_verification.tex +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/report/preamble.tex +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/setup.cfg +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/__init__.py +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/__init__.py +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_file_replicas.py +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_metadata.py +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/version.py +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/dependency_links.txt +0 -0
- {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/top_level.txt +0 -0
@@ -7,9 +7,13 @@ Chart.lock
|
|
7
7
|
helm
|
8
8
|
helm.tar.gz
|
9
9
|
kind
|
10
|
+
yq
|
10
11
|
kubectl
|
11
12
|
linux-amd64
|
13
|
+
pull-images-statistics.json
|
12
14
|
# generated file
|
15
|
+
helm-debug.txt
|
16
|
+
chart-image-list.txt
|
13
17
|
chart/**/*.tgz
|
14
18
|
report.xml
|
15
19
|
# setuptools_scm generated version file
|
@@ -145,3 +149,6 @@ dmypy.json
|
|
145
149
|
|
146
150
|
# Pyre type checker
|
147
151
|
.pyre/
|
152
|
+
|
153
|
+
# Test folder for Fits files
|
154
|
+
test_data/
|
@@ -0,0 +1,60 @@
|
|
1
|
+
include:
|
2
|
+
- project: 'cta-computing/dpps/aiv/dpps-aiv-toolkit'
|
3
|
+
ref: 1e9b640800ac73c215ce59df01330085d05b335e
|
4
|
+
file: 'ci-functions.yml'
|
5
|
+
- "aiv-config.yml"
|
6
|
+
|
7
|
+
|
8
|
+
variables:
|
9
|
+
CHART_LOCATION: chart
|
10
|
+
CHART_NAME: bdms
|
11
|
+
CHART_EXTRA_VALUES: "--set dev.client_image_tag=${DOCKER_TAG} --set acada_ingest.image.tag=${DOCKER_TAG}"
|
12
|
+
DOCKER_IMAGE_CONTEXT: '${CI_PROJECT_DIR}'
|
13
|
+
RUCIO_VERSION: "35.4.1"
|
14
|
+
RUCIO_TAG: "release-${RUCIO_VERSION}"
|
15
|
+
|
16
|
+
stages:
|
17
|
+
- prepare
|
18
|
+
- lint
|
19
|
+
- build
|
20
|
+
- sign
|
21
|
+
- tests
|
22
|
+
- sonarqube
|
23
|
+
- publish
|
24
|
+
- report
|
25
|
+
- changelog
|
26
|
+
|
27
|
+
k8s-integration-tests:
|
28
|
+
# override from toolkit to add .env file with CI secrets
|
29
|
+
script:
|
30
|
+
- echo -e "MINIO_ACCESS_KEY=$MINIO_ACCESS_KEY\nMINIO_SECRET_KEY=$MINIO_SECRET_KEY\n" > .env
|
31
|
+
- ${MAKE} test-chart 2>&1 | tee test-output.log
|
32
|
+
|
33
|
+
k8s-integration-tests-with-upgrade:
|
34
|
+
extends: k8s-integration-tests
|
35
|
+
script:
|
36
|
+
- echo -e "MINIO_ACCESS_KEY=$MINIO_ACCESS_KEY\nMINIO_SECRET_KEY=$MINIO_SECRET_KEY\n" > .env
|
37
|
+
- ${MAKE} test-chart 2>&1 | tee test-output.log
|
38
|
+
- find -name Chart.lock -delete
|
39
|
+
# seconds test, upgrades current cluster
|
40
|
+
- ${MAKE} test-chart 2>&1 | tee test-output.log
|
41
|
+
|
42
|
+
|
43
|
+
build:
|
44
|
+
variables:
|
45
|
+
CI_HARBOR_REGISTRY_IMAGE: '${HARBOR_HOST}/dpps/bdms-client:${DOCKER_TAG}'
|
46
|
+
KANIKO_EXTRA_ARGS: --build-arg RUCIO_TAG=${RUCIO_TAG}
|
47
|
+
|
48
|
+
build-ingestion-daemon:
|
49
|
+
extends: build
|
50
|
+
variables:
|
51
|
+
CI_HARBOR_REGISTRY_IMAGE: '${HARBOR_HOST}/dpps/bdms-ingestion-daemon:${DOCKER_TAG}'
|
52
|
+
KANIKO_EXTRA_ARGS: --build-arg RUCIO_TAG=${RUCIO_TAG}
|
53
|
+
|
54
|
+
hadolint:
|
55
|
+
rules:
|
56
|
+
- when: never
|
57
|
+
|
58
|
+
sign:
|
59
|
+
rules:
|
60
|
+
- when: never
|
@@ -0,0 +1,80 @@
|
|
1
|
+
BDMS v0.2.1 (2025-06-03)
|
2
|
+
------------------------
|
3
|
+
|
4
|
+
Bugfix release to allow (pre-)production deployment without test storages.
|
5
|
+
|
6
|
+
Bug Fixes
|
7
|
+
~~~~~~~~~
|
8
|
+
|
9
|
+
- Allow to further configure first test RSE: set storageclass and make optional. [`!112 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/112>`__]
|
10
|
+
|
11
|
+
|
12
|
+
BDMS 0.2.0 (2025-05-07)
|
13
|
+
-----------------------
|
14
|
+
|
15
|
+
|
16
|
+
API Changes
|
17
|
+
~~~~~~~~~~~
|
18
|
+
|
19
|
+
- 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>`__]
|
20
|
+
|
21
|
+
- 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>`__]
|
22
|
+
|
23
|
+
- 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>`__]
|
24
|
+
|
25
|
+
- 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>`__]
|
26
|
+
|
27
|
+
|
28
|
+
Bug Fixes
|
29
|
+
~~~~~~~~~
|
30
|
+
|
31
|
+
- Add missing permissions to fix onsite storage permissions [`!103 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/103>`__]
|
32
|
+
|
33
|
+
|
34
|
+
New Features
|
35
|
+
~~~~~~~~~~~~
|
36
|
+
|
37
|
+
- 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>`__]
|
38
|
+
|
39
|
+
- 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>`__]
|
40
|
+
|
41
|
+
- Add FITS checksum verification [`!94 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/94>`__]
|
42
|
+
|
43
|
+
- 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>`__]
|
44
|
+
|
45
|
+
|
46
|
+
Maintenance
|
47
|
+
~~~~~~~~~~~
|
48
|
+
|
49
|
+
- Fix rucio server not using correct lfn2pfn algorithm [`!72 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/72>`__]
|
50
|
+
|
51
|
+
- Use test_vo fixture for ingestion tests [`!81 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/81>`__]
|
52
|
+
|
53
|
+
- Update dpps release for test report and signature matrix [`!82 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/82>`__]
|
54
|
+
|
55
|
+
- Update BDMS docs for Rel 0.1 [`!89 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/89>`__]
|
56
|
+
|
57
|
+
- Update fts image and toolkit [`!90 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/90>`__]
|
58
|
+
|
59
|
+
- 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>`__]
|
60
|
+
|
61
|
+
- Update rucio to 35.7.0 [`!97 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/97>`__]
|
62
|
+
|
63
|
+
- Update FTS subchart version [`!99 <https://gitlab.cta-observatory.org/cta-computing/dpps/bdms/bdms/-/merge_requests/99>`__]
|
64
|
+
|
65
|
+
- 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>`__]
|
66
|
+
|
67
|
+
|
68
|
+
Refactoring and Optimization
|
69
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
70
|
+
|
71
|
+
- 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>`__]
|
72
|
+
|
73
|
+
BDMS v0.1.0 (2025-02-21)
|
74
|
+
---------------------------
|
75
|
+
|
76
|
+
First release of the Bulk Data Management System (BDMS).
|
77
|
+
|
78
|
+
* Deployment of Rucio 35.4 using helm.
|
79
|
+
* Client package pinning the correct rucio and rucio policy package versions.
|
80
|
+
* Integration tests for DPPS release 0.0 use cases.
|
@@ -20,9 +20,9 @@ ARG RUCIO_TAG
|
|
20
20
|
# server and daemons use root, clients use "user", switch to root, install, then back
|
21
21
|
USER root
|
22
22
|
COPY --from=builder /tmp/dist/ /tmp/dist/
|
23
|
-
RUN dnf install -y --setopt=install_weak_deps=False git \
|
23
|
+
RUN dnf install -y --setopt=install_weak_deps=False git procps \
|
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
|
@@ -0,0 +1,20 @@
|
|
1
|
+
###
|
2
|
+
# TODO: duplicate in config?
|
3
|
+
export CHART_NAME=bdms
|
4
|
+
export CHART_LOCATION=chart
|
5
|
+
include dpps-aiv-toolkit/Makefile
|
6
|
+
|
7
|
+
|
8
|
+
# TODO: move this to kit
|
9
|
+
export TEST_ARTIFACTS_PATH ?= $(PWD)
|
10
|
+
export TEST_REPORT_CONFIG ?= $(PWD)/aiv-config.yml
|
11
|
+
export TEX_CONTENT_PATH ?= $(PWD)/report
|
12
|
+
|
13
|
+
build-dev-server-images:
|
14
|
+
# TODO: should it be a separate image? it should have a different name
|
15
|
+
docker build . -t harbor.cta-observatory.org/dpps/bdms-ingestion-daemon:dev
|
16
|
+
./kind -n $(KUBECLUSTER) load docker-image \
|
17
|
+
harbor.cta-observatory.org/dpps/bdms-ingestion-daemon:dev
|
18
|
+
|
19
|
+
|
20
|
+
dev: build-dev-server-images
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ctao-bdms-clients
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.3.0rc1
|
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
|
@@ -12,12 +12,18 @@ License-File: LICENSE
|
|
12
12
|
Requires-Dist: astropy<8.0.0a0,>=6.0.1
|
13
13
|
Requires-Dist: ctao-bdms-rucio-policy~=0.1.0
|
14
14
|
Requires-Dist: rucio-clients~=35.7.0
|
15
|
+
Requires-Dist: protozfits>=2.7.2
|
16
|
+
Requires-Dist: watchdog>=6.0.0
|
17
|
+
Requires-Dist: filelock>=3.18.0
|
18
|
+
Requires-Dist: prometheus-client>=0.22.1
|
19
|
+
Requires-Dist: ruamel.yaml
|
15
20
|
Provides-Extra: test
|
16
21
|
Requires-Dist: pytest; extra == "test"
|
17
22
|
Requires-Dist: pytest-cov; extra == "test"
|
18
23
|
Requires-Dist: pytest-requirements; extra == "test"
|
19
24
|
Requires-Dist: python-dotenv; extra == "test"
|
20
25
|
Requires-Dist: minio; extra == "test"
|
26
|
+
Requires-Dist: pytest-xdist; extra == "test"
|
21
27
|
Provides-Extra: doc
|
22
28
|
Requires-Dist: sphinx; extra == "doc"
|
23
29
|
Requires-Dist: numpydoc; extra == "doc"
|
@@ -3,7 +3,7 @@
|
|
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.2.0
|
7
7
|
|
8
8
|
# these paths are relative to TEST_ARTIFACTS_PATH
|
9
9
|
REPORT_XML: report.xml
|
@@ -15,3 +15,5 @@ variables:
|
|
15
15
|
APPLICATION_AUTHOR_ORGANIZATION: CTAO
|
16
16
|
|
17
17
|
EXTRA_CONFIG_FILES: aiv-config-dependencies.yml
|
18
|
+
|
19
|
+
DEFAULT_HELM_TEST: name=bdms-pytest
|
@@ -1,7 +1,7 @@
|
|
1
1
|
apiVersion: v2
|
2
2
|
name: bdms
|
3
3
|
version: 0.1.0
|
4
|
-
appVersion:
|
4
|
+
appVersion: dev
|
5
5
|
description: A Helm chart for the bdms project
|
6
6
|
type: application
|
7
7
|
keywords:
|
@@ -12,13 +12,13 @@ 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
|
19
19
|
condition: postgresql.enabled
|
20
20
|
version: 15.5.10
|
21
|
-
repository: oci://
|
21
|
+
repository: oci://harbor.cta-observatory.org/proxy_cache/bitnamicharts
|
22
22
|
|
23
23
|
- name: rucio-server
|
24
24
|
version: 35.0.0
|
@@ -30,10 +30,10 @@ dependencies:
|
|
30
30
|
|
31
31
|
- name: cert-generator-grid
|
32
32
|
condition: cert-generator-grid.enabled
|
33
|
-
version:
|
33
|
+
version: v2.1.0
|
34
34
|
repository: oci://harbor.cta-observatory.org/dpps
|
35
35
|
|
36
36
|
- name: fts
|
37
37
|
condition: fts.enabled
|
38
|
-
version: v0.3.
|
38
|
+
version: v0.3.1
|
39
39
|
repository: oci://harbor.cta-observatory.org/dpps
|
@@ -11,5 +11,5 @@ publish:
|
|
11
11
|
reset:
|
12
12
|
helm delete bdms || true
|
13
13
|
kubectl delete secrets bdms-rucio-server bdms-rucio-server-tls bdms-server-cafile bdms-server-hostcert bdms-server-hostkey dppsuser-certkey || true
|
14
|
-
kubectl delete job generate-certificates configure-
|
14
|
+
kubectl delete job generate-certificates configure-rucio test-rucio || true
|
15
15
|
kubectl delete pvc data-bdms-postgresql-0 || true
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# bdms
|
2
2
|
|
3
|
-
    
|
4
4
|
|
5
5
|
A Helm chart for the bdms project
|
6
6
|
|
@@ -14,16 +14,41 @@ 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.3.
|
17
|
+
| oci://harbor.cta-observatory.org/dpps | cert-generator-grid | v2.1.0 |
|
18
|
+
| oci://harbor.cta-observatory.org/dpps | fts | v0.3.1 |
|
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
|
-
| oci://
|
21
|
+
| oci://harbor.cta-observatory.org/proxy_cache/bitnamicharts | postgresql | 15.5.10 |
|
22
22
|
|
23
23
|
## Values
|
24
24
|
|
25
25
|
| Key | Type | Default | Description |
|
26
26
|
|-----|------|---------|-------------|
|
27
|
+
| acada_ingest.daemon.config.check_interval | float | `1` | |
|
28
|
+
| acada_ingest.daemon.config.data_path | string | `"/storage-1/"` | |
|
29
|
+
| acada_ingest.daemon.config.disable_metrics | bool | `false` | |
|
30
|
+
| acada_ingest.daemon.config.lock_file | string | `"/storage-1/bdms_ingest.lock"` | |
|
31
|
+
| acada_ingest.daemon.config.log_file | string | `nil` | The path to the log file, if not specified, logs to stdout |
|
32
|
+
| acada_ingest.daemon.config.log_level | string | `"DEBUG"` | The logging level for the ingestion daemon |
|
33
|
+
| acada_ingest.daemon.config.metrics_port | int | `8000` | The port for the Prometheus metrics server |
|
34
|
+
| acada_ingest.daemon.config.offsite_copies | int | `2` | |
|
35
|
+
| acada_ingest.daemon.config.polling_interval | float | `1` | |
|
36
|
+
| acada_ingest.daemon.config.rse | string | `"STORAGE-1"` | |
|
37
|
+
| acada_ingest.daemon.config.scope | string | `"test_scope_persistent"` | |
|
38
|
+
| acada_ingest.daemon.config.vo | string | `"ctao.dpps.test"` | |
|
39
|
+
| acada_ingest.daemon.config.workers | int | `4` | |
|
40
|
+
| acada_ingest.daemon.replicas | int | `0` | The number of replicas of the ingestion daemon to run, set to 0 to disable the daemon |
|
41
|
+
| acada_ingest.daemon.service.enabled | bool | `true` | |
|
42
|
+
| acada_ingest.daemon.service.type | string | `"ClusterIP"` | |
|
43
|
+
| acada_ingest.image.repository | string | `"harbor.cta-observatory.org/dpps/bdms-ingestion-daemon"` | The container image repository for the ingestion daemon |
|
44
|
+
| acada_ingest.securityContext.fsGroup | int | `0` | |
|
45
|
+
| acada_ingest.securityContext.runAsGroup | int | `0` | |
|
46
|
+
| acada_ingest.securityContext.runAsUser | int | `0` | The security context for the ingestion daemon, it defines the user and group IDs under which the container runs |
|
47
|
+
| acada_ingest.securityContext.supplementalGroups | list | `[]` | |
|
48
|
+
| acada_ingest.volumeMounts[0].mountPath | string | `"/storage-1/"` | |
|
49
|
+
| acada_ingest.volumeMounts[0].name | string | `"storage-1-data"` | |
|
50
|
+
| acada_ingest.volumes[0].name | string | `"storage-1-data"` | |
|
51
|
+
| acada_ingest.volumes[0].persistentVolumeClaim.claimName | string | `"storage-1-pvc"` | |
|
27
52
|
| auth.authRucioHost | string | `"rucio-server.local"` | The hostname of the Rucio authentication server. It is used by clients and services to authenticate with Rucio |
|
28
53
|
| auth.certificate.existingSecret.cert | string | `"tls.crt"` | The key inside the kubernetes secret that stores the TLS certificate |
|
29
54
|
| auth.certificate.existingSecret.enabled | bool | `true` | Use an existing kubernetes (K8s) secret for certificates instead of creating new ones |
|
@@ -33,17 +58,20 @@ A Helm chart for the bdms project
|
|
33
58
|
| auth.certificate.letsencrypt.enabled | bool | `false` | Enables SSL/TLS certificate provisioning using Let's encrypt |
|
34
59
|
| 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
60
|
| bootstrap.image.tag | string | `"35.7.0-v0.2.0"` | The specific image tag to use for the bootstrap container |
|
61
|
+
| bootstrap.pg_image.repository | string | `"harbor.cta-observatory.org/proxy_cache/postgres"` | Postgres client image used to wait for db readines during bootstrap |
|
62
|
+
| bootstrap.pg_image.tag | string | `"16.3-bookworm"` | Postgres client image tag used to wait for db readines during bootstrap |
|
36
63
|
| cert-generator-grid.enabled | bool | `true` | |
|
37
64
|
| cert-generator-grid.generatePreHooks | bool | `true` | |
|
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. |
|
65
|
+
| configure | object | `{"as_hook":false,"extra_script":"# add a scope\nrucio-admin scope add --account root --scope root || echo \"Scope 'root' already exists\"\nrucio add-container /ctao.dpps.test || echo \"Container /ctao.dpps.test already exists\"\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. |
|
66
|
+
| configure.extra_script | string | `"# add a scope\nrucio-admin scope add --account root --scope root || echo \"Scope 'root' already exists\"\nrucio add-container /ctao.dpps.test || echo \"Container /ctao.dpps.test already exists\"\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
67
|
| 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) |
|
41
|
-
|
|
68
|
+
| configure_rucio | bool | `true` | This will configure the rucio server with the storages |
|
42
69
|
| 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 |
|
43
70
|
| database.default | string | `"postgresql://rucio:XcL0xT9FgFgJEc4i3OcQf2DMVKpjIWDGezqcIPmXlM@bdms-postgresql:5432/rucio"` | The Rucio database connection URI |
|
44
71
|
| dev.client_image_tag | string | `nil` | |
|
45
|
-
| dev.mount_repo | bool | `true` |
|
46
|
-
| dev.
|
72
|
+
| dev.mount_repo | bool | `true` | mount the repository into the container, useful for development and debugging |
|
73
|
+
| dev.n_test_jobs | int | `1` | number of jobs to use for pytest |
|
74
|
+
| dev.run_tests | bool | `true` | run tests during helm test (otherwise, the tests can be run manually after exec into the pod) |
|
47
75
|
| dev.sleep | bool | `false` | sleep after test to allow interactive development |
|
48
76
|
| 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 |
|
49
77
|
| fts.ftsdb_password | string | `"SDP2RQkbJE2f+ohUb2nUu6Ae10BpQH0VD70CsIQcDtM"` | Defines the password for the FTS database user |
|
@@ -56,10 +84,8 @@ A Helm chart for the bdms project
|
|
56
84
|
| postgresql.global.postgresql.auth.database | string | `"rucio"` | The name of the database to be created and used by Rucio |
|
57
85
|
| postgresql.global.postgresql.auth.password | string | `"XcL0xT9FgFgJEc4i3OcQf2DMVKpjIWDGezqcIPmXlM"` | The password for the database user |
|
58
86
|
| postgresql.global.postgresql.auth.username | string | `"rucio"` | The database username for authentication |
|
87
|
+
| postgresql.image.registry | string | `"harbor.cta-observatory.org/proxy_cache"` | |
|
59
88
|
| prepuller_enabled | bool | `true` | Starts containers with the same image as the one used in the deployment before all volumes are available. Saves time in the first deployment |
|
60
|
-
| rethinkdb.enabled | bool | `false` | |
|
61
|
-
| rethinkdb.storageClassName | string | `nil` | |
|
62
|
-
| rethinkdb.storageSize | string | `"1Gi"` | |
|
63
89
|
| rucio-daemons.config.common.extract_scope | string | `"ctao_bdms"` | |
|
64
90
|
| 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' |
|
65
91
|
| rucio-daemons.config.messaging-fts3.brokers | string | `"fts-activemq"` | Specifies the message broker used for FTS messaging |
|
@@ -136,7 +162,8 @@ A Helm chart for the bdms project
|
|
136
162
|
| rucio_db.existingSecret.enabled | bool | `false` | If true, the database connection URI is obtained from a kubernetes secret in |
|
137
163
|
| rucio_db.existingSecret.key | string | `"connection"` | The key inside the kubernetes secret that holds the database connection URI |
|
138
164
|
| rucio_db.existingSecret.secretName | string | `"rucio-db"` | The name of the kubernetes secret storing the database connection URI. Its in use only if 'existingSecret.enabled: true' |
|
139
|
-
| safe_to_bootstrap_rucio | bool | `
|
165
|
+
| safe_to_bootstrap_rucio | bool | `false` | This is a destructive operation, it will delete all data in the database |
|
166
|
+
| safe_to_bootstrap_rucio_on_install | bool | `true` | This is will delete all data in the database only on the first install |
|
140
167
|
| server.certificate.existingSecret.cert | string | `"tls.crt"` | The key inside the kubernetes secret that stores the TLS certificate |
|
141
168
|
| server.certificate.existingSecret.enabled | bool | `true` | Use an existing kubernetes (K8s) secret for certificates instead of creating new ones |
|
142
169
|
| server.certificate.existingSecret.key | string | `"tls.key"` | The key inside the kubernetes secret that stores the private key |
|
@@ -145,7 +172,9 @@ A Helm chart for the bdms project
|
|
145
172
|
| server.certificate.letsencrypt.enabled | bool | `false` | Enables SSL/TLS certificate provisioning using Let's encrypt |
|
146
173
|
| 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 |
|
147
174
|
| suffix_namespace | string | `"default"` | Specifies the Namespace suffix used for managing deployments in kubernetes |
|
148
|
-
| 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 |
|
175
|
+
| test_storages | object | `{"enabled":true,"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"],"rucio_storage_1_storage_class":"standard"}}` | - A list of test storages, deployed in the test setup |
|
176
|
+
| test_storages.enabled | bool | `true` | If true, deploys test storages for testing purposes. This is set to 'False' if an external storage is used as in the production setup |
|
149
177
|
| test_storages.xrootd.image.repository | string | `"harbor.cta-observatory.org/proxy_cache/rucio/test-xrootd"` | The container image repository for the XRootD storage deployment |
|
150
178
|
| test_storages.xrootd.image.tag | string | `"37.1.0"` | Defines the specific version of the XRootD image to use |
|
179
|
+
| test_storages.xrootd.rucio_storage_1_storage_class | string | `"standard"` | The storage class name for the PVC used by rucio-storage-1 |
|
151
180
|
|