Skip to content

😏 Creating a Helm Recursive Library for code reuse and agility in the delivery of services in Kubernetes

License

Notifications You must be signed in to change notification settings

lpsm-dev/helm-recursive-library

Repository files navigation

gif-header

✨ Helm Chart Library ✨

Semantic Release Commitizen friendly GitHub repo size


gif-about

✨ This is a simple helm library that i use in GitLab to create recursive resources in Kubernetes ✨

Getting Started   |    Motivation   |    Versioning


➤ Getting Started

If you want contribute on this project, first you need to make a git clone:

  1. git clone --depth 1 https://github.com/lpmatos/helm-library.git -b main

This will give you access to the code on your local machine.

➤ Tools

List of tools thar i used in this project:

  • kubectl
  • helm
  • krew
  • kubeval
  • kube-linter
  • kube-score
  • checkov
  • datree
  • kubeaudit

➤ Motivation

Hi stranger! Today I want to share with you my experience using Helm library chart daily on my work, but let's go back to the concepts. Helm is a package maneger that you can use to organize all kubernetes objects created in a cluster, all versioned and based on a standard structure.

Over the time you realize that once you create the helm chart it will hardly have to change its structure. However, depending on your project and the amount of services that you have, this can become a challenge for you.

With that in mind we have the helm libraries, which help you share default settings for your catalogs. And that's what this project proposes: make a helm library for creating objects using recursion, speeding up the setup of your services in Kubernetes.

➤ Usage

Reference in Chart.yaml:

dependencies:
- name: common
  version: 0.0.1
  repository: file://../../chart

Update local chart:

helm dependency update

➤ Audit

Run these commands in the context of test/chart folder:

helm dependency update --debug
helm template . -n valida -f values.yaml > manifest.yml
kubeval manifest.yml --strict --force-color --exit-on-error
kube-linter lint manifest.yml --config .kube-linter.yml
kubectl score manifest.yml
checkov -f manifest.yml --framework kubernetes
datree test manifest.yml
kubeaudit all -f manifest.yml

➤ Concepts

This section aims to describe at a high level what the tools we use are and how we use them, without reproducing documentation that is better written (and more up to date) in the repositories and websites of these tools themselves. It's recommended to familiarize yourself with these tools as early as possible.

Helm

Helm is a templating system for Kubernetes resource manifests. A Helm chart is a bundle of resource templates that can take parameters ("values"). A Helm chart therefore describes a paramaterized deployment configuration that is environment-agnostic. Helm charts are distributed from Helm repositories, and Helm can act as a package manager to manage repositories and charts.

An instantiated deployment of a Helm chart is called a Helm release. We'll refer to these as "releases" for short. We can say that a release is a deployment of a Helm chart in an environment, where an environment is the combination of a set of parameters ("values") and a Kubernetes target.

➤ Inspirations

➤ Versioning

To check the change history, please access the CHANGELOG.md file.

➤ Project status

Currently the project is constantly being updated 👾.

➤ Show your support

Give me a ⭐️ if this project helped you!

gif-header

Made with 💜 by me 👋 inspired on readme-md-generator

About

😏 Creating a Helm Recursive Library for code reuse and agility in the delivery of services in Kubernetes

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published