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.
Files changed (87) hide show
  1. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.gitignore +7 -0
  2. ctao_bdms_clients-0.3.0rc1/.gitlab-ci.yml +60 -0
  3. ctao_bdms_clients-0.3.0rc1/CHANGES.rst +80 -0
  4. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/Dockerfile +2 -2
  5. ctao_bdms_clients-0.3.0rc1/Makefile +20 -0
  6. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/PKG-INFO +8 -2
  7. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/aiv-config.yml +3 -1
  8. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/Chart.yaml +5 -5
  9. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/Makefile +1 -1
  10. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/README.md +43 -14
  11. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/scripts/bootstrap_rucio/wait_for_rucio.sh +1 -1
  12. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/scripts/certificates/install_ca.sh +0 -1
  13. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/bootstrap_jobs.yaml +66 -88
  14. ctao_bdms_clients-0.3.0rc1/chart/templates/ingestion-daemon.yaml +168 -0
  15. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/test_storages.yaml +4 -2
  16. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/tests/test_jobs.yaml +3 -2
  17. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/values.yaml +71 -8
  18. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/changelog.rst +1 -0
  19. ctao_bdms_clients-0.3.0rc1/docs/changes/111.api.rst +1 -0
  20. ctao_bdms_clients-0.3.0rc1/docs/changes/113.optimization.rst +1 -0
  21. ctao_bdms_clients-0.3.0rc1/docs/changes/122.feature.rst +1 -0
  22. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/pyproject.toml +10 -1
  23. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/sonar-project.properties +2 -2
  24. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/_version.py +2 -2
  25. ctao_bdms_clients-0.3.0rc1/src/bdms/acada_ingest_cli.py +400 -0
  26. ctao_bdms_clients-0.3.0rc1/src/bdms/acada_ingestion.py +946 -0
  27. ctao_bdms_clients-0.3.0rc1/src/bdms/extract_fits_metadata.py +134 -0
  28. ctao_bdms_clients-0.3.0rc1/src/bdms/tests/conftest.py +237 -0
  29. ctao_bdms_clients-0.3.0rc1/src/bdms/tests/test_acada_ingest_cli.py +279 -0
  30. ctao_bdms_clients-0.3.0rc1/src/bdms/tests/test_acada_ingestion.py +1718 -0
  31. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_basic_rucio_functionality.py +0 -1
  32. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_dpps_rel_0_0.py +6 -0
  33. ctao_bdms_clients-0.3.0rc1/src/bdms/tests/test_extract_fits_metadata.py +97 -0
  34. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_onsite_storage.py +16 -35
  35. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/utils.py +28 -0
  36. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/PKG-INFO +8 -2
  37. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/SOURCES.txt +9 -0
  38. ctao_bdms_clients-0.3.0rc1/src/ctao_bdms_clients.egg-info/entry_points.txt +2 -0
  39. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/requires.txt +6 -0
  40. ctao_bdms_clients-0.2.0rc1/.gitlab-ci.yml +0 -46
  41. ctao_bdms_clients-0.2.0rc1/CHANGES.rst +0 -8
  42. ctao_bdms_clients-0.2.0rc1/Makefile +0 -11
  43. ctao_bdms_clients-0.2.0rc1/src/bdms/acada_ingestion.py +0 -435
  44. ctao_bdms_clients-0.2.0rc1/src/bdms/tests/conftest.py +0 -94
  45. ctao_bdms_clients-0.2.0rc1/src/bdms/tests/test_acada_ingestion.py +0 -501
  46. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.codespell-ignores +0 -0
  47. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.dockerignore +0 -0
  48. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.flake8 +0 -0
  49. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.gitmodules +0 -0
  50. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/.pre-commit-config.yaml +0 -0
  51. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/LICENSE +0 -0
  52. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/MANIFEST.in +0 -0
  53. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/README.md +0 -0
  54. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/aiv-config-dependencies.yml +0 -0
  55. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -0
  56. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/_helpers.tpl +0 -0
  57. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/_helpers_cert.tpl +0 -0
  58. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/configmap.yaml +0 -0
  59. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/chart/templates/prepuller.yaml +0 -0
  60. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/Makefile +0 -0
  61. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/changes/template.rst +0 -0
  62. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/chart.rst +0 -0
  63. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/conf.py +0 -0
  64. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/data_ingestion_acada.rst +0 -0
  65. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/data_transfers.rst +0 -0
  66. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/getting_started.rst +0 -0
  67. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/index.rst +0 -0
  68. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/reference/acada_ingestion.rst +0 -0
  69. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/reference/index.rst +0 -0
  70. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/bdms_repos_interaction.rst +0 -0
  71. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/certificates.rst +0 -0
  72. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/fts.rst +0 -0
  73. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/index.rst +0 -0
  74. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/rucio_configuration.rst +0 -0
  75. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/docs/server_setup/storage_elements.rst +0 -0
  76. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/env_template +0 -0
  77. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/report/inspection.tex +0 -0
  78. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/report/performance_verification.tex +0 -0
  79. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/report/preamble.tex +0 -0
  80. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/setup.cfg +0 -0
  81. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/__init__.py +0 -0
  82. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/__init__.py +0 -0
  83. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_file_replicas.py +0 -0
  84. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/tests/test_metadata.py +0 -0
  85. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/bdms/version.py +0 -0
  86. {ctao_bdms_clients-0.2.0rc1 → ctao_bdms_clients-0.3.0rc1}/src/ctao_bdms_clients.egg-info/dependency_links.txt +0 -0
  87. {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.2.0rc1
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.1
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: 0.1.0
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://registry-1.docker.io/bitnamicharts
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: v0.2.2
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.0
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-test-rucio test-rucio || true
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
- ![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.0](https://img.shields.io/badge/AppVersion-0.1.0-informational?style=flat-square)
3
+ ![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: dev](https://img.shields.io/badge/AppVersion-dev-informational?style=flat-square)
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 | v0.2.2 |
18
- | oci://harbor.cta-observatory.org/dpps | fts | v0.3.0 |
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://registry-1.docker.io/bitnamicharts | postgresql | 15.5.10 |
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
- | configure_test_setup | bool | `true` | This will configure the rucio server with the storages |
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.run_tests | bool | `true` | |
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 | `true` | This is a destructive operation, it will delete all data in the database |
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
 
@@ -9,7 +9,7 @@ if [ -z "$WAIT_RUCIO_PING" ]; then
9
9
  echo "Skipping rucio ping check"
10
10
  else
11
11
  while true; do
12
- rucio ping && break
12
+ rucio ping && rucio whoami && break
13
13
  sleep 3
14
14
  done
15
15
 
@@ -1,7 +1,6 @@
1
1
  hash=$(openssl x509 -noout -hash -in /etc/grid-security/ca.pem)
2
2
 
3
3
  mkdir -pv /etc/grid-security/certificates
4
- update-ca-trust force-enable
5
4
 
6
5
  cp -fv /etc/grid-security/ca.pem /etc/pki/ca-trust/source/anchors/rucio-ca.pem
7
6
  update-ca-trust extract