Skip to content

docs: add air-gapped installation guide#774

Open
Mirage20 wants to merge 4 commits into
openchoreo:mainfrom
Mirage20:issue-3577-airgap
Open

docs: add air-gapped installation guide#774
Mirage20 wants to merge 4 commits into
openchoreo:mainfrom
Mirage20:issue-3577-airgap

Conversation

@Mirage20

@Mirage20 Mirage20 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Purpose

Adds a Platform Engineer Guide page for installing OpenChoreo into a Kubernetes cluster with no internet access. It covers what to mirror, all four plane installs, the general pattern for installing modules offline with the default observability set as a worked example, and use of authenticated mirrors.

The registry overrides this page documents ship with the core v1.2.0 charts (openchoreo/openchoreo#4182) and the current observability module releases (openchoreo/community-modules#327). The full flow was validated end-to-end on an isolated cluster with no internet connectivity.

Related Issues

Related openchoreo/openchoreo#3577

Checklist

  • Updated sidebars.ts if adding a new documentation page
  • Run npm run start to preview the changes locally
  • Run npm run build to ensure the build passes without errors
  • Verified all links are working (no broken links)

This PR includes AI-generated content, written and reviewed interactively.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@Mirage20, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 41 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ba22dc5e-1e26-4706-858b-0219177742d3

📥 Commits

Reviewing files that changed from the base of the PR and between 5c12aa3 and 3a0139a.

📒 Files selected for processing (1)
  • docs/platform-engineer-guide/air-gapped-installation.mdx
📝 Walkthrough

Walkthrough

Adds a complete air-gapped installation guide covering artifact mirroring, prerequisite and plane installation, optional modules, and authenticated registries. It also adds an overview diagram, sidebar navigation, and a conditional link from the environment setup guide.

Changes

Air-Gapped Installation

Layer / File(s) Summary
Guide entry and scope
docs/platform-engineer-guide/air-gapped-installation.mdx, docs/getting-started/try-it-out/on-your-environment.mdx, sidebars.ts
Adds the guide page, defines its scope and prerequisites, links to it for offline clusters, and registers it in the Platform Setup navigation.
Artifact mirroring workflow
docs/platform-engineer-guide/air-gapped-installation.mdx, docs/platform-engineer-guide/images/air-gapped-installation-overview.drawio
Documents image, chart, and plain-file mirroring, connected-side transfer steps, completeness considerations, and the end-to-end workflow diagram.
Offline dependency and plane installation
docs/platform-engineer-guide/air-gapped-installation.mdx
Adds Helm installation commands and registry overrides for prerequisites and the control, data, workflow, and observability planes.
Module and authenticated mirror setup
docs/platform-engineer-guide/air-gapped-installation.mdx
Documents offline module installation, observability components, optional Fluent Bit logging, and registry pull-secret configuration.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested reviewers: lakshanss, vajiraprabuddhaka

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and clearly describes the main change: adding an air-gapped installation guide.
Description check ✅ Passed The description follows the required template with Purpose, Related Issues, and a completed checklist.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/platform-engineer-guide/air-gapped-installation.mdx`:
- Around line 173-186: Update the archive naming logic in both the
connected-side pull loop and air-gapped-side push loop to use a
collision-resistant, deterministic filename derived from the complete image
reference, such as a stable hash. Ensure both loops use the identical derivation
so each image maps to its own tarball and the correct artifact is pushed.
- Around line 112-138: Update the image-list generation block around the Helm
template pipeline to enable shell pipeline failure propagation with pipefail
before rendering charts. Ensure any failed helm template causes the overall
command to fail instead of producing a potentially incomplete images.txt, while
preserving the existing image extraction and sorting behavior.
- Around line 506-530: The Authenticated mirrors section only documents
Kubernetes pull secrets and uses a placeholder namespace. Add workstation login
commands for crane and optionally helm using --password-stdin, and update the
kubectl secret example to use --namespace "$NAMESPACE" instead of --namespace
<each namespace>. Keep the existing per-chart credential configuration
unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 01736d17-4036-496c-ba71-98fd6443d570

📥 Commits

Reviewing files that changed from the base of the PR and between 07a9ee1 and ba15104.

⛔ Files ignored due to path filters (1)
  • docs/platform-engineer-guide/images/air-gapped-installation-overview.svg is excluded by !**/*.svg, !**/*.svg
📒 Files selected for processing (4)
  • docs/getting-started/try-it-out/on-your-environment.mdx
  • docs/platform-engineer-guide/air-gapped-installation.mdx
  • docs/platform-engineer-guide/images/air-gapped-installation-overview.drawio
  • sidebars.ts

Comment thread docs/platform-engineer-guide/air-gapped-installation.mdx
Comment thread docs/platform-engineer-guide/air-gapped-installation.mdx
Comment thread docs/platform-engineer-guide/air-gapped-installation.mdx
Mirage20 added a commit to Mirage20/openchoreo.github.io that referenced this pull request Jul 17, 2026
Without pipefail a failed helm template still exits zero through the
pipeline and leaves a silently incomplete image list.

Suggested by CodeRabbit on openchoreo#774.

Signed-off-by: Miraj Abeysekara <miraj@wso2.com>
Mirage20 added 3 commits July 19, 2026 13:45
- New Platform Engineer Guide page covering mirroring (images, charts,
  files), DNS requirements, prerequisite and plane install overrides,
  module installs, authenticated mirrors, and upgrades
- High-level overview diagram (SVG plus editable draw.io source)
- Crosslink from the standard installation guide

The flow was validated end to end on an isolated cluster with no
internet route. References openchoreo/openchoreo#3577.

Signed-off-by: Miraj Abeysekara <miraj@wso2.com>
Without pipefail a failed helm template still exits zero through the
pipeline and leaves a silently incomplete image list.

Suggested by CodeRabbit on openchoreo#774.

Signed-off-by: Miraj Abeysekara <miraj@wso2.com>
The rc.1 snapshot was cut before the guide landed, but the charts it
documents (global.imageRegistry and global.imagePullSecrets) shipped in
v1.2.0-rc.1, so the guide applies to that version.

- Copy the guide and its overview diagram into the rc.1 snapshot
- Add the sidebar entry under Platform Setup
- Crosslink from the rc.1 standard installation guide

Signed-off-by: Miraj Abeysekara <miraj@wso2.com>
@Mirage20
Mirage20 force-pushed the issue-3577-airgap branch from 3f37481 to 5c12aa3 Compare July 19, 2026 13:14
@Mirage20
Mirage20 marked this pull request as ready for review July 20, 2026 13:51

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/platform-engineer-guide/air-gapped-installation.mdx`:
- Around line 161-201: The air-gapped push loop maps fully qualified Docker Hub
images to the wrong destination when the Helm chart renders a bare image name.
Update the image-to-destination mapping in the “Mirror the images” example to
support a per-image override or otherwise map `docker.io/library/busybox` to
`REGISTRY/busybox` when the rendered chart reference is bare, while preserving
the existing mapping for other image references.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 62790653-b93d-447b-86cc-039b039e87c4

📥 Commits

Reviewing files that changed from the base of the PR and between ba15104 and 5c12aa3.

⛔ Files ignored due to path filters (6)
  • docs/platform-engineer-guide/images/air-gapped-installation-overview.svg is excluded by !**/*.svg, !**/*.svg
  • versioned_docs/version-v1.2.0-rc.1/getting-started/try-it-out/on-your-environment.mdx is excluded by !versioned_docs/**
  • versioned_docs/version-v1.2.0-rc.1/platform-engineer-guide/air-gapped-installation.mdx is excluded by !versioned_docs/**
  • versioned_docs/version-v1.2.0-rc.1/platform-engineer-guide/images/air-gapped-installation-overview.drawio is excluded by !versioned_docs/**
  • versioned_docs/version-v1.2.0-rc.1/platform-engineer-guide/images/air-gapped-installation-overview.svg is excluded by !**/*.svg, !**/*.svg, !versioned_docs/**
  • versioned_sidebars/version-v1.2.0-rc.1-sidebars.json is excluded by !versioned_sidebars/**
📒 Files selected for processing (4)
  • docs/getting-started/try-it-out/on-your-environment.mdx
  • docs/platform-engineer-guide/air-gapped-installation.mdx
  • docs/platform-engineer-guide/images/air-gapped-installation-overview.drawio
  • sidebars.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • sidebars.ts
  • docs/platform-engineer-guide/images/air-gapped-installation-overview.drawio
  • docs/getting-started/try-it-out/on-your-environment.mdx

Comment thread docs/platform-engineer-guide/air-gapped-installation.mdx
…reference

The note told users to list official images under library/ while the
push rule and the chart-rendered reference expect the registry root —
following both produced a guaranteed pull failure. The list entry now
mirrors whatever the chart renders.

Suggested by CodeRabbit on openchoreo#774.

Signed-off-by: Miraj Abeysekara <miraj@wso2.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant