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.
Files changed (82) hide show
  1. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.gitignore +8 -1
  2. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.gitlab-ci.yml +11 -3
  3. ctao_bdms_clients-0.2.0/.gitmodules +3 -0
  4. ctao_bdms_clients-0.2.0/CHANGES.rst +69 -0
  5. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/Dockerfile +4 -4
  6. ctao_bdms_clients-0.2.0/MANIFEST.in +2 -0
  7. {ctao_bdms_clients-0.1.0rc3/src/ctao_bdms_clients.egg-info → ctao_bdms_clients-0.2.0}/PKG-INFO +12 -5
  8. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/aiv-config.yml +3 -4
  9. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/Chart.yaml +3 -3
  10. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/README.md +28 -16
  11. ctao_bdms_clients-0.1.0rc3/report/inspection.tex → ctao_bdms_clients-0.2.0/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -0
  12. ctao_bdms_clients-0.2.0/chart/scripts/bootstrap_rucio/wait_for_rucio.sh +20 -0
  13. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/scripts/certificates/install_ca.sh +0 -7
  14. ctao_bdms_clients-0.2.0/chart/templates/_helpers_cert.tpl +40 -0
  15. ctao_bdms_clients-0.2.0/chart/templates/bootstrap_jobs.yaml +229 -0
  16. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/prepuller.yaml +4 -2
  17. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/test_storages.yaml +34 -3
  18. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/tests/test_jobs.yaml +13 -4
  19. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/values.yaml +168 -30
  20. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/Makefile +3 -1
  21. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/conf.py +2 -0
  22. ctao_bdms_clients-0.2.0/docs/data_ingestion_acada.rst +35 -0
  23. ctao_bdms_clients-0.2.0/docs/data_transfers.rst +24 -0
  24. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/getting_started.rst +2 -0
  25. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/index.rst +3 -1
  26. ctao_bdms_clients-0.2.0/docs/reference/acada_ingestion.rst +8 -0
  27. ctao_bdms_clients-0.2.0/docs/reference/index.rst +7 -0
  28. ctao_bdms_clients-0.2.0/env_template +5 -0
  29. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/pyproject.toml +12 -6
  30. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/report/preamble.tex +1 -1
  31. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/sonar-project.properties +2 -1
  32. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/_version.py +9 -4
  33. ctao_bdms_clients-0.2.0/src/bdms/acada_ingestion.py +479 -0
  34. ctao_bdms_clients-0.2.0/src/bdms/extract_fits_metadata.py +134 -0
  35. ctao_bdms_clients-0.2.0/src/bdms/tests/__init__.py +0 -0
  36. ctao_bdms_clients-0.2.0/src/bdms/tests/conftest.py +117 -0
  37. ctao_bdms_clients-0.2.0/src/bdms/tests/test_acada_ingestion.py +526 -0
  38. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_basic_rucio_functionality.py +14 -27
  39. ctao_bdms_clients-0.2.0/src/bdms/tests/test_extract_fits_metadata.py +97 -0
  40. ctao_bdms_clients-0.2.0/src/bdms/tests/test_onsite_storage.py +100 -0
  41. ctao_bdms_clients-0.2.0/src/bdms/tests/utils.py +130 -0
  42. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0/src/ctao_bdms_clients.egg-info}/PKG-INFO +12 -5
  43. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/ctao_bdms_clients.egg-info/SOURCES.txt +13 -2
  44. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/ctao_bdms_clients.egg-info/requires.txt +8 -2
  45. ctao_bdms_clients-0.1.0rc3/.gitmodules +0 -9
  46. ctao_bdms_clients-0.1.0rc3/CHANGES.rst +0 -15
  47. ctao_bdms_clients-0.1.0rc3/MANIFEST.in +0 -2
  48. ctao_bdms_clients-0.1.0rc3/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -62
  49. ctao_bdms_clients-0.1.0rc3/chart/templates/bootstrap_jobs.yaml +0 -171
  50. ctao_bdms_clients-0.1.0rc3/docs/reference.rst +0 -7
  51. ctao_bdms_clients-0.1.0rc3/src/bdms/_dev_version/__init__.py +0 -9
  52. ctao_bdms_clients-0.1.0rc3/src/bdms/tests/conftest.py +0 -53
  53. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.codespell-ignores +0 -0
  54. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.dockerignore +0 -0
  55. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.flake8 +0 -0
  56. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/.pre-commit-config.yaml +0 -0
  57. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/LICENSE +0 -0
  58. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/Makefile +0 -0
  59. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/README.md +0 -0
  60. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/aiv-config-dependencies.yml +0 -0
  61. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/Makefile +0 -0
  62. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/_helpers.tpl +0 -0
  63. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/chart/templates/configmap.yaml +0 -0
  64. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/changelog.rst +0 -0
  65. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/changes/template.rst +0 -0
  66. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/chart.rst +0 -0
  67. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/bdms_repos_interaction.rst +0 -0
  68. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/certificates.rst +0 -0
  69. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/fts.rst +0 -0
  70. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/index.rst +0 -0
  71. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/rucio_configuration.rst +0 -0
  72. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/docs/server_setup/storage_elements.rst +0 -0
  73. /ctao_bdms_clients-0.1.0rc3/report/performance_verification.tex → /ctao_bdms_clients-0.2.0/report/inspection.tex +0 -0
  74. /ctao_bdms_clients-0.1.0rc3/src/bdms/tests/__init__.py → /ctao_bdms_clients-0.2.0/report/performance_verification.tex +0 -0
  75. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/setup.cfg +0 -0
  76. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/__init__.py +0 -0
  77. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_dpps_rel_0_0.py +0 -0
  78. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_file_replicas.py +0 -0
  79. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/tests/test_metadata.py +0 -0
  80. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/bdms/version.py +0 -0
  81. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0}/src/ctao_bdms_clients.egg-info/dependency_links.txt +0 -0
  82. {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
- # Files downloaded by the dpps-aiv-toolkit
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: a79203bb9b79e2dc997c1572a209ad24c5c59ae3
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,3 @@
1
+ [submodule "dpps-aiv-toolkit"]
2
+ path = dpps-aiv-toolkit
3
+ url = ../../aiv/dpps-aiv-toolkit.git
@@ -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.4.1
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
@@ -0,0 +1,2 @@
1
+ prune src/bdms/_dev_version
2
+ prune .github
@@ -1,31 +1,38 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: ctao-bdms-clients
3
- Version: 0.1.0rc3
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: rucio-clients~=35.4.1
13
- Requires-Dist: ctao-bdms-rucio-policy==0.1.0
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.0
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: 0.0.0-75a4994-75a4994c
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.1.0
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 | 0.0.0-75a4994-75a4994c |
18
- | oci://harbor.cta-observatory.org/dpps | fts | v0.1.0 |
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.4.1-v0.1.0"` | The specific image tag to use for the bootstrap container |
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
- | client_image_tag | string | `"6cbd744c"` | |
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.policy.permission | string | `"ctao"` | 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 |
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.4.1-v0.1.0"` | Specific image tag to use for deployment |
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.persistence.accessMode | string | `"ReadWriteOnce"` | Defines how storage can be accessed, the options available are: ReadWriteOnce, ReadOnlyMany, ReadWriteMany |
104
- | rucio-server.config.persistence.enabled | bool | `true` | Enables persistent storage for Rucio server, setting it to false means using temporary storage ('ephemeral' in the context of kubernetes) that gets wiped out and lost when the container is stopped or restarted |
105
- | rucio-server.config.persistence.size | string | `"1Gi"` | Defines the size of persistent volume claim (PVC) or the amount of the storage capacity provisioned to the Rucio server |
106
- | rucio-server.config.persistence.storageClass | string | `""` | Specifies the kubernetes storage class for persistent volume, default storage class is used when its value is left empty |
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.4.1-v0.1.0"` | The specific image tag to deploy |
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.4.1"` | The version of Rucio being deployed |
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
 
@@ -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
@@ -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 }}