From 6811f9b61fc8a3c81e4f7833e7c9ed9d56caeec4 Mon Sep 17 00:00:00 2001 From: Patrick Titzler Date: Mon, 30 May 2022 14:32:46 -0700 Subject: [PATCH] Add deployment in air gapped environment doc --- create-release.py | 54 ++++++++++++++ .../installation-dependencies.png | Bin 0 -> 30343 bytes .../runtime-dependencies.png | Bin 0 -> 84249 bytes docs/source/index.rst | 1 + ...running-elyra-in-air-gapped-environment.md | 69 ++++++++++++++++++ 5 files changed, 124 insertions(+) create mode 100644 docs/source/images/recipes/running-elyra-in-air-gapped-environment/installation-dependencies.png create mode 100644 docs/source/images/recipes/running-elyra-in-air-gapped-environment/runtime-dependencies.png create mode 100644 docs/source/recipes/running-elyra-in-air-gapped-environment.md diff --git a/create-release.py b/create-release.py index 2b2087e09..219998d07 100755 --- a/create-release.py +++ b/create-release.py @@ -213,6 +213,33 @@ def update_version_to_release() -> None: rf"https://elyra.readthedocs.io/en/v{new_version}/", ) + # Update GitHub references in documentation + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/master/etc/kfp/pip.conf", + rf"elyra-ai/elyra/v{new_version}/etc/kfp/pip.conf/", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/master/elyra/kfp/bootstrapper.py", + rf"elyra-ai/elyra/v{new_version}/elyra/kfp/bootstrapper.py", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/master/elyra/airflow/bootstrapper.py", + rf"elyra-ai/elyra/v{new_version}/elyra/airflow/bootstrapper.py", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/master/etc/generic/requirements-elyra-py37.txt", + rf"elyra-ai/elyra/v{new_version}/etc/generic/requirements-elyra-py37.txt", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/master/etc/generic/requirements-elyra.txt", + rf"elyra-ai/elyra/v{new_version}/etc/generic/requirements-elyra.txt", + ) + check_run( ["lerna", "version", new_npm_version, "--no-git-tag-version", "--no-push", "--yes", "--exact"], cwd=config.source_dir, @@ -296,6 +323,33 @@ def update_version_to_dev() -> None: rf"https://elyra.readthedocs.io/en/latest/user_guide/", ) + # Update GitHub references in documentation + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/v{new_version}/etc/kfp/pip.conf", + rf"elyra-ai/elyra/master/etc/kfp/pip.conf/", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/v{new_version}/elyra/kfp/bootstrapper.py", + rf"elyra-ai/elyra/master/elyra/kfp/bootstrapper.py", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/v{new_version}/elyra/airflow/bootstrapper.py", + rf"elyra-ai/elyra/master/elyra/airflow/bootstrapper.py", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/v{new_version}/etc/generic/requirements-elyra-py37.txt", + rf"elyra-ai/elyra/master/etc/generic/requirements-elyra-py37.txt", + ) + sed( + _source("docs/source/recipes/running-elyra-in-air-gapped-environment.md"), + r"elyra-ai/elyra/v{new_version}/etc/generic/requirements-elyra.txt", + rf"elyra-ai/elyra/master/etc/generic/requirements-elyra.txt", + ) + check_run( ["lerna", "version", dev_npm_version, "--no-git-tag-version", "--no-push", "--yes", "--exact"], cwd=config.source_dir, diff --git a/docs/source/images/recipes/running-elyra-in-air-gapped-environment/installation-dependencies.png b/docs/source/images/recipes/running-elyra-in-air-gapped-environment/installation-dependencies.png new file mode 100644 index 0000000000000000000000000000000000000000..779a613279ba0286a50745a1104e94cfba0a27c4 GIT binary patch literal 30343 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 DJCOr} literal 0 HcmV?d00001 diff --git a/docs/source/images/recipes/running-elyra-in-air-gapped-environment/runtime-dependencies.png b/docs/source/images/recipes/running-elyra-in-air-gapped-environment/runtime-dependencies.png new file mode 100644 index 0000000000000000000000000000000000000000..103846554dc1e7f2909d60c3fff99af3681ae9bb GIT binary patch literal 84249 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 + +# Running Elyra in an air gapped environment + +This document outlines how to prepare an air gapped environment for Elyra. + +## Installation dependencies + +An Elyra installation requires access to Python and Javascript packages, which must be accessible in the environment when the installation is performed. + +![installation dependencies](../images/recipes/running-elyra-in-air-gapped-environment/installation-dependencies.png) + +These dependencies are in addition to any dependencies you wish to include in the installation, such as JupyterLab extensions that are not distributed with Elyra. + +## Runtime dependencies + +When using Elyra's features to [build, export, or run pipelines](../user_guide/pipelines.md), additional runtime dependencies must be accessible in the environment where JupyterLab is installed and the Kubernetes cluster where the pipeline runtime environment (Kubeflow Pipelines or Apache Airflow) is installed. + +![runtime dependencies](../images/recipes/running-elyra-in-air-gapped-environment/runtime-dependencies.png) + +In the chart above the arrows indicate whether read access, write access, or both is required. + +### JupyterLab environment dependencies + +Elyra requires access to the following dependencies when you build, export, or submit a pipeline: +- **Runtime environment**: Elyra requires access to the Kubernetes cluster where Kubeflow Pipelines or Apache Airflow is running. +- **GitHub repository or GitLab project:** For Apache Airflow Elyra requires access to the GitHub repository or GitLab project that is configured in the [runtime configuration](../user_guide/runtime-conf.html#git-type-git-type). +- **Component definitions for [custom components](../user_guide/pipeline-components.html#custom-components)**: Elyra utilizes [catalog connectors](../user_guide/pipeline-components.html#component-catalogs) to locate and load component definitions. The connectors must be able to communicate with the configured catalog, or you will not be able to submit or export pipelines. For example, if a pipeline utilizes a component that is stored in a URL component catalog, the component's URL must be accessible via an anonymous HTTP request. +- **S3-compatible cloud storage for [generic components](../user_guide/pipeline-components.html#generic-components)**: During pipeline [export](../user_guide/pipelines.html#exporting-pipelines) or [submission](../user_guide/pipelines.html#running-pipelines) Elyra uploads pipeline artifacts to an S3 bucket. These artifacts are downloaded to the pipeline runtime environment when the pipeline is executed. + +### Runtime environment dependencies + +During pipeline execution in the Kubeflow Pipelines or Apache Airflow environment access to the following dependencies is required: +- **Container registry**: All pipeline nodes are executed in containers. The runtime environment must be configured to have read access to the registries (e.g. Docker Hub) where the container images are stored that the generic and custom components are referencing. +- **Elyra runtime artifacts**: When processing pipeline nodes that are implemented using [generic components](../user_guide/pipeline-components.html#generic-components), Elyra downloads a few dependencies to the container. By default these dependencies are located in a _release-specific branch_ in the [Elyra GitHub repository](https://github.com/elyra-ai/elyra): + ``` + https://raw.githubusercontent.com/elyra-ai/elyra/master/etc/kfp/pip.conf + https://raw.githubusercontent.com/elyra-ai/elyra/master/elyra/kfp/bootstrapper.py + https://raw.githubusercontent.com/elyra-ai/elyra/master/elyra/airflow/bootstrapper.py + https://raw.githubusercontent.com/elyra-ai/elyra/master/etc/generic/requirements-elyra-py37.txt + https://raw.githubusercontent.com/elyra-ai/elyra/master/etc/generic/requirements-elyra.txt + ``` + In air-gapped environments you must store a copy of these files in a location that is accessible via an anonymous HTTP `GET` request and configure the following environment variables _in the environment where JupyterLab is running_: + - For Kubeflow Pipelines: + - `ELYRA_PIP_CONFIG_URL` (URL of `.../etc/kfp/pip.conf`) + - `ELYRA_BOOTSTRAP_SCRIPT_URL` (URL of `.../elyra/kfp/bootstrapper.py`) + - `ELYRA_REQUIREMENTS_URL_PY37` (URL of `.../etc/generic/requirements-elyra-py37.txt`) + - `ELYRA_REQUIREMENTS_URL` (URL of `.../etc/generic/requirements-elyra.txt`) + - For Apache Airflow: + - `ELYRA_BOOTSTRAP_SCRIPT_URL` (URL of `.../elyra/airflow/bootstrapper.py`) + - `ELYRA_REQUIREMENTS_URL_PY37` (URL of `.../etc/generic/requirements-elyra-py37.txt`) + - `ELYRA_REQUIREMENTS_URL` (URL of `.../etc/generic/requirements-elyra.txt`) +- **S3-compatible cloud storage for [generic components](../user_guide/pipeline-components.html#generic-components)**: When processing pipeline nodes that are implemented using [generic components](../user_guide/pipeline-components.html#generic-components), Elyra downloads the pipeline artifacts that were uploaded when the pipeline was exported or submitted. \ No newline at end of file