ctao-bdms-clients 0.1.0rc3__tar.gz → 0.2.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 (80) hide show
  1. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/.gitignore +5 -1
  2. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/.gitlab-ci.yml +11 -2
  3. ctao_bdms_clients-0.2.0rc1/.gitmodules +3 -0
  4. ctao_bdms_clients-0.2.0rc1/CHANGES.rst +8 -0
  5. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/Dockerfile +3 -3
  6. ctao_bdms_clients-0.2.0rc1/MANIFEST.in +2 -0
  7. {ctao_bdms_clients-0.1.0rc3/src/ctao_bdms_clients.egg-info → ctao_bdms_clients-0.2.0rc1}/PKG-INFO +9 -4
  8. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/aiv-config.yml +3 -4
  9. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/Chart.yaml +3 -3
  10. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/README.md +27 -16
  11. ctao_bdms_clients-0.1.0rc3/report/inspection.tex → ctao_bdms_clients-0.2.0rc1/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -0
  12. ctao_bdms_clients-0.2.0rc1/chart/scripts/bootstrap_rucio/wait_for_rucio.sh +20 -0
  13. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/scripts/certificates/install_ca.sh +0 -7
  14. ctao_bdms_clients-0.2.0rc1/chart/templates/_helpers_cert.tpl +40 -0
  15. ctao_bdms_clients-0.2.0rc1/chart/templates/bootstrap_jobs.yaml +229 -0
  16. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/templates/prepuller.yaml +4 -2
  17. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/templates/test_storages.yaml +34 -3
  18. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/templates/tests/test_jobs.yaml +12 -4
  19. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/values.yaml +166 -30
  20. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/Makefile +3 -1
  21. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/conf.py +2 -0
  22. ctao_bdms_clients-0.2.0rc1/docs/data_ingestion_acada.rst +35 -0
  23. ctao_bdms_clients-0.2.0rc1/docs/data_transfers.rst +24 -0
  24. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/getting_started.rst +2 -0
  25. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/index.rst +3 -1
  26. ctao_bdms_clients-0.2.0rc1/docs/reference/acada_ingestion.rst +8 -0
  27. ctao_bdms_clients-0.2.0rc1/docs/reference/index.rst +7 -0
  28. ctao_bdms_clients-0.2.0rc1/env_template +5 -0
  29. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/pyproject.toml +9 -5
  30. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/report/preamble.tex +1 -1
  31. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/sonar-project.properties +1 -0
  32. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/bdms/_version.py +9 -4
  33. ctao_bdms_clients-0.2.0rc1/src/bdms/acada_ingestion.py +435 -0
  34. ctao_bdms_clients-0.2.0rc1/src/bdms/tests/__init__.py +0 -0
  35. ctao_bdms_clients-0.2.0rc1/src/bdms/tests/conftest.py +94 -0
  36. ctao_bdms_clients-0.2.0rc1/src/bdms/tests/test_acada_ingestion.py +501 -0
  37. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/bdms/tests/test_basic_rucio_functionality.py +15 -27
  38. ctao_bdms_clients-0.2.0rc1/src/bdms/tests/test_onsite_storage.py +119 -0
  39. ctao_bdms_clients-0.2.0rc1/src/bdms/tests/utils.py +112 -0
  40. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1/src/ctao_bdms_clients.egg-info}/PKG-INFO +9 -4
  41. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/ctao_bdms_clients.egg-info/SOURCES.txt +11 -2
  42. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/ctao_bdms_clients.egg-info/requires.txt +6 -2
  43. ctao_bdms_clients-0.1.0rc3/.gitmodules +0 -9
  44. ctao_bdms_clients-0.1.0rc3/CHANGES.rst +0 -15
  45. ctao_bdms_clients-0.1.0rc3/MANIFEST.in +0 -2
  46. ctao_bdms_clients-0.1.0rc3/chart/scripts/bootstrap_rucio/setup_rucio.sh +0 -62
  47. ctao_bdms_clients-0.1.0rc3/chart/templates/bootstrap_jobs.yaml +0 -171
  48. ctao_bdms_clients-0.1.0rc3/docs/reference.rst +0 -7
  49. ctao_bdms_clients-0.1.0rc3/src/bdms/_dev_version/__init__.py +0 -9
  50. ctao_bdms_clients-0.1.0rc3/src/bdms/tests/conftest.py +0 -53
  51. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/.codespell-ignores +0 -0
  52. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/.dockerignore +0 -0
  53. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/.flake8 +0 -0
  54. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/.pre-commit-config.yaml +0 -0
  55. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/LICENSE +0 -0
  56. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/Makefile +0 -0
  57. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/README.md +0 -0
  58. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/aiv-config-dependencies.yml +0 -0
  59. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/Makefile +0 -0
  60. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/templates/_helpers.tpl +0 -0
  61. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/chart/templates/configmap.yaml +0 -0
  62. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/changelog.rst +0 -0
  63. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/changes/template.rst +0 -0
  64. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/chart.rst +0 -0
  65. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/server_setup/bdms_repos_interaction.rst +0 -0
  66. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/server_setup/certificates.rst +0 -0
  67. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/server_setup/fts.rst +0 -0
  68. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/server_setup/index.rst +0 -0
  69. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/server_setup/rucio_configuration.rst +0 -0
  70. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/docs/server_setup/storage_elements.rst +0 -0
  71. /ctao_bdms_clients-0.1.0rc3/report/performance_verification.tex → /ctao_bdms_clients-0.2.0rc1/report/inspection.tex +0 -0
  72. /ctao_bdms_clients-0.1.0rc3/src/bdms/tests/__init__.py → /ctao_bdms_clients-0.2.0rc1/report/performance_verification.tex +0 -0
  73. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/setup.cfg +0 -0
  74. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/bdms/__init__.py +0 -0
  75. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/bdms/tests/test_dpps_rel_0_0.py +0 -0
  76. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/bdms/tests/test_file_replicas.py +0 -0
  77. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/bdms/tests/test_metadata.py +0 -0
  78. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/bdms/version.py +0 -0
  79. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/src/ctao_bdms_clients.egg-info/dependency_links.txt +0 -0
  80. {ctao_bdms_clients-0.1.0rc3 → ctao_bdms_clients-0.2.0rc1}/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
