Skip to content

Conversation

@kvaps
Copy link
Member

@kvaps kvaps commented Dec 30, 2025

What this PR does

This PR splits the monolithic cozystack-resource-definitions package into 25 individual resource definition packages (*-rd) for better modularity and independent versioning.

Changes:

  • Created 25 separate *-rd packages (bootbox-rd, bucket-rd, clickhouse-rd, etcd-rd, ferretdb-rd, foundationdb-rd, http-cache-rd, info-rd, ingress-rd, kafka-rd, kubernetes-rd, monitoring-rd, mysql-rd, nats-rd, postgres-rd, rabbitmq-rd, redis-rd, seaweedfs-rd, tcp-balancer-rd, tenant-rd, virtual-machine-rd, virtualprivatecloud-rd, vm-disk-rd, vm-instance-rd, vpn-rd)
  • Removed packages/system/cozystack-resource-definitions
  • Updated platform bundles (paas-hosted, paas-full, distro-full) to reference individual -rd packages
  • Updated hack/update-crd.sh to use package-specific directories

Each *-rd package contains:

  • Chart.yaml - package metadata
  • values.yaml - default values
  • Makefile - build instructions
  • cozyrds/<name>.yaml - CRD definition
  • templates/cozyrd.yaml - Helm template

Benefits:

  • Modularity: Each resource definition is now a standalone package
  • Independent versioning: Resources can be versioned independently
  • Maintainability: Easier to update individual resources
  • Build efficiency: Parallel building of resource packages

Release note

[platform] Split cozystack-resource-definitions into 25 separate *-rd packages for better modularity and independent versioning. Each resource definition is now a standalone package.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Refactor**
  * Split the monolithic resource-definitions into many independent resource-definition packages (e.g., bootbox-rd, bucket-rd, clickhouse-rd, etc.) for modular deployment and finer-grained management
  * Updated deployment bundles to reference the new per-resource releases with uniform cozy-system namespace and CRD dependency

* **Chores**
  * Added packaging/Helm stubs (Chart.yaml, Makefile, values, templates) for each new resource-definition
* **Bug Fixes**
  * Made CRD path resolution dynamic (NAME validated before assignment)

<sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

@dosubot dosubot bot added the size:XL This PR changes 500-999 lines, ignoring generated files. label Dec 30, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 30, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

Replaces a single monolithic cozystack-resource-definitions chart with many per-resource charts (bootbox-rd … vpn-rd) and updates hack/update-crd.sh to compute CRD_DIR dynamically from the chart NAME after validation.

Changes

Cohort / File(s) Summary
Build script
hack/update-crd.sh
Move CRD_DIR assignment to use dynamic path ../../system/${NAME}-rd/cozyrds after NAME is read/validated (was a fixed ../../system/cozystack-resource-definitions/cozyrds).
Bundle manifests
packages/core/platform/bundles/{distro-full.yaml,paas-full.yaml,paas-hosted.yaml}
Remove cozystack-resource-definitions release and add many per-resource releases (bootbox-rd, bucket-rd, clickhouse-rd, etcd-rd, ferretdb-rd, foundationdb-rd, http-cache-rd, info-rd, ingress-rd, kafka-rd, kubernetes-rd, monitoring-rd, mysql-rd, nats-rd, postgres-rd, rabbitmq-rd, redis-rd, seaweedfs-rd, tcp-balancer-rd, tenant-rd, virtual-machine-rd, virtualprivatecloud-rd, vm-disk-rd, vm-instance-rd, vpn-rd) each with releaseName, chart, namespace: cozy-system, and dependsOn: [cozystack-resource-definition-crd] (some entries include extra deps).
Per-resource chart packages
packages/system/*-rd/* (23 packages, e.g. packages/system/bootbox-rd/..., .../bucket-rd/..., .../clickhouse-rd/..., etc.)
Add 23 new package directories. Each adds: Chart.yaml (apiVersion: v2, name: -rd, version placeholder), Makefile exporting NAME=<resource>-rd and NAMESPACE=cozy-system plus include ../../../scripts/package.mk, templates/cozyrd.yaml which ranges over cozyrds/* and emits --- + file content, and an empty values.yaml.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Suggested reviewers

  • klinch0

Poem

🐰 I hopped through charts and neatly spread the seeds,
From one big bundle to many tiny deeds,
Each cozyrd tucked in its own little bed,
Modular carrots for clusters to be fed,
A rabbit’s cheer for tidy, speedy feeds! 🥕

Pre-merge checks and finishing touches

✅ 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 accurately describes the main refactoring: splitting the monolithic cozystack-resource-definitions into 25 separate packages, which is clearly the primary change throughout the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings

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 refactors the platform's resource definition management by breaking down a large, single package into numerous smaller, specialized packages. This change aims to enhance the system's modularity, allowing for independent versioning and easier maintenance of individual resource definitions, while also improving build efficiency.

Highlights

  • Monolithic Package Split: The single cozystack-resource-definitions package has been refactored and split into 25 distinct, smaller *-rd packages for improved organization.
  • New Package Structure: Each of the 25 new *-rd packages now includes its own Chart.yaml, values.yaml, Makefile, CRD definition (cozyrds/<name>.yaml), and Helm template (templates/cozyrd.yaml).
  • Platform Bundle Updates: The platform bundles (paas-hosted, paas-full, distro-full) have been updated to reference these new individual resource definition packages, replacing the single monolithic reference.
  • Dynamic CRD Script: The hack/update-crd.sh script has been modified to dynamically determine the CRD directory based on the package name, adapting to the new modular structure.

🧠 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.

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 force-pushed the split-resource-definitions branch from 9c7fb8c to 7c89f31 Compare December 30, 2025 12:33
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 is a significant refactoring that splits the monolithic cozystack-resource-definitions package into 25 individual packages. This is a great step towards better modularity and independent versioning. The changes are well-executed and align with the stated goals.

My review focuses on improving the maintainability of the new structure. I've identified significant code duplication in the platform bundle YAML files and suggest using a template loop to generate the release definitions. This will make it much easier to manage the resource definition packages in the future. I've also pointed out the duplication of boilerplate files across the new packages and suggested a potential improvement using a Helm library chart, although I understand this might be a trade-off for complete package independence.

Comment on lines 65 to 214
- name: bootbox-rd
releaseName: bootbox-rd
chart: bootbox-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: bucket-rd
releaseName: bucket-rd
chart: bucket-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: clickhouse-rd
releaseName: clickhouse-rd
chart: clickhouse-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: etcd-rd
releaseName: etcd-rd
chart: etcd-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: ferretdb-rd
releaseName: ferretdb-rd
chart: ferretdb-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: foundationdb-rd
releaseName: foundationdb-rd
chart: foundationdb-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: http-cache-rd
releaseName: http-cache-rd
chart: http-cache-rd
namespace: cozy-system
dependsOn: [cilium,cozystack-controller,cozystack-resource-definition-crd]

- name: info-rd
releaseName: info-rd
chart: info-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: ingress-rd
releaseName: ingress-rd
chart: ingress-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: kafka-rd
releaseName: kafka-rd
chart: kafka-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: kubernetes-rd
releaseName: kubernetes-rd
chart: kubernetes-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: monitoring-rd
releaseName: monitoring-rd
chart: monitoring-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: mysql-rd
releaseName: mysql-rd
chart: mysql-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: nats-rd
releaseName: nats-rd
chart: nats-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: postgres-rd
releaseName: postgres-rd
chart: postgres-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: rabbitmq-rd
releaseName: rabbitmq-rd
chart: rabbitmq-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: redis-rd
releaseName: redis-rd
chart: redis-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: seaweedfs-rd
releaseName: seaweedfs-rd
chart: seaweedfs-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: tcp-balancer-rd
releaseName: tcp-balancer-rd
chart: tcp-balancer-rd
namespace: cozy-system
dependsOn: [cilium,cozystack-controller,cozystack-resource-definition-crd]

- name: tenant-rd
releaseName: tenant-rd
chart: tenant-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: virtual-machine-rd
releaseName: virtual-machine-rd
chart: virtual-machine-rd
namespace: cozy-system
dependsOn: [cilium,cozystack-controller,cozystack-resource-definition-crd]

- name: virtualprivatecloud-rd
releaseName: virtualprivatecloud-rd
chart: virtualprivatecloud-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: vm-disk-rd
releaseName: vm-disk-rd
chart: vm-disk-rd
namespace: cozy-system
dependsOn: [cilium,cozystack-controller,cozystack-resource-definition-crd]

- name: vm-instance-rd
releaseName: vm-instance-rd
chart: vm-instance-rd
namespace: cozy-system
dependsOn: [cilium,cozystack-controller,cozystack-resource-definition-crd]

- name: vpn-rd
releaseName: vpn-rd
chart: vpn-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This large block of repeated release definitions for the resource definition packages (*-rd) is difficult to maintain. Adding or removing a resource definition would require manual changes in multiple places. Since this file is processed by a templating engine (as evidenced by the syntax at the top of the file), you could use a loop to generate these definitions. This would improve maintainability, reduce the file size, and make the list of included resource definitions more explicit.

{{- $rd_names := list "bootbox" "bucket" "clickhouse" "etcd" "ferretdb" "foundationdb" "http-cache" "info" "ingress" "kafka" "kubernetes" "monitoring" "mysql" "nats" "postgres" "rabbitmq" "redis" "seaweedfs" "tcp-balancer" "tenant" "virtual-machine" "virtualprivatecloud" "vm-disk" "vm-instance" "vpn" }}
{{- range $name := $rd_names }}
- name: {{ $name }}-rd
  releaseName: {{ $name }}-rd
  chart: {{ $name }}-rd
  namespace: cozy-system
  dependsOn: [cilium,cozystack-controller,cozystack-resource-definition-crd]

{{- end }}

Comment on lines 115 to 264
- name: bootbox-rd
releaseName: bootbox-rd
chart: bootbox-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: bucket-rd
releaseName: bucket-rd
chart: bucket-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: clickhouse-rd
releaseName: clickhouse-rd
chart: clickhouse-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: etcd-rd
releaseName: etcd-rd
chart: etcd-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: ferretdb-rd
releaseName: ferretdb-rd
chart: ferretdb-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: foundationdb-rd
releaseName: foundationdb-rd
chart: foundationdb-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: http-cache-rd
releaseName: http-cache-rd
chart: http-cache-rd
namespace: cozy-system
dependsOn: [cilium,kubeovn,cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: info-rd
releaseName: info-rd
chart: info-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: ingress-rd
releaseName: ingress-rd
chart: ingress-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: kafka-rd
releaseName: kafka-rd
chart: kafka-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: kubernetes-rd
releaseName: kubernetes-rd
chart: kubernetes-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: monitoring-rd
releaseName: monitoring-rd
chart: monitoring-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: mysql-rd
releaseName: mysql-rd
chart: mysql-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: nats-rd
releaseName: nats-rd
chart: nats-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: postgres-rd
releaseName: postgres-rd
chart: postgres-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: rabbitmq-rd
releaseName: rabbitmq-rd
chart: rabbitmq-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: redis-rd
releaseName: redis-rd
chart: redis-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: seaweedfs-rd
releaseName: seaweedfs-rd
chart: seaweedfs-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: tcp-balancer-rd
releaseName: tcp-balancer-rd
chart: tcp-balancer-rd
namespace: cozy-system
dependsOn: [cilium,kubeovn,cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: tenant-rd
releaseName: tenant-rd
chart: tenant-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: virtual-machine-rd
releaseName: virtual-machine-rd
chart: virtual-machine-rd
namespace: cozy-system
dependsOn: [cilium,kubeovn,cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: virtualprivatecloud-rd
releaseName: virtualprivatecloud-rd
chart: virtualprivatecloud-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: vm-disk-rd
releaseName: vm-disk-rd
chart: vm-disk-rd
namespace: cozy-system
dependsOn: [cilium,kubeovn,cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: vm-instance-rd
releaseName: vm-instance-rd
chart: vm-instance-rd
namespace: cozy-system
dependsOn: [cilium,kubeovn,cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: vpn-rd
releaseName: vpn-rd
chart: vpn-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This large block of repeated release definitions for the resource definition packages (*-rd) is difficult to maintain. Adding or removing a resource definition would require manual changes in multiple places. Since this file is processed by a templating engine (as evidenced by the syntax at the top of the file), you could use a loop to generate these definitions. This would improve maintainability, reduce the file size, and make the list of included resource definitions more explicit.

{{- $rd_names := list "bootbox" "bucket" "clickhouse" "etcd" "ferretdb" "foundationdb" "http-cache" "info" "ingress" "kafka" "kubernetes" "monitoring" "mysql" "nats" "postgres" "rabbitmq" "redis" "seaweedfs" "tcp-balancer" "tenant" "virtual-machine" "virtualprivatecloud" "vm-disk" "vm-instance" "vpn" }}
{{- range $name := $rd_names }}
- name: {{ $name }}-rd
  releaseName: {{ $name }}-rd
  chart: {{ $name }}-rd
  namespace: cozy-system
  dependsOn: [cilium,kubeovn,cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

{{- end }}

Comment on lines 58 to 207
- name: bootbox-rd
releaseName: bootbox-rd
chart: bootbox-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: bucket-rd
releaseName: bucket-rd
chart: bucket-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: clickhouse-rd
releaseName: clickhouse-rd
chart: clickhouse-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: etcd-rd
releaseName: etcd-rd
chart: etcd-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: ferretdb-rd
releaseName: ferretdb-rd
chart: ferretdb-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: foundationdb-rd
releaseName: foundationdb-rd
chart: foundationdb-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: http-cache-rd
releaseName: http-cache-rd
chart: http-cache-rd
namespace: cozy-system
dependsOn: [cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: info-rd
releaseName: info-rd
chart: info-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: ingress-rd
releaseName: ingress-rd
chart: ingress-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: kafka-rd
releaseName: kafka-rd
chart: kafka-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: kubernetes-rd
releaseName: kubernetes-rd
chart: kubernetes-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: monitoring-rd
releaseName: monitoring-rd
chart: monitoring-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: mysql-rd
releaseName: mysql-rd
chart: mysql-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: nats-rd
releaseName: nats-rd
chart: nats-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: postgres-rd
releaseName: postgres-rd
chart: postgres-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: rabbitmq-rd
releaseName: rabbitmq-rd
chart: rabbitmq-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: redis-rd
releaseName: redis-rd
chart: redis-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: seaweedfs-rd
releaseName: seaweedfs-rd
chart: seaweedfs-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: tcp-balancer-rd
releaseName: tcp-balancer-rd
chart: tcp-balancer-rd
namespace: cozy-system
dependsOn: [cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: tenant-rd
releaseName: tenant-rd
chart: tenant-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: virtual-machine-rd
releaseName: virtual-machine-rd
chart: virtual-machine-rd
namespace: cozy-system
dependsOn: [cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: virtualprivatecloud-rd
releaseName: virtualprivatecloud-rd
chart: virtualprivatecloud-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

- name: vm-disk-rd
releaseName: vm-disk-rd
chart: vm-disk-rd
namespace: cozy-system
dependsOn: [cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: vm-instance-rd
releaseName: vm-instance-rd
chart: vm-instance-rd
namespace: cozy-system
dependsOn: [cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

- name: vpn-rd
releaseName: vpn-rd
chart: vpn-rd
namespace: cozy-system
dependsOn: [cozystack-resource-definition-crd]

Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This large block of repeated release definitions for the resource definition packages (*-rd) is difficult to maintain. Adding or removing a resource definition would require manual changes in multiple places. Since this file is processed by a templating engine (as evidenced by the syntax at the top of the file), you could use a loop to generate these definitions. This would improve maintainability, reduce the file size, and make the list of included resource definitions more explicit.

{{- $rd_names := list "bootbox" "bucket" "clickhouse" "etcd" "ferretdb" "foundationdb" "http-cache" "info" "ingress" "kafka" "kubernetes" "monitoring" "mysql" "nats" "postgres" "rabbitmq" "redis" "seaweedfs" "tcp-balancer" "tenant" "virtual-machine" "virtualprivatecloud" "vm-disk" "vm-instance" "vpn" }}
{{- range $name := $rd_names }}
- name: {{ $name }}-rd
  releaseName: {{ $name }}-rd
  chart: {{ $name }}-rd
  namespace: cozy-system
  dependsOn: [cozystack-api,cozystack-controller,cozystack-resource-definition-crd]

{{- end }}

Comment on lines +1 to +4
{{- range $path, $_ := .Files.Glob "cozyrds/*" }}
---
{{ $.Files.Get $path }}
{{- end }}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This template file is duplicated across all 25 new *-rd packages. While this approach ensures each package is standalone, it could lead to maintenance challenges. If this template needs to be updated in the future, the change will have to be applied to all 25 packages. Consider using a common Helm library chart to share this template and other boilerplate files like values.yaml. This would reduce duplication and centralize common logic, though it would introduce a dependency between the packages.

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

🧹 Nitpick comments (10)
packages/system/virtualprivatecloud-rd/values.yaml (1)

1-1: LGTM: Valid placeholder for Helm values.

The empty YAML object is a standard convention for Helm charts with no default configuration values. This pattern is consistent across all the new resource-definition packages.


Optional: Consider adding explanatory comment.

For improved maintainability, you could optionally add a comment explaining this is a placeholder:

🔎 Optional documentation enhancement
+# Empty values - configuration provided by build process
 {}
packages/system/virtual-machine-rd/values.yaml (1)

1-1: LGTM: Valid placeholder for Helm values.

The empty YAML object follows the standard Helm convention and is consistent with all other resource-definition packages in this refactor.


Optional: Consider adding explanatory comment.

🔎 Optional documentation enhancement
+# Empty values - configuration provided by build process
 {}
packages/system/clickhouse-rd/values.yaml (1)

1-1: LGTM: Valid placeholder for Helm values.

The empty YAML object is appropriate for a Helm chart with no default configuration values, consistent with the pattern across all resource-definition packages.


Optional: Consider adding explanatory comment.

🔎 Optional documentation enhancement
+# Empty values - configuration provided by build process
 {}
packages/system/vpn-rd/values.yaml (1)

1-1: LGTM: Valid placeholder for Helm values.

The empty YAML object follows Helm conventions and maintains consistency with all other resource-definition packages.


Optional: Consider adding explanatory comment.

🔎 Optional documentation enhancement
+# Empty values - configuration provided by build process
 {}
packages/system/info-rd/values.yaml (1)

1-1: LGTM: Valid placeholder for Helm values.

The empty YAML object is a standard Helm convention for charts without default configuration, matching the pattern across all resource-definition packages.


Optional: Consider adding explanatory comment.

🔎 Optional documentation enhancement
+# Empty values - configuration provided by build process
 {}
packages/system/ferretdb-rd/values.yaml (1)

1-1: LGTM: Valid placeholder for Helm values.

The empty YAML object follows Helm best practices for placeholder values and is consistent with the approach across all resource-definition packages in this refactor.


Optional: Consider adding explanatory comment.

🔎 Optional documentation enhancement
+# Empty values - configuration provided by build process
 {}
packages/system/bootbox-rd/Chart.yaml (1)

1-3: LGTM: Chart metadata follows Helm standards.

The chart structure is correct and consistent with the other resource-definition packages in this PR. The version placeholder with build-time replacement is appropriate.

Optional: Consider adding a description field for documentation

While not required, adding a description field would improve chart discoverability and documentation:

 apiVersion: v2
 name: bootbox-rd
+description: Bootbox resource definition for Cozystack
 version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process

This suggestion applies to all 25 *-rd charts being introduced in this PR.

packages/system/redis-rd/Chart.yaml (1)

1-3: Chart structure is valid; consider adding description field.

The minimal Chart.yaml is valid for a simple CRD-only package. The placeholder version with build-time replacement is an acceptable pattern.

Optional: Add description field for better documentation
 apiVersion: v2
 name: redis-rd
+description: Redis resource definition for Cozystack
 version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process

This would improve discoverability and documentation, though it's not required for functionality.

Note: These new -rd packages don't follow the umbrella pattern mentioned in the coding guidelines for packages/system/. This appears intentional for simple CRD-only packages that don't require vendored dependencies, but may be worth confirming with the team. Based on learnings, packages/system/ typically use the Helm Chart umbrella pattern.

packages/system/vm-disk-rd/Chart.yaml (1)

1-3: Chart metadata is functional and consistent.

The minimal Chart.yaml structure is valid and aligns with the pattern used across all 25 resource definition packages in this refactor.

Consider adding a description field for improved discoverability:

📋 Optional enhancement
 apiVersion: v2
 name: vm-disk-rd
+description: Virtual machine disk resource definitions for Cozystack
 version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process
packages/system/info-rd/Chart.yaml (1)

1-3: Consider adding a description field for better chart documentation.

The Chart.yaml is minimal but functional. Adding a description field would improve discoverability and documentation, especially since these are now standalone packages.

🔎 Suggested addition
 apiVersion: v2
 name: info-rd
+description: Cozystack resource definitions for Info resources
 version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2d6e50b and 7c89f31.

📒 Files selected for processing (129)
  • hack/update-crd.sh
  • packages/core/platform/bundles/distro-full.yaml
  • packages/core/platform/bundles/paas-full.yaml
  • packages/core/platform/bundles/paas-hosted.yaml
  • packages/system/bootbox-rd/Chart.yaml
  • packages/system/bootbox-rd/Makefile
  • packages/system/bootbox-rd/cozyrds/bootbox.yaml
  • packages/system/bootbox-rd/templates/cozyrd.yaml
  • packages/system/bootbox-rd/values.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/bucket-rd/Makefile
  • packages/system/bucket-rd/cozyrds/bucket.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
  • packages/system/bucket-rd/values.yaml
  • packages/system/clickhouse-rd/Chart.yaml
  • packages/system/clickhouse-rd/Makefile
  • packages/system/clickhouse-rd/cozyrds/clickhouse.yaml
  • packages/system/clickhouse-rd/templates/cozyrd.yaml
  • packages/system/clickhouse-rd/values.yaml
  • packages/system/etcd-rd/Chart.yaml
  • packages/system/etcd-rd/Makefile
  • packages/system/etcd-rd/cozyrds/etcd.yaml
  • packages/system/etcd-rd/templates/cozyrd.yaml
  • packages/system/etcd-rd/values.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/ferretdb-rd/Makefile
  • packages/system/ferretdb-rd/cozyrds/ferretdb.yaml
  • packages/system/ferretdb-rd/templates/cozyrd.yaml
  • packages/system/ferretdb-rd/values.yaml
  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/foundationdb-rd/Makefile
  • packages/system/foundationdb-rd/cozyrds/foundationdb.yaml
  • packages/system/foundationdb-rd/templates/cozyrd.yaml
  • packages/system/foundationdb-rd/values.yaml
  • packages/system/http-cache-rd/Chart.yaml
  • packages/system/http-cache-rd/Makefile
  • packages/system/http-cache-rd/cozyrds/http-cache.yaml
  • packages/system/http-cache-rd/templates/cozyrd.yaml
  • packages/system/http-cache-rd/values.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/info-rd/Makefile
  • packages/system/info-rd/cozyrds/info.yaml
  • packages/system/info-rd/templates/cozyrd.yaml
  • packages/system/info-rd/values.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/ingress-rd/Makefile
  • packages/system/ingress-rd/cozyrds/ingress.yaml
  • packages/system/ingress-rd/templates/cozyrd.yaml
  • packages/system/ingress-rd/values.yaml
  • packages/system/kafka-rd/Chart.yaml
  • packages/system/kafka-rd/Makefile
  • packages/system/kafka-rd/cozyrds/kafka.yaml
  • packages/system/kafka-rd/templates/cozyrd.yaml
  • packages/system/kafka-rd/values.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/kubernetes-rd/Makefile
  • packages/system/kubernetes-rd/cozyrds/kubernetes.yaml
  • packages/system/kubernetes-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/values.yaml
  • packages/system/monitoring-rd/Chart.yaml
  • packages/system/monitoring-rd/Makefile
  • packages/system/monitoring-rd/cozyrds/monitoring.yaml
  • packages/system/monitoring-rd/templates/cozyrd.yaml
  • packages/system/monitoring-rd/values.yaml
  • packages/system/mysql-rd/Chart.yaml
  • packages/system/mysql-rd/Makefile
  • packages/system/mysql-rd/cozyrds/mysql.yaml
  • packages/system/mysql-rd/templates/cozyrd.yaml
  • packages/system/mysql-rd/values.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/nats-rd/Makefile
  • packages/system/nats-rd/cozyrds/nats.yaml
  • packages/system/nats-rd/templates/cozyrd.yaml
  • packages/system/nats-rd/values.yaml
  • packages/system/postgres-rd/Chart.yaml
  • packages/system/postgres-rd/Makefile
  • packages/system/postgres-rd/cozyrds/postgres.yaml
  • packages/system/postgres-rd/templates/cozyrd.yaml
  • packages/system/postgres-rd/values.yaml
  • packages/system/rabbitmq-rd/Chart.yaml
  • packages/system/rabbitmq-rd/Makefile
  • packages/system/rabbitmq-rd/cozyrds/rabbitmq.yaml
  • packages/system/rabbitmq-rd/templates/cozyrd.yaml
  • packages/system/rabbitmq-rd/values.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/redis-rd/Makefile
  • packages/system/redis-rd/cozyrds/redis.yaml
  • packages/system/redis-rd/templates/cozyrd.yaml
  • packages/system/redis-rd/values.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/seaweedfs-rd/Makefile
  • packages/system/seaweedfs-rd/cozyrds/seaweedfs.yaml
  • packages/system/seaweedfs-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/values.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/tcp-balancer-rd/Makefile
  • packages/system/tcp-balancer-rd/cozyrds/tcp-balancer.yaml
  • packages/system/tcp-balancer-rd/templates/cozyrd.yaml
  • packages/system/tcp-balancer-rd/values.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/tenant-rd/Makefile
  • packages/system/tenant-rd/cozyrds/tenant.yaml
  • packages/system/tenant-rd/templates/cozyrd.yaml
  • packages/system/tenant-rd/values.yaml
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/virtual-machine-rd/Makefile
  • packages/system/virtual-machine-rd/cozyrds/virtual-machine.yaml
  • packages/system/virtual-machine-rd/templates/cozyrd.yaml
  • packages/system/virtual-machine-rd/values.yaml
  • packages/system/virtualprivatecloud-rd/Chart.yaml
  • packages/system/virtualprivatecloud-rd/Makefile
  • packages/system/virtualprivatecloud-rd/cozyrds/virtualprivatecloud.yaml
  • packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml
  • packages/system/virtualprivatecloud-rd/values.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/vm-disk-rd/Makefile
  • packages/system/vm-disk-rd/cozyrds/vm-disk.yaml
  • packages/system/vm-disk-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/values.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/vm-instance-rd/Makefile
  • packages/system/vm-instance-rd/cozyrds/vm-instance.yaml
  • packages/system/vm-instance-rd/templates/cozyrd.yaml
  • packages/system/vm-instance-rd/values.yaml
  • packages/system/vpn-rd/Chart.yaml
  • packages/system/vpn-rd/Makefile
  • packages/system/vpn-rd/cozyrds/vpn.yaml
  • packages/system/vpn-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/values.yaml
🧰 Additional context used
📓 Path-based instructions (3)
packages/system/**

📄 CodeRabbit inference engine (AGENTS.md)

Use Helm Chart umbrella pattern with vendored upstream charts in charts/ directory

Files:

  • packages/system/foundationdb-rd/Makefile
  • packages/system/kafka-rd/values.yaml
  • packages/system/bootbox-rd/Makefile
  • packages/system/redis-rd/values.yaml
  • packages/system/postgres-rd/templates/cozyrd.yaml
  • packages/system/tcp-balancer-rd/values.yaml
  • packages/system/info-rd/Makefile
  • packages/system/tcp-balancer-rd/Makefile
  • packages/system/info-rd/templates/cozyrd.yaml
  • packages/system/etcd-rd/Makefile
  • packages/system/http-cache-rd/templates/cozyrd.yaml
  • packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/Makefile
  • packages/system/etcd-rd/values.yaml
  • packages/system/virtual-machine-rd/values.yaml
  • packages/system/postgres-rd/Makefile
  • packages/system/clickhouse-rd/templates/cozyrd.yaml
  • packages/system/virtual-machine-rd/Makefile
  • packages/system/vm-disk-rd/values.yaml
  • packages/system/kubernetes-rd/values.yaml
  • packages/system/rabbitmq-rd/Makefile
  • packages/system/http-cache-rd/values.yaml
  • packages/system/bucket-rd/values.yaml
  • packages/system/vm-disk-rd/templates/cozyrd.yaml
  • packages/system/redis-rd/Makefile
  • packages/system/ferretdb-rd/values.yaml
  • packages/system/kubernetes-rd/Makefile
  • packages/system/monitoring-rd/values.yaml
  • packages/system/ferretdb-rd/Makefile
  • packages/system/virtual-machine-rd/templates/cozyrd.yaml
  • packages/system/monitoring-rd/templates/cozyrd.yaml
  • packages/system/rabbitmq-rd/values.yaml
  • packages/system/mysql-rd/values.yaml
  • packages/system/ingress-rd/values.yaml
  • packages/system/mysql-rd/Makefile
  • packages/system/tenant-rd/Makefile
  • packages/system/vm-instance-rd/values.yaml
  • packages/system/virtualprivatecloud-rd/values.yaml
  • packages/system/vm-disk-rd/Makefile
  • packages/system/virtualprivatecloud-rd/Makefile
  • packages/system/etcd-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/templates/cozyrd.yaml
  • packages/system/kafka-rd/Chart.yaml
  • packages/system/seaweedfs-rd/values.yaml
  • packages/system/monitoring-rd/Makefile
  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/nats-rd/values.yaml
  • packages/system/postgres-rd/values.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/info-rd/values.yaml
  • packages/system/clickhouse-rd/values.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/vpn-rd/values.yaml
  • packages/system/virtualprivatecloud-rd/Chart.yaml
  • packages/system/vpn-rd/templates/cozyrd.yaml
  • packages/system/vm-instance-rd/templates/cozyrd.yaml
  • packages/system/tenant-rd/values.yaml
  • packages/system/nats-rd/Makefile
  • packages/system/ingress-rd/Makefile
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/bootbox-rd/Chart.yaml
  • packages/system/tcp-balancer-rd/templates/cozyrd.yaml
  • packages/system/vm-instance-rd/Makefile
  • packages/system/redis-rd/templates/cozyrd.yaml
  • packages/system/http-cache-rd/Makefile
  • packages/system/kafka-rd/Makefile
  • packages/system/mysql-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/templates/cozyrd.yaml
  • packages/system/postgres-rd/Chart.yaml
  • packages/system/seaweedfs-rd/Makefile
  • packages/system/clickhouse-rd/Makefile
  • packages/system/tenant-rd/templates/cozyrd.yaml
  • packages/system/rabbitmq-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/nats-rd/templates/cozyrd.yaml
  • packages/system/foundationdb-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/ferretdb-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/Chart.yaml
  • packages/system/bucket-rd/Makefile
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/rabbitmq-rd/Chart.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
  • packages/system/mysql-rd/Chart.yaml
  • packages/system/ingress-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/etcd-rd/Chart.yaml
  • packages/system/kafka-rd/templates/cozyrd.yaml
  • packages/system/clickhouse-rd/Chart.yaml
  • packages/system/http-cache-rd/Chart.yaml
  • packages/system/monitoring-rd/Chart.yaml
  • packages/system/foundationdb-rd/values.yaml
**/*.yaml

