Original src:
https://github.com/phcollignon/helm
I am working in ubuntu 20.04.1 LTS
Docker, Minikube, Kubectl, Skaffold should be installed.
$ docker -v
Docker version 20.10.0, build 7287ab3
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
$ minikube version
minikube version: v1.16.0
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
$ kubectl version --client --short
Client Version: v1.20.1
$ curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
$ chmod +x skaffold
$ sudo mv skaffold /usr/local/bin
$ skaffold version
v1.19.0
$ {
minikube --profile pack-apps config set memory 8192
minikube --profile pack-apps config set cpus 4
// minikube --profile pack-apps config set vm-driver virtualbox
minikube --profile pack-apps config set vm-driver docker
minikube --profile pack-apps config set kubernetes-version v1.20.2
minikube start --profile pack-apps
}
// Enable ingress
$ minikube addons --profile pack-apps enable ingress
$ minikube --profile pack-apps ip
172.17.0.2
$ sudo vi /etc/hosts
#---------------------------------------------------------------------
# Minikube
#---------------------------------------------------------------------
192.168.49.2 frontend.minikube.local
192.168.49.2 backend.minikube.local
$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
$ kubectl config view
$ helm version --short
v3.5.0+g32c2223
$ curl -s "https://raw.githubusercontent.com/\
kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash && chmod +x kustomize && sudo mv kustomize /usr/local/bin/
$ cd skaffold
$ docker login
Need to update my docker image name webmakaka/*** to your in scripts from skaffold and apps/v1.1/chart folders.
$ skaffold dev -f ./skaffold-helm.yaml
or
$ skaffold dev -f ./skaffold-kustomize.yaml
$ kubectl get pods
browser -> http://frontend.minikube.local
$ cd apps/v1/chart/
$ helm install myguestbook guestbook
$ helm list --short
myguestbook
$ helm status myguestbook
NAME: myguestbook
LAST DEPLOYED: Sat Jan 16 01:12:05 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
http://frontend.minikube.local/
templates/frontend.yaml
image: phico/frontend:1.1
$ helm upgrade myguestbook guestbook
$ helm list
$ helm history myguestbook
$ helm delete myguestbook
$ cd v2/chart
// check
$ helm template guestbook | less
// check
$ helm install guestbook --dry-run --debug
$ helm install myguestbook guestbook
// $ helm upgrade myguestbook guestbook
$ kubectl get pods
// delete stupid pod
$ kubectl delete pod myguestbook-backend-7ddb696b68-zbhdj
http://frontend.minikube.local/
OK
$ helm delete myguestbook
$ sudo vi /etc/hosts
#---------------------------------------------------------------------
# Minikube cluster
#---------------------------------------------------------------------
172.17.0.2 frontend.minikube.local
172.17.0.2 backend.minikube.local
172.17.0.2 dev.frontend.minikube.local
172.17.0.2 dev.backend.minikube.local
172.17.0.2 test.frontend.minikube.local
172.17.0.2 test.backend.minikube.local
$ cd v3/chart
$ helm install dev guestbook --set frontend.config.guestbook_name=DEV
$ helm install test guestbook --set frontend.config.guestbook_name=TEST
http://test.frontend.minikube.local/
OK!
$ cd v3/chart
$ helm delete dev guestbook
$ helm delete test guestbook
// ChartMuseum Instalation
$ curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum && chmod +x chartmuseum && sudo mv chartmuseum /usr/local/bin/
$ helm plugin install https://github.com/chartmuseum/helm-push.git
$ cd v4/chart
$ mv guestbook/charts dist
$ cd dist
$ helm package frontend backend database
$ helm repo index .
$ vi index.yaml
$ chartmuseum --debug --port=8080 \
--storage="local" \
--storage-local-rootdir="./chartstorage"
$ helm repo add local http://localhost:8080
$ helm push backend-1.2.2.tgz local
$ helm push database-1.2.2.tgz local
$ helm push frontend-1.2.0.tgz local
$ helm repo update
$ helm search repo local/
$ helm search repo local/
NAME CHART VERSION APP VERSION DESCRIPTION
local/backend 1.2.2 1.0 A Helm chart for Guestbook Backend 1.0
local/database 1.2.2 3.6 A Helm chart for Guestbook Database Mongodb 3.6
local/frontend 1.2.0 2.0 A Helm chart for Guestbook Frontend 2.0
$ curl -v http://localhost:8080/index.yaml
$ helm repo list
NAME URL
local http://localhost:8080
$ helm repo update
$ vi guestbook/requirements.yaml
dependencies:
- name: backend
version: ~1.2.2
repository: http://127.0.0.1:8080/
- name: frontend
version: ^1.2.0
repository: http://127.0.0.1:8080/
- name: database
version: ~1.2.2
repository: http://127.0.0.1:8080/
$ helm dependency update guestbook
$ ls guestbook/charts
backend-1.2.2.tgz database-1.2.2.tgz frontend-1.2.0.tgz
$ helm dependency list guestbook
NAME VERSION REPOSITORY STATUS
backend ~1.2.2 http://127.0.0.1:8080/ ok
frontend ^1.2.0 http://127.0.0.1:8080/ ok
database ~1.2.2 http://127.0.0.1:8080/ ok
$ helm install myguestbook guestbook
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
myguestbook default 1 2021-01-16 04:22:24.867593634 +0300 MSK deployed guestbook-1.2.2 2.0
$ helm status myguestbook
http://frontend.minikube.local/
OK!
$ helm delete myguestbook
$ ls guestbook/requirements.lock
$ cd dist/
$ vi frontend/Chart.yaml
upd version to version: 1.2.1
$ helm package frontend
$ helm push frontend-1.2.1.tgz local
$ curl -v http://localhost:8080/index.yaml
$ cd ..
$ helm dependency build guestbook
$ ls guestbook/charts
$ helm dependency update guestbook
$ ls guestbook/charts
$ ls guestbook/charts
backend-1.2.2.tgz database-1.2.2.tgz frontend-1.2.1.tgz
$ helm dependency list guestbook
NAME VERSION REPOSITORY STATUS
backend ~1.2.2 http://127.0.0.1:8080/ ok
frontend ^1.2.0 http://127.0.0.1:8080/ ok
database ~1.2.2 http://127.0.0.1:8080/ ok
???
I do not know is it rigt or not
???
$ cd guestbook
$ helm package .
$ helm push guestbook-1.2.2.tgz local
$ helm repo update
$ helm search repo guestbook
$ cd v5
$ helm install guestbook --set backend.enabled=false --set database.enabled=false
$ helm install guestbook --set tags.api=false
$ cd apps/v6/chart
$ ls guestbook/charts
$ rm guestbook/charts/database-1.2.2.tgz
$ helm repo list
$ helm search repo mongodb
$ helm inspect stable/mongodb | less
$ vi guestbook/requirements.yaml
$ heml dependency update guestbook
$ ls guestbook/charts
$ vi guestbook/values.yaml
$ heml install dev guestbook
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
// To remove
// $ helm repo remove stable
$ helm search wordpress
$ helm install stable/wordpress
$ helm list --short
// get password
$ (kubectl get secret --namespace default zeroed-greyhound-wordpress -o jsonpath="{.data.wordpress-password}" | base64 --decode)
$ kubectl get service
$ helm delete guestbook
$ helm repo remove local
Marley
Any questions in english: Telegram Chat
Любые вопросы на русском: Телеграм чат