From 1cb473b5c714fa9b6825299d1a933dbfb22cc6b6 Mon Sep 17 00:00:00 2001 From: Diego Rodriguez Date: Wed, 29 Jul 2020 10:35:50 +0200 Subject: [PATCH] docs: single-page RTFD outline * Addresses reanahub/reana#335. --- CONTRIBUTING.rst | 19 +--- LICENSE | 2 +- README.rst | 33 +++--- docs/_static/logo-reana.png | Bin 16284 -> 0 bytes docs/authors.rst | 3 - docs/changes.rst | 3 - docs/conf.py | 6 +- docs/contributing.rst | 3 - docs/developerguide.rst | 88 --------------- docs/index.rst | 100 ++++++++++++++++-- docs/introduction.rst | 7 -- docs/license.rst | 8 -- docs/restapi.rst | 11 -- .../kubernetes_job_manager.py | 1 - setup.py | 4 +- 15 files changed, 119 insertions(+), 169 deletions(-) delete mode 100644 docs/_static/logo-reana.png delete mode 100644 docs/authors.rst delete mode 100644 docs/changes.rst delete mode 100644 docs/contributing.rst delete mode 100644 docs/developerguide.rst delete mode 100644 docs/introduction.rst delete mode 100644 docs/license.rst delete mode 100644 docs/restapi.rst diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index cd252fc9..d6f2944f 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1,10 +1,7 @@ Contributing ============ -Issues ------- - -Bug reports, feature requests, and other contributions are welcome. If you find +Bug reports, issues, feature requests, and other contributions are welcome. If you find a demonstrable problem that is caused by the REANA code, please: 1. Search for `already reported problems @@ -13,21 +10,11 @@ a demonstrable problem that is caused by the REANA code, please: latest `master` branch. 3. Create an issue, ideally with **a test case**. -Pull requests -------------- - -If you create a feature branch, you can run the tests to ensure that everything -is operating correctly: +If you create a pull request fixing a bug or implementing a feature, you can run +the tests to ensure that everything is operating correctly: .. code-block:: console $ ./run-tests.sh Each pull request should preserve or increase code coverage. - -Kanban ------- - -We are using Kanban technique for keeping track of ongoing tasks. Please see -our `Kanban boards `_ and look for -issues that are "ready for work". diff --git a/LICENSE b/LICENSE index c83cc5ff..0acd42a1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (C) 2017, 2018 CERN. +Copyright (C) 2017-2020 CERN. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.rst b/README.rst index ca9f2f61..9e311790 100644 --- a/README.rst +++ b/README.rst @@ -1,6 +1,6 @@ -====================== - REANA-Job-Controller -====================== +#################### +REANA-Job-Controller +#################### .. image:: https://img.shields.io/travis/reanahub/reana-job-controller.svg :target: https://travis-ci.org/reanahub/reana-job-controller @@ -21,26 +21,33 @@ :target: https://github.com/psf/black About ------ +===== REANA-Job-Controller is a component of the `REANA `_ reusable and reproducible research data analysis platform. It takes care of executing and managing jobs on compute clouds. Features --------- +======== - submit jobs to compute clouds - enquire about status of running jobs +Usage +===== + +The detailed information on how to install and use REANA can be found in +`docs.reana.io `_. + Useful links ------------- +============ -- `documentation `_ -- `releases `_ -- `known issues `_ -- `source code `_ +- `REANA project home page `_ +- `REANA user documentation `_ +- `REANA user support forum `_ -For more information about the REANA reusable analysis platform, please see the -`REANA project `_ home page and the general `REANA -documentation `_ pages. +- `REANA-Job-Controller releases `_ +- `REANA-Job-Controller docker images `_ +- `REANA-Job-Controller developer documentation `_ +- `REANA-Job-Controller known issues `_ +- `REANA-Job-Controller source code `_ diff --git a/docs/_static/logo-reana.png b/docs/_static/logo-reana.png deleted file mode 100644 index 28d87746d93742b4968781cf678a296baa3b186f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16284 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 is a component of the REANA reusable and reproducible research data analysis @@ -143,12 +142,13 @@ "REANA@Twitter": "https://twitter.com/reanahub", "REANA@Web": "http://www.reana.io", }, + "nosidebar": True, } # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] +# html_static_path = ["_static"] # Custom sidebar templates, maps document names to template names. html_sidebars = { diff --git a/docs/contributing.rst b/docs/contributing.rst deleted file mode 100644 index 46281822..00000000 --- a/docs/contributing.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. _contributing: - -.. include:: ../CONTRIBUTING.rst diff --git a/docs/developerguide.rst b/docs/developerguide.rst deleted file mode 100644 index f41491d7..00000000 --- a/docs/developerguide.rst +++ /dev/null @@ -1,88 +0,0 @@ -.. _developerguide: - -Developer guide -=============== - -This developer guide is meant for software developers who would like to -understand REANA-Job-Controller source code and contribute to it. - -Compute backends ----------------- - -REANA-Job-Controller offers an abstract interface to submit jobs to different -compute backends. Currently it is only implemented for Kubernetes. - -.. automodule:: reana_job_controller.job_manager - :members: - -.. image:: /_static/reana-job-manager.png - - -Kubernetes -~~~~~~~~~~ - -Kubernetes jobs management is done via ``KubernetesJobManager`` class which -implements the previously mentioned ``JobManager`` interface. - -Execute method creates Kubernetes job specification and submits it. This -method uses ``@JobManager.execution_hook`` decorator to execute specific -operations defined in before_execution and necessary DB transactions in the -right order. - -Stop static function is responsible for stoping/deleting successfully finished -or failed jobs. - -HTCondor -~~~~~~~~ - -To build REANA-Job-Controller Docker image with HTCondor dependencies use build -argument ``COMPUTE_BACKENDS=kubernetes,htcondorcern``. - -.. code-block:: console - - $ reana-dev docker-build -c reana-job-controller -b COMPUTE_BACKENDS=kubernetes,htcondorcern - -The users should then upload their CERN username and keytab secrets using: - -.. code-block:: console - - $ reana-client secrets-add --env CERN_USER=johndoe - --env CERN_KEYTAB=.keytab - --file ~/.keytab - -see the `reana-client's documentation on secrets `_. - -The users will then be able to specify compute backend ``htcondorcern`` in their -workflow specification files to provide hints to the workflow execution system -to run certain workflow steps on the HTCondorCERN backend. How this is done -concretely depends on the specific workflow engine (CWL, Serial, Yadage). - -Slurm -~~~~~ - -To build REANA-Job-Controller Docker image with Slum dependencies use build -argument ``COMPUTE_BACKENDS=kubernetes,slurmcern``. - - -.. code-block:: console - - $ reana-dev docker-build -c reana-job-controller -b COMPUTE_BACKENDS=kubernetes,slurmcern - -The users should then upload their CERN username and keytab secrets using: - -.. code-block:: console - - $ reana-client secrets-add --env CERN_USER=johndoe - --env CERN_KEYTAB=.keytab - --file ~/.keytab - - -.. note:: - Please note that CERN Slurm cluster access is not granted by - `default `_. - -Once the user has an access will then be able to specify compute backend -``slurmcern`` in their workflow specification files to provide hints to the -workflow execution system to run certain workflow steps on the SlurmCern backend. -How this is done concretely depends on the specific workflow engine -(CWL, Serial, Yadage). diff --git a/docs/index.rst b/docs/index.rst index 50ba72d3..c835451b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -2,16 +2,96 @@ :end-before: About .. include:: ../README.rst - :start-after: ----- + :start-after: ===== :end-before: Features -.. toctree:: - :numbered: +Features: + +.. include:: ../README.rst + :start-line: 32 + :end-before: Useful links + +API +=== + +Compute backends +---------------- + +REANA-Job-Controller offers an abstract interface to submit jobs to different +compute backends. + +.. automodule:: reana_job_controller.job_manager + :members: + +.. image:: /_static/reana-job-manager.png + + +Kubernetes +~~~~~~~~~~ + +.. automodule:: reana_job_controller.kubernetes_job_manager + :members: + +.. note:: + REANA-Job-Controller supports the Kubernetes job manager by default, no need + to pass any build argument. + +HTCondor +~~~~~~~~ + +.. automodule:: reana_job_controller.htcondorcern_job_manager + :members: + +.. note:: + To build REANA-Job-Controller Docker image with HTCondor dependencies use build + argument ``COMPUTE_BACKENDS=kubernetes,htcondorcern``. + + .. code-block:: console + + $ reana-dev docker-build -c reana-job-controller \ + -b COMPUTE_BACKENDS=kubernetes,htcondorcern + +Slurm +~~~~~ + +.. automodule:: reana_job_controller.slurmcern_job_manager + :members: + +.. note:: + To build REANA-Job-Controller Docker image with Slum dependencies use build + argument ``COMPUTE_BACKENDS=kubernetes,slurmcern``. + + .. code-block:: console + + $ reana-dev docker-build -c reana-job-controller \ + -b COMPUTE_BACKENDS=kubernetes,slurmcern + +.. note:: + Please note that CERN Slurm cluster access is not granted by + `default `_. + +REST API +======== + +The REANA Job Controller API offers different endpoints to create, manage and monitor jobs. +Detailed REST API documentation can be found `here <_static/api.html>`_. + +.. automodule:: reana_job_controller.rest + :members: + :exclude-members: get_openapi_spec + +.. include:: ../CHANGES.rst + +.. include:: ../CONTRIBUTING.rst + +License +======= + +.. include:: ../LICENSE + +In applying this license, CERN does not waive the privileges and immunities +granted to it by virtue of its status as an Intergovernmental Organization or +submit itself to any jurisdiction. + +.. include:: ../AUTHORS.rst - introduction - restapi - developerguide - contributing - changes - license - authors diff --git a/docs/introduction.rst b/docs/introduction.rst deleted file mode 100644 index 27571930..00000000 --- a/docs/introduction.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _introduction: - -Introduction -============ - -.. include:: ../README.rst - :start-line: 22 diff --git a/docs/license.rst b/docs/license.rst deleted file mode 100644 index ec63ef70..00000000 --- a/docs/license.rst +++ /dev/null @@ -1,8 +0,0 @@ -License -======= - -.. include:: ../LICENSE - -In applying this license, CERN does not waive the privileges and immunities -granted to it by virtue of its status as an Intergovernmental Organization or -submit itself to any jurisdiction. diff --git a/docs/restapi.rst b/docs/restapi.rst deleted file mode 100644 index 3cafd66b..00000000 --- a/docs/restapi.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. _restapi: - -REST API -======== - -The REANA Job Controller API offers different endpoints to create, manage and monitor jobs. -Detailed REST API documentation can be found `here <_static/api.html>`_. - -.. automodule:: reana_job_controller.rest - :members: - :exclude-members: get_openapi_spec diff --git a/reana_job_controller/kubernetes_job_manager.py b/reana_job_controller/kubernetes_job_manager.py index dec562c6..a3635fe5 100644 --- a/reana_job_controller/kubernetes_job_manager.py +++ b/reana_job_controller/kubernetes_job_manager.py @@ -146,7 +146,6 @@ def execute(self): secret_env_vars = secrets_store.get_env_secrets_as_k8s_spec() job_spec = self.job["spec"]["template"]["spec"] job_spec["containers"][0]["env"].extend(secret_env_vars) - job_spec["volumes"].append(secrets_store.get_file_secrets_volume_as_k8s_specs()) secrets_volume_mount = secrets_store.get_secrets_volume_mount_as_k8s_spec() diff --git a/setup.py b/setup.py index 567ce8ef..9291eb6a 100644 --- a/setup.py +++ b/setup.py @@ -25,10 +25,10 @@ extras_require = { "debug": ["wdb", "ipdb", "Flask-DebugToolbar",], "docs": [ - "Sphinx>=1.4.4,<1.6", + "Sphinx>=1.5.1,<1.6", "sphinx-rtd-theme>=0.1.9", "sphinxcontrib-httpdomain>=1.5.0", - "sphinxcontrib-openapi>=0.3.0", + "sphinxcontrib-openapi>=0.3.0,<0.4.0", "sphinxcontrib-redoc>=1.5.1", ], "tests": tests_require,