📄 CodeRabbit inference engine (AGENTS.md)

Do NOT directly edit upstream Helm charts in vendored charts directory; use proper chart vendoring mechanisms

Files:

  • packages/system/kafka-rd/values.yaml
  • packages/system/redis-rd/values.yaml
  • packages/system/postgres-rd/templates/cozyrd.yaml
  • packages/system/tcp-balancer-rd/values.yaml
  • packages/system/info-rd/templates/cozyrd.yaml
  • packages/system/http-cache-rd/templates/cozyrd.yaml
  • packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml
  • packages/system/etcd-rd/values.yaml
  • packages/system/virtual-machine-rd/values.yaml
  • packages/system/clickhouse-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/values.yaml
  • packages/system/kubernetes-rd/values.yaml
  • packages/system/http-cache-rd/values.yaml
  • packages/system/bucket-rd/values.yaml
  • packages/system/vm-disk-rd/templates/cozyrd.yaml
  • packages/system/ferretdb-rd/values.yaml
  • packages/system/monitoring-rd/values.yaml
  • packages/system/virtual-machine-rd/templates/cozyrd.yaml
  • packages/system/monitoring-rd/templates/cozyrd.yaml
  • packages/system/rabbitmq-rd/values.yaml
  • packages/system/mysql-rd/values.yaml
  • packages/system/ingress-rd/values.yaml
  • packages/system/vm-instance-rd/values.yaml
  • packages/system/virtualprivatecloud-rd/values.yaml
  • packages/system/etcd-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/templates/cozyrd.yaml
  • packages/system/kafka-rd/Chart.yaml
  • packages/system/seaweedfs-rd/values.yaml
  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/nats-rd/values.yaml
  • packages/system/postgres-rd/values.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/info-rd/values.yaml
  • packages/system/clickhouse-rd/values.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/vpn-rd/values.yaml
  • packages/system/virtualprivatecloud-rd/Chart.yaml
  • packages/system/vpn-rd/templates/cozyrd.yaml
  • packages/system/vm-instance-rd/templates/cozyrd.yaml
  • packages/system/tenant-rd/values.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/bootbox-rd/Chart.yaml
  • packages/system/tcp-balancer-rd/templates/cozyrd.yaml
  • packages/system/redis-rd/templates/cozyrd.yaml
  • packages/system/mysql-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/templates/cozyrd.yaml
  • packages/system/postgres-rd/Chart.yaml
  • packages/system/tenant-rd/templates/cozyrd.yaml
  • packages/system/rabbitmq-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/nats-rd/templates/cozyrd.yaml
  • packages/system/foundationdb-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/ferretdb-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/Chart.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/rabbitmq-rd/Chart.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
  • packages/system/mysql-rd/Chart.yaml
  • packages/system/ingress-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/etcd-rd/Chart.yaml
  • packages/system/kafka-rd/templates/cozyrd.yaml
  • packages/system/clickhouse-rd/Chart.yaml
  • packages/system/http-cache-rd/Chart.yaml
  • packages/system/monitoring-rd/Chart.yaml
  • packages/system/foundationdb-rd/values.yaml
  • packages/core/platform/bundles/distro-full.yaml
  • packages/core/platform/bundles/paas-full.yaml
  • packages/core/platform/bundles/paas-hosted.yaml
