Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/frnn4268/k8s_helm_demos
A repository for practicing Kubernetes deployments using Helm. It includes examples of managing third-party charts like Bitnami's PostgreSQL, creating custom Helm charts, and working with minimal Helm templates to understand key features like variables, conditionals, loops, and chart metadata.
https://github.com/frnn4268/k8s_helm_demos
bitnami helm helm-charts kubernetes postgresql
Last synced: 14 days ago
JSON representation
A repository for practicing Kubernetes deployments using Helm. It includes examples of managing third-party charts like Bitnami's PostgreSQL, creating custom Helm charts, and working with minimal Helm templates to understand key features like variables, conditionals, loops, and chart metadata.
- Host: GitHub
- URL: https://github.com/frnn4268/k8s_helm_demos
- Owner: Frnn4268
- Created: 2024-11-26T15:21:00.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-26T22:24:28.000Z (about 2 months ago)
- Last Synced: 2024-11-26T23:25:07.531Z (about 2 months ago)
- Topics: bitnami, helm, helm-charts, kubernetes, postgresql
- Language: Smarty
- Homepage:
- Size: 84 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Helm
Helm (https://helm.sh/) has become the de facto standard for packaging and distributing applications for kubernetes.
It provides a way to assemble many kubernetes resources and uses go's templating language to create custom interfaces so that consumers of the chart can configure the installation to meet their needs.
![helm-diagram.png](readme-assets/helm-diagram.png)
The fact that it is the most popular does not mean it is the only (or even the best) way to package kubernetes applications. In `12-deploying-to-multiple-environments` I will cover additional methods, but Helm is common enough that it is worth covering here.
## 3rd Party Example
### Bitnami/Postgresql
We will use a popular open source helm chart for installing PostgreSQL to show the common types of actions you will take when using 3rd party helm charts.
https://github.com/bitnami/charts/tree/main/bitnami/postgresql
- `helm repo add`: Adds the Bitnami chart repository to Helm's local list of chart repositories.
- `helm search repo`: Searches for available charts within the Bitnami repository.
- `oras repo tags`: Searches for tags in an OCI-compliant registry.
- `helm pull`: Downloads the PostgreSQL chart locally.
- `helm show values`: Displays the default values used by the chart.
- `helm install`: Installs the PostgreSQL chart into a Kubernetes cluster.
- `helm upgrade`: Upgrades the deployed PostgreSQL release to a newer chart version.
- `helm rollback`: Rolls back the PostgreSQL release to a previous version.
- `helm list`: Lists Helm releases deployed in the Kubernetes cluster.
- `helm get values`: Retrieves the values used for the deployed PostgreSQL release.
- `helm get manifests`: Shows the Kubernetes manifests of the deployed PostgreSQL release.
- `helm-uninstall`: Uninstalls the PostgreSQL release from the Kubernetes cluster.## 1st Party Examples
### Helm Create
The helm cli provides a command that can be used to create a new chart:
```
helm create
```This provides a starting point with the necessary boilerplate for creating a chart, and also demonstrates many features of helm. If you were to use this to bootstrap a chart of your own, you would replace the files in the `templates` directory with your own.
The repo includes an unmodified version of this chart for observation.
### Minimal Example
A super minimal example helm chart that deploys a single `ConfigMap`. While the configuration is minimal, it uses the following features of helm templating, which cover a majority of the various use cases required for most helm charts:
1. variables (`define`)
2. conditionals (`if`)
3. foreach (`range`)
4. `.Release`
5. `.Chart`
6. `.Values`