Loading...
Loading...
Managing Kubernetes manifests for dozens of microservices can quickly become repetitive and error-prone. That’s why Helm library charts are such a game changer — they abstract away boilerplate and offer a reusable base for defining common Kubernetes resources across services.
The original library-charts repository by the k8s-at-home community did an excellent job of solving this problem. Unfortunately, the project has been archived and is no longer maintained.
Rather than let it disappear, I decided to fork it and maintain an updated version tailored to the needs of modern DevOps workflows. You can now find and use this maintained fork under the BlissFlow GitHub account:
👉 https://github.com/BlissFlow-Tech/library-charts
This fork remains faithful to the original intent of the project while keeping dependencies current and supporting ongoing use in real-world infrastructure.
If you're managing a set of containerized services on Kubernetes, chances are high they share similar configurations: ports, probes, autoscaling, service monitors, and more. Instead of repeating yourself in every Helm chart, a library chart lets you define this once and reuse it everywhere.
Key benefits include:
The maintained fork can be consumed in your own Helm chart projects in just a few steps.
Create or update your chart’s Chart.yaml to declare a dependency on the library chart:
apiVersion: v2
name: user-service
description: A Helm chart for Kubernetes deployment of user-service
version: 0.1.0
dependencies:
- name: common
repository: https://library-charts.blissflow.tech
version: 4.9.0
Then fetch the dependency:
helm dependency update
Your chart must include a templates directory with a common.yaml file inside. This file instructs Helm to use the logic from the library chart when rendering your application.
Create the following file:
# templates/common.yaml
{{- include "common.all" . -}}
This enables the library chart to handle rendering of all supported Kubernetes resources based on your values.yaml.
Now define the specific configuration for your microservice using the schema supported by the library chart.
Example:
image:
repository: nginx
tag: latest
pullPolicy: IfNotPresent
service:
main:
enabled: true
ports:
http:
port: 80
ingress:
main:
enabled: true
ingressClassName: nginx
hosts:
- host: user.example.com
paths:
- path: /
pathType: Prefix
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 200m
memory: 256Mi
autoscaling:
enabled: true
target: common-test
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: 80
behavior:
scaleUp:
stabilizationWindowSeconds: 30
policies:
- type: Percent
value: 100
periodSeconds: 15
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 50
periodSeconds: 60
The library chart supports many configuration options:
Only define what your service needs. The chart will render resources based on the values you set.
Once everything is configured, install your microservice using:
helm install user-service .
To preview the rendered manifests without deploying:
helm template user-service .
The library chart is actively maintained under the BlissFlow organization, and we aim to keep it aligned with current Kubernetes best practices.
To upgrade your dependency when a new version is available:
helm dependency update
Also make sure your values are compatible with any changes introduced in new releases.
If you're using the chart and have ideas or issues, feel free to:
Helm library charts are a powerful pattern for scaling DevOps productivity across microservices. This maintained fork helps ensure the great work started by the k8s-at-home community can continue to serve Kubernetes developers around the world.
If you're tired of writing the same templates again and again or want to ensure consistent best practices across your Helm charts, checkout this helm library charts.
Explore the project here:
👉 https://github.com/BlissFlow-Tech/library-charts
Want help integrating this into your stack ? Get in touch — we’d love to help.