@@ -1,6 +1,6 @@
1
1
  include:
2
2
  - project: 'cta-computing/dpps/aiv/dpps-aiv-toolkit'
3
- ref: a79203bb9b79e2dc997c1572a209ad24c5c59ae3
3
+ ref: 23eafda64340b8036cbed5ce196784a03666cad8
4
4
  file: 'ci-functions.yml'
5
5
  - "aiv-config.yml"
6
6
 
@@ -8,13 +8,14 @@ include:
8
8
  variables:
9
9
  CHART_LOCATION: chart
10
10
  CHART_NAME: bdms
11
- CHART_EXTRA_VALUES: "--set client_image_tag=${DOCKER_TAG}"
11
+ CHART_EXTRA_VALUES: "--set dev.client_image_tag=${DOCKER_TAG}"
12
12
  DPPS_AIV_TOOLKIT_DIR: dpps-aiv-toolkit
13
13
  DOCKER_IMAGE_CONTEXT: '${CI_PROJECT_DIR}'
14
14
  RUCIO_VERSION: "35.4.1"
15
15
  RUCIO_TAG: "release-${RUCIO_VERSION}"
16
16
 
17
17
  stages:
18
+ - prepare
18
19
  - lint
19
20
  - build
20
21
  - sign
@@ -23,6 +24,14 @@ stages:
23
24
  - publish
24
25
  - report
25
26
 
27
+ k8s-integration-tests:
28
+ # override from toolkit
29
+ before_script:
30
+ - apk add --no-cache make wget || true # might fail depending on the image
31
+ - 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
32
+ # create .env file with CI secrets
33
+ - echo -e "MINIO_ACCESS_KEY=$MINIO_ACCESS_KEY\nMINIO_SECRET_KEY=$MINIO_SECRET_KEY\n" > .env
34
+
26
35
  build:
27
36
  variables:
28
37
  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,8 @@
1
+ BDMS v0.1.0 (2025-02-21)
2
+ ---------------------------
3
+
4
+ First release of the Bulk Data Management System (BDMS).
5
+
6
+ * Deployment of Rucio 35.4 using helm.
7
+ * Client package pinning the correct rucio and rucio policy package versions.
8
+ * 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
 
@@ -0,0 +1,2 @@
1
+ prune src/bdms/_dev_version
2
+ prune .github
@@ -1,6 +1,6 @@
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.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
6
  License: BSD-3-Clause
