Skip to content

enhance air-gapped settings section, introducing support for multiple CA certificates #231

Merged
danciaclara merged 6 commits intomasterfrom
update-k8s-version
Mar 3, 2026
Merged

enhance air-gapped settings section, introducing support for multiple CA certificates #231
danciaclara merged 6 commits intomasterfrom
update-k8s-version

Conversation

@akshat5302
Copy link
Member

@akshat5302 akshat5302 commented Mar 3, 2026

Description

This pull request updates the documentation for self-hosted Plane deployments to support v2.4.0 and improves configuration options for air-gapped Kubernetes setups. The most important changes include version bumps to v2.4.0 and enhancements to the air-gapped S3 CA certificate configuration, providing better support for multiple certificates and backward compatibility.

Type of Change

  • Documentation update

Summary by CodeRabbit

  • Documentation
    • Updated self-hosting docs for the v2.4.0 release.
    • Replaced single S3 CA secret approach with support for multiple S3 CA secrets; added migration steps and a YAML example.
    • Updated download/install URLs and default example versions to v2.4.0.
    • Clarified OpenSearch prerequisite to version 2.19 or later.

…ttings section, introducing support for multiple CA certificates via `airgapped.s3Secrets`. Deprecated single-secret configuration is still supported for backward compatibility. Added migration instructions for users transitioning from the old configuration.
@vercel
Copy link

vercel bot commented Mar 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
developer-docs Ready Ready Preview, Comment Mar 3, 2026 2:38pm

Request Review

@coderabbitai
Copy link

coderabbitai bot commented Mar 3, 2026

Warning

Rate limit exceeded

@danciaclara has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 15 minutes and 24 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 46dd33c and 500f5b4.

📒 Files selected for processing (2)
  • docs/self-hosting/methods/install-methods-commercial/kubernetes.md
  • docs/self-hosting/methods/kubernetes.md
📝 Walkthrough

Walkthrough

Bumped Plane and component version references to v2.4.0; replaced single S3 CA secret fields with an airgapped.s3Secrets list in airgapped Kubernetes docs and added migration/CA guidance; clarified OpenSearch and Podman Quadlets version requirements.

Changes

Cohort / File(s) Summary
Kubernetes & Airgapped docs
docs/self-hosting/methods/kubernetes.md, docs/self-hosting/methods/airgapped-edition-kubernetes.md
Updated Plane version references to v2.4.0. Replaced airgapped.s3SecretName/airgapped.s3SecretKey with airgapped.s3Secrets (list of {name, key}); added migration snippet, CA certificate guidance, and adjusted headings/formatting.
Podman Quadlets
docs/self-hosting/methods/podman-quadlets.md
Updated Podman Quadlets download URL and version references from v2.3.1 to v2.4.0.
Clone images & Download config
docs/self-hosting/methods/clone-docker-images.md, docs/self-hosting/methods/download-config.md
Updated example/default Plane release version strings to v2.4.0 and corrected a version example.
Govern / Advanced Search
docs/self-hosting/govern/advanced-search.md, docs/self-hosting/govern/plane-ai.md
Clarified OpenSearch prerequisite to require OpenSearch 2.19 or later (previously referenced generically as 2.x).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through docs with nimble paws,

Secrets now listed in neat little laws,
Versions rose to two point four,
Migration notes tucked by the door,
A happy rabbit cheers once more.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title directly aligns with the main change: enhancing air-gapped settings to support multiple CA certificates, which is the primary objective across the documentation updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update-k8s-version

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 and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/self-hosting/methods/kubernetes.md`:
- Line 42: The warning example for PLANE_VERSION uses "2.4.0" while the rest of
the doc uses the "v" prefixed format; update the example in the warning so
PLANE_VERSION consistently shows the same format (e.g., change the warning's
`2.4.0` to `v2.4.0`) to avoid copy/paste ambiguity and ensure uniformity across
the document (look for the PLANE_VERSION environment variable example and the
warning text to update).
- Around line 137-144: The closing Markdown code fence for the YAML snippet is
malformed due to a trailing pipe character; locate the YAML block (the
airgapped: ... s3Secrets: ... snippet) and replace the erroneous closing line
that contains "``` |" with a proper standalone closing triple-backtick line
"```" so the code fence closes correctly and Prettier/Markdown rendering no
longer fails.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2cfc0e4 and 135e1ff.

📒 Files selected for processing (2)
  • docs/self-hosting/methods/kubernetes.md
  • docs/self-hosting/methods/podman-quadlets.md

Copy link

@coderabbitai coderabbitai bot left a comment

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 the current code and only fix it if needed.

Inline comments:
In `@docs/self-hosting/methods/airgapped-edition-kubernetes.md`:
- Around line 91-95: The YAML example under s3Secrets has inconsistent list
indentation causing Prettier CI failures; fix by normalizing to 2-space nesting
for the s3Secrets mapping and its list items (ensure each list item uses
two-space indentation and its keys like name and key are indented two spaces
beneath the dash), e.g., align the "- name: plane-s3-ca" and "- name:
plane-s3-ca-2" entries and their "key" fields consistently under s3Secrets so
Prettier formatting passes.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 135e1ff and 92cbed1.

📒 Files selected for processing (3)
  • docs/self-hosting/govern/advanced-search.md
  • docs/self-hosting/govern/plane-ai.md
  • docs/self-hosting/methods/airgapped-edition-kubernetes.md
