/helm-charts

Helm charts to ease deployment on Kubernetes clusters

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Helm Charts

CI PKG

Helm charts to ease the deployment of containers on Kubernetes clusters and get information on widely used components.

Quickstart

Catalog

Limitation: Helm Chart Releaser doesn't support multiple chart directories ou multiple levels so all charts must be in charts repository

Best pratices

Samples

Usage

From Helm CLI

# checks helm is installed
helm version

# if not already done, adds devpro repository in helm
helm repo add devpro https://devpro.github.io/helm-charts

# refreshes helm repository informations
helm repo update

# searches for a specific package from the command line
helm search repo -l <package_name>

# installs a package
helm install <package_name>

From ArgoCD

  • Create a git repository to store Kubernetes definition files (GitOps approach)
# wordpress/Chart.yaml
apiVersion: v2
name: wordpress
description: Helm chart for installing WordPress
type: application
version: 0.1.0
appVersion: 1.0.0
dependencies:
  - name: wordpress
    version: 0.1.1
    repository: https://devpro.github.io/helm-charts
  • Create a new application in ArgoCD to reference the git repository with the path to the folder

From Fleet

  • Create a git repository to store Kubernetes definition files (GitOps approach)
# wordpress/fleet.yaml
defaultNamespace: sample-apps
helm:
  repo: https://devpro.github.io/helm-charts
  chart: wordpress
  version: 0.1.1
  releaseName: wordpress
  • Create a GitRepo to reference the git repository with the path to the folder

From Rancher

  • In your cluster
    • Go to "Apps" > "Repositories", click on "Create" and enter https://devpro.github.io/helm-charts as "Index URL", then click on "Create"
    • Go to "Apps" > "Charts", look at the available applications (charts) and install the one(s) you want

Cluster setup logic

  • Create a Kubernetes Cluster and get CLI access (download kubectl configuration)
  • Install & configure kube add-ons
    • Install certificate issuer (cert-manager)
    • Create storage class
    • Create Ingress Controller (NGINX or HAProxy)
    • Create load balancer
    • Install secret management (Sealed Secrets)
    • Deploy GitOps tool (ArgoCD or Fleet)
  • Setup Security (NeuVector)
  • Install Observability (OpenTelemetry, Prometheus, Grafana)
  • Setup Continuous Deployment
    • Configure GitOps repositories and deploy backing services and applications

Local setup

How to validate a code change

# runs in a container (with workaround described at https://github.com/helm/chart-testing/issues/464)
docker run --rm -it --workdir=/data --volume $(pwd):/data quay.io/helmpack/chart-testing:v3.7.1 /bin/sh -c "git config --global --add safe.directory /data ; ./scripts/add_helm_repo.sh ; ct lint --target-branch main"
# runs in a container
docker run --rm -v $(pwd)/charts:/charts -v $(pwd)/.kube-linter.yaml:/etc/config.yaml stackrox/kube-linter lint /charts --config /etc/config.yaml

References