<p>I don't know why the change cause below is always kubectl create although I run different kubectl commands. The second revision should be 'kubectl apply' not 'kubectl create' and the third should be 'kubectl set image'.</p>
<p>I am running Kubernetes v1.18.5</p>
<pre class="lang-sh prettyprint-override"><code>[garfield@kubemaster1 Kube]$ kubectl rollout history deployment/myapp-deployment
deployment.apps/myapp-deployment 
REVISION  CHANGE-CAUSE
1         kubectl create --filename=deployment-definition.yml --record=true
2         kubectl create --filename=deployment-definition.yml --record=true

[garfield@kubemaster1 Kube]$ kubectl set image deployment.apps/myapp-deployment nginx-container=nginx:1.12-perl
deployment.apps/myapp-deployment image updated
[garfield@kubemaster1 Kube]$ kubectl rollout history deployment/myapp-deployment
deployment.apps/myapp-deployment 
REVISION  CHANGE-CAUSE
1         kubectl create --filename=deployment-definition.yml --record=true
2         kubectl create --filename=deployment-definition.yml --record=true
3         kubectl create --filename=deployment-definition.yml --record=true
</code></pre>
<p>UPDATE:
I should have added --record at the end of every kubectl command</p>

Garfield
<p>I should have added --record at the end of every kubectl.</p>
<p>Adding <a href="https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#create" rel="nofollow noreferrer">more details</a>:</p>
<blockquote>
<p><code>--record</code>: Record current kubectl command in the resource
annotation. If set to false, do not record the command. If set to
true, record the command. If not set, default to updating the existing
annotation value only if one already exists.</p>
</blockquote>
