Helm
The Helm chart is the recommended way to run PlotPress on Kubernetes. It expects:
- A
PersistentVolumeClaimfor/var/lib/plotpress(SQLite). - A
ConfigMapor git-sync sidecar (or both) supplying the workspace at/workspace. - A
Secretfor environment variables referenced by${VAR}inconnections.yamlandplotpress.yaml.
Add the repo
Section titled “Add the repo”helm repo add plotpress https://octopyth.github.io/plotpresshelm repo updateMinimal values
Section titled “Minimal values”# values.yamlimage: tag: v0.1.0
ingress: enabled: true className: nginx hosts: - host: plotpress.example.com paths: ["/"] tls: - secretName: plotpress-tls hosts: [plotpress.example.com]
persistence: enabled: true size: 5Gi storageClass: hcloud-volumes
# Workspace can come from a ConfigMap or a git-sync init container.workspace: source: gitSync gitSync: repo: https://github.com/example/plotpress-workspace branch: main interval: 60s
env: WAREHOUSE_PASSWORD: secretRef: name: plotpress-secrets key: warehouse-password OIDC_CLIENT_SECRET: secretRef: name: plotpress-secrets key: oidc-client-secretInstall
Section titled “Install”helm install plotpress plotpress/plotpress -n plotpress --create-namespace -f values.yamlWorkspace strategies
Section titled “Workspace strategies”| Strategy | When to use |
|---|---|
gitSync | Workspace lives in its own git repo; init container clones and syncs every interval. The default. |
configMap | Small workspaces with no secrets in dashboards. Reload requires a rollout. |
pvc | You manage the workspace out-of-band (e.g. mounted from an existing PVC). |
Upgrades
Section titled “Upgrades”The chart runs PlotPress as a Deployment with replicas: 1. SQLite forces single-writer; multi-replica needs Postgres (planned). For now, upgrades are short rolling-restarts (~1s of unavailability).
Flux integration
Section titled “Flux integration”A HelmRelease example for Flux:
apiVersion: helm.toolkit.fluxcd.io/v2kind: HelmReleasemetadata: name: plotpress namespace: plotpressspec: interval: 10m chart: spec: chart: plotpress version: ">=0.1.0 <1.0.0" sourceRef: kind: HelmRepository name: plotpress namespace: flux-system valuesFrom: - kind: ConfigMap name: plotpress-values - kind: Secret name: plotpress-values-secretResources
Section titled “Resources”The Go backend is small. Reasonable starting point:
resources: requests: cpu: 50m memory: 64Mi limits: memory: 256MiMost of the cost is the connection pools to your data sources; tune those in connections.yaml rather than at the pod level.