packages/core/**

📄 CodeRabbit inference engine (AGENTS.md)

Use Helm Chart umbrella pattern with vendored upstream charts in charts/ directory

Files:

  • packages/core/platform/bundles/distro-full.yaml
  • packages/core/platform/bundles/paas-full.yaml
  • packages/core/platform/bundles/paas-hosted.yaml
🧠 Learnings (9)
📓 Common learnings
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/core/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/system/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory

Applied to files:

  • packages/system/kafka-rd/Chart.yaml
  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/virtualprivatecloud-rd/Chart.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/rabbitmq-rd/Chart.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/clickhouse-rd/Chart.yaml
  • packages/system/http-cache-rd/Chart.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to **/*.yaml : Do NOT directly edit upstream Helm charts in vendored charts directory; use proper chart vendoring mechanisms

Applied to files:

  • packages/system/kafka-rd/Chart.yaml
  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/virtualprivatecloud-rd/Chart.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • hack/update-crd.sh
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/vpn-rd/Chart.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/mysql-rd/Chart.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/etcd-rd/Chart.yaml
  • packages/system/clickhouse-rd/Chart.yaml
  • packages/system/http-cache-rd/Chart.yaml
  • packages/system/monitoring-rd/Chart.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/core/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory

Applied to files:

  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/rabbitmq-rd/Chart.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/clickhouse-rd/Chart.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/apps/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory

Applied to files:

  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/clickhouse-rd/Chart.yaml
📚 Learning: 2025-07-23T09:15:09.658Z
Learnt from: lllamnyp
Repo: cozystack/cozystack PR: 1233
File: packages/system/hetzner-robotlb/charts/robotlb/templates/deployment.yaml:33-35
Timestamp: 2025-07-23T09:15:09.658Z
Learning: The `./charts/robotlb/` directory in the hetzner-robotlb package contains vendored code, and the team generally avoids modifying vendored code to maintain clean separation from upstream dependencies.

Applied to files:

  • packages/system/tenant-rd/Chart.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/clickhouse-rd/Chart.yaml
📚 Learning: 2025-07-11T06:11:25.438Z
Learnt from: lllamnyp
Repo: cozystack/cozystack PR: 1130
File: hack/e2e-apps/kubernetes.bats:101-101
Timestamp: 2025-07-11T06:11:25.438Z
Learning: In cozystack, the plural form for the Kubernetes custom resource is `kuberneteses.apps.cozystack.io`, not `kubernetes.apps.cozystack.io`. This is defined in the API schema even though it's not grammatically perfect.

Applied to files:

  • packages/system/bootbox-rd/Chart.yaml
📚 Learning: 2025-11-28T21:26:10.771Z
Learnt from: kvaps
Repo: cozystack/cozystack PR: 1671
File: packages/apps/postgres/files/versions.yaml:1-6
Timestamp: 2025-11-28T21:26:10.771Z
Learning: In packages/apps/postgres/files/versions.yaml, the version mappings are sourced from the CloudNativePG container registry (ghcr.io/cloudnative-pg/postgresql), not from PostgreSQL project releases. The versions should reflect what's actually published in the CloudNativePG registry, which is automatically fetched by the hack/update-versions.sh script.

