Skip to content

helm-fest is about deploying a bunch of useful stuff on kubernetes using helm.

License

Notifications You must be signed in to change notification settings

deepshore/helm-fest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

helm-fest

helm-fest is about deploying a bunch of useful stuff on kubernetes using helm.

Preliminary notes

This walkthrough was developed by using the kubernetes cluster provided by https://github.com/deepshore/kubernetes-vagrant-for-dummies.

Requirements

The following is required:

  • a kubernetes cluster
  • kubectl
  • helm

Kubernetes

Check if a cluster is available:

kubectl get nodes

Install kube-prometheus-stack via chart repository

Add repo for kube-prometheus-stack:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

Add repos for subcharts:

helm repo add stable https://charts.helm.sh/stable
helm repo add grafana https://grafana.github.io/helm-charts

Update repos:

helm repo update

Create namespace:

kubectl create namespace monitoring

Install chart:

helm install -n monitoring kps prometheus-community/kube-prometheus-stack -f values/values-monitoring.yaml

Check deployment:

kubectl -n monitoring get all

Access Grafana:

export NODE_IP=$(kubectl get nodes -o jsonpath="{.items[0].status.addresses[0].address}")
export NODE_PORT=$(kubectl get --namespace monitoring -o jsonpath="{.spec.ports[0].nodePort}" services kps-grafana)
echo "http://${NODE_IP}:${NODE_PORT}"

Install kubernetes-dashboard via unpacked chart directory

Get the code of the chart:

git clone https://github.com/kubernetes/dashboard

Add repos for subcharts:

helm repo add stable https://charts.helm.sh/stable

Create namespace:

kubectl create namespace dashboard

Create a service account with clusterrole cluster-admin:

kubectl -n dashboard create sa dashboard-admin
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=dashboard:dashboard-admin

Build dependencies:

helm dependency build dashboard/aio/deploy/helm-chart/kubernetes-dashboard/

Install chart:

helm -n dashboard install kubernetes-dashboard dashboard/aio/deploy/helm-chart/kubernetes-dashboard/ -f values/values-dashboard.yaml

Access dashboard:

export NODE_PORT=$(kubectl get -n dashboard -o jsonpath="{.spec.ports[0].nodePort}" services kubernetes-dashboard)
export NODE_IP=$(kubectl get nodes -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT/

Install postgres via local chart archive

Get the code of the chart:

git clone https://github.com/bitnami/charts.git

Add repos for subcharts:

helm repo add bitnami https://charts.bitnami.com/bitnami

Create namespace:

kubectl create namespace postgresql

Build dependencies:

helm dependency build charts/bitnami/postgresql

Package chart:

helm package charts/bitnami/postgresql

Install chart:

helm -n postgresql install postgresql postgresql-10.2.0.tgz -f values/values-postgresql.yaml

Check if database is running:

kubectl -n postgresql get all

Versions

For this tutorial the following chart versions were used:

Configuration of values

Changes were made to the following values.

kube-prometheus-stack:

  • grafana.service.type: NodePort
  • grafana.service.nodePort: 30030
  • prometheusOperator.tls.enabled: false
  • prometheusOperator.admissionWebhooks.enabled: false

kubernetes-dashboard:

  • extraEnv[0].name: enable-insecure-login
  • extraEnv[0].value: 'true'
  • protocolHttp: true
  • service.type: NodePort
  • service.nodePort: 30443
  • rbac.create: false
  • serviceAccount.create: false
  • serviceAccount.name: dashboard-admin

postgresql:

  • service.type: NodePort
  • service.nodePort: 30432
  • persistence.enabled: false

About

helm-fest is about deploying a bunch of useful stuff on kubernetes using helm.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published