Skip to content

feat!: remove bundled Bitnami PostgreSQL and MySQL sub-chart dependen…#295

Draft
emilic wants to merge 7 commits intomainfrom
feat-remove-bitnami-chart-deps
Draft

feat!: remove bundled Bitnami PostgreSQL and MySQL sub-chart dependen…#295
emilic wants to merge 7 commits intomainfrom
feat-remove-bitnami-chart-deps

Conversation

@emilic
Copy link
Copy Markdown
Contributor

@emilic emilic commented Mar 24, 2026

…cies

Description

What problem is being solved?

How is it being solved?

What changes are made to solve it?

References

Review Checklist

  • I have clicked on "allow edits by maintainers".
  • I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
  • The correct base branch is being used, if not main
  • I have added tests to validate that the change in functionality is working as expected

Summary by CodeRabbit

Release Notes

  • Breaking Changes

    • Removed built-in PostgreSQL and MySQL database support. Users must now provision databases separately and configure via datastore.uri or datastore.uriSecret.
  • New Features

    • Added validation checks to guide users on upgrading to v0.3.0 with migration instructions.
  • Chores

    • Updated CI workflows and added database configuration examples for PostgreSQL and MySQL.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 24, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ea664724-1376-4cea-8980-3ef4c8e651f9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

The OpenFGA Helm chart version is bumped from 0.2.57 to 0.3.0, removing bundled PostgreSQL and MySQL subchart dependencies. Validation templates enforce configuration checks to prevent use of deprecated flags. New CI values files provide embedded Kubernetes manifests for MySQL and PostgreSQL deployments. Bitnami repository references are removed from GitHub workflows.

Changes

Cohort / File(s) Summary
GitHub Workflows
.github/workflows/release.yml, .github/workflows/test.yml
Removed helm repo add bitnami command from "Add Helm Repositories" step; openfga repository and helm repo update remain.
Helm Chart Metadata
charts/openfga/Chart.yaml
Updated chart version from 0.2.57 to 0.3.0 and removed conditional dependencies on postgresql and mysql Bitnami subcharts; retained common dependency.
Helm CI Values Files
charts/openfga/ci/mysql-values.yaml, charts/openfga/ci/postgres-values.yaml
Added new CI test values files defining MySQL and PostgreSQL datastores with embedded Kubernetes Secret, Deployment, and Service manifests using official Docker images.
Helm Templates
charts/openfga/templates/_helpers.tpl, charts/openfga/templates/validation.yaml
Updated secret creation condition to check only .Values.auth.existingSecret; added new validation template that fails chart rendering if deprecated postgresql.enabled or mysql.enabled flags are set, with migration guidance.
Helm Configuration
charts/openfga/values.yaml
Removed postgresql and mysql value blocks and updated documentation to reflect mandatory use of external databases; added PostgreSQL and MySQL examples in extraObjects comments.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat!: remove bundled Bitnami PostgreSQL and MySQL sub-chart dependen…' directly and specifically summarizes the main change in the pull request, which removes Bitnami PostgreSQL and MySQL sub-chart dependencies across workflow files, Helm chart metadata, templates, and values.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ 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 feat-remove-bitnami-chart-deps

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.

emilic added 2 commits March 24, 2026 07:48
The datastore.uriSecret template hardcodes the secret key to "uri",
so the CI test secrets must use "uri" instead of "OPENFGA_DATASTORE_URI".
The post-install hook migration job creates a deadlock: Helm waits for
the deployment to be ready before running hooks, but the deployment
needs the migration to pass readiness checks. Using initContainer
migration avoids this by running the migration inside the pod.
@emilic emilic marked this pull request as ready for review March 24, 2026 12:23
@emilic emilic requested review from a team as code owners March 24, 2026 12:23
Copilot AI review requested due to automatic review settings March 24, 2026 12:23
Copy link
Copy Markdown

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@charts/openfga/values.yaml`:
- Line 375: The example secret key name in values.yaml uses
OPENFGA_DATASTORE_URI but the chart (the helper that resolves
datastore.uriSecret) expects the secret key to be uri; update the example secret
entries to use key name "uri" (or add an "uri" key mapping) wherever
OPENFGA_DATASTORE_URI is shown so that the secret matches the
datastore.uriSecret behavior (ensure both occurrences are changed).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0917f666-be4c-41a7-8efa-255515de0f81

📥 Commits

Reviewing files that changed from the base of the PR and between 78a7f0e and 65014f8.

⛔ Files ignored due to path filters (1)
  • charts/openfga/Chart.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • .github/workflows/release.yml
  • .github/workflows/test.yml
  • charts/openfga/Chart.yaml
  • charts/openfga/ci/mysql-values.yaml
  • charts/openfga/ci/postgres-values.yaml
  • charts/openfga/templates/_helpers.tpl
  • charts/openfga/templates/validation.yaml
  • charts/openfga/values.yaml
💤 Files with no reviewable changes (2)
  • .github/workflows/release.yml
  • .github/workflows/test.yml

Comment thread charts/openfga/values.yaml Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the openfga Helm chart for a breaking v0.3.0 release by removing the bundled Bitnami PostgreSQL/MySQL subcharts and shifting users to external database provisioning.

Changes:

  • Bumps chart version to 0.3.0 and removes Bitnami postgresql/mysql dependencies from the chart.
  • Adds Helm template validation to hard-fail upgrades that still set postgresql.enabled / mysql.enabled.
  • Updates values/CI examples and CI workflows to reflect the removal of the Bitnami repo/dependencies.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
charts/openfga/values.yaml Removes subchart values and adds external DB dev/test examples under extraObjects.
charts/openfga/templates/validation.yaml Adds upgrade-time validation to prevent silent ignores of removed subchart flags.
charts/openfga/templates/_helpers.tpl Adjusts secret-creation helper after removing Bitnami dependency integration.
charts/openfga/ci/postgres-values.yaml Adds CI install values to stand up a dev/test PostgreSQL via extraObjects.
charts/openfga/ci/mysql-values.yaml Adds CI install values to stand up a dev/test MySQL via extraObjects.
charts/openfga/Chart.yaml Bumps chart version and removes Bitnami DB dependencies.
charts/openfga/Chart.lock Regenerates lockfile after dependency removal.
.github/workflows/test.yml Removes Bitnami repo add step from chart testing workflow.
.github/workflows/release.yml Removes Bitnami repo add step from release workflow.
Comments suppressed due to low confidence (1)

charts/openfga/Chart.yaml:22

  • After removing the Bitnami PostgreSQL/MySQL dependencies, the chart docs and schema should be updated to match: charts/openfga/README.md still instructs users to set postgresql.enabled/mysql.enabled, and values.schema.json still defines those deprecated objects. Consider removing or clearly deprecating those schema entries and updating the README examples to use external DB + datastore.uri/datastore.uriSecret so upgrades don’t get conflicting guidance.
    url: https://openfga.github.io/helm-charts/pgp-public-key.asc

dependencies:
  - name: common
    version: "2.13.3"
    repository: oci://registry-1.docker.io/bitnamicharts
    tags:

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread charts/openfga/values.yaml Outdated
Comment thread charts/openfga/values.yaml Outdated
Comment thread charts/openfga/templates/_helpers.tpl Outdated
*/}}
{{- define "openfga.createSecret" -}}
{{- if not (or .Values.global.postgresql.auth.existingSecret .Values.auth.existingSecret) -}}
{{- if not .Values.auth.existingSecret -}}
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

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

openfga.createSecret now references .Values.auth.existingSecret, but this chart’s values use datastore.existingSecret/datastore.uriSecret and there is no auth block in values.yaml/values.schema.json. Either update this helper to check the correct datastore secret values, or remove the helper if it’s no longer used, to avoid future template errors if it gets referenced.

Suggested change
{{- if not .Values.auth.existingSecret -}}
{{- if and (not .Values.datastore.existingSecret) (not .Values.datastore.uriSecret) -}}

Copilot uses AI. Check for mistakes.
emilic added 4 commits March 24, 2026 08:45
The chart reads key 'uri' from the secret when datastore.uriSecret is set,
not 'OPENFGA_DATASTORE_URI'. Fix the commented examples to match.
Show users how to configure datastore.uriSecret alongside the
extraObjects Secret examples so they can copy a working setup.
This helper referenced .Values.auth.existingSecret which does not exist
in the chart's values schema. It was never called by any template.
Replace postgresql.enabled/mysql.enabled instructions with datastore.uri
examples and point users to extraObjects examples in values.yaml for
dev/test database setups.
@emilic emilic requested review from a team as code owners March 24, 2026 13:54
@emilic emilic marked this pull request as draft March 25, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants