The core of Cortex is an entity catalog. Every entity in your Cortex catalog is described by a YAML file called
the Cortex Catalog Descriptor, also referred to as an entity's
Cortex YAML (naturally stemming
cortex.yaml, which is filename that powers the GitOps approach!).
Catalog entities are broken into two distinct types:
- Services - the default type and the core of your catalog, used for entities such as microservices, libraries, components, etc – essentially any codebase-like module.
- Resources - any entity that is not a service, such as infrastructure assets, kafka topics, custom types, etc.
When you log in you'll see this distinction immediately in the top navigation.
By default, your account is set up to use GitOps. However, if you want to work without GitOps you can change the setting in Settings | App Preferences | Enable UI Editor.
We recommend starting off using the UI editor (which includes a built-in YAML editor) and switching over to GitOps when ready for a wider rollout.
Regardless of whether you're using GitOps or UI Editing, your catalog entities are backed by YAML files. Each file is a fully compliant OpenAPI 3 spec file, with our own Cortex-specific extensions that we've added.
We use the OpenAPI spec as a base for service metadata, since it's an open spec with official support for extensions. That lets us extend it to be a catalog descriptor spec with optional usage of actual OpenAPI fields.
A barebones spec file has the OpenAPI version, along with an
info section that contains some basic details.
title: My Service
description: This is my cool service.
The only required fields under
info are the
title and the
However, if your entity is not a service, you must also specify
x-cortex-definition field is validated against the Resource Definition.
title: My Database
description: This is my cool MySQL database.
You'll see us refer to the "Entity Tag" throughout the docs. The Entity Tag is a unique identifier that's used through Cortex, for example to declare dependencies on other services or to look up information using the Slackbot.
Any time you see a mention of a Entity Tag, we're referring the value of
Adding more information
Any additional metadata you want to add to your descriptor belongs in the
info section. Throughout the
docs, you'll see snippets that start with
x-cortex-* – make sure to add this to the