Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I diff a Helm template against an existing deployment/release?

It looks like Helm 3 is making this more difficult: https://github.com/databus23/helm-diff/issues/176

But I'm finding that using the helm-diff plugin OR just doing this: helm template releaseName chart | kubectl diff -f - | bat -l diff - I'm seeing ALL resources as new with "+" next to them. Why is this?

I'm running these commands:

# upgrade
helm upgrade --install --create-namespace \
    --namespace derps -f helm/deploy-values.yaml \
    --set 'parentChart.param1=sdfsdfsdfdsf' \
    --set 'parentChart.param2=sdfsdfsdfdsf' \
    --set 'parentChart.param3=sdfsdfsdfdsf' \
    --set 'parentChart.param4=sdfsdfsdfdsf' \
    --set 'parentChart.param5=sdfsdfsdfdsf' \
    myapp helm/mychart

# make no changes and try to diff
helm template \
    --namespace derps -f helm/deploy-values.yaml \
    --set 'parentChart.param1=sdfsdfsdfdsf' \
    --set 'parentChart.param2=sdfsdfsdfdsf' \
    --set 'parentChart.param3=sdfsdfsdfdsf' \
    --set 'parentChart.param4=sdfsdfsdfdsf' \
    --set 'parentChart.param5=sdfsdfsdfdsf' \
    myapp helm/mychart | kubectl diff -f - | bat -l diff -

I get output that shows the ENTIRE manifest is new- why is this?

like image 461
red888 Avatar asked Sep 05 '25 03:09

red888


1 Answers

did you try:

helm template \
    --namespace derps --no-hooks --skip-tests \
    -f helm/deploy-values.yaml \
    --set 'parentChart.param1=sdfsdfsdfdsf' \
    --set 'parentChart.param2=sdfsdfsdfdsf' \
    --set 'parentChart.param3=sdfsdfsdfdsf' \
    --set 'parentChart.param4=sdfsdfsdfdsf' \
    --set 'parentChart.param5=sdfsdfsdfdsf' \
    myapp helm/mychart | kubectl diff --namespace derps -f - | bat -l diff -

like image 161
Luis Davim Avatar answered Sep 07 '25 19:09

Luis Davim