Skip to content

Commit

Permalink
Don't host chart dependencies on the "okteto" DockerHub organization
Browse files Browse the repository at this point in the history
  • Loading branch information
pchico83 committed Oct 22, 2024
1 parent 1b51454 commit aadf34b
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 41 deletions.
2 changes: 1 addition & 1 deletion sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ module.exports = {
'self-hosted/manage/buildkit-high-performance',
'self-hosted/manage/backup',
'self-hosted/manage/custom-resource-definitions',
'self-hosted/manage/airgap',
'self-hosted/manage/air-gapped',
'self-hosted/manage/troubleshooting',
'self-hosted/manage/diagnostics',
'self-hosted/manage/uninstall-okteto',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
---
title: AirGap Networks
description: Installing Okteto in AirGap Networks
sidebar_label: AirGap Networks
id: airgap
title: Air-Gapped Networks
description: Installing Okteto in Air-Gapped Networks Environments
sidebar_label: Air-Gapped Networks
id: air-gapped
---

import variables from '../../variables.json';
import CodeBlock from '@theme/CodeBlock';
import TiersList from "@theme/TiersList";

# AirGap Networks<TiersList tiers="Enterprise Self-Hosted" />

Okteto works on AirGap Networks, but it requires custom configuration.
This guide has been crafted to help you overcome these hurdles, but we encourage you to [talk to us](https://www.okteto.com/get-demo/) to guide you during the installation.
# Air-Gapped Networks Environments<TiersList tiers="Enterprise Self-Hosted" />

Okteto works in air-gapped network environments, but will require some custom configuration.
This guide has been crafted to help you with your air-gapped installation, but we recommend that you [reach out to our team](https://support.okteto.com/hc/en-us) to discuss your requirements and scenarios.

## Disable Okteto Telemetry

Expand All @@ -27,6 +26,18 @@ telemetry:
When you disable our telemetry, Okteto CLI analytics for all your developers are automatically disabled.
## Use Your Own Ingress Controller (optional)
By default, Okteto deploys [NGINX Ingress Controller](https://kubernetes.github.io/ingress-nginx/) to expose the Okteto Control Plane and the applications managed by Okteto.
Our NGINX Ingress Controller is usually exposed in a dedicated Load Balancer.
Refer to [this community guide](https://community.okteto.com/t/how-do-i-configure-my-own-ingress-controller/887) for detailed instructions on disabling the installation of our Nginx Ingress Controller and exposing Okteto behind your own Ingress Controller.
## Install Okteto without a Wildcard Certificate (optional)
Our default installation uses a [WildCard Certificate](self-hosted/install/certificates/index.mdx) to expose the Okteto Control Plane and the applications managed by Okteto.
If wildcard certificates are not allowed in your organization, follow this guide to [install Okteto without a wildcard certificate](https://community.okteto.com/t/how-do-i-install-okteto-without-a-wildcard-certificate/796).
## Host Images in your Private Registry
By default, all the images needed to deploy the Okteto Platform, and the images used by the Okteto CLI, are hosted in DockerHub.
Expand All @@ -37,20 +48,19 @@ If you need to host our images in your Private Registry, you need to follow thes
To simplify this process, we recommend to use the same repository name and tags in your Private Registry.
:::info
Okteto doesn't support `imagePullSecrets`, your cluster must be configured to have access to your Private Registry,
This guide assumes that your cluster nodes have pull access to your private container registry. If that's not the case, please follow your infrastructure provider's instructions on how to do it
:::
For the Okteto Chart installation, these are the images you need to push to your Private Registry:
For the Okteto Chart {variables.chartVersion} installation, these are the images you need to push to your Private Registry:
- **okteto/backend:{variables.chartVersion}**
- **okteto/frontend:{variables.chartVersion}**
- **okteto/buildkit:{variables.chartVersion}**
- **okteto/buildkit:{variables.chartVersion}-rootless**
- **okteto/registry:{variables.chartVersion}**
- **okteto/pipeline-installer:{variables.chartVersion}**
- **okteto/pipeline-runner:{variables.chartVersion}**
- **okteto/ingress-nginx:{variables.chartVersion}**
- **okteto/reloader:{variables.chartVersion}**
- **okteto/redis:{variables.chartVersion}**
- **okteto/daemon:{variables.chartVersion}**
For each Okteto CLI version, these are the images you need to push to your Private Registry:
Expand All @@ -68,28 +78,50 @@ Once your images are ready, add the following to your Okteto Helm configuration
<CodeBlock language="yaml">
{`globals:
registry: <<your-registry-url>>
`}
</CodeBlock>
### Prepare Okteto Chart Dependencies
By default, Okteto install the following dependencies:
- [NGINX Ingress Controller](https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx)
- [Bitnami Redis](https://github.com/bitnami/charts/tree/main/bitnami/redis)
- [Stakater Reloader](https://github.com/stakater/Reloader/tree/master/deployments/kubernetes/chart/reloader)
The three of them are optional:
- [Disable NGINX](#optional-use-your-own-ingress-controller)
- Disable redis by disabling the Resource Manager (`resourceManager.enabled: false`)
- Disable reloader (`reloader.enabled: false`). This will force you to restart pods for changes in cert and ca values and cloud secret.

ingress-nginx:
image:
image: <<your-registry-url>>/okteto/ingress-nginx
tag: ${variables.chartVersion}
For Okteto Chart {variables.chartVersion}, host the following images in your private container registry:

- **registry.k8s.io/ingress-nginx/controller-chroot:v1.11.2@sha256:21b55a2f0213a18b91612a8c0850167e00a8e34391fd595139a708f9c047e7a8**
- **ghcr.io/stakater/reloader:v1.0.119**
- **docker.io/bitnami/redis:7.4.0-debian-12-r1**

and add the following to your Okteto Helm configuration file:

<CodeBlock language="yaml">
{`ingress-nginx:
global:
image:
registry: <<your-registry-url>>

okteto-nginx:
image:
image: <<your-registry-url>>/okteto/ingress-nginx
tag: ${variables.chartVersion}
global:
image:
registry: <<your-registry-url>>

redis:
image:
registry: <<your-registry-url>>
repository: okteto/reloader
tag: ${variables.chartVersion}
global:
imageRegistry: <<your-registry-url>>

reloader:
deployment:
image:
name: <<your-registry-url>>/okteto/reloader
tag: ${variables.chartVersion}
reloader:
deployment:
image:
name: <<your-registry-url>>/okteto/reloader
`}
</CodeBlock>
Expand All @@ -101,15 +133,3 @@ Execute the following command to install/upgrade your Okteto instance:
<CodeBlock language="bash">
{`helm upgrade --install okteto okteto/okteto -f config.yaml --namespace=okteto --create-namespace --version=${variables.chartVersion}`}
</CodeBlock>

## Use Your Own Ingress Controller (optional)

By default, Okteto deploy an [NGINX Ingress Controller](https://kubernetes.github.io/ingress-nginx/) to expose the Okteto Control Plane and the applications managed by Okteto.
Our NGINX Ingress Controller is usually exposed in a dedicated Load Balancer.

Refer to [this community guide](https://community.okteto.com/t/how-do-i-configure-my-own-ingress-controller/887) for detailed instructions on disabling the installation of our Nginx Ingress Controller and exposing Okteto behind your own Ingress Controller.

## Install Okteto without a Wildcard Certificate (optional)

Our default installation uses a [WildCard Certificate](self-hosted/install/certificates/index.mdx) to expose the Okteto Control Plane and the applications managed by Okteto.
If wildcard certificates are not allowed in your organization, follow this guide to [install Okteto without a wildcard certificate](https://community.okteto.com/t/how-do-i-install-okteto-without-a-wildcard-certificate/796).

0 comments on commit aadf34b

Please sign in to comment.