Skip to content

docs(development): describe operator-based and HelmRelease-based package patterns#413

Merged
kvaps merged 1 commit intomainfrom
docs/developer-guide-package-patterns
Feb 5, 2026
Merged

docs(development): describe operator-based and HelmRelease-based package patterns#413
kvaps merged 1 commit intomainfrom
docs/developer-guide-package-patterns

Conversation

@kvaps
Copy link
Member

@kvaps kvaps commented Feb 5, 2026

Summary

  • Expand the Developer Guide to document the two architectural patterns
    used for apps and extra packages: operator-based (CRD) and HelmRelease-based (Flux)
  • Clarify the role of system packages as home for both operators and
    upstream Helm charts for operator-less applications
  • Add concrete examples (postgres, nats, ingress, seaweedfs, monitoring)

Test plan

  • Verify the page renders correctly with hugo serve

Summary by CodeRabbit

Release Notes

  • Documentation
    • Expanded development documentation with detailed explanations of system architecture patterns, operator lifecycle management, Helm chart deployment approaches, and FluxCD-driven workflows for improved clarity.

…age patterns

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
@netlify
Copy link

netlify bot commented Feb 5, 2026

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 0606540
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/6984ee05b6f0150008272639
😎 Deploy Preview https://deploy-preview-413--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 Feb 5, 2026

📝 Walkthrough

Walkthrough

Expands the System and Apps documentation in development.md with a two-pattern taxonomy for operators and deployments. Adds detailed examples of operator-based and Helm/FluxCD-based approaches, clarifies deployment patterns, and introduces parallel Extra section patterns. Net change of 47 added lines and 4 removed lines.

Changes

Cohort / File(s) Summary
Documentation Updates
content/en/docs/development.md
Replaces concise component notes with expanded two-pattern taxonomy for operators (full lifecycle management) and Helm/FluxCD-based deployments. Adds concrete directory examples, clarifies security/validation flows, and documents parallel patterns for apps and extras.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~8 minutes

Poem

🐰 Documentation blooms with tales untold,
Operators dance and patterns unfold,
FluxCD weaves through every line,
Two paths emerge, both bright and fine!

🚥 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 accurately summarizes the main change: expanding documentation to describe two architectural patterns (operator-based and HelmRelease-based) for packages in the development guide.
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/developer-guide-package-patterns

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 @kvaps, 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 significantly enhances the developer documentation by providing a clearer and more detailed explanation of how applications and extra packages are structured and deployed within the system. It distinguishes between operator-driven and FluxCD-managed HelmRelease patterns, offering a foundational understanding for developers working with these components.

Highlights

  • Documentation Expansion: The Developer Guide has been expanded to thoroughly document the two primary architectural patterns used for applications and extra packages: operator-based (CRD) and HelmRelease-based (Flux).
  • System Package Clarification: The role of system packages is clarified, detailing their function as a home for both dedicated operators and upstream Helm charts for applications without operators.
  • Concrete Examples: New concrete examples have been added for both architectural patterns, including postgres, nats, ingress, seaweedfs, and monitoring, to illustrate their implementation.

🧠 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/development.md
    • Updated the 'system' package description to explicitly categorize its components into 'Operators' and 'Upstream Helm charts'.
    • Introduced detailed sections for 'Operator-based pattern' and 'HelmRelease-based pattern' within the 'Apps' documentation, complete with code examples.
    • Added a note indicating that 'extra' packages adhere to the same architectural patterns as 'apps'.
Activity
  • The pull request was created by kvaps with the title 'docs(development): describe operator-based and HelmRelease-based package patterns' and a summary outlining the documentation expansion, clarification of system package roles, and inclusion of concrete examples. A test plan to verify page rendering was also provided.
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.

@kvaps kvaps marked this pull request as ready for review February 5, 2026 19:23
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 provides a valuable update to the developer documentation by clearly explaining the operator-based and HelmRelease-based architectural patterns for packages. The new content is well-structured, easy to understand, and uses concrete examples, which will greatly help developers. The changes are excellent. I have one minor suggestion to improve formatting consistency.

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: 2

