helm
This commit is contained in:
parent
40b6ec78d1
commit
c33eb66752
140
README.md
140
README.md
@ -11,6 +11,14 @@
|
||||
* [Stick the nginx-ingress controler and my-nginx app together](#stick-nginx-ingress-and-tcp-service)
|
||||
* [Test exposed app on TCP-port 9000](#test-nginx-ingress-and-tcp-service)
|
||||
* [Running DaemonSets on `hostPort`](#running-daemonsets)
|
||||
* [HELM charts](#helm)
|
||||
* [Create a chart](#helm-create)
|
||||
* [Install local chart without](#packaging helm-install-without-packaging)
|
||||
* [List deployed helm charts](#helm-list)
|
||||
* [Upgrade local chart without packaging](#helm-upgrade)
|
||||
* [Get status of deployed chart](#helm-status)
|
||||
* [Get deployment history](#helm-history)
|
||||
* [Rollback](#helm-rollback)
|
||||
|
||||
## Install k3s <a name="install-k3s"></a>
|
||||
https://k3s.io/:
|
||||
@ -310,3 +318,135 @@ spec:
|
||||
maxUnavailable: 1
|
||||
type: RollingUpdate
|
||||
```
|
||||
|
||||
# HELM charts <a name="helm"></a>
|
||||
Docs:
|
||||
* https://helm.sh/docs/intro/using_helm/
|
||||
|
||||
Prerequisites:
|
||||
* running kubernetes installation
|
||||
* kubectl with ENV[KUBECONFIG] pointing to appropriate config file
|
||||
* helm
|
||||
|
||||
## Create a chart <a name="helm-create"></a>
|
||||
`helm create helm-test`
|
||||
|
||||
```
|
||||
~/kubernetes/helm$ tree helm-test/
|
||||
helm-test/
|
||||
├── charts
|
||||
├── Chart.yaml
|
||||
├── templates
|
||||
│ ├── deployment.yaml
|
||||
│ ├── _helpers.tpl
|
||||
│ ├── hpa.yaml
|
||||
│ ├── ingress.yaml
|
||||
│ ├── NOTES.txt
|
||||
│ ├── serviceaccount.yaml
|
||||
│ ├── service.yaml
|
||||
│ └── tests
|
||||
│ └── test-connection.yaml
|
||||
└── values.yaml
|
||||
```
|
||||
|
||||
## Install local chart without packaging <a name="helm-install-without-packaging"></a>
|
||||
`helm install helm-test-dev helm-test/ --set image.tag=latest --debug --wait`
|
||||
|
||||
or just a *dry-run*:
|
||||
|
||||
`helm install helm-test-dev helm-test/ --set image.tag=latest --debug --dry-run`
|
||||
|
||||
```
|
||||
--wait: Waits until all Pods are in a ready state, PVCs are bound, Deployments have minimum (Desired minus maxUnavailable)
|
||||
Pods in ready state and Services have an IP address (and Ingress if a LoadBalancer) before marking the release as successful.
|
||||
It will wait for as long as the --timeout value. If timeout is reached, the release will be marked as FAILED. Note: In
|
||||
scenarios where Deployment has replicas set to 1 and maxUnavailable is not set to 0 as part of rolling update strategy,
|
||||
|
||||
--wait will return as ready as it has satisfied the minimum Pod in ready condition.
|
||||
```
|
||||
|
||||
## List deployed helm charts <a name="helm-list"></a>
|
||||
```
|
||||
~/kubernetes/helm$ helm list
|
||||
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
|
||||
helm-test-dev default 4 2020-08-27 12:30:38.98457042 +0200 CEST deployed helm-test-0.1.0 1.16.0
|
||||
```
|
||||
|
||||
## Upgrade local chart without packaging <a name="helm-upgrade"></a>
|
||||
```
|
||||
~/kubernetes/helm$ helm upgrade helm-test-dev helm-test/ --set image.tag=latest --wait --timeout 60s
|
||||
Release "helm-test-dev" has been upgraded. Happy Helming!
|
||||
NAME: helm-test-dev
|
||||
LAST DEPLOYED: Thu Aug 27 12:47:09 2020
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
REVISION: 7
|
||||
NOTES:
|
||||
1. Get the application URL by running these commands:
|
||||
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=helm-test,app.kubernetes.io/instance=helm-test-dev" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl --namespace default port-forward $POD_NAME 8080:80
|
||||
```
|
||||
`helm upgrade [...] --wait` is synchronous and exit with 0 on success, otherwise with >0 on failure. `helm upgrade` will wait for 5 minutes Setting the `--timeout` (Default 5 minutes) flag makes This can be used in term of CI/CD deployments with Jenkins.
|
||||
|
||||
## Get status of deployed chart <a name="helm-status"></a>
|
||||
```
|
||||
~/kubernetes/helm$ helm status helm-test-dev
|
||||
NAME: helm-test-dev
|
||||
LAST DEPLOYED: Thu Aug 27 12:47:09 2020
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
REVISION: 7
|
||||
NOTES:
|
||||
1. Get the application URL by running these commands:
|
||||
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=helm-test,app.kubernetes.io/instance=helm-test-dev" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl --namespace default port-forward $POD_NAME 8080:80
|
||||
```
|
||||
|
||||
## Get deployment history <a name="helm-history"></a>
|
||||
```
|
||||
~/kubernetes/helm$ helm history helm-test-dev
|
||||
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
|
||||
10 Thu Aug 27 12:56:33 2020 failed helm-test-0.1.0 1.16.0 Upgrade "helm-test-dev" failed: timed out waiting for the condition
|
||||
11 Thu Aug 27 13:08:34 2020 superseded helm-test-0.1.0 1.16.0 Upgrade complete
|
||||
12 Thu Aug 27 13:09:59 2020 superseded helm-test-0.1.0 1.16.0 Upgrade complete
|
||||
13 Thu Aug 27 13:10:24 2020 superseded helm-test-0.1.0 1.16.0 Rollback to 11
|
||||
14 Thu Aug 27 13:23:22 2020 failed helm-test-0.1.1 blubb Upgrade "helm-test-dev" failed: timed out waiting for the condition
|
||||
15 Thu Aug 27 13:26:43 2020 pending-upgrade helm-test-0.1.1 blubb Preparing upgrade
|
||||
16 Thu Aug 27 13:27:12 2020 superseded helm-test-0.1.1 blubb Upgrade complete
|
||||
17 Thu Aug 27 14:32:32 2020 superseded helm-test-0.1.1 Upgrade complete
|
||||
18 Thu Aug 27 14:33:58 2020 superseded helm-test-0.1.1 Upgrade complete
|
||||
19 Thu Aug 27 14:36:49 2020 failed helm-test-0.1.1 cosmetics Upgrade "helm-test-dev" failed: timed out waiting for the condition
|
||||
```
|
||||
|
||||
## Rollback <a name="helm-rollback"></a>
|
||||
`helm rollback helm-test-dev 18 --wait`
|
||||
```
|
||||
~/kubernetes/helm$ helm history helm-test-dev
|
||||
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
|
||||
10 Thu Aug 27 12:56:33 2020 failed helm-test-0.1.0 1.16.0 Upgrade "helm-test-dev" failed: timed out waiting for the condition
|
||||
11 Thu Aug 27 13:08:34 2020 superseded helm-test-0.1.0 1.16.0 Upgrade complete
|
||||
12 Thu Aug 27 13:09:59 2020 superseded helm-test-0.1.0 1.16.0 Upgrade complete
|
||||
13 Thu Aug 27 13:10:24 2020 superseded helm-test-0.1.0 1.16.0 Rollback to 11
|
||||
14 Thu Aug 27 13:23:22 2020 failed helm-test-0.1.1 blubb Upgrade "helm-test-dev" failed: timed out waiting for the condition
|
||||
15 Thu Aug 27 13:26:43 2020 pending-upgrade helm-test-0.1.1 blubb Preparing upgrade
|
||||
16 Thu Aug 27 13:27:12 2020 superseded helm-test-0.1.1 blubb Upgrade complete
|
||||
17 Thu Aug 27 14:32:32 2020 superseded helm-test-0.1.1 Upgrade complete
|
||||
18 Thu Aug 27 14:33:58 2020 superseded helm-test-0.1.1 Upgrade complete
|
||||
19 Thu Aug 27 14:36:49 2020 failed helm-test-0.1.1 cosmetics Upgrade "helm-test-dev" failed: timed out waiting for the condition
|
||||
20 Thu Aug 27 14:37:36 2020 deployed helm-test-0.1.1 Rollback to 18
|
||||
```
|
||||
```
|
||||
~/kubernetes/helm$ helm status helm-test-dev
|
||||
NAME: helm-test-dev
|
||||
LAST DEPLOYED: Thu Aug 27 14:37:36 2020
|
||||
NAMESPACE: default
|
||||
STATUS: deployed
|
||||
REVISION: 20
|
||||
NOTES:
|
||||
1. Get the application URL by running these commands:
|
||||
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=helm-test,app.kubernetes.io/instance=helm-test-dev" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl --namespace default port-forward $POD_NAME 8080:80
|
||||
```
|
||||
Loading…
Reference in New Issue
Block a user