This repository contains a Helm chart for deploying the FastAPI-based APEx Dispatch
API on Knative Serving using serving.knative.dev/v1 Service resources.
Optionally, the chart can also expose the Knative service through Contour using a
projectcontour.io/v1 HTTPProxy resource.
The chart is intended for development and testing deployments of the APEx Dispatch API in Knative-enabled Kubernetes environments.
charts/: Helm chart sourcesdocs/: MkDocs documentation organized with the Diataxis structure.github/workflows/: CI workflows for docs and Helm chart packaging/publishingTaskfile.yaml: local developer commands
The Helm chart lives in charts/.
Render the chart locally:
task helm:renderRun the Helm unit tests:
task helm:testServe the documentation locally:
task docs:serveBuild the documentation:
task docs:buildhelm install apex-dispatch-api ./chartsThe Helm chart is also published as an OCI artifact in GitHub Container Registry:
- Package page: ghcr.io OCI package
- OCI reference:
oci://ghcr.io/esa-apex/helm/apex-dispatch-api
Pull the chart from GHCR:
helm pull oci://ghcr.io/esa-apex/helm/apex-dispatch-api --version 0.1.0Install directly from the OCI registry:
helm install apex-dispatch-api oci://ghcr.io/esa-apex/helm/apex-dispatch-api --version 0.1.0serviceAccount.create: create a dedicated Kubernetes service accountserviceAccount.existingName: existing Kubernetes service account used whencreate=falseserviceAccount.name: service account name used whencreate=trueimage.repository,image.tag: container image to runknative.minScale,knative.maxScale: Knative autoscaling boundscontour.enabled: enable/disable the ContourHTTPProxyresourcecontour.virtualhost.fqdn: public hostname used byHTTPProxycontour.virtualhost.tls.enabled: enable/disable TLS termination onHTTPProxycontour.virtualhost.tls.secretName: TLS secret used byHTTPProxywhen TLS is enabledsecrets.create: create the app secret from Helm values or reference an existing oneexternalSecret.enabled: manage app secrets through External Secrets Operatormigration.enabled: runalembic upgrade headas a Helm hook Jobprobes.enabled: enable/healthprobes if your runtime dependencies are ready at startup
See docs/reference/index.md for the detailed values and
runtime contract.
If secrets.create=false, the secret referenced by secrets.name should already
exist and contain:
KEYCLOAK_CLIENT_IDKEYCLOAK_CLIENT_SECRETBACKENDSDATABASE_URL
The project documentation is built with MkDocs and includes:
- tutorials
- how-to guides
- explanation pages
- reference material
The documentation entry point is docs/index.md.
The repository includes GitHub Actions workflows for:
- building and deploying documentation with a GitHub Pages approach
- packaging the Helm chart
- publishing the Helm chart to
ghcr.ioas an OCI artifact
On main, the Helm OCI workflow publishes a latest tag alias. On vX.Y.Z tags, it
publishes the chart with version X.Y.Z.
This project is licensed under the Apache License 2.0. See LICENSE.