Applied to files:

  • packages/system/postgres-rd/Chart.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to api/** : Define Kubernetes CRDs in the api directory following kubebuilder conventions

Applied to files:

  • packages/system/kubernetes-rd/Chart.yaml
🪛 checkmake (0.2.2)
packages/system/foundationdb-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/bootbox-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/info-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/tcp-balancer-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/etcd-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/vpn-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/postgres-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/virtual-machine-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/rabbitmq-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/redis-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/kubernetes-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/ferretdb-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/mysql-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/tenant-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/vm-disk-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/virtualprivatecloud-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/monitoring-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/nats-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/ingress-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/vm-instance-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/http-cache-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/kafka-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/seaweedfs-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/clickhouse-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/bucket-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

🪛 YAMLlint (1.37.1)
packages/system/postgres-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/info-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/http-cache-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/clickhouse-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/vm-disk-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/virtual-machine-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/monitoring-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/etcd-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/kubernetes-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/vpn-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/vm-instance-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/tcp-balancer-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/redis-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/mysql-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/seaweedfs-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/tenant-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/rabbitmq-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/nats-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/foundationdb-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/ferretdb-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/bucket-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/ingress-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/kafka-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build

Split the monolithic cozystack-resource-definitions package into 25
individual resource definition packages (*-rd) for better modularity
and independent versioning.

Changes:
- Create 25 separate *-rd packages (bootbox-rd, bucket-rd, clickhouse-rd,
  etcd-rd, ferretdb-rd, foundationdb-rd, http-cache-rd, info-rd,
  ingress-rd, kafka-rd, kubernetes-rd, monitoring-rd, mysql-rd, nats-rd,
  postgres-rd, rabbitmq-rd, redis-rd, seaweedfs-rd, tcp-balancer-rd,
  tenant-rd, virtual-machine-rd, virtualprivatecloud-rd, vm-disk-rd,
  vm-instance-rd, vpn-rd)
- Remove packages/system/cozystack-resource-definitions
- Update platform bundles (paas-hosted, paas-full, distro-full) to
  reference individual -rd packages instead of the monolithic package
- Update hack/update-crd.sh to use package-specific directories

Each *-rd package contains:
- Chart.yaml with package metadata
- values.yaml with default values
- Makefile for build instructions
- cozyrds/<name>.yaml with CRD definition
- templates/cozyrd.yaml with Helm template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
@kvaps kvaps force-pushed the split-resource-definitions branch from 7c89f31 to 1fc48da Compare December 30, 2025 13:00
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

♻️ Duplicate comments (3)
packages/core/platform/bundles/distro-full.yaml (1)

65-214: Consider using a loop to generate resource definition releases.

The 25 repeated release definition blocks create maintenance overhead. As previously suggested, using a Helm template loop would improve maintainability and make the list of included resources more explicit.

packages/core/platform/bundles/paas-full.yaml (1)

115-264: Consider using a loop to generate resource definition releases.

The 25 repeated release definition blocks create maintenance overhead. As previously suggested, using a Helm template loop would improve maintainability and make the list of included resources more explicit.

packages/core/platform/bundles/paas-hosted.yaml (1)

58-207: Consider using a loop to reduce repetition.

This block of 25 nearly identical resource definition releases makes maintenance more difficult. Adding, removing, or modifying resource definitions requires manual changes across multiple lines, increasing the risk of inconsistencies.

As noted in a previous review, you can leverage Helm templating to generate these entries using a loop, which would make the list more maintainable and explicit.

🔎 Example refactor using a loop
+{{- $rd_names := list "bootbox" "bucket" "clickhouse" "etcd" "ferretdb" "foundationdb" "http-cache" "info" "ingress" "kafka" "kubernetes" "monitoring" "mysql" "nats" "postgres" "rabbitmq" "redis" "seaweedfs" "tcp-balancer" "tenant" "virtual-machine" "virtualprivatecloud" "vm-disk" "vm-instance" "vpn" }}
+{{- range $name := $rd_names }}
+- name: {{ $name }}-rd
+  releaseName: {{ $name }}-rd
+  chart: {{ $name }}-rd
+  namespace: cozy-system
+  dependsOn: [cozystack-resource-definition-crd]
+
+{{- end }}
-- name: bootbox-rd
-  releaseName: bootbox-rd
-  chart: bootbox-rd
-  namespace: cozy-system
-  dependsOn: [cozystack-resource-definition-crd]
-
-- name: bucket-rd
-  releaseName: bucket-rd
-  chart: bucket-rd
-  namespace: cozy-system
-  dependsOn: [cozystack-resource-definition-crd]
-
-[... remaining 23 entries ...]
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7c89f31 and 1fc48da.

📒 Files selected for processing (129)
  • hack/update-crd.sh
  • packages/core/platform/bundles/distro-full.yaml
  • packages/core/platform/bundles/paas-full.yaml
  • packages/core/platform/bundles/paas-hosted.yaml
  • packages/system/bootbox-rd/Chart.yaml
  • packages/system/bootbox-rd/Makefile
  • packages/system/bootbox-rd/cozyrds/bootbox.yaml
  • packages/system/bootbox-rd/templates/cozyrd.yaml
  • packages/system/bootbox-rd/values.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/bucket-rd/Makefile
  • packages/system/bucket-rd/cozyrds/bucket.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
  • packages/system/bucket-rd/values.yaml
  • packages/system/clickhouse-rd/Chart.yaml
  • packages/system/clickhouse-rd/Makefile
  • packages/system/clickhouse-rd/cozyrds/clickhouse.yaml
  • packages/system/clickhouse-rd/templates/cozyrd.yaml
  • packages/system/clickhouse-rd/values.yaml
  • packages/system/etcd-rd/Chart.yaml
  • packages/system/etcd-rd/Makefile
  • packages/system/etcd-rd/cozyrds/etcd.yaml
  • packages/system/etcd-rd/templates/cozyrd.yaml
  • packages/system/etcd-rd/values.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/ferretdb-rd/Makefile
  • packages/system/ferretdb-rd/cozyrds/ferretdb.yaml
  • packages/system/ferretdb-rd/templates/cozyrd.yaml
  • packages/system/ferretdb-rd/values.yaml
  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/foundationdb-rd/Makefile
  • packages/system/foundationdb-rd/cozyrds/foundationdb.yaml
  • packages/system/foundationdb-rd/templates/cozyrd.yaml
  • packages/system/foundationdb-rd/values.yaml
  • packages/system/http-cache-rd/Chart.yaml
  • packages/system/http-cache-rd/Makefile
  • packages/system/http-cache-rd/cozyrds/http-cache.yaml
  • packages/system/http-cache-rd/templates/cozyrd.yaml
  • packages/system/http-cache-rd/values.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/info-rd/Makefile
  • packages/system/info-rd/cozyrds/info.yaml
  • packages/system/info-rd/templates/cozyrd.yaml
  • packages/system/info-rd/values.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/ingress-rd/Makefile
  • packages/system/ingress-rd/cozyrds/ingress.yaml
  • packages/system/ingress-rd/templates/cozyrd.yaml
  • packages/system/ingress-rd/values.yaml
  • packages/system/kafka-rd/Chart.yaml
  • packages/system/kafka-rd/Makefile
  • packages/system/kafka-rd/cozyrds/kafka.yaml
  • packages/system/kafka-rd/templates/cozyrd.yaml
  • packages/system/kafka-rd/values.yaml
  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/kubernetes-rd/Makefile
  • packages/system/kubernetes-rd/cozyrds/kubernetes.yaml
  • packages/system/kubernetes-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/values.yaml
  • packages/system/monitoring-rd/Chart.yaml
  • packages/system/monitoring-rd/Makefile
  • packages/system/monitoring-rd/cozyrds/monitoring.yaml
  • packages/system/monitoring-rd/templates/cozyrd.yaml
  • packages/system/monitoring-rd/values.yaml
  • packages/system/mysql-rd/Chart.yaml
  • packages/system/mysql-rd/Makefile
  • packages/system/mysql-rd/cozyrds/mysql.yaml
  • packages/system/mysql-rd/templates/cozyrd.yaml
  • packages/system/mysql-rd/values.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/nats-rd/Makefile
  • packages/system/nats-rd/cozyrds/nats.yaml
  • packages/system/nats-rd/templates/cozyrd.yaml
  • packages/system/nats-rd/values.yaml
  • packages/system/postgres-rd/Chart.yaml
  • packages/system/postgres-rd/Makefile
  • packages/system/postgres-rd/cozyrds/postgres.yaml
  • packages/system/postgres-rd/templates/cozyrd.yaml
  • packages/system/postgres-rd/values.yaml
  • packages/system/rabbitmq-rd/Chart.yaml
  • packages/system/rabbitmq-rd/Makefile
  • packages/system/rabbitmq-rd/cozyrds/rabbitmq.yaml
  • packages/system/rabbitmq-rd/templates/cozyrd.yaml
  • packages/system/rabbitmq-rd/values.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/redis-rd/Makefile
  • packages/system/redis-rd/cozyrds/redis.yaml
  • packages/system/redis-rd/templates/cozyrd.yaml
  • packages/system/redis-rd/values.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/seaweedfs-rd/Makefile
  • packages/system/seaweedfs-rd/cozyrds/seaweedfs.yaml
  • packages/system/seaweedfs-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/values.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/tcp-balancer-rd/Makefile
  • packages/system/tcp-balancer-rd/cozyrds/tcp-balancer.yaml
  • packages/system/tcp-balancer-rd/templates/cozyrd.yaml
  • packages/system/tcp-balancer-rd/values.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/tenant-rd/Makefile
  • packages/system/tenant-rd/cozyrds/tenant.yaml
  • packages/system/tenant-rd/templates/cozyrd.yaml
  • packages/system/tenant-rd/values.yaml
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/virtual-machine-rd/Makefile
  • packages/system/virtual-machine-rd/cozyrds/virtual-machine.yaml
  • packages/system/virtual-machine-rd/templates/cozyrd.yaml
  • packages/system/virtual-machine-rd/values.yaml
  • packages/system/virtualprivatecloud-rd/Chart.yaml
  • packages/system/virtualprivatecloud-rd/Makefile
  • packages/system/virtualprivatecloud-rd/cozyrds/virtualprivatecloud.yaml
  • packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml
  • packages/system/virtualprivatecloud-rd/values.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/vm-disk-rd/Makefile
  • packages/system/vm-disk-rd/cozyrds/vm-disk.yaml
  • packages/system/vm-disk-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/values.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/vm-instance-rd/Makefile
  • packages/system/vm-instance-rd/cozyrds/vm-instance.yaml
  • packages/system/vm-instance-rd/templates/cozyrd.yaml
  • packages/system/vm-instance-rd/values.yaml
  • packages/system/vpn-rd/Chart.yaml
  • packages/system/vpn-rd/Makefile
  • packages/system/vpn-rd/cozyrds/vpn.yaml
  • packages/system/vpn-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/values.yaml
✅ Files skipped from review due to trivial changes (5)
  • packages/system/rabbitmq-rd/values.yaml
  • packages/system/vpn-rd/values.yaml
  • packages/system/kafka-rd/values.yaml
  • packages/system/postgres-rd/values.yaml
  • packages/system/tenant-rd/values.yaml
🚧 Files skipped from review as they are similar to previous changes (40)
  • packages/system/virtualprivatecloud-rd/values.yaml
  • packages/system/bootbox-rd/Chart.yaml
  • packages/system/ingress-rd/values.yaml
  • packages/system/info-rd/Chart.yaml
  • packages/system/bucket-rd/Chart.yaml
  • packages/system/vm-instance-rd/values.yaml
  • packages/system/tcp-balancer-rd/Chart.yaml
  • packages/system/postgres-rd/Chart.yaml
  • packages/system/foundationdb-rd/values.yaml
  • packages/system/redis-rd/Chart.yaml
  • packages/system/vm-instance-rd/Chart.yaml
  • packages/system/etcd-rd/Chart.yaml
  • packages/system/foundationdb-rd/Chart.yaml
  • packages/system/virtualprivatecloud-rd/Chart.yaml
  • packages/system/kubernetes-rd/values.yaml
  • packages/system/http-cache-rd/Chart.yaml
  • packages/system/seaweedfs-rd/values.yaml
  • packages/system/clickhouse-rd/Chart.yaml
  • packages/system/http-cache-rd/values.yaml
  • hack/update-crd.sh
  • packages/system/virtual-machine-rd/Chart.yaml
  • packages/system/ferretdb-rd/values.yaml
  • packages/system/ferretdb-rd/Chart.yaml
  • packages/system/ingress-rd/Chart.yaml
  • packages/system/rabbitmq-rd/Chart.yaml
  • packages/system/redis-rd/values.yaml
  • packages/system/clickhouse-rd/values.yaml
  • packages/system/info-rd/values.yaml
  • packages/system/kafka-rd/Chart.yaml
  • packages/system/nats-rd/values.yaml
  • packages/system/seaweedfs-rd/Chart.yaml
  • packages/system/mysql-rd/values.yaml
  • packages/system/monitoring-rd/values.yaml
  • packages/system/bucket-rd/values.yaml
  • packages/system/tcp-balancer-rd/values.yaml
  • packages/system/mysql-rd/Chart.yaml
  • packages/system/nats-rd/Chart.yaml
  • packages/system/monitoring-rd/Chart.yaml
  • packages/system/vpn-rd/Chart.yaml
  • packages/system/vm-disk-rd/values.yaml
🧰 Additional context used
📓 Path-based instructions (3)
packages/system/**

📄 CodeRabbit inference engine (AGENTS.md)

Use Helm Chart umbrella pattern with vendored upstream charts in charts/ directory

Files:

  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/mysql-rd/Makefile
  • packages/system/ferretdb-rd/Makefile
  • packages/system/info-rd/Makefile
  • packages/system/seaweedfs-rd/Makefile
  • packages/system/etcd-rd/templates/cozyrd.yaml
  • packages/system/monitoring-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/postgres-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/templates/cozyrd.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/virtual-machine-rd/values.yaml
  • packages/system/vm-disk-rd/templates/cozyrd.yaml
  • packages/system/etcd-rd/values.yaml
  • packages/system/tcp-balancer-rd/templates/cozyrd.yaml
  • packages/system/bootbox-rd/Makefile
  • packages/system/bucket-rd/Makefile
  • packages/system/bucket-rd/templates/cozyrd.yaml
  • packages/system/clickhouse-rd/Makefile
  • packages/system/clickhouse-rd/templates/cozyrd.yaml
  • packages/system/etcd-rd/Makefile
  • packages/system/ferretdb-rd/templates/cozyrd.yaml
  • packages/system/foundationdb-rd/Makefile
  • packages/system/foundationdb-rd/templates/cozyrd.yaml
  • packages/system/http-cache-rd/Makefile
  • packages/system/http-cache-rd/templates/cozyrd.yaml
  • packages/system/info-rd/templates/cozyrd.yaml
  • packages/system/ingress-rd/Makefile
  • packages/system/ingress-rd/templates/cozyrd.yaml
  • packages/system/kafka-rd/Makefile
  • packages/system/kafka-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/Makefile
  • packages/system/kubernetes-rd/templates/cozyrd.yaml
  • packages/system/monitoring-rd/Makefile
  • packages/system/mysql-rd/templates/cozyrd.yaml
  • packages/system/nats-rd/Makefile
  • packages/system/nats-rd/templates/cozyrd.yaml
  • packages/system/postgres-rd/Makefile
  • packages/system/rabbitmq-rd/Makefile
  • packages/system/rabbitmq-rd/templates/cozyrd.yaml
  • packages/system/redis-rd/Makefile
  • packages/system/redis-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/templates/cozyrd.yaml
  • packages/system/tcp-balancer-rd/Makefile
  • packages/system/tenant-rd/Makefile
  • packages/system/tenant-rd/templates/cozyrd.yaml
  • packages/system/virtual-machine-rd/Makefile
  • packages/system/virtual-machine-rd/templates/cozyrd.yaml
  • packages/system/virtualprivatecloud-rd/Makefile
  • packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/Makefile
  • packages/system/vm-instance-rd/Makefile
  • packages/system/vm-instance-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/Makefile
**/*.yaml

