Remove unexisting annotations in kubectl apply -f Remove unexisting annotations in kubectl apply -f kubernetes kubernetes

Remove unexisting annotations in kubectl apply -f


As @Matt mentioned

Did you use kubectl apply to create this data on the resource? apply stores previous state in an annotation. If that annotation doesn't exist then it can't detect what data to delete

More about it here


You can use kubectl edit to delete those annotations.

Edit a resource from the default editor.

The edit command allows you to directly edit any API resource you can retrieve via the command line tools. It will open the editor defined by your KUBE_EDITOR, or EDITOR environment variables, or fall back to 'vi' for Linux or 'notepad' for Windows. You can edit multiple objects, although changes are applied one at a time. The command accepts filenames as well as command line arguments, although the files you point to must be previously saved versions of resources.

Editing is done with the API version used to fetch the resource. To edit using a specific API version, fully-qualify the resource, version, and group.

The default format is YAML. To edit in JSON, specify "-o json".

The flag --windows-line-endings can be used to force Windows line endings, otherwise the default for your operating system will be used.

In the event an error occurs while updating, a temporary file will be created on disk that contains your unapplied changes. The most common error when updating a resource is another editor changing the resource on the server. When this occurs, you will have to apply your changes to the newer version of the resource, or update your temporary saved copy to include the latest resource version.


I made an example with nginx pod and some annotation

apiVersion: v1kind: Podmetadata:  name: annotations-demo  annotations:    delete: without-restartspec:  containers:  - name: nginx    image: nginx:1.14.2    ports:    - containerPort: 80

I used

  • kubectl describe to check if the annotation is added.

    Annotations: delete: without-restart

  • kubectl edit to delete this annotation, it's empty now.

    Annotations: