This directory contains all predefined metadata types in the form of JSON schema. We expect every piece of metadata to have the following fields:
idof type string. Unique identifier assigned by this metadata service.
nameof type string. Name of the metadata assigned by external users.
- type information. We need type information to make the metadata self-explanatory and require explicit version of the type, following the Kubernetes convention. The following three fields together uniquely identify a version of a type.
kindof type string. Name of the type.
namespaceof type string. The namespace of the type to avoid naming collision.
apiversionof type string. The version of the type.
categoryof type string. We categorize metadata based on its role in Kubeflow systems:
- "artifact" represents input data and derived data in a workflow.E.g. data set, model.
- "execution" represents a run of an excutable, which can have artifacts as input and/or output.
- "container" represents a group of artifacts, executions, and other containers. E.g. workspace for solving a ML problem and Katib experiment for creating multiple models.
It is not necessary, but the easiest way to comply with these requirements is to extend the
This directory contains versions of predefined metadata schemas, which are loaded by the metadata service before it starts. Therefore metadata of these types can be directly logged to the metadata store.
- Different versions of metadata schema should be organized as
- Markdown documentaion of schemas are at
schema_test.govalidates all schemas in sub-directories and examples in
Customized metadata is defined in the same schema format as predefined metadata. The only difference between them is that customized metadata schemas are loaded by sending requests to the schema registration endpoint. (TODO: add link)