Annotations are used to attach metadata to your Kubernetes objects. Typically they are used to provide contextual information around the object for teammates or information used by third-party tools. Service Catalog combines these uses to build a readily available catalog of your services, accessible by your teammates via Ambassador Cloud.
|Unstructured text description of the service for humans|
|GitHub or equivalent username (prefix with @), email address, or unstructured owner description|
|Slack channel, or link to other external chat system|
|Link to external bug tracker|
|Link to external log viewer|
|Link to external project documentation|
|Link to external VCS repository|
|Link to external support center|
|Link to external project runbook|
|When present, prevent the service from appearing in the Service Catalog|
|Link to external incident dashboard|
|Link to external uptime dashboard|
|Link to external performance dashboard|
|Unstructured text description of the service dependencies for humans|
|Path to the directory containing manifests for this service|
|Branch to target for rollout pull requests|
|Image repository type for rollouts; currently, only |
|Base image name that should be updated by rollouts|
|Name of the Kubernetes Deployment or Rollout object to update for rollouts|
|Coma separated list of Mapping objects that should control rollout traffic|
To learn more about the
a8r.io/rollouts.* annotations, see the progressive delivery reference.
kubectl annotate svc <service name> a8r.io/owner="<your name>"
If an annotation already exists for that key, you will get an error. You must add the
kubectl annotate --overwrite svc <service name> a8r.io/owner="<your name>"
If your service is in a namespace other than
default, you must specify it with the
kubectl annotate svc <service name> --namespace <namespace> a8r.io/owner="<your name>"
apiVersion: v1kind: Servicemetadata:Name: your_service_nameannotations:a8r.io/repository: "https://github.com/<your org>/<your repo>"
An example service YAML completely annotated can be seen below:
apiVersion: v1kind: Servicemetadata:Name: ambassadorannotations:a8r.io/description: "Edge Stack, responsible for handling all ingress traffic"a8r.io/owner: "Edgey"a8r.io/chat: "#ambassador"a8r.io/bugs: "https://github.com/datawire/ambassador/issues"a8r.io/logs: "https://kibana.getambassador.io"a8r.io/documentation: "https://www.getambassador.io/docs/edge-stack/latest/"a8r.io/repository: "https://github.com/datawire/ambassador"a8r.io/support: "http://a8r.io/slack"a8r.io/runbook: "https://www.getambassador.io/docs/edge-stack/latest/topics/running/debugging/"a8r.io/incidents: "https://incidents.getambassador.io"a8r.io/uptime: "https://uptime.getambassador.io"a8r.io/performance: "https://performance.getambassador.io"a8r.io/dependencies: "Redis"
Once you have modified your YAML, don’t forget to apply this with
kubectl or via your standard deployment process:
kubectl apply -f my_service.yaml