Annotations são declaradas de maneira semelhante aos labels mas servem para um propósito diferente. Elas representam pares chave-valor que fornecem metadados descritivos. A diferença mais importante entre labels e annotations é que as annotations não podem ser utilizadas para consulta e seleção de objetos. Exemplos típicos de annotations são hashes de commits, informações de release e contato do owner do objeto. Se a annotation possuir caracteres especiais ou espaços coloque-a entre aspas simples ou aspas duplas.

Figure 6-3. Pod with annotations

Figure 6-3. Pod with annotations

Declaring Annotations

O comando kubectl run não fornece uma opção para definir annotations como faz para os labels. É preciso adicionar as annotations no manifesto YAML sob a seção metadata.annotations.

apiVersion: v1
kind: Pod
metadata:
  name: annotated-pod
  annotations:
    commit: 866a8dc
		author: 'Benjamin Muschko'
    branch: 'bm/bugfix'
spec:
  containers:
  - image: nginx
    name: nginx

Inspecting Annotations

Podemos utilizar os comandos describe e/ou get para recuperar as annotations criadas no manifesto do Pod.

# Buscando Annotations com o comando Describe
$ kubectl describe pod annotated-pod | grep -C 2 Annotations:
	...
	Annotations:  author: Benjamin Muschko
	              branch: bm/bugfix
	              commit: 866a8dc
	...

# Buscando Annotations com o comando Get
$ kubectl get pod annotated-pod -o yaml | grep -C 3 annotations:
	metadata:
	  annotations:
	    author: Benjamin Muschko
	    branch: bm/bugfix
	    commit: 866a8dc

Modifying Annotations for a Live Object

O comando kubectl annotate é utilizado para adicionar, remover ou alterar annotations assim como o comando kubectl label faz para os labels.

# Adiciona uma annotation ao Pod
$ kubectl annotate pod annotated-pod oncall='800-555-1212'
	pod/annotated-pod annotated

# Sobrescreve uma annotation do Pod
$ kubectl annotate pod annotated-pod oncall='800-555-2000' --overwrite
	pod/annotated-pod annotated

# Remove uma annotation do Pod
$ kubectl annotate pod annotated-pod oncall-
	pod/annotated-pod annotated