Register a Component¶
Preface¶
This how-to will take you through the steps of registering a Component with the developer portal using one of the Git discovery locations.
Get a Repository¶
To begin, you will need to create or clone a repository in or from one of the Git discovery locations, such that they are available to entity ingress.
Discovery Locations
github.com/DiamondLightSource
- Entity descriptors at
/catalog-info.yaml
- Entity descriptors at
gitlab.diamond.ac.uk
- Entity descriptors at
/catalog-info.yaml
- Entity descriptors at
Create an Entity Descriptor¶
Firstly, we must create the entity descriptor file, please reference the Discovery Locations above for the appropriate location - this is typically catalog-info.yaml
at the root of the repository.
Entity Definition¶
To begin, we will specify the apiVersion
to be backstage.io/v1alpha1
and the kind
as Component
.
Example
apiVersion: backstage.io/v1alpha1
kind: Component
Metadata¶
Next, we will fill out the metadata
, this is common to all entity types. Only the name
field is required with numerous other optional fields available. It is recommended that you enter a title
and a description
. Complete field descriptions are available in the metadata reference.
Example
metadata:
name: developer-portal-backend
title: Developer Portal Backend
description: A node application performing discovery and providing the developer portal REST API.
Component Spec¶
Finally, we will fill out the spec
. Only the type
field is required with numerous other optional fields available. It is recommended that you enter a lifecycle
and an owner
. Complete field descriptions are available in the Component spec reference.
Example
spec:
type: service
lifecycle: experimental
owner: user:enu43627
Example Complete Descriptor
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: developer-portal-backend
title: Developer Portal Backend
description: A node application performing discovery and providing the developer portal REST API.
spec:
type: website
lifecycle: experimental
system: developer-portal
owner: user:enu43627
dependsOn:
- component:developer-guide
providesApis:
- developer-portal-backend-rest
Push & Wait¶
Now we have created our entity decriptor in the form of a catalog-info.yaml
we can push it to one of the discovery locations and wait for the developer portal to discover it - be aware that this may take a while depending on the schedule of the discovery provider.