Search code examples
kuberneteskubernetes-pod

Usage of --record in kubectl imperative commands in Kubernetes


I tried to find useful information when should i use --record. I created 3 commands:

  • k set image deployment web1 nginx=lfccncf/nginx:latest --record
  • k rollout undo deployment/web1 --record
  • k -n kdpd00202 edit deployment web1 --record

Could anyone tell me if I need to use --record in each of these 3 commands?

When is it necessary to use --record and when is it useless?


Solution

  • You can specify the --record flag to write the command executed in the resource annotation kubernetes.io/change-cause. The recorded change is useful for future introspection. For example, to see the commands executed in each Deployment revision.

    kubectl rollout history deployment.v1.apps/nginx-deployment
    The output is similar to this:
    
    deployments "nginx-deployment"
    REVISION    CHANGE-CAUSE
    1           kubectl apply --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml --record=true
    2           kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1 --record=true
    3           kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.161 --record=true
    

    So it's not mandatory for any of the commands and but is recommended for kubectl set image because you will not see anything in CHANGE-CAUSE section as above if you skip --record