Difference between revisions of "Helm diff"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "This is a great plugin for helm. helm plugin install https://github.com/databus23/helm-diff helm diff upgrade -n mynamespace myapp foo/myapp -f custom-values.yaml You could...")
 
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
helm plugin install https://github.com/databus23/helm-diff
 
helm plugin install https://github.com/databus23/helm-diff
  
helm diff upgrade -n mynamespace myapp foo/myapp -f custom-values.yaml
+
helm diff upgrade -n mynamespace myapp foo/myapp -f custom-values.yaml
  
 
You could use it like so
 
You could use it like so
  
```
+
```bash
 
#!/bin/bash
 
#!/bin/bash
 
lines=$(helm diff upgrade -n mynamespace myapp foo/myapp  -f custom-values.yaml)
 
lines=$(helm diff upgrade -n mynamespace myapp foo/myapp  -f custom-values.yaml)
Line 14: Line 14:
 
   echo "Helm changes detected."
 
   echo "Helm changes detected."
 
   echo "Running upgrade in 5."; sleep 5  helm upgrade --install -n mynamespace myapp foo/myapp  -f custom-values.yaml
 
   echo "Running upgrade in 5."; sleep 5  helm upgrade --install -n mynamespace myapp foo/myapp  -f custom-values.yaml
 +
fi
 +
```
 +
 +
You can use terraform helm provider as well.
 +
 +
https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release
 +
 +
```bash
 +
#!/bin/bash
 +
set -e
 +
 +
[[ $(helm repo list | grep ^external-secrets) ]] \
 +
  || helm repo add external-secrets https://charts.external-secrets.io
 +
[[ $(helm plugin list | grep ^diff) ]] \
 +
  || helm plugin install https://github.com/databus23/helm-diff
 +
helm diff version
 +
 +
kubectl create namespace external-secrets --dry-run=client -o yaml | kubectl apply -f -
 +
 +
helm_cmd(){
 +
  helm $1 upgrade --install external-secrets \
 +
    external-secrets/external-secrets \
 +
    -n external-secrets \
 +
    --set installCRDs=true
 +
}
 +
 +
lines=$(helm_cmd diff)
 +
if [[ $(echo -n "$lines" | wc -l) > 0 ]]; then
 +
  echo "$lines" | grep "^+\|^-" || true
 +
  echo "Helm changes detected."
 +
  echo "Running helm upgrade in 5."; sleep 5
 +
  helm_cmd
 
fi
 
fi
 
```
 
```

Latest revision as of 14:43, 7 January 2023

This is a great plugin for helm.

helm plugin install https://github.com/databus23/helm-diff

helm diff upgrade -n mynamespace myapp foo/myapp -f custom-values.yaml

You could use it like so

#!/bin/bash
lines=$(helm diff upgrade -n mynamespace myapp foo/myapp  -f custom-values.yaml)
if [[ $(echo $lines | wc -l) > 0 ]]; then
  echo "$lines" | grep "^+\|^-"
  echo "Helm changes detected."
  echo "Running upgrade in 5."; sleep 5  helm upgrade --install -n mynamespace myapp foo/myapp  -f custom-values.yaml
fi

You can use terraform helm provider as well.

https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release

#!/bin/bash
set -e

[[ $(helm repo list | grep ^external-secrets) ]] \
  || helm repo add external-secrets https://charts.external-secrets.io
[[ $(helm plugin list | grep ^diff) ]] \
  || helm plugin install https://github.com/databus23/helm-diff
helm diff version

kubectl create namespace external-secrets --dry-run=client -o yaml | kubectl apply -f -

helm_cmd(){
  helm $1 upgrade --install external-secrets \
    external-secrets/external-secrets \
    -n external-secrets \
    --set installCRDs=true
}

lines=$(helm_cmd diff)
if [[ $(echo -n "$lines" | wc -l) > 0 ]]; then
  echo "$lines" | grep "^+\|^-" || true
  echo "Helm changes detected."
  echo "Running helm upgrade in 5."; sleep 5
  helm_cmd
fi