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.
- ctao_wms_clients-0.0.0.dev0/.codespell-ignores +1 -0
- ctao_wms_clients-0.0.0.dev0/.gitignore +146 -0
- ctao_wms_clients-0.0.0.dev0/.gitlab-ci.yml +65 -0
- ctao_wms_clients-0.0.0.dev0/.gitmodules +9 -0
- ctao_wms_clients-0.0.0.dev0/.mailmap +9 -0
- ctao_wms_clients-0.0.0.dev0/.pre-commit-config.yaml +54 -0
- ctao_wms_clients-0.0.0.dev0/CHANGELOG.md +4 -0
- ctao_wms_clients-0.0.0.dev0/CHANGES.rst +6 -0
- ctao_wms_clients-0.0.0.dev0/Entrypoint.sh +4 -0
- ctao_wms_clients-0.0.0.dev0/LICENSE +29 -0
- ctao_wms_clients-0.0.0.dev0/Makefile +21 -0
- ctao_wms_clients-0.0.0.dev0/PKG-INFO +48 -0
- ctao_wms_clients-0.0.0.dev0/README.md +20 -0
- ctao_wms_clients-0.0.0.dev0/aiv-config-dependencies.yml +6 -0
- ctao_wms_clients-0.0.0.dev0/aiv-config.yml +21 -0
- ctao_wms_clients-0.0.0.dev0/chart/.helmignore +23 -0
- ctao_wms_clients-0.0.0.dev0/chart/Chart.yaml +21 -0
- ctao_wms_clients-0.0.0.dev0/chart/README.md +49 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/NOTES.txt +16 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/_helpers.tpl +69 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/configmap.yaml +395 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentDiracCE.yaml +159 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentDiracConfigure.yaml +162 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentDiracServer.yaml +266 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/deploymentMysql.yaml +120 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/service.yaml +15 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/serviceaccount.yaml +13 -0
- ctao_wms_clients-0.0.0.dev0/chart/templates/tests/test-basic.yaml +116 -0
- ctao_wms_clients-0.0.0.dev0/chart/values.yaml +104 -0
- ctao_wms_clients-0.0.0.dev0/docker/ce/Dockerfile +54 -0
- ctao_wms_clients-0.0.0.dev0/docker/ce/default.local +3 -0
- ctao_wms_clients-0.0.0.dev0/docker/client/Dockerfile +50 -0
- ctao_wms_clients-0.0.0.dev0/docker/client/Entrypoint.sh +4 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/Dockerfile +69 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/bashrc +9 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/configure.py +34 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/dirac-installation.cfg +266 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/init.sh +7 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/install_site.sh +14 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/resources.conf +58 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/runsvdir-start +10 -0
- ctao_wms_clients-0.0.0.dev0/docker/server/runsvdir-start.service +10 -0
- ctao_wms_clients-0.0.0.dev0/docs/Makefile +23 -0
- ctao_wms_clients-0.0.0.dev0/docs/changelog.rst +6 -0
- ctao_wms_clients-0.0.0.dev0/docs/changes/template.rst +43 -0
- ctao_wms_clients-0.0.0.dev0/docs/chart.rst +6 -0
- ctao_wms_clients-0.0.0.dev0/docs/conf.py +74 -0
- ctao_wms_clients-0.0.0.dev0/docs/getting_started.rst +17 -0
- ctao_wms_clients-0.0.0.dev0/docs/index.rst +25 -0
- ctao_wms_clients-0.0.0.dev0/docs/install_ctadirac_server.rst +16 -0
- ctao_wms_clients-0.0.0.dev0/docs/introduction.rst +8 -0
- ctao_wms_clients-0.0.0.dev0/docs/reference.rst +7 -0
- ctao_wms_clients-0.0.0.dev0/docs/wms_legacy_instance.rst +9 -0
- ctao_wms_clients-0.0.0.dev0/pyproject.toml +193 -0
- ctao_wms_clients-0.0.0.dev0/report/customization.tex +4 -0
- ctao_wms_clients-0.0.0.dev0/report/extra_customization.tex +0 -0
- ctao_wms_clients-0.0.0.dev0/report/inspection.tex +0 -0
- ctao_wms_clients-0.0.0.dev0/report/performance_verification.tex +0 -0
- ctao_wms_clients-0.0.0.dev0/report/preamble.tex +17 -0
- ctao_wms_clients-0.0.0.dev0/setup.cfg +4 -0
- ctao_wms_clients-0.0.0.dev0/sonar-project.properties +12 -0
- ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/PKG-INFO +48 -0
- ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/SOURCES.txt +70 -0
- ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/dependency_links.txt +1 -0
- ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/requires.txt +20 -0
- ctao_wms_clients-0.0.0.dev0/src/ctao_wms_clients.egg-info/top_level.txt +1 -0
- ctao_wms_clients-0.0.0.dev0/src/wms/__init__.py +7 -0
- ctao_wms_clients-0.0.0.dev0/src/wms/_version.py +16 -0
- ctao_wms_clients-0.0.0.dev0/src/wms/tests/__init__.py +0 -0
- ctao_wms_clients-0.0.0.dev0/src/wms/tests/conftest.py +18 -0
- ctao_wms_clients-0.0.0.dev0/src/wms/tests/test_dirac_basic.py +30 -0
- 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,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,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
|
+
  
|
|
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 -}}
|