Adding --record=true on a deployment file - Kubernetes

3/6/2020

I'm new to Kubernetes and I wanted to know if there is there a way I can add '--record=true' inside the deployment yaml file, so I do not have to type it on the command line!

I know it goes like this: kubectl apply -f deployfile.yml --record

I am asking this because we work on a team, and not everyone is using --record=true at the end of the command when deploying files to kubernetes!

Thank you in advance,

-- Big Mojo
deployment
kubernetes

2 Answers

3/6/2020

Create an alias in your bashrc or zshrc as below

alias kubectl=kubectl --record and then do kubectl apply -f deployfile.yml

or

alias kr=kubectl --record and kr apply -f deployfile.yml

-- Tummala Dhanvi
Source: StackOverflow

3/6/2020

As far as I'm aware there is no feature like --record=true flag in kubectl that you can add to Manifest.

The command which was used to start the Deployment is being stored in the kubernetes.io/change-cause annotation. This is being used for Rollout history which is described here.

First, check the revisions of this Deployment:

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.9.1 --record=true
3           kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.91 --record=true

CHANGE-CAUSE is copied from the Deployment annotation kubernetes.io/change-cause to its revisions upon creation. You can specify the CHANGE-CAUSE message by:

  • Annotating the Deployment with kubectl annotate deployment.v1.apps/nginx-deployment kubernetes.io/change-cause="image updated to 1.9.1"
  • Append the --record flag to save the kubectl command that is making changes to the resource.
  • Manually editing the manifest of the resource.

To see the details of each revision, run: kubectl rollout history deployment.v1.apps/nginx-deployment --revision=2

The output is similar to this:

deployments "nginx-deployment" revision 2
  Labels:       app=nginx
          pod-template-hash=1159050644
  Annotations:  kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
  Containers:
   nginx:
    Image:      nginx:1.9.1
    Port:       80/TCP
     QoS Tier:
        cpu:      BestEffort
        memory:   BestEffort
    Environment Variables:      <none>
  No volumes.

For the command history I would use $ history or check user bash_history

$ tail /home/username/.bash_history

-- Crou
Source: StackOverflow