Skip to content

docs(install): reorder steps to install operator before platform package#449

Merged
kvaps merged 1 commit intomainfrom
docs/install-operator-first
Mar 12, 2026
Merged

docs(install): reorder steps to install operator before platform package#449
kvaps merged 1 commit intomainfrom
docs/install-operator-first

Conversation

@sircthulhu
Copy link
Collaborator

@sircthulhu sircthulhu commented Mar 12, 2026

Summary

  • Reorder installation steps on the platform installation guide and tutorial to install the Cozystack operator first, then prepare and apply the Platform Package
  • Aligns these two pages with the upgrade guide, Hetzner guide, Generic Kubernetes guide, and BYOP guide which already follow this order

Test plan

  • Verify the platform installation page renders correctly with the new section numbering
  • Verify the tutorial page renders correctly with the new section numbering
  • Confirm cross-references and anchor links still work

Summary by CodeRabbit

  • Documentation
    • Updated installation guides with a new operator-first approach for setting up Cozystack.
    • Added Helm-based installation instructions and configuration examples for the platform package.
    • Included new steps for monitoring installation progress and verifying setup status.

Move the Cozystack operator installation step before the platform
package preparation and application, aligning the tutorial and
platform installation guides with the upgrade guide and other
installation pages (Hetzner, Generic Kubernetes, BYOP).

Co-Authored-By: Claude <[email protected]>
Signed-off-by: Kirill Ilin <[email protected]>
@netlify
Copy link

netlify bot commented Mar 12, 2026

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 022cacf
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/69b24509f0eb970008eee94d
😎 Deploy Preview https://deploy-preview-449--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 12, 2026

📝 Walkthrough

Walkthrough

The installation documentation has been restructured to replace a direct package-based setup with an operator-driven workflow. Changes introduce Helm-based Cozystack operator installation, reorganize step numbering, add readiness check commands, and consolidate previously scattered installation guidance.

Changes

Cohort / File(s) Summary
Installation Documentation Updates
content/en/docs/v1/getting-started/install-cozystack.md, content/en/docs/v1/install/cozystack/platform.md
Restructured installation workflow from direct package application to operator-driven approach. Adds Helm-based operator installation steps, introduces monitoring commands (kubectl get hr -A, kubectl logs), reorganizes section numbering from 1.x to 2.x scheme, consolidates Talos-specific guidance, and clarifies platform package preparation and application phases.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 Hark! A new operator path appears,
Helm installs with crystal clarity and cheer,
Platform packages dance in ordained sequence,
Monitoring steps ensure smooth benevolence,
The Cozystack journey, now operator-led! 🎩✨

🚥 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 title clearly and specifically describes the main change: reordering installation steps to install the Cozystack operator before the platform package.
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 docs/install-operator-first

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.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors the Cozystack installation documentation to improve clarity and consistency across various guides. The primary goal is to ensure that users install the Cozystack operator first, which manages the platform package lifecycle, before proceeding with the platform package configuration and application. This logical reordering streamlines the installation process and provides a more coherent user experience.

Highlights

  • Documentation Reordering: The installation steps in the install-cozystack.md tutorial and platform.md guide have been reordered to prioritize the installation of the Cozystack operator before preparing and applying the Platform Package.
  • Consistency Across Guides: This change aligns the platform installation documentation with existing guides (upgrade, Hetzner, Generic Kubernetes, BYOP) that already follow the operator-first installation order.
  • Operator Installation Details: Detailed instructions for installing the Cozystack operator via Helm, including specific commands and versioning, have been added to the initial steps of both affected documents. The platform guide also includes instructions for non-Talos OS installations.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • content/en/docs/v1/getting-started/install-cozystack.md
    • Reordered the main installation steps to install the Cozystack operator before preparing and applying the Platform Package.
    • Moved and expanded the Cozystack operator installation instructions to the first step, including Helm commands.
    • Adjusted section headings and numbering to reflect the new order.
    • Removed a redundant section for operator installation.
    • Updated a cross-reference for the dashboard access step from 'step 1' to 'step 2'.
    • Cleaned up minor formatting inconsistencies (extra spaces/newlines).
  • content/en/docs/v1/install/cozystack/platform.md
    • Reordered the main installation steps to install the Cozystack operator before defining and applying the Platform Package.
    • Moved and expanded the Cozystack operator installation instructions to the first step, including Helm commands and specific guidance for non-Talos OS installations.
    • Adjusted section headings and numbering to reflect the new order.
    • Removed a redundant section for operator installation.
    • Updated text regarding PackageSource verification.
    • Cleaned up minor formatting inconsistencies (extra spaces/newlines).
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@sircthulhu sircthulhu marked this pull request as ready for review March 12, 2026 04:47
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the installation documentation to present the steps in a more logical order: installing the operator first, followed by configuring and applying the platform package. The changes are consistent across both the tutorial and the detailed installation guide, improving clarity for users. I have one minor suggestion to improve the wording in an informational alert.

{{% alert color="info" %}}
The Package name **must** be `cozystack.cozystack-platform` to match the PackageSource created by the installer.
After installing operator you can verify available PackageSources with `kubectl get packagesource`.
You can verify available PackageSources with `kubectl get packagesource`.
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

While the operator is indeed installed in the previous step, removing the context of when to run this command makes the sentence a bit abrupt. To improve clarity, consider rephrasing to explain the purpose of running this command.

Suggested change
You can verify available PackageSources with `kubectl get packagesource`.
You can verify that the PackageSource is available with `kubectl get packagesource`.

Copy link
Contributor

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
content/en/docs/v1/install/cozystack/platform.md (1)

547-591: ⚠️ Potential issue | 🟠 Major

Node Public IP flow is now inconsistent with the tutorial and may be incomplete.

This page no longer patches ingresses.apps.cozystack.io ingress with spec.externalIPs, while content/en/docs/v1/getting-started/install-cozystack.md:507-519 still does. If that patch is still required, readers following only this guide will not get the EXTERNAL-IP state shown below. Please either restore that step here or remove it from the tutorial if publishing.externalIPs now propagates automatically.

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

In `@content/en/docs/v1/install/cozystack/platform.md` around lines 547 - 591, The
docs are inconsistent: this page patches the Platform Package with
publishing.externalIPs (kubectl patch packages.cozystack.io
cozystack.cozystack-platform) but no longer patches the ingress resource
(ingresses.apps.cozystack.io ingress) with spec.externalIPs while another guide
(getting-started/install-cozystack.md) still does; fix by choosing one approach
and making both pages consistent — either restore the kubectl patch that sets
spec.externalIPs on the ingress resource (ingresses.apps.cozystack.io ingress)
here so the EXTERNAL-IP output matches the example, or remove the ingress
spec.externalIPs patch from the other tutorial and update its text to state that
publishing.externalIPs on the cozystack package propagates the external IPs
automatically; update the text and any example outputs to match the chosen
behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/en/docs/v1/install/cozystack/platform.md`:
- Around line 32-52: The intro paragraph under the "Installing on non-Talos OS"
section is still Talos-specific and must be broadened: update the opening
sentence that currently claims the step is "for clusters installed and
configured on Talos Linux nodes" to a generic phrasing that explains this
subsection covers installations on non-Talos systems (e.g., "If your cluster is
not running Talos Linux" or "For non-Talos Kubernetes distributions"); keep the
existing heading "Installing on non-Talos OS" and the helm install example (the
--set cozystackOperator.variant=generic and --set cozystack.apiServerHost flags)
unchanged, and ensure the introductory line clearly directs readers from the
generic Kubernetes guide to this subsection without referencing Talos-specific
features.

---

Outside diff comments:
In `@content/en/docs/v1/install/cozystack/platform.md`:
- Around line 547-591: The docs are inconsistent: this page patches the Platform
Package with publishing.externalIPs (kubectl patch packages.cozystack.io
cozystack.cozystack-platform) but no longer patches the ingress resource
(ingresses.apps.cozystack.io ingress) with spec.externalIPs while another guide
(getting-started/install-cozystack.md) still does; fix by choosing one approach
and making both pages consistent — either restore the kubectl patch that sets
spec.externalIPs on the ingress resource (ingresses.apps.cozystack.io ingress)
here so the EXTERNAL-IP output matches the example, or remove the ingress
spec.externalIPs patch from the other tutorial and update its text to state that
publishing.externalIPs on the cozystack package propagates the external IPs
automatically; update the text and any example outputs to match the chosen
behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 77ad4117-22e3-47a9-a9c0-f527b6e66e9f

📥 Commits

Reviewing files that changed from the base of the PR and between 70f55b3 and 022cacf.

📒 Files selected for processing (2)
  • content/en/docs/v1/getting-started/install-cozystack.md
  • content/en/docs/v1/install/cozystack/platform.md

Comment on lines +32 to +52
### Installing on non-Talos OS

By default, the Cozystack operator is configured to use the [KubePrism](https://www.talos.dev/latest/kubernetes-guides/configuration/kubeprism/)
feature of Talos Linux, which allows access to the Kubernetes API via a local address on the node.

If you're installing Cozystack on a system other than Talos Linux, set the operator variant during installation:

```bash
helm upgrade --install cozystack oci://ghcr.io/cozystack/cozystack/cozy-installer \
--version X.Y.Z \
--namespace cozy-system \
--create-namespace \
--set cozystackOperator.variant=generic \
--set cozystack.apiServerHost=<YOUR_API_SERVER_IP> \
--set cozystack.apiServerPort=6443
```

Replace `<YOUR_API_SERVER_IP>` with the internal IP address of your Kubernetes API server (IP only, without protocol or port).

For a complete guide on deploying Cozystack on generic Kubernetes distributions, see [Deploying Cozystack on Generic Kubernetes]({{% ref "/docs/v1/install/kubernetes/generic" %}}).

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Broaden the page intro to match the new non-Talos path.

This new subsection makes the guide applicable beyond Talos, but the opening text still says this step is for clusters “installed and configured on Talos Linux nodes.” That contradiction will confuse readers arriving here from the generic Kubernetes path.

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

In `@content/en/docs/v1/install/cozystack/platform.md` around lines 32 - 52, The
intro paragraph under the "Installing on non-Talos OS" section is still
Talos-specific and must be broadened: update the opening sentence that currently
claims the step is "for clusters installed and configured on Talos Linux nodes"
to a generic phrasing that explains this subsection covers installations on
non-Talos systems (e.g., "If your cluster is not running Talos Linux" or "For
non-Talos Kubernetes distributions"); keep the existing heading "Installing on
non-Talos OS" and the helm install example (the --set
cozystackOperator.variant=generic and --set cozystack.apiServerHost flags)
unchanged, and ensure the introductory line clearly directs readers from the
generic Kubernetes guide to this subsection without referencing Talos-specific
features.

Copy link
Member

@kvaps kvaps left a comment

Choose a reason for hiding this comment

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

LGTM

@kvaps kvaps merged commit 3a6c3b7 into main Mar 12, 2026
6 checks passed
@kvaps kvaps deleted the docs/install-operator-first branch March 12, 2026 12:34
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