Skip to content

feat: add xapi-lrs Helm chart - #115

Merged
emmanuel merged 1 commit into
mainfrom
feat/helm-chart
Jul 23, 2026
Merged

feat: add xapi-lrs Helm chart#115
emmanuel merged 1 commit into
mainfrom
feat/helm-chart

Conversation

@emmanuel

@emmanuel emmanuel commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Chart

Same shape as the charts-repo PR: external PostgreSQL by default (database.driver=pg) with schema migrations in an init container (migration.postgresql.* for a DDL role), or embedded PGlite (database.driver=pglite, replicaCount=1 enforced) with optional PVC persistence. Ingress and Gateway API (HTTPRoute + optional ListenerSet) route to the xAPI port only; the admin port stays on the Service with an optional ServiceMonitor. Credentials live in a chart-managed Secret unless auth.existingSecret is set.

Differences from the charts-repo version:

  • image pin bumped from 0.7.1 to the current release 0.8.2 (tag + digest, appVersion)
  • README documents the OCI install location
  • files reformatted to this repo's oxfmt style

Release & publish

  • charts/xapi-lrs becomes a second release-please package (release-type: helm, component xapi-lrs-chart, tags xapi-lrs-chart/x.y.z, initial-version 0.1.0, separate release PRs). Chart commits are excluded from the root package so chart-only changes don't bump the app.
  • New publish-chart job packages and helm pushes the chart to oci://ghcr.io/pelotech/xapi-lrs/charts on chart releases.
  • The image build/publish jobs now key off the root package's release_created output instead of the aggregate releases_created, which would also have fired (with an empty tag) on chart-only releases.

CI & tooling

  • New helm-chart CI job: helm lint plus helm template across the pg/pglite/existingSecret/DATABASE_URL/ingress/httproute/listenerset/servicemonitor permutations (all verified locally with helm 4.1, including the pglite replicaCount>1 guard failing as intended).
  • Helm templates are Go-templated YAML, so charts/*/templates/ is excluded from oxfmt, check-yaml, and yamllint.

Note: merging this PR (a feat touching root files) will also make release-please propose an app 0.9.0 release PR alongside the chart's xapi-lrs-chart/0.1.0; merge or ignore that one as desired.

Ports the chart from pelotech/charts PR #155 into charts/xapi-lrs so it
lives alongside the app. The chart connects to an external PostgreSQL by
default (database.driver=pg) with schema migrations in an init container,
or runs the embedded PGlite engine (database.driver=pglite) with optional
PVC persistence. Ingress/Gateway API route to the xAPI port only; the
admin port stays on the Service with an optional ServiceMonitor.

Compared to the charts-repo version, the image pin moves up to the
current app release (0.8.2) and the README documents the new OCI install
location.

The chart is versioned independently of the app via a second
release-please package (release-type helm, component xapi-lrs-chart,
tags xapi-lrs-chart/x.y.z). Chart commits are excluded from the root
package so chart-only changes don't bump the app. On chart releases, a
new publish-chart job pushes the packaged chart to
oci://ghcr.io/pelotech/xapi-lrs/charts (i.e.
ghcr.io/pelotech/xapi-lrs/charts/xapi-lrs). The image build jobs now key
off the root package's release_created output instead of the aggregate
releases_created, which would also fire on chart-only releases.

CI gains a helm-chart job linting the chart and rendering the
pg/pglite/existingSecret/DATABASE_URL/ingress/gateway permutations.
Helm templates are Go-templated YAML, so they are excluded from oxfmt,
check-yaml, and yamllint.
@emmanuel
emmanuel merged commit 2adc20b into main Jul 23, 2026
16 checks passed
@emmanuel
emmanuel deleted the feat/helm-chart branch July 23, 2026 19:07
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.

1 participant