0

kubectl can diff configuration (blog, docs).

On Linux, this works fine (WSL, Ubuntu 18, bash). It gives me sensible output similar to the following.

$ kubectl diff --filename some-resources.yaml diff -u -N /tmp/LIVE-022965340/apps.v1.Deployment.… /tmp/MERGED-396067851/apps.v1.Deployment.… --- /tmp/LIVE-022965340/apps.v1.Deployment.… 2020-07-20 17:06:21.444811700 +0200 +++ /tmp/MERGED-396067851/apps.v1.Deployment.… 2020-07-20 17:06:21.470315500 +0200 @@ -6,7 +6,7 @@ kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apps/v1",… creationTimestamp: "2020-07-16T15:13:03Z" - generation: 1 + generation: 2 name: … namespace: … resourceVersion: "32827467" @@ -121,7 +121,7 @@ - chown www-data:www-data /files/ -R;chmod -R 755 /files/; chmod -R g+ws /files/ command: - /bin/bash - - -c + - -cv image: … imagePullPolicy: IfNotPresent name: init-sites-volume 

On PowerShell, kubectl diff fails (PowerShell 7, Windows 10).

PS > kubectl diff --filename some-resources.yaml error: failed to run "diff": executable file not found in %PATH% 

It seems that either kubectl can't find an executable named diff, or it trips up over diff being an alias for Compare-Object, which of course has very different syntax than Linux' diff.

Is it possible to get kubectl diff to work on PowerShell? If so, which diff-tool should I install and what should $env:KUBECTL_EXTERNAL_DIFF=… be set to?

1 Answer 1

2

This can be done by installing DiffUtils for Windows. The kubectl diff is using the Unix diff program so Windows will need some help with this. Simply:

  • Install the DiffUtils

  • Make sure the bin folder is mapped in your Win10 PATH variable (should be done automatically)

  • Restart the machine

Please let me know if that helped.

1
  • Yep, that worked. scoop install diffutils fixed it, no changes to PATH or restarts necessary. Thanks! Commented Jul 21, 2020 at 13:07

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.