Skip to content

Conversation

@ferruhcihan
Copy link
Collaborator

@ferruhcihan ferruhcihan commented Feb 2, 2026

📌 Summary

This PR introduces support for Bring Your Own (BYO) catalog functionality, allowing users to configure custom Helm chart repositories instead of relying solely on the default APL charts repository.

🔍 Reviewer Notes

🧹 Checklist

  • Code is readable, maintainable, and robust.
  • Unit tests added/updated

@svcAPLBot
Copy link
Contributor

Comparison of Helm chart templating output:

@@ data @@
! - one map entry removed:
- HELM_CHART_CATALOG: "https://gitea.dev.linode-apl.net/otomi/charts.git"

@@ data.VERSIONS @@
! ± value change in multiline text (one insert, one deletion)
  
- {"api":"main","aplCharts":"main","console":"main","consoleLogin":"main","core":"main","specVersion":48,"tasks":"main","tools":"main"}
+ {"api":"APL-1458","aplCharts":"main","console":"main","consoleLogin":"main","core":"main","specVersion":50,"tasks":"main","tools":"main"}


@@ spec.template.spec.containers.otomi-api.image @@
! ± value change
- docker.io/linode/apl-api:main
+ docker.io/linode/apl-api:APL-1458



@@ (root level) @@
! + one map entry added:
+ catalogs:
+   default:
+     name: default
+     url: "https://github.com/linode/apl-charts.git"
+     branch: main
+     enabled: true

@@ versions.specVersion @@
! ± value change
- 48
+ 50

@@ -1,4 +1,4 @@
api: main
api: APL-1458
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Reminder: Please revert this before merging.

@svcAPLBot
Copy link
Contributor

Comparison of Helm chart templating output:

@@ data @@
! - one map entry removed:
- HELM_CHART_CATALOG: "https://gitea.dev.linode-apl.net/otomi/charts.git"

@@ data.VERSIONS @@
! ± value change in multiline text (one insert, one deletion)
  
- {"api":"main","aplCharts":"main","console":"main","consoleLogin":"main","core":"main","specVersion":48,"tasks":"main","tools":"main"}
+ {"api":"APL-1458","aplCharts":"main","console":"main","consoleLogin":"main","core":"main","specVersion":50,"tasks":"main","tools":"main"}


@@ spec.template.spec.containers.otomi-api.image @@
! ± value change
- docker.io/linode/apl-api:main
+ docker.io/linode/apl-api:APL-1458



@@ (root level) @@
! + one map entry added:
+ catalogs:
+   default:
+     name: default
+     url: "https://github.com/linode/apl-charts.git"
+     branch: main
+     enabled: true

@@ versions.specVersion @@
! ± value change
- 48
+ 50

@svcAPLBot
Copy link
Contributor

Comparison of Helm chart templating output:

@@ data @@
! - one map entry removed:
- HELM_CHART_CATALOG: "https://gitea.dev.linode-apl.net/otomi/charts.git"

@@ data.VERSIONS @@
! ± value change in multiline text (one insert, one deletion)
  
- {"api":"main","aplCharts":"main","console":"main","consoleLogin":"main","core":"main","specVersion":48,"tasks":"main","tools":"main"}
+ {"api":"APL-1458","console":"main","consoleLogin":"main","core":"main","specVersion":50,"tasks":"main","tools":"main"}


@@ spec.template.spec.containers.otomi-api.image @@
! ± value change
- docker.io/linode/apl-api:main
+ docker.io/linode/apl-api:APL-1458



@@ (root level) @@
! + one map entry added:
+ catalogs:
+   default:
+     name: default
+     url: "https://github.com/linode/apl-charts.git"
+     branch: main
+     enabled: true

@@ versions.specVersion @@
! ± value change
- 48
+ 50

@ferruhcihan ferruhcihan requested a review from Copilot February 2, 2026 14:44
Copy link

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 introduces support for Bring Your Own (BYO) catalog functionality, allowing users to configure custom Helm chart repositories instead of relying solely on the default APL charts repository. The implementation includes a migration strategy that automatically sets up a default catalog configuration, with optional private repository support via sealed secrets.

Changes:

  • Adds AplCatalog resource type with schema validation for catalog configuration
  • Removes OTOMI_CHARTS_URL environment variable and the cloneOtomiChartsInGitea function
  • Implements migration function to create default catalog configuration with Gitea integration when available
  • Updates API version from 48 to 50 with catalog-related schema changes

Reviewed changes

Copilot reviewed 21 out of 22 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
versions.yaml Updates API version to branch APL-1458 and removes aplCharts version reference
values/otomi-api/otomi-api.gotmpl Removes hardcoded HELM_CHART_CATALOG environment variable
values-schema.yaml Adds catalog schema definition with git URL, branch, and credentials support
values-changes.yaml Registers setDefaultAplCatalog migration function for version 50
tests/fixtures/env/settings/versions.yaml Updates specVersion to 50
tests/fixtures/env/catalogs/default.yaml Adds default catalog fixture configuration
src/operator/EXECUTION_FLOW.md Removes cloneOtomiChartsInGitea step from installation flow
src/common/repo.ts Adds AplCatalog kind and platformCatalogs resource group handling
src/common/repo.test.ts Adds comprehensive test coverage for AplCatalog resource operations
src/common/k8s.ts Adds getSealedSecretsPEM function to retrieve sealed secrets public key
src/common/k8s.test.ts Adds test coverage for getSealedSecretsPEM function
src/common/envalid.ts Removes OTOMI_CHARTS_URL environment variable
src/cmd/migrate.ts Implements setDefaultAplCatalog migration with sealed secret creation
src/cmd/migrate.test.ts Adds test coverage for catalog migration scenarios
src/cmd/install.ts Removes cloneOtomiChartsInGitea call from installation flow
src/cmd/install.test.ts Removes cloneOtomiChartsInGitea mock
src/cmd/commit.ts Removes cloneOtomiChartsInGitea function and unused imports
package.json Adds @linode/kubeseal-encrypt dependency
helmfile.d/snippets/defaults.yaml Updates specVersion to 50
helmfile.d/snippets/defaults.gotmpl Adds default catalog configuration to defaults
.env.sample Removes OTOMI_CHARTS_URL environment variable

@ferruhcihan ferruhcihan marked this pull request as ready for review February 2, 2026 14:57
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.

3 participants