Service Catalog lists all the services in your cluster, including helpful information like the owner, a description of the service, links to documentation, and more.
This information is all sourced from annotations set on the services. Annotations can be set either via
kubectl or via Kubernetes YAML files.
The following are the supported annotation keys, also documented at a8r.io:
|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|
Find a service you would like to add an owner annotate to in your Service Catalog.
Run the following command, filling in the service name and your name:
Refresh your browser the owner is field updated.
If an annotation already exists for that key you will get an error; add the
If your service is in a namespace other than
default, you must specify it with the
While this is a quick and effective way to set a single annotation on a service, it doesn't scale well to setting multiple annotations. It also doesn't follow GitOps best practices; resource updates should be stored in version control and applied through a deployment pipeline. To accomplish this, you can add annotations to your YAML directly.
Open the YAML config file of one of your services.
Navigate to the
metadata property and locate the
annotations property directly beneath it.
If you cannot find an
annotations property, add one to your config in the location shown above.
Now add the following annotation, filling in your repo URL:
a8r.io/repository: "<repo URL>"
Your updated Service config should look something like this:
Finally, apply the updated YAML to your cluster: