← All work
Infrastructure · 2020–21

Helm/Kubernetes Deployment API and Chart Pipeline

Overview

A containerized service that automates Helm-based deployments to Kubernetes. It bundles helm and kubectl in an Alpine image, exposes a small Node.js HTTP API to trigger deployments, and ships a catalog of reusable Helm charts published to an OCI registry.

Why It Exists

Deploying applications to Kubernetes by hand is repetitive and error-prone. This wraps Helm and kubectl behind a programmatic API plus a curated chart library, so common applications can be installed and updated consistently.

What We Built

  • A helm-server Node.js service (server.js, helm.js, entrypoint.sh) that invokes Helm/kubectl operations via an HTTP interface.
  • A charts/ catalog with ready-to-use Helm charts: mautic, strapi, react-frontend, and board.
  • A build-charts.sh pipeline that saves and pushes charts as OCI artifacts to a Scaleway container registry (HELM_EXPERIMENTAL_OCI).
  • A Dockerfile (Alpine 3.11) pinning kubectl v1.18.2 and helm v3.2.1, mounting kubeconfig and an s3mount for storage, with SSH/Git for chart sourcing.

Technologies & Approach

Node.js orchestrates Helm and kubectl inside a purpose-built container; charts are versioned and distributed via an OCI-compatible registry. Auth and config directories are mounted at runtime for cluster access.

Outcome / Impact

Provided a repeatable deployment layer over Kubernetes, a programmatic Helm API plus a maintained chart catalog, reducing manual kubectl/helm steps for installing standard applications.

Capabilities Demonstrated

  • Automating Kubernetes deployments programmatically via Helm
  • Building and publishing Helm charts to an OCI registry
  • Packaging cluster tooling (helm + kubectl) in pinned container images
  • Curating a reusable Helm chart catalog for common apps
More work See all →