✅ Files skipped from review due to trivial changes (2)
  • docs/self-hosting/govern/plane-ai.md
  • docs/self-hosting/govern/advanced-search.md

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
docs/self-hosting/methods/kubernetes.md (2)

121-127: Consider breaking up the long table cell description.

Line 124's description is comprehensive (~330+ characters) but quite dense. For better readability, consider moving the kubectl command example to the CA certificate configuration section below (lines 128-134) where it would naturally fit with the other guidance.

♻️ Optional refactor suggestion

Keep the table description concise:

-| airgapped.s3Secrets    |   []    |    No    | List of Kubernetes Secrets containing CA certificates to install. Each entry requires `name` (Secret name) and `key` (filename in the Secret). Example: `kubectl -n plane create secret generic plane-s3-ca --from-file=s3-custom-ca.crt=/path/to/ca.crt`. Supports multiple certs (e.g. S3 + internal CA). |
+| airgapped.s3Secrets    |   []    |    No    | List of Kubernetes Secrets containing CA certificates to install. Each entry requires `name` (Secret name) and `key` (filename in the Secret). Supports multiple certificates (e.g., S3 + internal CA). See CA certificate configuration below for setup example. |

Then add the kubectl example in the CA certificate configuration section.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/methods/kubernetes.md` around lines 121 - 127, The table
cell for airgapped.s3Secrets / airgapped.s3SecretName / airgapped.s3SecretKey is
too long—trim the table description to a concise sentence describing that
s3Secrets is the preferred list of Secrets and the other two fields are
deprecated; then move the kubectl example (the create secret command) out of the
table and insert it into the CA certificate configuration section below where CA
installation and secret usage are explained; update wording to reference
airgapped.s3Secrets as the preferred multi-cert field and note that
s3SecretName/s3SecretKey are deprecated and only used when s3Secrets is empty
(preserve that behavior note).

135-156: Clarify when to remove deprecated settings.

The migration instructions have a minor ambiguity about timing:

  • The YAML comment (line 151) says settings "can be removed after migration"
  • Step 2 (line 154) instructs users to remove them before the Helm upgrade (step 3)

This could confuse users about whether to remove the old settings before or after running the Helm upgrade.

📝 Suggested clarification

Update line 151 to match the step sequence:

-  # s3SecretName and s3SecretKey can be removed after migration
+  # Remove s3SecretName and s3SecretKey as shown in step 2 below

Or alternatively, show both configurations in the YAML example to make it clearer:

airgapped:
  enabled: true
  s3Secrets:
    - name: plane-s3-ca      # same as your previous s3SecretName
      key: s3-custom-ca.crt  # same as your previous s3SecretKey
  
  # Remove these deprecated settings:
  # s3SecretName: plane-s3-ca
  # s3SecretKey: s3-custom-ca.crt
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/methods/kubernetes.md` around lines 135 - 156, The YAML
comment about deprecated fields is inconsistent with the step sequence; update
the example so it explicitly matches Step 2/3 by either (a) changing the inline
comment next to s3Secrets to state that s3SecretName and s3SecretKey should be
removed after you perform the Helm upgrade (e.g., "Remove these deprecated
settings after upgrading your Helm release"), or (b) include both the new
s3Secrets block and the deprecated s3SecretName/s3SecretKey values commented out
with a clear note "Remove these deprecated settings after upgrade"; ensure
references to s3Secrets, s3SecretName, and s3SecretKey are used so readers
understand which keys to remove.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/self-hosting/methods/kubernetes.md`:
- Around line 121-127: The table cell for airgapped.s3Secrets /
airgapped.s3SecretName / airgapped.s3SecretKey is too long—trim the table
description to a concise sentence describing that s3Secrets is the preferred
list of Secrets and the other two fields are deprecated; then move the kubectl
example (the create secret command) out of the table and insert it into the CA
certificate configuration section below where CA installation and secret usage
are explained; update wording to reference airgapped.s3Secrets as the preferred
multi-cert field and note that s3SecretName/s3SecretKey are deprecated and only
used when s3Secrets is empty (preserve that behavior note).
- Around line 135-156: The YAML comment about deprecated fields is inconsistent
with the step sequence; update the example so it explicitly matches Step 2/3 by
either (a) changing the inline comment next to s3Secrets to state that
s3SecretName and s3SecretKey should be removed after you perform the Helm
upgrade (e.g., "Remove these deprecated settings after upgrading your Helm
release"), or (b) include both the new s3Secrets block and the deprecated
s3SecretName/s3SecretKey values commented out with a clear note "Remove these
deprecated settings after upgrade"; ensure references to s3Secrets,
s3SecretName, and s3SecretKey are used so readers understand which keys to
remove.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 92cbed1 and 943d164.

📒 Files selected for processing (5)
  • docs/self-hosting/methods/airgapped-edition-kubernetes.md
  • docs/self-hosting/methods/clone-docker-images.md
  • docs/self-hosting/methods/download-config.md
  • docs/self-hosting/methods/install-methods-commercial/kubernetes.md
  • docs/self-hosting/methods/kubernetes.md
✅ Files skipped from review due to trivial changes (2)
  • docs/self-hosting/methods/clone-docker-images.md
  • docs/self-hosting/methods/download-config.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/self-hosting/methods/airgapped-edition-kubernetes.md

@danciaclara danciaclara merged commit 28f2068 into master Mar 3, 2026
5 checks passed
@danciaclara danciaclara deleted the update-k8s-version branch March 3, 2026 14:39
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.

2 participants