ctao-wms-clients 0.0.0.dev0__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 (72) hide show
  1. ctao_wms_clients-0.0.0.dev0/.codespell-ignores +1 -0
  2. ctao_wms_clients-0.0.0.dev0/.gitignore +146 -0
  3. ctao_wms_clients-0.0.0.dev0/.gitlab-ci.yml +65 -0
  4. ctao_wms_clients-0.0.0.dev0/.gitmodules +9 -0
  5. ctao_wms_clients-0.0.0.dev0/.mailmap +9 -0
  6. ctao_wms_clients-0.0.0.dev0/.pre-commit-config.yaml +54 -0
  7. ctao_wms_clients-0.0.0.dev0/CHANGELOG.md +4 -0
  8. ctao_wms_clients-0.0.0.dev0/CHANGES.rst +6 -0
  9. ctao_wms_clients-0.0.0.dev0/Entrypoint.sh +4 -0
  10. ctao_wms_clients-0.0.0.dev0/LICENSE +29 -0
  11. ctao_wms_clients-0.0.0.dev0/Makefile +21 -0
  12. ctao_wms_clients-0.0.0.dev0/PKG-INFO +48 -0
  13. ctao_wms_clients-0.0.0.dev0/README.md +20 -0
  14. ctao_wms_clients-0.0.0.dev0/aiv-config-dependencies.yml +6 -0
  15. ctao_wms_clients-0.0.0.dev0/aiv-config.yml +21 -0
  16. ctao_wms_clients-0.0.0.dev0/chart/.helmignore +23 -0
  17. ctao_wms_clients-0.0.0.dev0/chart/Chart.yaml +21 -0
  18. ctao_wms_clients-0.0.0.dev0/chart/README.md +49 -0
  19. ctao_wms_clients-0.0.0.dev0/chart/templates/NOTES.txt +16 -0
  20. ctao_wms_clients-0.0.0.dev0/chart/templates/_helpers.tpl +69 -0
  21. ctao_wms_clients-0.0.0.dev0/chart/templates/configmap.yaml +395 -0
  22. ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentDiracCE.yaml +159 -0
  23. ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentDiracConfigure.yaml +162 -0
  24. ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentDiracServer.yaml +266 -0
  25. ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentMysql.yaml +120 -0
  26. ctao_wms_clients-0.0.0.dev0/chart/templates/service.yaml +15 -0
  27. ctao_wms_clients-0.0.0.dev0/chart/templates/serviceaccount.yaml +13 -0
  28. ctao_wms_clients-0.0.0.dev0/chart/templates/tests/test-basic.yaml +116 -0
  29. ctao_wms_clients-0.0.0.dev0/chart/values.yaml +104 -0
  30. ctao_wms_clients-0.0.0.dev0/docker/ce/Dockerfile +54 -0
  31. ctao_wms_clients-0.0.0.dev0/docker/ce/default.local +3 -0
  32. ctao_wms_clients-0.0.0.dev0/docker/client/Dockerfile +50 -0
  33. ctao_wms_clients-0.0.0.dev0/docker/client/Entrypoint.sh +4 -0
  34. ctao_wms_clients-0.0.0.dev0/docker/server/Dockerfile +69 -0
  35. ctao_wms_clients-0.0.0.dev0/docker/server/bashrc +9 -0
  36. ctao_wms_clients-0.0.0.dev0/docker/server/configure.py +34 -0
  37. ctao_wms_clients-0.0.0.dev0/docker/server/dirac-installation.cfg +266 -0
  38. ctao_wms_clients-0.0.0.dev0/docker/server/init.sh +7 -0
  39. ctao_wms_clients-0.0.0.dev0/docker/server/install_site.sh +14 -0
  40. ctao_wms_clients-0.0.0.dev0/docker/server/resources.conf +58 -0
  41. ctao_wms_clients-0.0.0.dev0/docker/server/runsvdir-start +10 -0
  42. ctao_wms_clients-0.0.0.dev0/docker/server/runsvdir-start.service +10 -0
  43. ctao_wms_clients-0.0.0.dev0/docs/Makefile +23 -0
  44. ctao_wms_clients-0.0.0.dev0/docs/changelog.rst +6 -0
  45. ctao_wms_clients-0.0.0.dev0/docs/changes/template.rst +43 -0
  46. ctao_wms_clients-0.0.0.dev0/docs/chart.rst +6 -0
  47. ctao_wms_clients-0.0.0.dev0/docs/conf.py +74 -0
  48. ctao_wms_clients-0.0.0.dev0/docs/getting_started.rst +17 -0
  49. ctao_wms_clients-0.0.0.dev0/docs/index.rst +25 -0
  50. ctao_wms_clients-0.0.0.dev0/docs/install_ctadirac_server.rst +16 -0
  51. ctao_wms_clients-0.0.0.dev0/docs/introduction.rst +8 -0
  52. ctao_wms_clients-0.0.0.dev0/docs/reference.rst +7 -0
  53. ctao_wms_clients-0.0.0.dev0/docs/wms_legacy_instance.rst +9 -0
  54. ctao_wms_clients-0.0.0.dev0/pyproject.toml +193 -0
  55. ctao_wms_clients-0.0.0.dev0/report/customization.tex +4 -0
  56. ctao_wms_clients-0.0.0.dev0/report/extra_customization.tex +0 -0
  57. ctao_wms_clients-0.0.0.dev0/report/inspection.tex +0 -0
  58. ctao_wms_clients-0.0.0.dev0/report/performance_verification.tex +0 -0
  59. ctao_wms_clients-0.0.0.dev0/report/preamble.tex +17 -0
  60. ctao_wms_clients-0.0.0.dev0/setup.cfg +4 -0
  61. ctao_wms_clients-0.0.0.dev0/sonar-project.properties +12 -0
  62. ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/PKG-INFO +48 -0
  63. ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/SOURCES.txt +70 -0
  64. ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/dependency_links.txt +1 -0
  65. ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/requires.txt +20 -0
  66. ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/top_level.txt +1 -0
  67. ctao_wms_clients-0.0.0.dev0/src/wms/__init__.py +7 -0
  68. ctao_wms_clients-0.0.0.dev0/src/wms/_version.py +16 -0
  69. ctao_wms_clients-0.0.0.dev0/src/wms/tests/__init__.py +0 -0
  70. ctao_wms_clients-0.0.0.dev0/src/wms/tests/conftest.py +18 -0
  71. ctao_wms_clients-0.0.0.dev0/src/wms/tests/test_dirac_basic.py +30 -0
  72. ctao_wms_clients-0.0.0.dev0/src/wms/tests/utils.py +35 -0
@@ -0,0 +1 @@
1
+ anull
@@ -0,0 +1,146 @@
1
+ # setuptools_scm generated version file
2
+ _version.py
3
+
4
+ Chart.lock
5
+
6
+ # Byte-compiled / optimized / DLL files
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # C extensions
12
+ *.so
13
+
14
+ # Distribution / packaging
15
+ .Python
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ downloads/
20
+ eggs/
21
+ .eggs/
22
+ lib/
23
+ lib64/
24
+ parts/
25
+ sdist/
26
+ var/
27
+ wheels/
28
+ pip-wheel-metadata/
29
+ share/python-wheels/
30
+ *.egg-info/
31
+ .installed.cfg
32
+ *.egg
33
+ MANIFEST
34
+
35
+ # PyInstaller
36
+ # Usually these files are written by a python script from a template
37
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
38
+ *.manifest
39
+ *.spec
40
+
41
+ # Installer logs
42
+ pip-log.txt
43
+ pip-delete-this-directory.txt
44
+
45
+ # Unit test / coverage reports
46
+ htmlcov/
47
+ .tox/
48
+ .nox/
49
+ .coverage
50
+ .coverage.*
51
+ .cache
52
+ nosetests.xml
53
+ coverage.xml
54
+ report.xml
55
+ *.cover
56
+ *.py,cover
57
+ .hypothesis/
58
+ .pytest_cache/
59
+
60
+ # Translations
61
+ *.mo
62
+ *.pot
63
+
64
+ # Django stuff:
65
+ *.log
66
+ local_settings.py
67
+ db.sqlite3
68
+ db.sqlite3-journal
69
+
70
+ # Flask stuff:
71
+ instance/
72
+ .webassets-cache
73
+
74
+ # Scrapy stuff:
75
+ .scrapy
76
+
77
+ # Sphinx documentation
78
+ docs/_build/
79
+ docs/api
80
+
81
+ # PyBuilder
82
+ target/
83
+
84
+ # Jupyter Notebook
85
+ .ipynb_checkpoints
86
+
87
+ # IPython
88
+ profile_default/
89
+ ipython_config.py
90
+
91
+ # pyenv
92
+ .python-version
93
+
94
+ # pipenv
95
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
96
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
97
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
98
+ # install all needed dependencies.
99
+ #Pipfile.lock
100
+
101
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
102
+ __pypackages__/
103
+
104
+ # Celery stuff
105
+ celerybeat-schedule
106
+ celerybeat.pid
107
+
108
+ # SageMath parsed files
109
+ *.sage.py
110
+
111
+ # Environments
112
+ .env
113
+ .venv
114
+ env/
115
+ venv/
116
+ ENV/
117
+ env.bak/
118
+ venv.bak/
119
+
120
+ # Spyder project settings
121
+ .spyderproject
122
+ .spyproject
123
+
124
+ # Rope project settings
125
+ .ropeproject
126
+
127
+ # mkdocs documentation
128
+ /site
129
+
130
+ # mypy
131
+ .mypy_cache/
132
+ .dmypy.json
133
+ dmypy.json
134
+
135
+ # Pyre type checker
136
+ .pyre/
137
+
138
+
139
+ # Binaries for use in local development or CI
140
+ kubectl
141
+ helm
142
+ kind
143
+
144
+ # Subchart dependencies fetched
145
+ charts/*.tgz
146
+ chart/charts/
@@ -0,0 +1,65 @@
1
+ include:
2
+ - project: 'cta-computing/dpps/aiv/dpps-aiv-toolkit'
3
+ ref: a79203bb9b79e2dc997c1572a209ad24c5c59ae3
4
+ file: "ci-functions.yml"
5
+ - "aiv-config.yml"
6
+
7
+ variables:
8
+ # make sure we use the images that were just build and pushed
9
+ CHART_EXTRA_VALUES: "--set image.tag=${DOCKER_TAG}"
10
+ # used by jobs in test report
11
+ DPPS_AIV_TOOLKIT_DIR: ./dpps-aiv-toolkit/
12
+ CONDA_IMAGE: "quay.io/condaforge/miniforge3:24.11.3-0"
13
+
14
+
15
+ stages:
16
+ - lint
17
+ - build
18
+ - sign
19
+ - tests
20
+ - sonarqube
21
+ - publish
22
+ - report
23
+
24
+ build-docs:
25
+ image: "${CONDA_IMAGE}"
26
+
27
+ before_script:
28
+ - source /opt/conda/etc/profile.d/conda.sh
29
+ - mamba create -y -n ci python=3.12 gfal2 m2crypto dirac-grid make
30
+ - conda activate ci
31
+ - python --version
32
+ - pip install .[doc]
33
+
34
+
35
+ pylint:
36
+ image: "${CONDA_IMAGE}"
37
+
38
+ before_script:
39
+ - apt update && apt install -y --no-install-recommends git
40
+ - source /opt/conda/etc/profile.d/conda.sh
41
+ - mamba create -y -n ci python=3.12 gfal2 m2crypto dirac-grid pylint
42
+ - conda activate ci
43
+ - python --version
44
+ - pip install .[all]
45
+
46
+
47
+ build:
48
+ retry: 2
49
+ variables:
50
+ CI_HARBOR_REGISTRY_IMAGE: harbor.cta-observatory.org/dpps/${CI_PROJECT_NAME}-server:${DOCKER_TAG}
51
+ DOCKER_IMAGE_CONTEXT: docker/server
52
+
53
+ build-client:
54
+ retry: 2
55
+ extends: build
56
+ variables:
57
+ CI_HARBOR_REGISTRY_IMAGE: harbor.cta-observatory.org/dpps/${CI_PROJECT_NAME}-client:${DOCKER_TAG}
58
+ DOCKER_IMAGE_CONTEXT: docker/client
59
+
60
+ build-ce:
61
+ retry: 2
62
+ extends: build
63
+ variables:
64
+ CI_HARBOR_REGISTRY_IMAGE: harbor.cta-observatory.org/dpps/${CI_PROJECT_NAME}-ce:${DOCKER_TAG}
65
+ DOCKER_IMAGE_CONTEXT: docker/ce
@@ -0,0 +1,9 @@
1
+ [submodule "requirements-traceability"]
2
+ path = requirements-traceability
3
+ url = ../../../../cta-computing/dpps/dpps-project-management/requirements-traceability.git
4
+ [submodule "dpps-release-plan"]
5
+ path = dpps-release-plan
6
+ url = ../../../../cta-computing/dpps/dpps-project-management/dpps-release-plan.git
7
+ [submodule "dpps-aiv-toolkit"]
8
+ path = dpps-aiv-toolkit
9
+ url = ../../../../cta-computing/dpps/aiv/dpps-aiv-toolkit.git
@@ -0,0 +1,9 @@
1
+ Luisa Arrabito <arrabito@in2p3.fr> <luisa.arrabito@cta-observatory.org>
2
+
3
+ Maximilian Linhoff <maximilian.linhoff@cta-observatory.org> <maximilian.linhoff@tu-dortmund.de>
4
+
5
+ Natthan Pigoux <natthan.pigoux@lupm.in2p3.fr> <natthan.pigoux@gmail.com>
6
+ Natthan Pigoux <natthan.pigoux@lupm.in2p3.fr> <natthan.pigoux@cta-consortium.org>
7
+
8
+ Volodymyr Savchenko <volodymyr.savchenko@cta-consortium.org> <Volodymyr.Savchenko@epfl.ch>
9
+ Volodymyr Savchenko <volodymyr.savchenko@cta-consortium.org>
@@ -0,0 +1,54 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0 # Use the ref you want to point at
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ exclude: '(.*\.fits(\.fz)?)|(.*.patch.*)$'
7
+ - id: check-added-large-files
8
+ - id: check-case-conflict
9
+ - id: check-merge-conflict
10
+ - id: end-of-file-fixer
11
+ exclude: '(.*\.fits(\.fz)?)|(.*.patch.*)|(chart\/.*README.md)$'
12
+
13
+ - repo: https://github.com/codespell-project/codespell
14
+ rev: v2.3.0
15
+ hooks:
16
+ - id: codespell
17
+ additional_dependencies:
18
+ - tomli
19
+
20
+ - repo: https://github.com/astral-sh/ruff-pre-commit
21
+ rev: v0.8.0
22
+ hooks:
23
+ - id: ruff
24
+ args: [ --fix, --show-fixes ]
25
+ exclude: dirac/server/configure.py
26
+ - id: ruff-format
27
+ exclude: dirac/server/configure.py
28
+ exclude: '.*.patch.*'
29
+ - id: ruff-format
30
+ exclude: '.*.patch.*'
31
+
32
+ - repo: https://github.com/scientific-python/cookie
33
+ rev: "2024.08.19"
34
+ hooks:
35
+ - id: sp-repo-review
36
+
37
+ - repo: local
38
+ hooks:
39
+ - id: CI yaml check
40
+ args: [ dpps-aiv-toolkit ]
41
+ name: CI yaml check
42
+ description: CI yaml check
43
+ language: script
44
+ entry: dpps-aiv-toolkit/cicheck.sh
45
+ pass_filenames: true
46
+ files: ^.gitlab-ci.yml$
47
+ always_run: true
48
+
49
+ - repo: https://github.com/norwoodj/helm-docs
50
+ rev: "v1.14.2"
51
+ hooks:
52
+ - id: helm-docs-built
53
+ args:
54
+ - "--chart-search-root=chart"
@@ -0,0 +1,4 @@
1
+ # Changelog
2
+
3
+ Changelogs for this project are available on the
4
+ [Releases page](https://gitlab.com/gitlab-org/cli/-/releases).
@@ -0,0 +1,6 @@
1
+ WMS v0.1.0rc1 (2025-02-12)
2
+ --------------------------
3
+
4
+ Initial release candidate for the first release of the Workload Management System.
5
+
6
+ * Deployment of DIRAC 8 with CTADIRAC using helm.
@@ -0,0 +1,4 @@
1
+ #! /bin/bash
2
+
3
+ source /home/dirac/diracos/diracosrc
4
+ exec "$@"
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2022, Cherenkov Telescope Array Observatory Consortium
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,21 @@
1
+ ###
2
+ export CHART_NAME=wms
3
+ export CHART_LOCATION=chart
4
+ export DOCKER_IMAGE_CONTEXT=docker/client
5
+
6
+ include dpps-aiv-toolkit/Makefile
7
+
8
+
9
+ # TODO: move this to kit
10
+ export TEST_ARTIFACTS_PATH ?= $(PWD)
11
+ export TEST_REPORT_CONFIG ?= $(PWD)/aiv-config.yml
12
+ export TEX_CONTENT_PATH ?= $(PWD)/report
13
+
14
+
15
+ build:
16
+ docker build docker/client/ -t harbor.cta-observatory.org/dpps/wms-client:dev
17
+ docker build docker/server/ -t harbor.cta-observatory.org/dpps/wms-server:dev
18
+ docker build docker/ce/ -t harbor.cta-observatory.org/dpps/wms-ce:dev
19
+ ./kind -n kind-dpps-test-local load docker-image harbor.cta-observatory.org/dpps/wms-client:dev harbor.cta-observatory.org/dpps/wms-ce:dev harbor.cta-observatory.org/dpps/wms-server:dev
20
+
21
+ dev: build
@@ -0,0 +1,48 @@
1
+ Metadata-Version: 2.2
2
+ Name: ctao-wms-clients
3
+ Version: 0.0.0.dev0
4
+ Summary: Client package for the Workload Management System of CTAO DPPS
5
+ Author-email: Volodymyr Savchenko <volodymyr.savchenko@cta-consortium.org>, Natthan Pigoux <natthan.pigoux@lupm.in2p3.fr>, Maximilian Linhoff <maximilian.linhoff@cta-observatory.org>, "Volodymyr.Savchenko" <volodymyr.savchenko@cta-consortium.org>, Luisa Arrabito <arrabito@in2p3.fr>
6
+ License: BSD-3-Clause
7
+ Project-URL: repository, https://gitlab.cta-observatory.org/cta-computing/dpps/workload/wms
8
+ Project-URL: documentation, http://cta-computing.gitlab-pages.cta-observatory.org/dpps/workload/wms
9
+ Requires-Python: >=3.9
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: CTADIRAC~=2.2.62
13
+ Provides-Extra: test
14
+ Requires-Dist: pytest; extra == "test"
15
+ Requires-Dist: pytest-cov; extra == "test"
16
+ Requires-Dist: pytest-requirements; extra == "test"
17
+ Provides-Extra: doc
18
+ Requires-Dist: sphinx; extra == "doc"
19
+ Requires-Dist: numpydoc; extra == "doc"
20
+ Requires-Dist: ctao-sphinx-theme; extra == "doc"
21
+ Requires-Dist: myst-parser; extra == "doc"
22
+ Requires-Dist: sphinx_changelog; extra == "doc"
23
+ Provides-Extra: dev
24
+ Requires-Dist: setuptools_scm; extra == "dev"
25
+ Requires-Dist: sphinx-autobuild; extra == "dev"
26
+ Provides-Extra: all
27
+ Requires-Dist: ctao-wms-clients[dev,doc,test]; extra == "all"
28
+
29
+ # CTAO Workload Management System
30
+
31
+ The first time you want to run the local cluster:
32
+ `git submodule update --init --recursive`
33
+
34
+ To start a `Kind` local cluster, deploy the chart in it, and run the test, do:
35
+
36
+ ```bash
37
+ make
38
+ ```
39
+
40
+ ## Charts
41
+
42
+ ## Docker images
43
+
44
+ Docker images are stored on the CTAO Harbor registry, for [wms-server](https://harbor.cta-observatory.org/harbor/projects/4/repositories/wms-server/artifacts-tab), [wms-client](https://harbor.cta-observatory.org/harbor/projects/4/repositories/wms-client/artifacts-tab) and [wms-ce](https://harbor.cta-observatory.org/harbor/projects/4/repositories/wms-ce/artifacts-tab).
45
+
46
+ ## Test Report
47
+
48
+ The WMS test report can be retrieve from the CI pipeline artifact.
@@ -0,0 +1,20 @@
1
+ # CTAO Workload Management System
2
+
3
+ The first time you want to run the local cluster:
4
+ `git submodule update --init --recursive`
5
+
6
+ To start a `Kind` local cluster, deploy the chart in it, and run the test, do:
7
+
8
+ ```bash
9
+ make
10
+ ```
11
+
12
+ ## Charts
13
+
14
+ ## Docker images
15
+
16
+ Docker images are stored on the CTAO Harbor registry, for [wms-server](https://harbor.cta-observatory.org/harbor/projects/4/repositories/wms-server/artifacts-tab), [wms-client](https://harbor.cta-observatory.org/harbor/projects/4/repositories/wms-client/artifacts-tab) and [wms-ce](https://harbor.cta-observatory.org/harbor/projects/4/repositories/wms-ce/artifacts-tab).
17
+
18
+ ## Test Report
19
+
20
+ The WMS test report can be retrieve from the CI pipeline artifact.
@@ -0,0 +1,6 @@
1
+ # TODO: make nested
2
+ # Note that if sonar key is not specified, it's read from the project's sonar-project.properties
3
+ dependencies:
4
+ - gitlab_path: cta-computing/dpps/workload/CTADIRAC
5
+ revision: main
6
+ sonar_key: cta-computing_dpps_CTADIRAC_AYcypMiTBJOBl6qHRhPT
@@ -0,0 +1,21 @@
1
+ # This is the configuration used both in CI and local Makefile
2
+
3
+ variables:
4
+ # used to select requirements
5
+ DPPS_UC_GROUPS: WMS
6
+ DPPS_RELEASE: v0.0
7
+
8
+ CHART_LOCATION: chart
9
+ CHART_NAME: wms
10
+
11
+ EXTRA_REPORT_SONAR_PROJECT_KEYS: cta-computing_dpps_CTADIRAC_AYcypMiTBJOBl6qHRhPT
12
+
13
+ RELEASE_PLAN_FN: dpps-release-plan/release_development_document/dpps-release-plan.tex
14
+ TRACEABILITY_CSV_FN: requirements-traceability/DPPS_Requirements_Traceability_Matrix.csv
15
+
16
+ APPLICATION_NAME: WMS
17
+ APPLICATION_AUTHOR: WMS Team
18
+ APPLICATION_AUTHOR_ORGANIZATION: CTAO
19
+ APPLICATION_VERSION: 0.0.0
20
+
21
+ EXTRA_CONFIG_FILES: aiv-config-dependencies.yml
@@ -0,0 +1,23 @@
1
+ # Patterns to ignore when building packages.
2
+ # This supports shell glob matching, relative path matching, and
3
+ # negation (prefixed with !). Only one pattern per line.
4
+ .DS_Store
5
+ # Common VCS dirs
6
+ .git/
7
+ .gitignore
8
+ .bzr/
9
+ .bzrignore
10
+ .hg/
11
+ .hgignore
12
+ .svn/
13
+ # Common backup files
14
+ *.swp
15
+ *.bak
16
+ *.tmp
17
+ *.orig
18
+ *~
19
+ # Various IDEs
20
+ .project
21
+ .idea/
22
+ *.tmproj
23
+ .vscode/
@@ -0,0 +1,21 @@
1
+ apiVersion: v2
2
+ name: wms
3
+ description: A Helm chart to deploy the Workload Management System of CTAO
4
+
5
+ type: application
6
+ # This is the chart version. This version number should be incremented each time you make changes
7
+ # to the chart and its templates, including the app version.
8
+ # Versions are expected to follow Semantic Versioning (https://semver.org/)
9
+ version: "0.1.0-dev"
10
+
11
+ # This is the version number of the application being deployed. This version number should be
12
+ # incremented each time you make changes to the application. Versions are not expected to
13
+ # follow Semantic Versioning. They should reflect the version the application is using.
14
+ # It is recommended to use it with quotes.
15
+ appVersion: "0.1.0-dev"
16
+
17
+ dependencies:
18
+ - name: cert-generator-grid
19
+ version: 0.0.0-03319a7-03319a70
20
+ repository: oci://harbor.cta-observatory.org/dpps
21
+ condition: cert-generator-grid.enabled
@@ -0,0 +1,49 @@
1
+ # wms
2
+
3
+ ![Version: 0.1.0-dev](https://img.shields.io/badge/Version-0.1.0--dev-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.0-dev](https://img.shields.io/badge/AppVersion-0.1.0--dev-informational?style=flat-square)
4
+
5
+ A Helm chart to deploy the Workload Management System of CTAO
6
+
7
+ ## Requirements
8
+
9
+ | Repository | Name | Version |
10
+ |------------|------|---------|
11
+ | oci://harbor.cta-observatory.org/dpps | cert-generator-grid | 0.0.0-03319a7-03319a70 |
12
+
13
+ ## Values
14
+
15
+ | Key | Type | Default | Description |
16
+ |-----|------|---------|-------------|
17
+ | CE | object | `{"enabled":true}` | Compute Element (CE) used by DIRAC, likely only needed for testing |
18
+ | affinity | object | `{}` | |
19
+ | cert-generator-grid.enabled | bool | `true` | |
20
+ | cert-generator-grid.generatePreHooks | bool | `true` | |
21
+ | dev.client_image_tag | string | `nil` | tag of the image used to run helm tests |
22
+ | dev.mount_repo | bool | `true` | mount the repo volume to test the code as it is being developed |
23
+ | dev.run_tests | bool | `true` | run tests in the container |
24
+ | dev.sleep | bool | `false` | sleep after test to allow interactive development |
25
+ | fullnameOverride | string | `""` | |
26
+ | image.pullPolicy | string | `"IfNotPresent"` | |
27
+ | image.repository_prefix | string | `"harbor.cta-observatory.org/dpps/wms"` | |
28
+ | image.tag | string | `nil` | Overrides the image tag whose default is the chart appVersion. |
29
+ | imagePullSecrets[0].name | string | `"harbor-pull-secret"` | |
30
+ | nameOverride | string | `""` | |
31
+ | nodeSelector | object | `{}` | |
32
+ | podAnnotations | object | `{}` | |
33
+ | podLabels | object | `{}` | |
34
+ | podSecurityContext | object | `{}` | |
35
+ | replicaCount | int | `1` | |
36
+ | resetDatabase | bool | `true` | Recreates DIRAC database from scratch. Useful at first installation, but destructive on update: should be changed immediately after the first installation. |
37
+ | resources | object | `{}` | |
38
+ | rucio.enabled | bool | `false` | |
39
+ | securityContext | object | `{}` | |
40
+ | service.port | int | `8080` | |
41
+ | service.type | string | `"ClusterIP"` | |
42
+ | serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
43
+ | serviceAccount.automount | bool | `true` | Automatically mount a ServiceAccount's API credentials? |
44
+ | serviceAccount.create | bool | `true` | Specifies whether a service account should be created |
45
+ | serviceAccount.name | string | `""` | If not set and create is true, a name is generated using the fullname template |
46
+ | tolerations | list | `[]` | |
47
+ | volumeMounts | list | `[]` | |
48
+ | volumes | list | `[]` | |
49
+
@@ -0,0 +1,16 @@
1
+ 1. Get the application URL by running these commands:
2
+ {{ if contains "NodePort" .Values.service.type }}
3
+ export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "wms.fullname" . }})
4
+ export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
5
+ echo http://$NODE_IP:$NODE_PORT
6
+ {{- else if contains "LoadBalancer" .Values.service.type }}
7
+ NOTE: It may take a few minutes for the LoadBalancer IP to be available.
8
+ You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "wms.fullname" . }}'
9
+ export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "wms.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
10
+ echo http://$SERVICE_IP:{{ .Values.service.port }}
11
+ {{- else if contains "ClusterIP" .Values.service.type }}
12
+ export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "wms.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
13
+ export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
14
+ echo "Visit http://127.0.0.1:8080 to use your application"
15
+ kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
16
+ {{- end }}
@@ -0,0 +1,69 @@
1
+ {{/*
2
+ Expand the name of the chart.
3
+ */}}
4
+ {{- define "wms.name" -}}
5
+ {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
6
+ {{- end }}
7
+
8
+ {{/*
9
+ Create a default fully qualified app name.
10
+ We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
11
+ If release name contains chart name it will be used as a full name.
12
+ */}}
13
+ {{- define "wms.fullname" -}}
14
+ {{- if .Values.fullnameOverride }}
15
+ {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
16
+ {{- else }}
17
+ {{- $name := default .Chart.Name .Values.nameOverride }}
18
+ {{- if contains $name .Release.Name }}
19
+ {{- .Release.Name | trunc 63 | trimSuffix "-" }}
20
+ {{- else }}
21
+ {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
22
+ {{- end }}
23
+ {{- end }}
24
+ {{- end }}
25
+
26
+ {{/*
27
+ Create chart name and version as used by the chart label.
28
+ */}}
29
+ {{- define "wms.chart" -}}
30
+ {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
31
+ {{- end }}
32
+
33
+ {{/*
34
+ Common labels
35
+ */}}
36
+ {{- define "wms.labels" -}}
37
+ helm.sh/chart: {{ include "wms.chart" . }}
38
+ {{ include "wms.selectorLabels" . }}
39
+ {{- if .Chart.AppVersion }}
40
+ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
41
+ {{- end }}
42
+ app.kubernetes.io/managed-by: {{ .Release.Service }}
43
+ {{- end }}
44
+
45
+ {{/*
46
+ Selector labels
47
+ */}}
48
+ {{- define "wms.selectorLabels" -}}
49
+ app.kubernetes.io/instance: {{ .Release.Name }}
50
+ {{- end }}
51
+
52
+ {{/*
53
+ Create the name of the service account to use
54
+ */}}
55
+ {{- define "wms.serviceAccountName" -}}
56
+ {{- if .Values.serviceAccount.create }}
57
+ {{- default (include "wms.fullname" .) .Values.serviceAccount.name }}
58
+ {{- else }}
59
+ {{- default "default" .Values.serviceAccount.name }}
60
+ {{- end }}
61
+ {{- end }}
62
+
63
+
64
+ {{/*
65
+ Certificate prefix
66
+ */}}
67
+ {{- define "certprefix" -}}
68
+ {{- .Release.Name -}}
69
+ {{- end -}}