If you want contribute on this project, first you need to make a git clone:
- 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.
List of tools thar i used in this project:
- kubectl
- helm
- krew
- kubeval
- kube-linter
- kube-score
- checkov
- datree
- kubeaudit
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.
Reference in Chart.yaml
:
dependencies:
- name: common
version: 0.0.1
repository: file://../../chart
Update local chart:
helm dependency update
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
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 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.
- https://github.com/InsomniaCoder/helm-library
- https://github.com/k8s-at-home/library-charts
- https://github.com/prefapp/prefapp-helm
- https://github.com/wuguteng/propeller
To check the change history, please access the CHANGELOG.md file.
Currently the project is constantly being updated 👾.