Welcome to the Linux Foundation Forum!

Managing State with Deployments kubectl --record unnown flag

Hi,

I have problem with flag --record ? I don't know whats the point.
kubectl create deploy ghost --image=ghost --record
Error: unknown flag: --record

kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4",

Comments

  • Hi @GrzegorzArtichowicz,

    You can try replacing create with apply.

    Regards ,
    -Chris

  • Hi @chrispokorni

    Yes I know but I would like to know why doesn't working :),excercise is in "imperative" way
    Best,
    GA

  • Hi @GrzegorzArtichowicz,

    Features are often changing in Kubernetes as the software matures and it goes through several releases. You can check the documentation or the command line reference to see whether there is any explanation why the flag no longer works in the given context. If there are no references to it being deprecated or no longer supported (and it is expected to work), then this unexpected behavior could be reported as a bug on the Kubernetes github issues site.

    Regards,
    -Chris

  • ok ,thank you

  • @GrzegorzArtichowicz said:
    Hi,

    I have problem with flag --record ? I don't know whats the point.
    kubectl create deploy ghost --image=ghost --record
    Error: unknown flag: --record

    kubectl version
    Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4",

    I got the same error with the client version v1.21.4: 'Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.4"'
    there is no description of the error in 'kubectl create --help', but I found the 2 issues in the repo mentioned:
    https://github.com/kubernetes/kubernetes/issues/81289
    https://github.com/kubernetes/kubernetes/issues/40422
    They show me that --record will be deprecated.
    However, it is still in progress and should not affect in v1.21.4, I think this might be a bug?

  • @GrzegorzArtichowicz said:
    Hi,

    I have problem with flag --record ? I don't know whats the point.
    kubectl create deploy ghost --image=ghost --record
    Error: unknown flag: --record

    kubectl version
    Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4",

    I got the same error with the client version v1.21.4: 'Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.4"'
    there is no description of the error in 'kubectl create --help', but I found the 2 issues in the repo mentioned:
    https://github.com/kubernetes/kubernetes/issues/81289
    https://github.com/kubernetes/kubernetes/issues/40422
    They show me that --record will be deprecated.
    However, it is still in progress and should not affect in v1.21.4, I think this might be a bug?

  • mgerstaedt
    mgerstaedt Posts: 1
    edited December 2021

    Hi there,
    I've got this issue too. Could you please review Chapter 7 "Deployment Rollbacks"? It seems to be deprecated until 1.6, but the --record flag it still in the documentation. Therefore it's very confusing to me and maybe others.

    Edit:
    Also the CHANGE-CAUSE seems to not recorded anymore.

    Thanks a lot.

  • Hi @mgerstaedt,

    Have you tried the --record=true syntax instead? It helps to record the change-cause annotation for a rolling update.

    Regards,
    -Chris

  • oleksazhel
    oleksazhel Posts: 57

    I suggest to change this error in training materials, because --record flag is not available since 2020 at least.
    As a workaround you can:

    • Run kubectl create deploy ghost --image=ghost
    • Run kubectl get deployments.apps ghost -o yaml > ghost.yaml
    • Run vim ghost.yaml and remove status, time, versions related info
    • Run kubectl delete deployments.apps ghost
    • And now you can use flag record with warning that it's deprecated and will be removed in the future kubectl create -f ghost.yaml --record
  • pnts
    pnts Posts: 33

    I'm using v1.23.1 because that's what will be used in the CKA exam.

    I do not get kubectl create --record to work.

    However, if I do like this:
    1. kubectl create -f my_deployment.yaml --save-config
    2. Then make some change to my_deployment.yaml, like changing replica count.
    3. kubectl apply -f my_deployment.yaml --record

    It works but I get the deprecated warning:

    Flag --record has been deprecated, --record will be removed in the future

    kubectl set image is working with the --record flag.

    I follow the discussion on Kubernetes Github where deprecation of --record flag is being discussed.
    Manual annotation seems like one way of moving forward:
    https://github.com/kubernetes/kubernetes/issues/40422#issuecomment-1118042103

  • oleksazhel
    oleksazhel Posts: 57
    edited July 2022

    @pnts I believe you can do it in one step, just kubectl apply -f my_deployment.yaml --record or imperatively kubectl apply -f my_deployment.yaml --record or even with migration to declarative form kubectl apply -f my_deployment.yaml --record --save-settings. By the way why do you think that CKA exam will use 1.23.1 and not 1.23.8 for example?)

  • pnts
    pnts Posts: 33

    @oleksazhel
    Yes, to do it declaratively worked. Like so:
    kubectl apply -f my_deployment.yaml --record
    Thanks!

    As for kubernetes version, I got it wrong.
    I was referring to this page:
    https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/

    But it says:

    Software Version: Kubernetes v1.23

    So I guess it could be any patch version.

  • jsm3031
    jsm3031 Posts: 16

    PS i think this is the best one-liner replacement for the command in the material

    kubectl create deployment --image=ghost ghost --dry-run=client -o yaml | k create --record=true -f -
    

    I have to admit I learned more about kubectl figuring that out.

  • Also ghost doesn't start for me as it obviously looks for a MySQL database on localhost...this is really bad for a paid course. This isn't what I expected.

  • ffol
    ffol Posts: 1

    Hi all,

    I myself went into the same situation where the instructions are still not updated, however that should not trigger any extensive troubleshooting as the idea is to experience how the rollout works on a specific deployments. You may use the image in the previous exercise, something like this one:

    kubectl create deploy dev-web --image=nginx:1.13.7-alpine --dry-run=client -o yaml | kubectl create --record=true -f -

    kubectl set image deployment/dev-web nginx=nginx:1.13.8-alpine --all

    kubectl rollout history deployment/dev-web

    kubectl rollout undo deployment/dev-web ; kubectl get pods

    kubectl rollout pause deployment/dev-web

    kubectl rollout resume deployment/dev-web

    Happy k8s learning!
    Florin

  • robertodmaggi
    robertodmaggi Posts: 1
    edited February 2023

    Com'on man!
    it's 2023, we paid so much money and the errors are still here?!
    has anybody read those forums in three years?
    I don't have time to waste to troubleshoot those so expensive courses!
    I arrived here after one hour googleing, I study in the night, having full day work and two children.

Categories

Upcoming Training