📄 CodeRabbit inference engine (AGENTS.md)

Do NOT directly edit upstream Helm charts in vendored charts directory; use proper chart vendoring mechanisms

Files:

  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/etcd-rd/templates/cozyrd.yaml
  • packages/system/monitoring-rd/templates/cozyrd.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/postgres-rd/templates/cozyrd.yaml
  • packages/system/vpn-rd/templates/cozyrd.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/virtual-machine-rd/values.yaml
  • packages/system/vm-disk-rd/templates/cozyrd.yaml
  • packages/system/etcd-rd/values.yaml
  • packages/core/platform/bundles/paas-full.yaml
  • packages/system/tcp-balancer-rd/templates/cozyrd.yaml
  • packages/core/platform/bundles/distro-full.yaml
  • packages/core/platform/bundles/paas-hosted.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
  • packages/system/clickhouse-rd/templates/cozyrd.yaml
  • packages/system/ferretdb-rd/templates/cozyrd.yaml
  • packages/system/foundationdb-rd/templates/cozyrd.yaml
  • packages/system/http-cache-rd/templates/cozyrd.yaml
  • packages/system/info-rd/templates/cozyrd.yaml
  • packages/system/ingress-rd/templates/cozyrd.yaml
  • packages/system/kafka-rd/templates/cozyrd.yaml
  • packages/system/kubernetes-rd/templates/cozyrd.yaml
  • packages/system/mysql-rd/templates/cozyrd.yaml
  • packages/system/nats-rd/templates/cozyrd.yaml
  • packages/system/rabbitmq-rd/templates/cozyrd.yaml
  • packages/system/redis-rd/templates/cozyrd.yaml
  • packages/system/seaweedfs-rd/templates/cozyrd.yaml
  • packages/system/tenant-rd/templates/cozyrd.yaml
  • packages/system/virtual-machine-rd/templates/cozyrd.yaml
  • packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml
  • packages/system/vm-instance-rd/templates/cozyrd.yaml
packages/core/**

📄 CodeRabbit inference engine (AGENTS.md)

Use Helm Chart umbrella pattern with vendored upstream charts in charts/ directory

Files:

  • packages/core/platform/bundles/paas-full.yaml
  • packages/core/platform/bundles/distro-full.yaml
  • packages/core/platform/bundles/paas-hosted.yaml
🧠 Learnings (7)
📓 Common learnings
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/core/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/system/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory

Applied to files:

  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/core/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory

Applied to files:

  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
📚 Learning: 2025-07-23T09:15:09.658Z
Learnt from: lllamnyp
Repo: cozystack/cozystack PR: 1233
File: packages/system/hetzner-robotlb/charts/robotlb/templates/deployment.yaml:33-35
Timestamp: 2025-07-23T09:15:09.658Z
Learning: The `./charts/robotlb/` directory in the hetzner-robotlb package contains vendored code, and the team generally avoids modifying vendored code to maintain clean separation from upstream dependencies.

Applied to files:

  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to **/*.yaml : Do NOT directly edit upstream Helm charts in vendored charts directory; use proper chart vendoring mechanisms

