Skip to content

docs: OCI Pull/Push Doc Revision #109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@
* [Connect SpringBoot with Mysql Database](user-guide/use-cases/connect-springboot-with-mysql-database.md)
* [Connect Expressjs With Mongodb Database](user-guide/use-cases/connect-expressjs-with-mongodb-database.md)
* [Connect Django With Mysql Database](user-guide/use-cases/connect-django-with-mysql-database.md)
* [Pull Helm Charts from OCI Registry](user-guide/use-cases/oci-pull.md)
* [Deploying Software on Air-gapped Environment](../docs/user-guide/use-cases/airgapped-app-deployment.md)
* [Telemetry Overview](user-guide/telemetry.md)
* [Devtron on Graviton](reference/graviton.md)
* [Release Notes](https://github.com/devtron-labs/devtron/releases)
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ This section expects four inputs from you:

| Setting | Description | Options |
| ----------- | ---------------------------------------------------------- | ------------------------- |
| Environment | Select the environment where you want to deploy your application | (List of available environments) |
| Environment | Select the environment where you want to deploy your application. | (List of available environments) |
| Namespace | Automatically populated based on the selected environment | Not Applicable |
| Trigger | When to execute the deployment pipeline | **Automatic**: Deployment triggers automatically when a new image completes the previous stage (build pipeline or another deployment pipeline) <br /> **Manual**: Deployment is not initiated automatically. You can trigger deployment with a desired image. |
| Deployment Approach | How to deploy the application | **Helm** or **GitOps** <br /> Refer [GitOps](../../global-configurations/gitops.md) |
Expand All @@ -44,7 +44,7 @@ This section expects four inputs from you:
In case you are choosing an [isolated environment](../../global-configurations/cluster-and-environments.md#add-isolated-cluster) for deployment, you will get two additional options to choose from in the 'Deploy to Environment' window ([check snapshot](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/use-cases/oci-push/create-cd2.jpg)):
* **Do not push** - A link to download the helm package will be available after the deployment. However, it will not push the helm package to the OCI registry.
* **Push to registry** - This will generate and [push the helm package to the OCI registry](../../global-configurations/container-registries.md#push-helm-packages). Upon selecting this option, you will get two more fields:
* **Registry** - Choose the OCI registry to which the helm chart package must be pushed. Only those registries that have `Push helm packages` enabled will be shown in the dropdown.
* **Registry** - Choose the OCI registry to which the helm chart package must be pushed. Only those registries that have [Push helm packages](../../global-configurations/container-registries.md#push-helm-packages) enabled will be shown in the dropdownChoose the OCI registry to which the helm chart package must be pushed. Only those registries that have [Push helm packages](../../global-configurations/container-registries.md#push-helm-packages) enabled will be shown in the dropdown.
* **Repository** - Enter the repository name. You can find the username from your registry provider account (e.g., Docker Hub).

{% endhint %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,13 @@ To assign a category to a cluster, follow the steps below:

![Figure 10: Category Assigned](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/global-configurations/cluster-and-environments/assign-category-category-added-cluster.jpg)

{% hint style="info" %}

### Note

Refer [Get Cluster Credentials](#get-cluster-credentials) to know the process of getting Server URL and bearer token.

{% endhint %}

### Choose Method of Connection [![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/elements/EnterpriseTag.svg)](https://devtron.ai/pricing)

Expand Down
262 changes: 154 additions & 108 deletions docs/user-guide/global-configurations/container-registries.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/user-guide/plugins/copy-container-image.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ The plugin can be used at post CI, pre-CD, and post-CD. Moreover, you can also [

![](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/creating-application/workflow-cd-pipeline/image-destination.jpg)

* **registry-name** is the name you gave to your container registry while adding it in [Global Configuration → OCI/Container Registry](../global-configurations/container-registries.md#add-container-registry).
* **registry-name** is the name you gave to your container registry while adding it in [Global Configuration → OCI/Container Registry](../global-configurations/container-registries.md#add-an-oci-registry).

* **user-name** is the your account name registered with you container registry, e.g., DockerHub.

Expand Down
2 changes: 2 additions & 0 deletions docs/user-guide/use-cases/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ In this comprehensive guide, you will find a wide range of use cases, illustrati
[Connect Expressjs With Mongodb Database](connect-expressjs-with-mongodb-database.md)

[Connect Django With Mysql Database](connect-django-with-mysql-database.md)

[Deploying Software on Air-gapped Environment](airgapped-app-deployment.md)
39 changes: 39 additions & 0 deletions docs/user-guide/use-cases/airgapped-app-deployment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Deploying Software to Air-Gapped Environments with Devtron

## Problem Statement

Industries such as healthcare, banking, and finance, have regulations that require certain data to be stored and processed in air-gapped environments. Air-gapped environments are more secure and since they are not exposed to the public, they are less vulnerable to attacks. However, this isolation brings challenges when it comes to receiving and deploying software updates, security patches, bug fixes which generally depend on Internet availability.

Devtron ensures reliable delivery of software updates regardless of whether your air-gapped environment has Internet access or not. By using Devtron’s OCI push/pull features and helm package generation, vendors and clients can overcome the challenges posed by air-gapped environments

---

## How Devtron Helps Solve the Problem:

### Scenario 1: Air-Gapped Cluster has access to OCI registry

In cases where the air-gapped cluster gets controlled access to the Internet, Devtron's OCI push/pull feature helps in delivering your software via OCI registry.

1. **Vendor Action:**

- The vendor uses Devtron to generate and [push Helm package](../global-configurations/container-registries.md#push-helm-packages) to an OCI registry (accessible to both vendor and client) by deploying to an [isolated cluster](../creating-application/workflow/cd-pipeline.md#deploying-to-an-isolated-environment).

2. **Client Action:**
- The client can install the helm package from the OCI registry using their existing deployment tools, or use Devtron to [pull the Helm package](../global-configurations/container-registries.md#use-as-chart-repository) from the OCI registry to their [Chart Store](../deploy-chart/README.md).
- Once the Helm package is pulled, it [appears in the Chart Store](../deploy-chart/README.md#fetch-and-populate-charts), allowing easy deployment to the air-gapped environment.


### Scenario 2: Air-Gapped Cluster has no Internet Access

In fully air-gapped environments with no Internet access, the vendor and client may rely on physical transfer of Helm packages. Devtron facilitates this as follows:

1. **Vendor Action:**
- Similar to [Scanario 1](#scenario-1-air-gapped-cluster-has-access-to-oci-registry), the vendor generates a helm package by deploying the application to an [isolated cluster](../global-configurations/cluster-and-environments.md#add-isolated-cluster).
- Since the client has no access to the Internet, the vendor need not push it to the OCI registry but rather download the generated Helm package either from [App Details](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/use-cases/oci-push/app-details-page.jpg) or [Deployment History](https://devtron-public-asset.s3.us-east-2.amazonaws.com/images/use-cases/oci-push/deployment-history-page.jpg) page of the app in Devtron.
- The Helm package (available in .tgz format) is handed over by the vendor to the client via a portable storage device (e.g., USB drive).

2. **Client Action:**
- The client manually uploads the Helm package to their air-gapped cluster by mounting the storage device.
- The client deploys the package to the environment using their deployment tools, CLI, or [Cluster Terminal in Devtron's Resource Browser](../resource-browser/cluster-terminal.md).

This method ensures that clients using air-gapped clusters, even without Internet access, can securely receive software updates.
73 changes: 0 additions & 73 deletions docs/user-guide/use-cases/oci-pull.md

This file was deleted.