Skip to content

fix(platform): add OpenSearch to PaaS bundle - #2648

Merged
myasnikovdaniil merged 1 commit into
mainfrom
fix/opensearch-bundle-wiring
May 19, 2026
Merged

fix(platform): add OpenSearch to PaaS bundle#2648
myasnikovdaniil merged 1 commit into
mainfrom
fix/opensearch-bundle-wiring

Conversation

@myasnikovdaniil

@myasnikovdaniil myasnikovdaniil commented May 14, 2026

Copy link
Copy Markdown
Contributor

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/, and PackageSource files under
packages/core/platform/sources/ — but the PaaS bundle template was never
updated to include the two cozystack.opensearch-* PackageSources.

Result 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

This PR adds the missing includes alongside every other DB operator/application in packages/core/platform/templates/bundles/paas.yaml.

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.

Summary by CodeRabbit

  • New Features
    • OpenSearch operator and application packages are now included in the PaaS bundle when enabled, providing additional search and analytics capabilities for supported deployments.

Review Change Stack

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>
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

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

This pull request 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

  • PaaS Bundle Update: Added the OpenSearch operator and application to the PaaS bundle template to ensure they are correctly deployed when the bundle is enabled.
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 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 (@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 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 .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 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

  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.

@github-actions github-actions Bot added size/XS This PR changes 0-9 lines, ignoring generated files area/platform Issues or PRs related to platform infrastructure (bundle, flux, talos, installer) kind/bug Categorizes issue or PR as related to a bug labels May 14, 2026
@coderabbitai

coderabbitai Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 72ec1830-c686-4925-a8e0-344faa0eb832

📥 Commits

Reviewing files that changed from the base of the PR and between f5c84eb and 999202c.

📒 Files selected for processing (1)
  • packages/core/platform/templates/bundles/paas.yaml

📝 Walkthrough

Walkthrough

The 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 isp-full, isp-full-generic, or isp-hosted.

Changes

PaaS Bundle Opensearch Integration

Layer / File(s) Summary
Opensearch packages in PaaS bundle
packages/core/platform/templates/bundles/paas.yaml
Opensearch operator and application packages are conditionally included in the PaaS bundle template when bundles.paas.enabled is true.

🎯 1 (Trivial) | ⏱️ ~2 minutes

🐰 Two operators hop into the PaaS field,
Opensearch magic, their powers revealed,
When paas is enabled and variants align,
The bundle grows stronger, the search refined! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(platform): add OpenSearch to PaaS bundle' directly matches the main change: adding missing OpenSearch operator and application package references to the PaaS bundle template, which is the primary objective of the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/opensearch-bundle-wiring

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 gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

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 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" $) }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

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
  1. Flag any change to the platform package that lacks a corresponding migration update or an explicit note that backward compatibility is preserved. (link)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

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 (Arsolitt) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Clean, minimal fix that closes a real wiring gap. Verified:

  • Both cozystack.opensearch-operator and cozystack.opensearch-application PackageSources exist under packages/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-application and postgres-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.

@myasnikovdaniil
myasnikovdaniil merged commit 3c1c848 into main May 19, 2026
10 checks passed
@myasnikovdaniil
myasnikovdaniil deleted the fix/opensearch-bundle-wiring branch May 19, 2026 10:27
myasnikovdaniil added a commit that referenced this pull request May 19, 2026
…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.
```
@myasnikovdaniil myasnikovdaniil added the backport Should change be backported on previous release label May 19, 2026
@github-actions

Copy link
Copy Markdown

Backport failed for release-1.3, because it was unable to cherry-pick the commit(s).

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

myasnikovdaniil added a commit that referenced this pull request May 27, 2026
…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.
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/platform Issues or PRs related to platform infrastructure (bundle, flux, talos, installer) backport Should change be backported on previous release kind/bug Categorizes issue or PR as related to a bug size/XS This PR changes 0-9 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants