diff options
Diffstat (limited to 'docs/integration-simulators.rst')
-rw-r--r-- | docs/integration-simulators.rst | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/docs/integration-simulators.rst b/docs/integration-simulators.rst new file mode 100644 index 000000000..7f6688f05 --- /dev/null +++ b/docs/integration-simulators.rst @@ -0,0 +1,111 @@ +.. This work is licensed under a + Creative Commons Attribution 4.0 International License. +.. integration-tooling: + +.. _integration-simulators: + +Simulators +========== + +Simulators are regularly created for use cases. The goal of this section is to: + +- Highlight the existing Simulators +- Provide recommendations when starting developing a new simulator + +.. important:: + Before developing a new simulator, check that it does not exist...and + refactor/contribute to existing simulators rather than recreating new ones. + + +Existing simulators +------------------- + +.. csv-table:: Simulators + :file: ./files/csv/simulators.csv + :widths: 10,50,20,20 + :delim: ; + :header-rows: 1 + + +Recommendations +--------------- + +The simulator code +.................. + +We recommend to create a dedicated repository (ask Integration team). + +.. csv-table:: Simulator repositories + :file: ./files/csv/repo-simulators.csv + :widths: 30,50,20 + :delim: ; + :header-rows: 1 + + +Dockerization +............. + +From this repository, create a jenkins job to automatically build the dockers. + +Helm Chart +.......... + +It is recommended to create a helm chart in order to run the simulators. + + +Wrapper for simulators +...................... + +1. In order to deploy the Helm release with a simulator, place a YAML file +describing the Helm release in src/onaptests/templates/helm_charts. + + The structure of the YAML file should be like in the example below. + Dependencies contain all the charts that need to be pulled. + + .. code-block:: YAML + + # Helm release information + api_version: # API_VERSION + app_version: # APP_VERSION + chart_name: # SIMULATOR_NAME + version: # CHART_VERSION + + # Helm charts that need to be pulled + dependencies: + - name: # SIMULATOR_NAME + version: # CHART_VERSION + repository: # URL + local_repo_name: # REPO_NAME + +2. Install the Helm release: + + .. code-block:: Python + + from onaptests.steps.wrapper.helm_charts import HelmChartStep + + chart = HelmChartStep( + cleanup = BOOLEAN, + chart_info_file = YAML_FILE_NAME # name, not the path + ) + chart.execute() + +3. Start the simulator via an API call: + + .. code-block:: Python + + start = SimulatorStartStep( + cleanup = BOOLEAN, + https = BOOLEAN, + host = HOSTNAME, + port = PORT, + endpoint = START_ENDPOINT, # if applicable + method = REQUEST_METHOD, # GET, POST etc. + data = PAYLOAD # {"json": {...}, ...} + ) + start.execute() + +4. Undeploy the Helm release: + + .. code-block:: Python + + chart.cleanup() |