Applied to files:

  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/vm-disk-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to packages/apps/** : Use Helm Chart umbrella pattern with vendored upstream charts in `charts/` directory

Applied to files:

  • packages/system/kubernetes-rd/Chart.yaml
  • packages/system/tenant-rd/Chart.yaml
  • packages/system/bucket-rd/templates/cozyrd.yaml
📚 Learning: 2025-12-25T09:45:26.524Z
Learnt from: CR
Repo: cozystack/cozystack PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-25T09:45:26.524Z
Learning: Applies to api/** : Define Kubernetes CRDs in the api directory following kubebuilder conventions

Applied to files:

  • packages/system/kubernetes-rd/Chart.yaml
🪛 checkmake (0.2.2)
packages/system/mysql-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/ferretdb-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/info-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/seaweedfs-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/bootbox-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/bucket-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/clickhouse-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/etcd-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/foundationdb-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/http-cache-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/ingress-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/kafka-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/kubernetes-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/monitoring-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/nats-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/postgres-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/rabbitmq-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/redis-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/tcp-balancer-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/tenant-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/virtual-machine-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/virtualprivatecloud-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/vm-disk-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/vm-instance-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

packages/system/vpn-rd/Makefile

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

🪛 YAMLlint (1.37.1)
packages/system/etcd-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/monitoring-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/postgres-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/vpn-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/vm-disk-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/tcp-balancer-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/bucket-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/clickhouse-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/ferretdb-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/foundationdb-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/http-cache-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/info-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/ingress-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/kafka-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/kubernetes-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/mysql-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/nats-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/rabbitmq-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/redis-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/seaweedfs-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/tenant-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/virtual-machine-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

packages/system/vm-instance-rd/templates/cozyrd.yaml

[error] 1-1: syntax error: expected the node content, but found '-'

(syntax)

🔇 Additional comments (49)
packages/system/tcp-balancer-rd/Makefile (1)

1-4: LGTM! Clean and consistent Makefile.

The Makefile correctly exports package metadata and delegates build logic to the shared package.mk script, which promotes consistency across all 25 resource definition packages.

Note: The static analysis warnings about missing phony targets (all, clean, test) can be safely ignored, as these targets are defined in the included package.mk file.

packages/system/virtual-machine-rd/values.yaml (1)

1-1: LGTM!

An empty values file is appropriate for a resource definition package that doesn't expose user-configurable parameters.

packages/system/seaweedfs-rd/Makefile (1)

1-4: LGTM! Standard pattern for rd packages.

The Makefile correctly exports the package NAME and NAMESPACE, then includes the shared packaging script. This follows the same pattern used across all other rd packages in this PR.

Note: The checkmake warnings about missing phony targets (all, clean, test) can be safely ignored—these targets are defined in the included package.mk file.

packages/system/virtualprivatecloud-rd/Makefile (1)

1-4: LGTM! Consistent pattern with shared build logic.

The Makefile correctly exports package-specific variables and delegates to the shared build script. This pattern is consistent across all 25 resource-definition packages introduced in this refactoring.

Note: The checkmake warnings about missing phony targets (all, clean, test) can be safely ignored—these targets are defined in the included package.mk script.

packages/system/redis-rd/Makefile (1)

1-4: LGTM! Follows the consistent pattern for -rd packages.

The Makefile correctly exports the package name and namespace, then delegates to the shared packaging script. This approach ensures consistency across all 25 resource definition packages.

The static analysis warnings about missing phony targets (all, clean, test) are likely false positives, as these targets are presumably defined in the included package.mk script.

packages/system/info-rd/Makefile (1)

1-4: LGTM! Clean and consistent implementation.

The Makefile follows the established pattern for resource definition packages, correctly setting the package name and namespace before delegating to the shared packaging script.

packages/system/nats-rd/Makefile (2)

1-2: LGTM!

The exported variables are correctly set and consistent with the package structure.


4-4: No issues found. The include path is correct, the shared package.mk script exists and defines all necessary phony targets (help, show, diff, apply, delete, update, image), and all 25 rd packages consistently follow the same Makefile pattern. The static analysis warnings about missing phony targets are false positives.

packages/system/postgres-rd/Makefile (2)

1-2: LGTM! Variable definitions follow the consistent pattern.

The NAME and NAMESPACE exports are correctly set for the postgres resource definition package and follow the same pattern as the other 24 -rd packages in this refactoring.


4-4: No issues found. The include statement follows the standard pattern used consistently across all 26 -rd packages in packages/system/, and the referenced script exists with the necessary targets.

packages/system/etcd-rd/values.yaml (1)

1-1: LGTM! Empty values file is appropriate.

The empty YAML object is suitable for this resource definition package, which appears to require no configurable values at the chart level.

packages/system/tenant-rd/Makefile (1)

1-4: LGTM! Standard packaging pattern.

The Makefile correctly follows the established pattern for resource-definition packages, exporting the necessary variables and including the shared packaging script.

Note: The static analysis warnings about missing phony targets are false positives—the included package.mk script provides those targets.

packages/system/bootbox-rd/Makefile (1)

1-1: LGTM! NAME correctly updated for package split.

The change from cozystack-resource-definitions to bootbox-rd aligns with the PR's objective to split the monolithic package into separate resource-definition packages.

Note: The static analysis warnings about missing phony targets are false positives—the included package.mk script provides those targets.

packages/system/tenant-rd/Chart.yaml (1)

1-3: LGTM! Standard Helm chart metadata.

The chart descriptor follows Helm conventions with appropriate placeholder versioning that will be set during the build process.

packages/system/ferretdb-rd/Makefile (1)

1-4: LGTM! Consistent with packaging pattern.

The Makefile follows the established pattern for resource-definition packages.

Note: The static analysis warnings about missing phony targets are false positives—the included package.mk script provides those targets.

packages/system/rabbitmq-rd/Makefile (1)

1-4: LGTM! Standard packaging pattern.

The Makefile correctly follows the established pattern for resource-definition packages.

Note: The static analysis warnings about missing phony targets are false positives—the included package.mk script provides those targets.

packages/system/monitoring-rd/Makefile (1)

1-4: LGTM! Consistent with packaging pattern.

The Makefile follows the established pattern for resource-definition packages.

Note: The static analysis warnings about missing phony targets are false positives—the included package.mk script provides those targets.

packages/system/etcd-rd/Makefile (1)

1-4: LGTM! Standard packaging pattern.

The Makefile correctly follows the established pattern for resource-definition packages.

Note: The static analysis warnings about missing phony targets are false positives—the included package.mk script provides those targets.

packages/system/vpn-rd/Makefile (1)

1-4: LGTM! Consistent packaging pattern.

The Makefile follows the standard pattern used across all *-rd packages, correctly exporting NAME and NAMESPACE and delegating to the shared packaging script.

Note: The checkmake warnings about missing phony targets are false positives—package.mk likely defines those targets.

packages/system/http-cache-rd/Makefile (1)

1-4: LGTM! Consistent packaging pattern.

The Makefile follows the standard pattern used across all *-rd packages, correctly exporting NAME and NAMESPACE and delegating to the shared packaging script.

Note: The checkmake warnings about missing phony targets are false positives—package.mk likely defines those targets.

packages/system/kubernetes-rd/Makefile (1)

1-4: LGTM! Consistent packaging pattern.

The Makefile follows the standard pattern used across all *-rd packages, correctly exporting NAME and NAMESPACE and delegating to the shared packaging script.

Note: The checkmake warnings about missing phony targets are false positives—package.mk likely defines those targets.

packages/system/vm-instance-rd/Makefile (1)

1-4: LGTM! Consistent packaging pattern.

The Makefile follows the standard pattern used across all *-rd packages, correctly exporting NAME and NAMESPACE and delegating to the shared packaging script.

Note: The checkmake warnings about missing phony targets are false positives—package.mk likely defines those targets.

packages/system/http-cache-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Standard Helm template for embedding CRD files.

The template correctly uses Helm's .Files.Glob and .Files.Get to dynamically inline all files from the cozyrds/ directory as a multi-document YAML stream. This pattern is consistent across all *-rd packages.

Note: The YAMLlint syntax error is a false positive—this is a Helm Go template file, not pure YAML.

packages/system/postgres-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Standard Helm template for embedding CRD files.

The template correctly uses Helm's .Files.Glob and .Files.Get to dynamically inline all files from the cozyrds/ directory as a multi-document YAML stream. This pattern is consistent across all *-rd packages.

Note: The YAMLlint syntax error is a false positive—this is a Helm Go template file, not pure YAML.

packages/system/bucket-rd/Makefile (1)

1-4: LGTM! Consistent packaging pattern.

The Makefile follows the standard pattern used across all *-rd packages, correctly exporting NAME and NAMESPACE and delegating to the shared packaging script.

Note: The checkmake warnings about missing phony targets are false positives—package.mk likely defines those targets.

packages/system/mysql-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Standard Helm template for embedding CRD files.

The template correctly uses Helm's .Files.Glob and .Files.Get to dynamically inline all files from the cozyrds/ directory as a multi-document YAML stream. This pattern is consistent across all *-rd packages.

Note: The YAMLlint syntax error is a false positive—this is a Helm Go template file, not pure YAML.

packages/system/virtualprivatecloud-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Template pattern is correct and consistent.

The Go template correctly iterates over files in cozyrds/* and concatenates them as separate YAML documents. This pattern is consistent across all the new -rd packages in this PR, which aids maintainability.

Note: The YAMLlint syntax error is a false positive—YAMLlint cannot parse Go template directives, which are expected in Helm chart templates.

packages/system/kubernetes-rd/Chart.yaml (1)

1-3: LGTM! Chart descriptor is correct.

The minimal Chart.yaml structure is appropriate for this resource definition package. The placeholder version with explanatory comment follows the documented build process.

packages/system/vpn-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Template follows consistent pattern.

The template correctly implements the multi-document YAML embedding pattern used across all new -rd packages. The YAMLlint error is a false positive for Go template syntax.

packages/system/clickhouse-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Template is correct.

Consistent with the other resource definition templates. The YAMLlint syntax error can be safely ignored.

packages/system/virtual-machine-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Template implementation is correct.

The template follows the established pattern for embedding resource definition YAML files. YAMLlint error is expected for Go templates.

packages/system/virtual-machine-rd/Makefile (1)

1-4: LGTM! Makefile follows standard pattern.

The Makefile correctly exports NAME and NAMESPACE variables and includes the shared packaging logic. This pattern is consistent across all new -rd packages.

Note: The checkmake warnings about missing phony targets are likely false positives, as package.mk typically provides these targets.

packages/system/vm-disk-rd/Chart.yaml (1)

1-3: LGTM! Chart descriptor is properly structured.

The Chart.yaml follows the standard pattern for these resource definition packages with an appropriate placeholder version.

packages/system/nats-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Template is consistent and correct.

The template properly implements the resource definition file embedding pattern. YAMLlint errors for Go template syntax are expected and can be ignored.

packages/system/info-rd/templates/cozyrd.yaml (1)

1-4: LGTM - Standard Helm template pattern.

The template correctly iterates over resource definition files in cozyrds/* and outputs them as separate YAML documents. This pattern is consistent across all the new -rd packages in this PR.

Note: The YAMLlint syntax error is a false positive—this is a Helm template with Go template syntax, not plain YAML.

packages/system/vm-instance-rd/templates/cozyrd.yaml (1)

1-4: LGTM.

Template implementation is correct and consistent with the other -rd packages.

packages/system/redis-rd/templates/cozyrd.yaml (1)

1-4: LGTM.

Template implementation is correct.

packages/system/vm-disk-rd/templates/cozyrd.yaml (1)

1-4: LGTM.

Template implementation is correct.

packages/system/kubernetes-rd/templates/cozyrd.yaml (1)

1-4: LGTM.

Template implementation is correct.

packages/system/bucket-rd/templates/cozyrd.yaml (1)

1-4: LGTM.

Template implementation is correct. The duplication concern across all 25 -rd packages has already been noted in previous review comments.

packages/system/ferretdb-rd/templates/cozyrd.yaml (1)

1-4: LGTM.

Template implementation is correct.

packages/system/seaweedfs-rd/templates/cozyrd.yaml (1)

1-4: LGTM: Standard Helm pattern for inlining resource definitions.

This template follows a consistent pattern across all *-rd packages to glob and inline YAML files from the cozyrds/ directory. The approach supports the PR's goal of modular, independently versioned resource definitions.

Note: The YAMLlint syntax error is a false positive—this is a valid Helm Go template, not pure YAML.

packages/system/mysql-rd/Makefile (1)

1-4: *LGTM: Consistent Makefile pattern across -rd packages.

The Makefile follows a clean pattern of exporting package metadata and delegating to the shared package.mk. This approach ensures consistent build behavior across all resource definition packages.

Note: The checkmake warnings about missing phony targets are false positives if package.mk defines those targets.

packages/system/monitoring-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Helm template correctly embeds CRD files.

The template follows the standard pattern for embedding multiple files as separate YAML documents. The YAMLlint syntax error is a false positive—this is a valid Helm template using Go templating syntax, not plain YAML.

packages/system/kafka-rd/Makefile (1)

1-4: LGTM! Standard packaging structure.

The Makefile follows the established pattern for resource definition packages, correctly setting package identity and including the shared build script. The checkmake warnings are false positives—required targets are defined in the included package.mk.

packages/system/tenant-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Helm template correctly embeds CRD files.

The template follows the standard pattern for embedding multiple files as separate YAML documents. The YAMLlint syntax error is a false positive—this is a valid Helm template using Go templating syntax, not plain YAML.

packages/system/rabbitmq-rd/templates/cozyrd.yaml (1)

1-4: LGTM! Helm template correctly embeds CRD files.

The template follows the standard pattern for embedding multiple files as separate YAML documents. The YAMLlint syntax error is a false positive—this is a valid Helm template using Go templating syntax, not plain YAML.

packages/system/foundationdb-rd/Makefile (1)

1-4: LGTM! Standard packaging structure.

The Makefile follows the established pattern for resource definition packages, correctly setting package identity and including the shared build script. The checkmake warnings are false positives—required targets are defined in the included package.mk.

packages/system/vm-disk-rd/Makefile (1)

1-4: LGTM! Standard packaging structure.

The Makefile follows the established pattern for resource definition packages, correctly setting package identity and including the shared build script. The checkmake warnings are false positives—required targets are defined in the included package.mk.

Comment on lines +1 to +4
export NAME=clickhouse-rd
export NAMESPACE=cozy-system

include ../../../scripts/package.mk
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 | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify that package.mk defines the standard phony targets

echo "Checking for phony targets in package.mk:"
rg -n "^\s*\.PHONY\s*:" scripts/package.mk

echo -e "\nChecking for target definitions:"
rg -n "^(all|clean|test):" scripts/package.mk

Repository: cozystack/cozystack

Length of output: 148


🏁 Script executed:

cat scripts/package.mk

Repository: cozystack/cozystack

Length of output: 1307


The assumption in the original review is incorrect—scripts/package.mk does not properly define the required phony targets.

The file uses invalid .PHONY= syntax (line 2) instead of the correct .PHONY: syntax, meaning phony targets are not declared at all. Additionally, only the clean target is defined; all and test targets are missing. The checkmake warnings are legitimate and should not be ignored. This requires fixing the .PHONY declaration syntax in scripts/package.mk and ensuring all required targets are defined.

🧰 Tools
🪛 checkmake (0.2.2)

[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

@lllamnyp lllamnyp self-assigned this Jan 2, 2026
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jan 4, 2026
@kvaps kvaps merged commit a868874 into cozystack:main Jan 4, 2026
24 checks passed
kvaps added a commit that referenced this pull request Jan 8, 2026
…te packages (#1778)

## What this PR does

This PR splits the monolithic `cozystack-resource-definitions` package
into 25 individual resource definition packages (`*-rd`) for better
modularity and independent versioning.

**Changes:**
- Created 25 separate `*-rd` packages (bootbox-rd, bucket-rd,
clickhouse-rd, etcd-rd, ferretdb-rd, foundationdb-rd, http-cache-rd,
info-rd, ingress-rd, kafka-rd, kubernetes-rd, monitoring-rd, mysql-rd,
nats-rd, postgres-rd, rabbitmq-rd, redis-rd, seaweedfs-rd,
tcp-balancer-rd, tenant-rd, virtual-machine-rd, virtualprivatecloud-rd,
vm-disk-rd, vm-instance-rd, vpn-rd)
- Removed `packages/system/cozystack-resource-definitions`
- Updated platform bundles (paas-hosted, paas-full, distro-full) to
reference individual -rd packages
- Updated `hack/update-crd.sh` to use package-specific directories

Each `*-rd` package contains:
- `Chart.yaml` - package metadata
- `values.yaml` - default values
- `Makefile` - build instructions
- `cozyrds/<name>.yaml` - CRD definition
- `templates/cozyrd.yaml` - Helm template

**Benefits:**
- **Modularity**: Each resource definition is now a standalone package
- **Independent versioning**: Resources can be versioned independently
- **Maintainability**: Easier to update individual resources
- **Build efficiency**: Parallel building of resource packages

### Release note

```release-note
[platform] Split cozystack-resource-definitions into 25 separate *-rd packages for better modularity and independent versioning. Each resource definition is now a standalone package.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Refactor**
  * Split the monolithic resource-definitions into many independent resource-definition packages (e.g., bootbox-rd, bucket-rd, clickhouse-rd, etc.) for modular deployment and finer-grained management
  * Updated deployment bundles to reference the new per-resource releases with uniform cozy-system namespace and CRD dependency

* **Chores**
  * Added packaging/Helm stubs (Chart.yaml, Makefile, values, templates) for each new resource-definition
* **Bug Fixes**
  * Made CRD path resolution dynamic (NAME validated before assignment)

<sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
kvaps added a commit that referenced this pull request Jan 8, 2026
…te packages (#1778)

## What this PR does

This PR splits the monolithic `cozystack-resource-definitions` package
into 25 individual resource definition packages (`*-rd`) for better
modularity and independent versioning.

**Changes:**
- Created 25 separate `*-rd` packages (bootbox-rd, bucket-rd,
clickhouse-rd, etcd-rd, ferretdb-rd, foundationdb-rd, http-cache-rd,
info-rd, ingress-rd, kafka-rd, kubernetes-rd, monitoring-rd, mysql-rd,
nats-rd, postgres-rd, rabbitmq-rd, redis-rd, seaweedfs-rd,
tcp-balancer-rd, tenant-rd, virtual-machine-rd, virtualprivatecloud-rd,
vm-disk-rd, vm-instance-rd, vpn-rd)
- Removed `packages/system/cozystack-resource-definitions`
- Updated platform bundles (paas-hosted, paas-full, distro-full) to
reference individual -rd packages
- Updated `hack/update-crd.sh` to use package-specific directories

Each `*-rd` package contains:
- `Chart.yaml` - package metadata
- `values.yaml` - default values
- `Makefile` - build instructions
- `cozyrds/<name>.yaml` - CRD definition
- `templates/cozyrd.yaml` - Helm template

**Benefits:**
- **Modularity**: Each resource definition is now a standalone package
- **Independent versioning**: Resources can be versioned independently
- **Maintainability**: Easier to update individual resources
- **Build efficiency**: Parallel building of resource packages

### Release note

```release-note
[platform] Split cozystack-resource-definitions into 25 separate *-rd packages for better modularity and independent versioning. Each resource definition is now a standalone package.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Refactor**
  * Split the monolithic resource-definitions into many independent resource-definition packages (e.g., bootbox-rd, bucket-rd, clickhouse-rd, etc.) for modular deployment and finer-grained management
  * Updated deployment bundles to reference the new per-resource releases with uniform cozy-system namespace and CRD dependency

* **Chores**
  * Added packaging/Helm stubs (Chart.yaml, Makefile, values, templates) for each new resource-definition
* **Bug Fixes**
  * Made CRD path resolution dynamic (NAME validated before assignment)

<sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
kvaps added a commit that referenced this pull request Jan 9, 2026
…te packages (#1778)

## What this PR does

This PR splits the monolithic `cozystack-resource-definitions` package
into 25 individual resource definition packages (`*-rd`) for better
modularity and independent versioning.

**Changes:**
- Created 25 separate `*-rd` packages (bootbox-rd, bucket-rd,
clickhouse-rd, etcd-rd, ferretdb-rd, foundationdb-rd, http-cache-rd,
info-rd, ingress-rd, kafka-rd, kubernetes-rd, monitoring-rd, mysql-rd,
nats-rd, postgres-rd, rabbitmq-rd, redis-rd, seaweedfs-rd,
tcp-balancer-rd, tenant-rd, virtual-machine-rd, virtualprivatecloud-rd,
vm-disk-rd, vm-instance-rd, vpn-rd)
- Removed `packages/system/cozystack-resource-definitions`
- Updated platform bundles (paas-hosted, paas-full, distro-full) to
reference individual -rd packages
- Updated `hack/update-crd.sh` to use package-specific directories

Each `*-rd` package contains:
- `Chart.yaml` - package metadata
- `values.yaml` - default values
- `Makefile` - build instructions
- `cozyrds/<name>.yaml` - CRD definition
- `templates/cozyrd.yaml` - Helm template

**Benefits:**
- **Modularity**: Each resource definition is now a standalone package
- **Independent versioning**: Resources can be versioned independently
- **Maintainability**: Easier to update individual resources
- **Build efficiency**: Parallel building of resource packages

### Release note

```release-note
[platform] Split cozystack-resource-definitions into 25 separate *-rd packages for better modularity and independent versioning. Each resource definition is now a standalone package.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Refactor**
  * Split the monolithic resource-definitions into many independent resource-definition packages (e.g., bootbox-rd, bucket-rd, clickhouse-rd, etc.) for modular deployment and finer-grained management
  * Updated deployment bundles to reference the new per-resource releases with uniform cozy-system namespace and CRD dependency

* **Chores**
  * Added packaging/Helm stubs (Chart.yaml, Makefile, values, templates) for each new resource-definition
* **Bug Fixes**
  * Made CRD path resolution dynamic (NAME validated before assignment)

<sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants