Skip to main content
Diff the live version against a would-be applied version

Synopsis

Diff configurations specified by file name or stdin between the current online configuration, and the configuration as it would be if applied. The output is always YAML. KUBECTL_EXTERNAL_DIFF environment variable can be used to select your own diff command. Users can use external commands with params too, example: KUBECTL_EXTERNAL_DIFF=“colordiff -N -u” By default, the “diff” command available in your path will be run with the “-u” (unified diff) and “-N” (treat absent files as empty) options. Exit status: 0 No differences were found. 1 Differences were found. >1 Kubectl or diff failed with an error. Note: KUBECTL_EXTERNAL_DIFF, if used, is expected to follow that convention.
datumctl diff -f FILENAME

Examples

  # Diff resources included in pod.json
  kubectl diff -f pod.json

  # Diff file read from stdin
  cat service.yaml | kubectl diff -f -

Options

FlagTypeDescription
--concurrencyintNumber of objects to process in parallel when diffing against the live version. Larger number = faster, but more memory, I/O and CPU over that shorter period of time. (default 1)
--field-managerstringName of the manager used to track field ownership. (default "kubectl-client-side-apply")
-f, --filenamestringsFilename, directory, or URL to files containing the configuration to diff.
--force-conflictsIf true, server-side apply will force the changes against conflicts.
-h, --helpHelp for diff.
-k, --kustomizestringProcess the kustomization directory. This flag can’t be used together with -f or -R.
--pruneInclude resources that would be deleted by pruning. Can be used with -l and default shows all resources would be pruned.
--prune-allowliststringArrayOverwrite the default allowlist with <group/version/kind> for --prune.
-R, --recursiveProcess the directory used in -f, --filename recursively.
-l, --selectorstringSelector (label query) to filter on, supports =, ==, !=, in, notin.
--server-sideIf true, apply runs in the server instead of the client.
--show-managed-fieldsIf true, include managed fields in the diff.

Options inherited from parent commands

FlagTypeDescription
--asstringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.
--as-groupstringArrayGroup to impersonate for the operation. Can be repeated to specify multiple groups.
--as-uidstringUID to impersonate for the operation.
--as-user-extrastringArrayUser extras to impersonate for the operation. Can be repeated to specify multiple values for the same key.
--certificate-authoritystringPath to a cert file for the certificate authority.
--disable-compressionIf true, opt-out of response compression for all requests to the server.
--insecure-skip-tls-verifyIf true, the server’s certificate will not be checked for validity. This will make your HTTPS connections insecure.
--log-flush-frequencydurationMaximum number of seconds between log flushes. (default 5s)
-n, --namespacestringIf present, the namespace scope for this CLI request.
--organizationstringOrganization name.
--platform-wideAccess the platform root instead of a project or organization control plane.
--projectstringProject name.
--request-timeoutstringThe length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don’t timeout requests. (default "0")
-s, --serverstringThe address and port of the Kubernetes API server.
--tls-server-namestringServer name to use for server certificate validation. If not provided, the hostname used to contact the server is used.
--tokenstringBearer token for authentication to the API server.
--userstringThe name of the kubeconfig user to use.
-v, --vLevelNumber for the log level verbosity.
--vmodulemoduleSpecComma-separated list of pattern=N settings for file-filtered logging (only works for the default text log format).

See also

  • datumctl - A CLI for interacting with the Datum platform
Auto generated by spf13/cobra on 24-Feb-2026
Last modified on March 25, 2026