fix(platform): add OpenSearch to PaaS bundle - #2648
Conversation
The opensearch chart, operator chart, ApplicationDefinition and PackageSources have existed since the original OpenSearch series, but the PaaS bundle template never references the opensearch-operator or opensearch-application PackageSources. On isp-* variants with bundles.paas.enabled=true, neither the operator nor the ApplicationDefinition is ever installed, so the dashboard catalog has no OpenSearch entry and opensearches.apps.cozystack.io resources cannot be created. Add both includes to packages/core/platform/templates/bundles/paas.yaml, following the same pattern used for every other DB application. Assisted-By: Claude <noreply@anthropic.com> Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
Summary of ChangesHello, 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 addresses a configuration gap where OpenSearch components were present in the repository but excluded from the PaaS bundle. By including these packages, the OpenSearch operator and application will now be properly deployed on clusters using the PaaS bundle, enabling the OpenSearch dashboard catalog entry and allowing tenants to create OpenSearch instances. Highlights
New Features🧠 You can now enable Memory (public preview) 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 AssistThe 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
Customization To customize the 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 Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on Gemini (@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. Footnotes
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe PaaS Helm bundle template is updated to conditionally include two Opensearch packages: the Opensearch operator and the Opensearch application, activated when the PaaS bundle is enabled and the system variant matches ChangesPaaS Bundle Opensearch Integration
🎯 1 (Trivial) | ⏱️ ~2 minutes
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Code Review
This pull request adds the OpenSearch operator and application to the PaaS bundle within the platform package. A review comment correctly identifies that changes to the sensitive 'packages/core/platform/' directory require either a migration update or an explicit confirmation of backward compatibility in the PR description, as mandated by the repository style guide.
| {{include "cozystack.platform.package.default" (list "cozystack.rabbitmq-operator" $) }} | ||
| {{include "cozystack.platform.package.default" (list "cozystack.redis-operator" $) }} | ||
| {{include "cozystack.platform.package.default" (list "cozystack.mongodb-operator" $) }} | ||
| {{include "cozystack.platform.package.default" (list "cozystack.opensearch-operator" $) }} |
There was a problem hiding this comment.
This change modifies the packages/core/platform/ package, which is a sensitive component. According to the repository guidelines, any change to this package must include a corresponding migration update or an explicit note in the PR description confirming that backward compatibility is preserved. While the PR description explains the context of the fix, it does not explicitly address whether this addition requires a migration or if backward compatibility for existing clusters is maintained.
References
- Flag any change to the platform package that lacks a corresponding migration update or an explicit note that backward compatibility is preserved. (link)
There was a problem hiding this comment.
This change is purely additive — it wires two pre-existing PackageSources (cozystack.opensearch-operator and cozystack.opensearch-application, already present under packages/core/platform/sources/) into the PaaS bundle template, with no removal, rename, or value-shape change. No state transform on existing objects is required, so no entry is needed under packages/core/platform/images/migrations/migrations/. This matches the precedent of recent additive bundle entries such as valkey-operator (3111ba893) and openbao-application (088bc0f), neither of which shipped with a migration. Backward compatibility is preserved: clusters that did not have OpenSearch installed simply receive the operator and ApplicationDefinition; clusters that did have it installed via the previously-defined PackageSources are unaffected.
Arsolitt (Arsolitt)
left a comment
There was a problem hiding this comment.
Clean, minimal fix that closes a real wiring gap. Verified:
- Both
cozystack.opensearch-operatorandcozystack.opensearch-applicationPackageSources exist underpackages/core/platform/sources/, and the operator/RD/app charts all ship in the repo. - No prior OpenSearch reference in any bundle template — the wiring was genuinely missing.
- Operator placement at line 12 follows the existing chronological-by-addition pattern in the operators block; application at line 21 is correctly placed alphabetically between
openbao-applicationandpostgres-application. - Pattern matches recent precedent for adding a managed DB to the bundle (qdrant, openbao) — neither needed a migration script either.
Gemini's note about a missing backward-compatibility statement is a styleguide nit, not a code issue. The change is purely additive — no existing cluster state is altered. Adding one line to the PR description ("No migration required, backward compatible") would satisfy .gemini/styleguide.md explicitly.
…errides (#2649) ## What this PR does This is the release-1.3 counterpart of #2648. OpenSearch has shipped as a complete package set in 1.3 — `packages/apps/opensearch/`, `packages/system/opensearch-operator/`, `packages/system/opensearch-rd/`, plus the `cozystack.opensearch-*` PackageSources — but the PaaS bundle template never references the OpenSearch PackageSources. On any cluster with `bundles.paas.enabled=true`: - `opensearch-operator` is not deployed → no `OpenSearchCluster` CRD on cluster - `opensearch-rd` release is not deployed → no `ApplicationDefinition/opensearch` → the dashboard catalog has no OpenSearch entry and tenants cannot create `opensearches.apps.cozystack.io` Two changes in this PR: 1. **`packages/core/platform/templates/bundles/paas.yaml`** — add `cozystack.opensearch-operator` and `cozystack.opensearch-application` to the bundle, matching every other DB application. 2. **`internal/controller/dashboard/customformsoverride.go` + test** — add `OpenSearch` to the StorageClass listInput override case so the create-form `storageClass` field renders as a dropdown in the legacy openapi-ui that ships with 1.3. (The new cozystack-ui in 1.4 derives this widget client-side from the schema, so the form-override change is not needed on main — see #2648.) ### Release note ```release-note Fix: OpenSearch is now installed by the PaaS bundle (`bundles.paas.enabled=true`); previously the operator and ApplicationDefinition were defined but never referenced from the bundle, so OpenSearch did not appear in the dashboard catalog. The StorageClass field in the OpenSearch create form now renders as a dropdown. ```
|
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin release-1.3
git worktree add -d .worktree/backport-2648-to-release-1.3 origin/release-1.3
cd .worktree/backport-2648-to-release-1.3
git switch --create backport-2648-to-release-1.3
git cherry-pick -x 999202c00495be9341976f7e21a2f2b27a646289 |
…2757) ## What this PR does Backport of #2648 to `release-1.4`. OpenSearch ships as a complete package set in `release-1.4` (`packages/apps/opensearch/`, `packages/system/opensearch-operator/`, `packages/system/opensearch-rd/`, and the `opensearch-operator` / `opensearch-application` PackageSources), but the PaaS bundle template never referenced the two `cozystack.opensearch-*` PackageSources. Result on any cluster with `bundles.paas.enabled=true`: - `opensearch-operator` is not deployed → no `OpenSearchCluster` CRD - `opensearch-rd` is not deployed → no `ApplicationDefinition/opensearch`, so the dashboard catalog has no OpenSearch entry and tenants cannot create `opensearches.apps.cozystack.io` This adds the two missing includes to `packages/core/platform/templates/bundles/paas.yaml`, matching #2648 exactly. ### Release note ```release-note Fix: OpenSearch is now installed by the PaaS bundle (`bundles.paas.enabled=true`); previously the operator and ApplicationDefinition were defined but never referenced from the bundle, so OpenSearch did not appear in the dashboard catalog. ```
What this PR does
OpenSearch has shipped as a complete package set in the repo for several
releases —
packages/apps/opensearch/,packages/system/opensearch-operator/,packages/system/opensearch-rd/, andPackageSourcefiles underpackages/core/platform/sources/— but the PaaS bundle template was neverupdated to include the two
cozystack.opensearch-*PackageSources.Result on any cluster with
bundles.paas.enabled=true:opensearch-operatoris not deployed → noOpenSearchClusterCRD on clusteropensearch-rdrelease is not deployed → noApplicationDefinition/opensearch→ the dashboard catalog has no OpenSearch entry and tenants cannot createopensearches.apps.cozystack.ioThis PR adds the missing includes alongside every other DB operator/application in
packages/core/platform/templates/bundles/paas.yaml.Release note
Summary by CodeRabbit