Skip to main content

ragleap-app-chart

A generic, reusable Helm chart for deploying arbitrary services to Kubernetes — built by RagLeap, but not specific to RagLeap.

Unlike ragleap-ops (which is hardcoded to RagLeap Core's own 4 services), this chart takes an arbitrary services: list in values.yaml and renders resources for each service via range loops. Point it at your own app; it doesn't know or care what RagLeap is.

ragleap-app-chart generic services rendering and verification flow

Status

v0.2.0 published on PyPI. Generic services: schema and range-loop Helm templates are live-tested end-to-end on a real kind cluster (not just helm lint/helm template) -- see CHANGELOG.md for the real bugs found and fixed via live testing. See GENERIC-K8S-CHART-PROPOSAL.md at the repo root for the full design rationale.

Design principles (from the proposal doc)

  • Arbitrary service list via range loops — not hardcoded names
  • Secure-by-default: NetworkPolicy, SecurityContext, and resource limits apply automatically unless explicitly overridden
  • Proven against a non-RagLeap toy app before calling any feature done — genericity is only real once demonstrated against something that isn't RagLeap itself

Worked example (non-RagLeap app)

See EXAMPLE.md for a full walkthrough deploying a genuinely different stack (Redis + a small HTTP service) end-to-end on a real cluster -- including a real structural bug this chart had (no command/args override support at all) that was found and fixed while building it.

Multi-environment values

values-dev.yaml, values-staging.yaml, and values-prod.yaml are available, ported from the same pattern proven in ragleap-ops:

helm install my-release ./ragleap-app-chart -f values-dev.yaml

This works differently from ragleap-ops's version. ragleap-ops overrides simple scalar fields (app.replicaCount: 3), which Helm deep-merges cleanly. This chart's services: field is a list, and Helm does not merge list entries by key — an environment file that redefines services: replaces the entire list, not just the fields that differ. Each values-{env}.yaml here is therefore a full override of the example services: list, not a partial one. If you add or change services in your own values.yaml, you'll need to keep your own values-{env}.yaml files' services: lists in sync manually — this chart does not (yet) merge list entries automatically.

Autoscaling and disruption budgets

Each service can optionally enable a HorizontalPodAutoscaler and a PodDisruptionBudget. Both are off by default.

services:
  - name: web
    image: myorg/myapp:latest
    port: 3000
    resources:
      requests: { cpu: 100m, memory: 128Mi }   # required for CPU-percentage autoscaling
    autoscaling:
      enabled: true
      minReplicas: 2            # default 1
      maxReplicas: 6            # required
      targetCPUUtilizationPercentage: 70   # default 80
    pdb:
      enabled: true
      minAvailable: 1           # default 1

Notes:

  • When autoscaling is enabled the Deployment omits replicas, so helm upgrade does not reset the autoscaler's count.
  • Autoscaling needs metrics-server in the cluster.
  • A PDB with minAvailable: 1 on a single-replica service blocks voluntary node drains.
  • Scale-up was verified on kind. Scale-down and PDB behaviour during a real drain were not tested.

Metadata

Release files for ragleap-app-chart 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ragleap-app-chart 0.3.0
File Size Uploaded
ragleap_app_chart-0.3.0.tar.gz 12.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ragleap-app-chart 0.3.0
File Interpreter ABI Platform
ragleap_app_chart-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.3 kB

Release files / ragleap_app_chart-0.3.0.tar.gz

Download URL ragleap_app_chart-0.3.0.tar.gz
Size 12.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d0ab3b564d964f78b75c9acf721b2ebf71300bee9bdb11abd2504ace3720b974
BLAKE2b-256 checksum
How to use checksums
d5d4ac2df77fe0c7742799ba185ebd08fe33756b7861ba6fc34dcb226f345a94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / ragleap_app_chart-0.3.0-py3-none-any.whl

Download URL ragleap_app_chart-0.3.0-py3-none-any.whl
Size 4.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd1169b53dda5ba229bcf76e1699f1bc60c0115d500c3f347c1a26c2c72e5671
BLAKE2b-256 checksum
How to use checksums
84222153b1dcee432c7c7605853039271c6f0fa14cd6406f8fbc1ccaf48ea474
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page