@@ -9,23 +9,28 @@ Project-URL: documentation, http://cta-computing.gitlab-pages.cta-observatory.or
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
14
15
  Provides-Extra: test
15
16
  Requires-Dist: pytest; extra == "test"
16
17
  Requires-Dist: pytest-cov; extra == "test"
17
18
  Requires-Dist: pytest-requirements; extra == "test"
19
+ Requires-Dist: python-dotenv; extra == "test"
20
+ Requires-Dist: minio; extra == "test"
18
21
  Provides-Extra: doc
19
22
  Requires-Dist: sphinx; extra == "doc"
20
23
  Requires-Dist: numpydoc; extra == "doc"
21
24
  Requires-Dist: ctao-sphinx-theme; extra == "doc"
22
25
  Requires-Dist: myst-parser; extra == "doc"
23
26
  Requires-Dist: sphinx-changelog; extra == "doc"
27
+ Requires-Dist: sphinx-automodapi; extra == "doc"
24
28
  Provides-Extra: dev
25
29
  Requires-Dist: setuptools_scm; extra == "dev"
26
30
  Requires-Dist: sphinx-autobuild; extra == "dev"
27
31
  Provides-Extra: all
28
32
  Requires-Dist: bdms[dev,doc,test]; extra == "all"
33
+ Dynamic: license-file
29
34
 
30
35
  # Bulk Data Management System
31
36
 
@@ -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: v0.2.2
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 | v0.2.2 |
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,22 @@ 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` | |
43
46
  | dev.run_tests | bool | `true` | |
44
47
  | dev.sleep | bool | `false` | sleep after test to allow interactive development |
45
48
  | 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
49
  | fts.ftsdb_password | string | `"SDP2RQkbJE2f+ohUb2nUu6Ae10BpQH0VD70CsIQcDtM"` | Defines the password for the FTS database user |
47
50
  | 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
51
  | fts.messaging.broker | string | `"localhost:61613"` | |
52
52
  | fts.messaging.password | string | `"topsecret"` | |
53
53
  | fts.messaging.use_broker_credentials | string | `"true"` | |
@@ -60,6 +60,7 @@ A Helm chart for the bdms project
60
60
  | rethinkdb.enabled | bool | `false` | |
61
61
  | rethinkdb.storageClassName | string | `nil` | |
62
62
  | rethinkdb.storageSize | string | `"1Gi"` | |
63
+ | rucio-daemons.config.common.extract_scope | string | `"ctao_bdms"` | |
63
64
  | 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
65
  | rucio-daemons.config.messaging-fts3.brokers | string | `"fts-activemq"` | Specifies the message broker used for FTS messaging |
65
66
  | 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 +69,11 @@ A Helm chart for the bdms project
68
69
  | rucio-daemons.config.messaging-fts3.port | int | `61613` | Defines the port used for the broker |
69
70
  | 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
71
  | 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 |
72
+ | rucio-daemons.config.messaging-fts3.voname | string | `"ctao"` | |
73
+ | rucio-daemons.config.policy.lfn2pfn_algorithm_default | string | `"ctao_bdms"` | |
74
+ | 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 |
75
+ | rucio-daemons.config.policy.permission | string | `"ctao"` | |
76
+ | rucio-daemons.config.policy.schema | string | `"ctao_bdms"` | |
72
77
  | 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
78
  | rucio-daemons.conveyorFinisher.resources.limits.cpu | string | `"3000m"` | |
74
79
  | rucio-daemons.conveyorFinisher.resources.limits.memory | string | `"4Gi"` | |
@@ -95,21 +100,25 @@ A Helm chart for the bdms project
95
100
  | 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
101
  | rucio-daemons.image.pullPolicy | string | `"Always"` | It defines when kubernetes should pull the container image, the options available are: Always, IfNotPresent, and Never |
97
102
  | 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 |
103
+ | rucio-daemons.image.tag | string | `"35.7.0-v0.2.0"` | Specific image tag to use for deployment |
104
+ | rucio-daemons.judgeEvaluator.resources.limits.cpu | string | `"3000m"` | |
105
+ | rucio-daemons.judgeEvaluator.resources.limits.memory | string | `"4Gi"` | |
106
+ | rucio-daemons.judgeEvaluator.resources.requests.cpu | string | `"700m"` | |
107
+ | rucio-daemons.judgeEvaluator.resources.requests.memory | string | `"1Gi"` | |
99
108
  | rucio-daemons.judgeEvaluatorCount | int | `1` | Evaluates Rucio replication rules and triggers transfers |
100
109
  | rucio-daemons.useDeprecatedImplicitSecrets | bool | `true` | Enables the use of deprecated implicit secrets for authentication |
101
110
  | rucio-server.authRucioHost | string | `"rucio-server.local"` | The hostname of the Rucio authentication server. |
102
111
  | 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 |
112
+ | rucio-server.config.policy.lfn2pfn_algorithm_default | string | `"ctao_bdms"` | |
113
+ | 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 |
114
+ | rucio-server.config.policy.permission | string | `"ctao"` | |
115
+ | rucio-server.config.policy.schema | string | `"ctao_bdms"` | |
107
116
  | rucio-server.ftsRenewal.enabled | bool | `false` | Enables automatic renewal of FTS credentials using X.509 certificates and proxy |
108
117
  | 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
118
  | 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
119
  | rucio-server.image.pullPolicy | string | `"Always"` | It defines when kubernetes should pull the container image, the options available are: Always, IfNotPresent, and Never |
111
120
  | 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 |
121
+ | rucio-server.image.tag | string | `"35.7.0-v0.2.0"` | The specific image tag to deploy |
113
122
  | 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
123
  | 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
124
  | 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 +130,7 @@ A Helm chart for the bdms project
121
130
  | rucio-server.useSSL | bool | `true` | Enables the Rucio server to use SSL/TLS for secure communication, requiring valid certificates to be configured |
122
131
  | rucio.password | string | `"secret"` | |
123
132
  | 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 |
133
+ | rucio.version | string | `"35.7.0"` | The version of Rucio being deployed |
125
134
  | 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
135
  | rucio_db.deploy | bool | `true` | If true, deploys a postgresql instance for the Rucio database, otherwise use an external database |
127
136
  | rucio_db.existingSecret.enabled | bool | `false` | If true, the database connection URI is obtained from a kubernetes secret in |
@@ -135,6 +144,8 @@ A Helm chart for the bdms project
135
144
  | server.certificate.letsencrypt.email | string | `""` | |
136
145
  | server.certificate.letsencrypt.enabled | bool | `false` | Enables SSL/TLS certificate provisioning using Let's encrypt |
137
146
  | 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
147
  | 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 |
149
+ | 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
+ | test_storages.xrootd.image.tag | string | `"37.1.0"` | Defines the specific version of the XRootD image to use |
140
151
 
@@ -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 }}
@@ -0,0 +1,229 @@
1
+
2
+ {{ if .Values.safe_to_bootstrap_rucio | default false }}
3
+ ---
4
+ apiVersion: batch/v1
5
+ kind: Job
6
+ metadata:
7
+ name: {{ template "bdms.fullname" . }}-bootstrap-rucio
8
+ annotations:
9
+ "helm.sh/hook": post-install,post-upgrade
10
+ "helm.sh/hook-weight": "-10"
11
+ "helm.sh/hook-delete-policy": before-hook-creation
12
+ spec:
13
+ backoffLimit: 0
14
+ template:
15
+ spec:
16
+ volumes:
17
+ {{ include "volumes_cert" . | indent 8 }}
18
+ initContainers:
19
+ - name: test-connection
20
+ image: postgres:latest
21
+ command:
22
+ - /bin/sh
23
+ - -c
24
+ - |
25
+ set -x
26
+
27
+ while true; do
28
+ pg_isready --dbname=rucio --host={{ .Release.Name }}-postgresql --port=5432 --username=rucio && break
29
+ sleep 3
30
+ done
31
+
32
+ volumeMounts:
33
+ {{ include "volume_mounts_rucio_config" . | indent 8 }}
34
+ {{ include "volume_mounts_cert" . | indent 8 }}
35
+ env:
36
+ {{ include "env_helm_release" . | indent 8 }}
37
+ - name: POSTGRES_PASSWORD
38
+ valueFrom:
39
+ secretKeyRef:
40
+ name: {{ .Release.Name }}-postgresql
41
+ key: postgres-password
42
+
43
+ containers:
44
+ - name: bootstrap-rucio
45
+ image: {{ .Values.bootstrap.image.repository }}:{{ .Values.bootstrap.image.tag }}
46
+ command:
47
+ - /bin/sh
48
+ - -c
49
+ - |
50
+ set -x
51
+
52
+ {{ .Files.Get "scripts/certificates/install_ca.sh" | indent 10 }}
53
+ {{ .Files.Get "scripts/bootstrap_rucio/wait_for_rucio.sh" | indent 10 }}
54
+
55
+ echo "Running reset database script..."
56
+
57
+ python3 /usr/local/rucio/tools/reset_database.py
58
+
59
+ volumeMounts:
60
+ {{ include "volume_mounts_rucio_config" . | indent 8 }}
61
+ {{ include "volume_mounts_cert" . | indent 8 }}
62
+ env:
63
+ {{ include "env_helm_release" . | indent 8 }}
64
+ - name: POSTGRES_PASSWORD
65
+ valueFrom:
66
+ secretKeyRef:
67
+ name: {{ .Release.Name }}-postgresql
68
+ key: postgres-password
69
+ restartPolicy: OnFailure
70
+ {{ end }}
71
+ {{ if .Values.configure_test_setup | default false }}
72
+ ---
73
+ apiVersion: batch/v1
74
+ kind: Job
75
+ metadata:
76
+ name: {{ template "bdms.fullname" . }}-configure-test-rucio
77
+ annotations:
78
+ "helm.sh/hook": post-install,post-upgrade
79
+ "helm.sh/hook-weight": "-5"
80
+ "helm.sh/hook-delete-policy": before-hook-creation
81
+ spec:
82
+ backoffLimit: 0
83
+ template:
84
+ spec:
85
+ volumes:
86
+ {{ include "volumes_cert" . | indent 8 }}
87
+ resources:
88
+ requests:
89
+ memory: "2Gi"
90
+ cpu: "500m"
91
+ limits:
92
+ memory: "8Gi"
93
+ cpu: "2000m"
94
+ containers:
95
+ - name: configure-test-rucio
96
+ image: {{ .Values.bootstrap.image.repository }}:{{ .Values.bootstrap.image.tag }}
97
+ securityContext:
98
+ runAsUser: 0
99
+ env:
100
+ {{ include "env_helm_release" . | indent 8 }}
101
+ command:
102
+ - /bin/sh
103
+ - -c
104
+ - |
105
+ set -ex
106
+
107
+ # TODO: make or find an image?
108
+ dnf install -y voms-clients
109
+
110
+ {{ .Files.Get "scripts/certificates/install_ca.sh" | indent 10 }}
111
+
112
+ WAIT_RUCIO_PING=1
113
+ {{ .Files.Get "scripts/bootstrap_rucio/wait_for_rucio.sh" | indent 10 }}
114
+
115
+ echo "Configuring test rucio setup ..."
116
+
117
+ set -eux -o pipefail
118
+
119
+ voms-proxy-init -valid 9999:00 -cert /opt/rucio/etc/usercert.pem -key /opt/rucio/etc/userkey.pem -out /tmp/x509up
120
+ cp -fv /tmp/x509up /tmp/x509up_u$(id -u)
121
+
122
+ echo "Configuring identities ..."
123
+ {{ range .Values.configure.identities -}}
124
+ rucio-admin -v identity add
125
+ {{- range $k, $v := .}} --{{ $k }}="{{ $v }}"{{ end }} || echo "Identity already exists"
126
+ {{- end }}
127
+
128
+ {{- range $rse_name, $rse_spec := .Values.configure.rses }}
129
+
130
+ echo "Configuring RSE {{ $rse_name }} ..."
131
+
132
+ rucio-admin -v rse add "{{ $rse_name }}"
133
+
134
+ # TODO: there is a strange race condition here, where the rse is not yet available
135
+ # in some sequences it does not happen, depending on the order of the rse creation
136
+ # this time it started to happen after FTS container was separated?
137
+ while true; do
138
+ rucio-admin -v rse info "{{ $rse_name }}" && break
139
+ sleep 3
140
+ done
141
+
142
+ {{- range $rse_spec.protocols }}
143
+ rucio-admin -v rse add-protocol \
144
+ --hostname "{{ .hostname }}" \
145
+ --scheme {{ .scheme }} \
146
+ --prefix {{ .prefix }} \
147
+ --port {{ .port }} \
148
+ --impl {{ .impl | default "rucio.rse.protocols.gfal.Default" }} \
149
+ --domain-json '{{ .domains | toJson }}' \
150
+ "{{ $rse_name }}"
151
+ {{- end }}
152
+
153
+ {{- range $k, $v := $rse_spec.attributes }}
154
+ rucio-admin rse set-attribute --rse "{{ $rse_name }}" --key "{{ $k }}" --value "{{ $v }}"
155
+ {{- end }}
156
+
157
+
158
+ {{ range $account, $limit := $rse_spec.limits_by_account }}
159
+ rucio-admin account set-limits {{ $account }} "{{ $rse_name }}" {{ $limit }}
160
+ {{ end }}
161
+
162
+ echo "Configuring RSE {{ $rse_name }} done"
163
+ rucio-admin rse info "{{ $rse_name }}"
164
+
165
+ {{- end }}
166
+
167
+ {{- range $distance_tuple := .Values.configure.rse_distances }}
168
+ echo "Configuring RSE distance {{ $distance_tuple }} ..."
169
+ rucio-admin rse add-distance \
170
+ "{{ index $distance_tuple 0 }}" \
171
+ "{{ index $distance_tuple 1 }}" \
172
+ --distance {{ index $distance_tuple 2 }} \
173
+ --ranking {{ index $distance_tuple 3 }}
174
+ {{- end }}
175
+
176
+ {{- .Values.configure.extra_script | nindent 10 }}
177
+
178
+
179
+ volumeMounts:
180
+ {{ include "volume_mounts_rucio_config" . | indent 8 }}
181
+ {{ include "volume_mounts_cert" . | indent 8 }}
182
+
183
+ # TODO: this is not configuration and is good to do on any upgrade, or even more often (as in rucio)
184
+ - name: delegate-to-fts
185
+ image: {{ .Values.bootstrap.image.repository }}:{{ .Values.bootstrap.image.tag }}
186
+ securityContext:
187
+ runAsUser: 0
188
+ env:
189
+ {{ include "env_helm_release" . | indent 8 }}
190
+ command:
191
+ - /bin/sh
192
+ - -c
193
+ - |
194
+ set -ex
195
+ echo "Verify connection to the FTS, and delegate a proxy"
196
+
197
+ export FTS_URL="https://{{ .Release.Name }}-fts:8446"
198
+
199
+ # TODO: make or find an image with fts-rest-client?
200
+ dnf config-manager --set-enabled crb
201
+ dnf install -y epel-release
202
+ curl -sSfL -o /etc/yum.repos.d/fts3.repo https://fts-repo.web.cern.ch/fts-repo/fts3-el9.repo
203
+ curl -sSfL -o /etc/yum.repos.d/fts3-depend.repo https://fts-repo.web.cern.ch/fts-repo/fts3-depend.repo
204
+ dnf install -y fts-rest-client fts-msg voms-clients
205
+
206
+ {{ .Files.Get "scripts/certificates/install_ca.sh" | indent 10 }}
207
+
208
+ while true; do
209
+ if curl -v $FTS_URL; then
210
+ echo "FTS is up"
211
+ break
212
+ fi
213
+ echo "FTS is not up, retrying in 5 seconds"
214
+ sleep 5
215
+ done
216
+
217
+ curl -v $FTS_URL
218
+
219
+ FTS_ARGS="--capath /etc/grid-security/certificates --cert /opt/rucio/etc/usercert.pem --key /opt/rucio/etc/userkey.pem -s $FTS_URL"
220
+ fts-rest-whoami $FTS_ARGS
221
+ fts-rest-delegate -vf $FTS_ARGS
222
+
223
+ volumeMounts:
224
+ {{ include "volume_mounts_rucio_config" . | indent 8 }}
225
+ {{ include "volume_mounts_cert" . | indent 8 }}
226
+
227
+ restartPolicy: Never
228
+
229
+ {{ end }}
@@ -16,8 +16,10 @@ spec:
16
16
  name: {{ .Release.Name }}-prepuller
17
17
  spec:
18
18
  containers:
19
- - name: demons
20
- image: harbor.cta-observatory.org/dpps/bdms-rucio-daemons:35.4.1-v0.1.0
19
+ - name: daemons
20
+ {{- $repo := index .Values "rucio-daemons" "image" "repository" }}
21
+ {{- $tag := index .Values "rucio-daemons" "image" "tag" }}
22
+ image: "{{ $repo }}:{{ $tag }}"
21
23
  command:
22
24
  - sleep
23
25
  - infinity