name: annotate synopsis: Update the annotations on a resource description: | Update the annotations on one or more resources. An annotation is a key/value pair that can hold larger (compared to a label), and possibly not human-readable, data. It is intended to store non-identifying auxiliary data, especially data manipulated by tools and system extensions. If --overwrite is true, then existing annotations can be overwritten, otherwise attempting to overwrite an annotation will result in an error. If --resource-version is specified, then updates will use this resource version, otherwise the existing resource-version will be used. Possible resources include (case insensitive): pod (po), service (svc), replicationcontroller (rc), node (no), event (ev), componentstatuse (cs), limitrange (limits), persistentvolume (pv), persistentvolumeclaim (pvc), horizontalpodautoscaler (hpa), resourcequota (quota), secret options: - name: all default_value: "false" usage: | select all resources in the namespace of the specified resource types - name: filename shorthand: f default_value: '[]' usage: | Filename, directory, or URL to a file identifying the resource to update the annotation - name: include-extended-apis default_value: "true" usage: | If true, include definitions of new APIs via calls to the API server. [default true] - name: no-headers default_value: "false" usage: When using the default output, don't print headers. - name: output shorthand: o usage: | Output format. One of: json|yaml|wide|name|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=... See golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [http://releases.k8s.io/HEAD/docs/user-guide/jsonpath.md]. - name: output-version usage: | Output the formatted object with the given group version (for ex: 'extensions/v1beta1'). - name: overwrite default_value: "false" usage: | If true, allow annotations to be overwritten, otherwise reject annotation updates that overwrite existing annotations. - name: record default_value: "false" usage: Record current kubectl command in the resource annotation. - name: recursive shorthand: R default_value: "false" usage: If true, process directory recursively. - name: resource-version usage: | If non-empty, the annotation update will only succeed if this is the current resource-version for the object. Only valid when specifying a single resource. - name: selector shorthand: l usage: Selector (label query) to filter on - name: show-all shorthand: a default_value: "false" usage: | When printing, show all resources (default hide terminated pods.) - name: show-labels default_value: "false" usage: | When printing, show all labels as the last column (default hide labels column) - name: sort-by usage: | If non-empty, sort list types using this field specification. The field specification is expressed as a JSONPath expression (e.g. '{.metadata.name}'). The field in the API resource specified by this JSONPath expression must be an integer or a string. - name: template usage: | Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview]. inherited_options: - name: alsologtostderr default_value: "false" usage: log to standard error as well as files - name: api-version usage: | DEPRECATED: The API version to use when talking to the server - name: as usage: Username to impersonate for the operation. - name: certificate-authority usage: Path to a cert. file for the certificate authority. - name: client-certificate usage: Path to a client certificate file for TLS. - name: client-key usage: Path to a client key file for TLS. - name: cluster usage: The name of the kubeconfig cluster to use - name: context usage: The name of the kubeconfig context to use - name: insecure-skip-tls-verify default_value: "false" usage: | If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure. - name: kubeconfig usage: Path to the kubeconfig file to use for CLI requests. - name: log-backtrace-at default_value: :0 usage: when logging hits line file:N, emit a stack trace - name: log-dir usage: If non-empty, write log files in this directory - name: log-flush-frequency default_value: 5s usage: Maximum number of seconds between log flushes - name: logtostderr default_value: "true" usage: log to standard error instead of files - name: match-server-version default_value: "false" usage: Require server version to match client version - name: namespace usage: If present, the namespace scope for this CLI request. - name: password usage: Password for basic authentication to the API server. - name: server shorthand: s usage: The address and port of the Kubernetes API server - name: stderrthreshold default_value: "2" usage: logs at or above this threshold go to stderr - name: token usage: Bearer token for authentication to the API server. - name: user usage: The name of the kubeconfig user to use - name: username usage: Username for basic authentication to the API server. - name: v default_value: "0" usage: log level for V logs - name: vmodule usage: | comma-separated list of pattern=N settings for file-filtered logging example: |- # Update pod 'foo' with the annotation 'description' and the value 'my frontend'. # If the same annotation is set multiple times, only the last value will be applied kubectl annotate pods foo description='my frontend' # Update a pod identified by type and name in "pod.json" kubectl annotate -f pod.json description='my frontend' # Update pod 'foo' with the annotation 'description' and the value 'my frontend running nginx', overwriting any existing value. kubectl annotate --overwrite pods foo description='my frontend running nginx' # Update all pods in the namespace kubectl annotate pods --all description='my frontend running nginx' # Update pod 'foo' only if the resource is unchanged from version 1. kubectl annotate pods foo description='my frontend running nginx' --resource-version=1 # Update pod 'foo' by removing an annotation named 'description' if it exists. # Does not require the --overwrite flag. kubectl annotate pods foo description- see_also: - kubectl