🤖 Fix all issues with AI agents
In `@content/en/docs/development.md`:
- Around line 107-110: Add a language specifier to the two fenced code blocks
that list directories (the block containing "packages/system/postgres-operator/ 
# Operator Helm chart" and "packages/apps/postgres/              # App chart
creates postgresql.cnpg.io/v1.Cluster CRs", and the block containing
"packages/system/nats/                # Upstream NATS Helm chart" and
"packages/apps/nats/                  # App chart creates
helm.toolkit.fluxcd.io/v2.HelmRelease") by changing the opening triple backticks
to include a language token such as "text" (e.g., ```text) so markdownlint MD040
is satisfied and rendering/syntax highlighting works correctly.
- Line 144: The sentence "Apps and extra packages use Helm for application and
are installed from the dashboard and managed by FluxCD." uses the singular
"application"; change it to the plural "applications" so it reads "Apps and
extra packages use Helm for applications and are installed from the dashboard
and managed by FluxCD." Locate this exact sentence in
content/en/docs/development.md and update the word "application" to
"applications".

Comment on lines +107 to +110
```
packages/system/postgres-operator/ # Operator Helm chart
packages/apps/postgres/ # App chart creates postgresql.cnpg.io/v1.Cluster CRs
```
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

Add language specifiers to fenced code blocks.

The fenced code blocks showing directory structure should include a language identifier for proper rendering and syntax highlighting. Consider using text or shell as the identifier.

📝 Proposed fix

For lines 107-110:

-```
+```text
 packages/system/postgres-operator/   # Operator Helm chart
 packages/apps/postgres/              # App chart creates postgresql.cnpg.io/v1.Cluster CRs

For lines 121-124:
```diff
-```
+```text
 packages/system/nats/                # Upstream NATS Helm chart
 packages/apps/nats/                  # App chart creates helm.toolkit.fluxcd.io/v2.HelmRelease

</details>

As per coding guidelines, markdownlint-cli2 flags fenced code blocks without language specifiers (MD040).


Also applies to: 121-124

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.20.0)</summary>

[warning] 107-107: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

In @content/en/docs/development.md around lines 107 - 110, Add a language
specifier to the two fenced code blocks that list directories (the block
containing "packages/system/postgres-operator/ # Operator Helm chart" and
"packages/apps/postgres/ # App chart creates
postgresql.cnpg.io/v1.Cluster CRs", and the block containing
"packages/system/nats/ # Upstream NATS Helm chart" and
"packages/apps/nats/ # App chart creates
helm.toolkit.fluxcd.io/v2.HelmRelease") by changing the opening triple backticks
to include a language token such as "text" (e.g., ```text) so markdownlint MD040
is satisfied and rendering/syntax highlighting works correctly.


</details>

<!-- fingerprinting:phantom:triton:puma -->

<!-- This is an auto-generated comment by CodeRabbit -->

Extra packages follow the same two architectural patterns as apps (operator-based or HelmRelease-based).

{{% alert color="info" %}}
Apps and extra packages use Helm for application and are installed from the dashboard and managed by FluxCD.
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

Fix grammar: use plural form.

The phrase should use "applications" (plural) for grammatical correctness.

✏️ Proposed fix
-Apps and extra packages use Helm for application and are installed from the dashboard and managed by FluxCD.
+Apps and extra packages use Helm for applications and are installed from the dashboard and managed by FluxCD.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Apps and extra packages use Helm for application and are installed from the dashboard and managed by FluxCD.
Apps and extra packages use Helm for applications and are installed from the dashboard and managed by FluxCD.
🤖 Prompt for AI Agents
In `@content/en/docs/development.md` at line 144, The sentence "Apps and extra
packages use Helm for application and are installed from the dashboard and
managed by FluxCD." uses the singular "application"; change it to the plural
"applications" so it reads "Apps and extra packages use Helm for applications
and are installed from the dashboard and managed by FluxCD." Locate this exact
sentence in content/en/docs/development.md and update the word "application" to
"applications".

@lexfrei
Copy link
Contributor

lexfrei commented Feb 5, 2026

LGTM

@kvaps kvaps merged commit 2fbc38e into main Feb 5, 2026
6 checks passed
@kvaps kvaps deleted the docs/developer-guide-package-patterns branch February 5, 2026 19:40
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