From ac69ef1da7e87ee2602b3790ec680be4c1f74cf3 Mon Sep 17 00:00:00 2001 From: Tomasz Wrobel Date: Tue, 18 May 2021 16:04:25 +0200 Subject: [PATCH] Add Documentation of SDC-Helm-Validator container Issue-ID: SDC-3185 Signed-off-by: Tomasz Wrobel Change-Id: I85972698bb4e0b42694acf1d97980e45cda0d81d Signed-off-by: Joanna Jeremicz --- docs/conf.py | 14 +++++ docs/configuration.rst | 8 +++ docs/delivery.rst | 3 +- docs/index.rst | 1 + docs/onboardingpackages.rst | 2 + docs/sdc-helm-validator.rst | 130 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 docs/sdc-helm-validator.rst diff --git a/docs/conf.py b/docs/conf.py index 4b24057691..e78ac0c30c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,7 +12,21 @@ intersphinx_mapping = {} intersphinx_mapping['onap-doc'] = ('{}/en/%s'.format(doc_onap_url) % branch, None) + +def prepare_rst_epilog(): + git_branch = branch + if git_branch == 'latest': + git_branch = 'master' + return """ +.. |sdc-helm-validator-open-api| replace:: SDC Helm Validator OpenAPI.yaml +.. _sdc-helm-validator-open-api: https://gerrit.onap.org/r/gitweb?p=sdc/sdc-helm-validator.git;a=blob_plain;f=OpenAPI.yaml;hb=refs/heads/{branch} +""".format(branch=git_branch) + +rst_epilog = prepare_rst_epilog() + html_last_updated_fmt = '%d-%b-%y %H:%M' def setup(app): app.add_stylesheet("css/ribbon.css") + + diff --git a/docs/configuration.rst b/docs/configuration.rst index f839a1f314..2438504d92 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -81,6 +81,14 @@ environment.json "VnfRepo": { "vnfRepoPort": "8702", "vnfRepoHost": "10.0.14.1" + }, + "HelmValidator": { + "validator_enabled": true, + "helm_version": "3.5.2", + "deployable": true, + "lintable": false, + "strict_lintable": false, + "validator_url": "http://sdc-helm-validator:8080/validate" } }, "override_attributes": { diff --git a/docs/delivery.rst b/docs/delivery.rst index 5e055a7ba9..7fd907f9aa 100644 --- a/docs/delivery.rst +++ b/docs/delivery.rst @@ -37,7 +37,8 @@ Overview +---------------------+----------------------------------------------------------------------------+------------------------------------------------+ | sdc-WFD-FE | SDC Workflow **Frontend** Jetty server | Starts Jetty with our application. | +---------------------+----------------------------------------------------------------------------+------------------------------------------------+ - +| sdc-helm-validator | SDC container for Helm package validation | Starts server with our application. | ++---------------------+----------------------------------------------------------------------------+------------------------------------------------+ Deployement dependency map diff --git a/docs/index.rst b/docs/index.rst index e1aa94997b..0d1a6a3931 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -23,3 +23,4 @@ SDC Documentation sdcsdks.rst dcaedesigner.rst workflow.rst + sdc-helm-validator.rst diff --git a/docs/onboardingpackages.rst b/docs/onboardingpackages.rst index 63bc152df4..82e5334172 100644 --- a/docs/onboardingpackages.rst +++ b/docs/onboardingpackages.rst @@ -61,6 +61,8 @@ Basic Helm package support for CNF The helm package support is new since Guilin release, helm chart packaged as tgz file can be onboarded and distributed. The support is limited for this first release. +Since Istanbul release there is also an additional helm chart validation step during package onboarding process. More information: :ref:`SDC Helm Validator `. + Package Types applicable to Resource Types ------------------------------------------ VF diff --git a/docs/sdc-helm-validator.rst b/docs/sdc-helm-validator.rst new file mode 100644 index 0000000000..cb4c85f211 --- /dev/null +++ b/docs/sdc-helm-validator.rst @@ -0,0 +1,130 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2021 NOKIA + +.. _sdc_helm_validator: + +SDC Helm Validator +============================== + + +General information +------------------------------ + +This application can be used to validate CNF Helm charts using a Helm Client. It allows to select Helm version, which will be used to execute validation. + +More information could be found in project repository, see :ref:`sdc_helm_validator_repository`. + + + +Offered API +----------- + +.. Latest Open API model: :download:`OpenAPI.yaml ` + + +Latest Open API model: |sdc-helm-validator-open-api|_ + + +Validation +---------- +Application executes two types of validation: + +* Deployable (basic validation) - verify correct chart rendering. +* Lint (optional) - verify syntax of charts, it can be turned on/off by request parameter. + +**Request parameters:** + +* versionDesired - Helm Client version, which will be used to validation (list of supported versions can be received */versions* endpoint), available formats: + + - Semantic version [X.Y.Z] e.g 3.5.2 + - Major version [vX] - uses latest of available major version, e.g: v3 uses latest 3.Y.Z version. + +* isLinted - turn on/off lint validation +* isStrictLinted - turn on/off strict lint - if lint validation detects any warning, it marks chart as invalid. + + +Example usage +------------- + +**Supported versions** (/versions) +Request: + +.. code-block:: bash + + curl -X 'GET' \ + 'http://:/versions' \ + -H 'accept: */*' + +E.g: + +.. code-block:: bash + + curl -X 'GET' \ + 'http://localhost:8080/versions' \ + -H 'accept: */*' + +Sample response: + +.. code-block:: json + + {"versions": + ["3.5.2", + "3.4.1", + "3.3.4"]} + +**Validation** (/validate) + +Request: + +.. code-block:: bash + + curl -X 'POST' \ + 'http://:/validate' \ + -H 'accept: application/json' \ + -H 'Content-Type: multipart/form-data' \ + -F 'versionDesired=' \ + -F 'file=@;type=application/x-compressed-tar' \ + -F 'isLinted=true' \ + -F 'isStrictLinted=true' + +E.g: + +.. code-block:: bash + + curl -X 'POST' \ + 'http://localhost:8080/validate' \ + -H 'accept: application/json' \ + -H 'Content-Type: multipart/form-data' \ + -F 'versionDesired=3.5.2' \ + -F 'file=@correct-apiVersion-v2.tgz;type=application/x-compressed-tar' \ + -F 'isLinted=true' \ + -F 'isStrictLinted=true' + +Sample response: + +.. code-block:: json + + { + "renderErrors": [], + "lintWarning": [], + "lintError": [], + "versionUsed": "3.5.2", + "valid": true, + "deployable": true + } + + + +Usage within SDC +---------------- + +The Helm validator is triggered by the SDC onboarding BE in CNF package onboarding use-cases. + + +.. _sdc_helm_validator_repository: + +Project repository +------------------ + +`SDC Helm Validator repository `_ -- 2.16.6