Merge pull request #11068 from backstage/blam/move-sample-data
PRFC: Moving `sample-data` into `create-app` templates
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Added sample catalog data to the template under a top-level `examples` directory. This includes some simple entities, org data, and a template. You can find the sample data at https://github.com/backstage/backstage/tree/master/packages/create-app/templates/default-app/examples.
|
||||
+8
-20
@@ -203,8 +203,6 @@ catalog:
|
||||
- Component
|
||||
- API
|
||||
- Resource
|
||||
- Group
|
||||
- User
|
||||
- Template
|
||||
- System
|
||||
- Domain
|
||||
@@ -243,7 +241,7 @@ catalog:
|
||||
# Add a location here to ingest it, for example from a URL:
|
||||
#
|
||||
# - type: url
|
||||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all-components.yaml
|
||||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml
|
||||
#
|
||||
# For local development you can use a file location instead:
|
||||
#
|
||||
@@ -253,33 +251,23 @@ catalog:
|
||||
# File locations are relative to the current working directory of the
|
||||
# backend, for example packages/backend/.
|
||||
|
||||
# Backstage example components
|
||||
# Backstage example entities
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-components.yaml
|
||||
target: ../catalog-model/examples/all.yaml
|
||||
# Backstage example groups and users
|
||||
- type: file
|
||||
target: ../catalog-model/examples/acme-corp.yaml
|
||||
rules:
|
||||
- allow: [User, Group]
|
||||
# Example component for github-actions and TechDocs
|
||||
- type: file
|
||||
target: ../../plugins/github-actions/examples/sample.yaml
|
||||
# Example component for TechDocs
|
||||
- type: file
|
||||
target: ../../plugins/techdocs-backend/examples/documented-component/catalog-info.yaml
|
||||
# Backstage example APIs
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-apis.yaml
|
||||
# Backstage example resources
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-resources.yaml
|
||||
# Backstage example systems
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-systems.yaml
|
||||
# Backstage example domains
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-domains.yaml
|
||||
# Backstage example templates
|
||||
- type: file
|
||||
target: ../../plugins/scaffolder-backend/sample-templates/all-templates.yaml
|
||||
# Backstage example groups and users
|
||||
- type: file
|
||||
target: ../catalog-model/examples/acme-corp.yaml
|
||||
# Backstage end-to-end tests of TechDocs
|
||||
- type: file
|
||||
target: ../../cypress/e2e-fixture.catalog.info.yaml
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Location
|
||||
metadata:
|
||||
name: example-apis
|
||||
description: A collection of all Backstage example entities, except users, groups, and templates
|
||||
spec:
|
||||
targets:
|
||||
- ./all-apis.yaml
|
||||
- ./all-components.yaml
|
||||
- ./all-domains.yaml
|
||||
- ./all-resources.yaml
|
||||
- ./all-systems.yaml
|
||||
@@ -76,36 +76,28 @@ catalog:
|
||||
rules:
|
||||
- allow: [Component, System, API, Resource, Location]
|
||||
locations:
|
||||
# Backstage example components
|
||||
- type: url
|
||||
target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all-components.yaml
|
||||
# Local example data, file locations are relative to the backend process, typically `packages/backend`
|
||||
- type: file
|
||||
target: ../../examples/entities.yaml
|
||||
|
||||
# Backstage example systems
|
||||
- type: url
|
||||
target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all-systems.yaml
|
||||
|
||||
# Backstage example APIs
|
||||
- type: url
|
||||
target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all-apis.yaml
|
||||
|
||||
# Backstage example resources
|
||||
- type: url
|
||||
target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all-resources.yaml
|
||||
|
||||
# Backstage example organization groups
|
||||
- type: url
|
||||
target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/org.yaml
|
||||
|
||||
# Backstage example templates
|
||||
- type: url
|
||||
target: https://github.com/backstage/software-templates/blob/main/scaffolder-templates/react-ssr-template/template.yaml
|
||||
# Local example template
|
||||
- type: file
|
||||
target: ../../examples/template/template.yaml
|
||||
rules:
|
||||
- allow: [Template]
|
||||
- type: url
|
||||
target: https://github.com/backstage/software-templates/blob/main/scaffolder-templates/springboot-grpc-template/template.yaml
|
||||
|
||||
# Local example organizational data
|
||||
- type: file
|
||||
target: ../../examples/org.yaml
|
||||
rules:
|
||||
- allow: [Template]
|
||||
- type: url
|
||||
target: https://github.com/backstage/software-templates/blob/main/scaffolder-templates/docs-template/template.yaml
|
||||
rules:
|
||||
- allow: [Template]
|
||||
- allow: [User, Group]
|
||||
|
||||
## Uncomment these lines to add more example data
|
||||
# - type: url
|
||||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml
|
||||
|
||||
## Uncomment these lines to add an example org
|
||||
# - type: url
|
||||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme-corp.yaml
|
||||
# rules:
|
||||
# - allow: [User, Group]
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-system
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: System
|
||||
metadata:
|
||||
name: examples
|
||||
spec:
|
||||
owner: guests
|
||||
---
|
||||
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-component
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: example-website
|
||||
spec:
|
||||
type: website
|
||||
lifecycle: experimental
|
||||
owner: guests
|
||||
system: examples
|
||||
providesApis: [example-grpc-api]
|
||||
---
|
||||
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: API
|
||||
metadata:
|
||||
name: example-grpc-api
|
||||
spec:
|
||||
type: grpc
|
||||
lifecycle: experimental
|
||||
owner: guests
|
||||
system: examples
|
||||
definition: |
|
||||
syntax = "proto3";
|
||||
|
||||
service Exampler {
|
||||
rpc Example (ExampleMessage) returns (ExampleMessage) {};
|
||||
}
|
||||
|
||||
message ExampleMessage {
|
||||
string example = 1;
|
||||
};
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-user
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: User
|
||||
metadata:
|
||||
name: guest
|
||||
spec:
|
||||
memberOf: [guests]
|
||||
---
|
||||
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-group
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Group
|
||||
metadata:
|
||||
name: guests
|
||||
spec:
|
||||
type: team
|
||||
children: []
|
||||
@@ -0,0 +1,8 @@
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: ${{ values.name | dump }}
|
||||
spec:
|
||||
type: service
|
||||
owner: user:guest
|
||||
lifecycle: experimental
|
||||
@@ -0,0 +1 @@
|
||||
console.log('Hello from ${{ values.name }}!');
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "${{ values.name }}",
|
||||
"private": true,
|
||||
"dependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
apiVersion: scaffolder.backstage.io/v1beta3
|
||||
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-template
|
||||
kind: Template
|
||||
metadata:
|
||||
name: example-nodejs-template
|
||||
title: Example Node.js Template
|
||||
description: An example template for the scaffolder that creates a simple Node.js service
|
||||
spec:
|
||||
owner: user:guest
|
||||
type: service
|
||||
|
||||
# These parameters are used to generate the input form in the frontend, and are
|
||||
# used to gather input data for the execution of the template.
|
||||
parameters:
|
||||
- title: Fill in some steps
|
||||
required:
|
||||
- name
|
||||
properties:
|
||||
name:
|
||||
title: Name
|
||||
type: string
|
||||
description: Unique name of the component
|
||||
ui:autofocus: true
|
||||
ui:options:
|
||||
rows: 5
|
||||
- title: Choose a location
|
||||
required:
|
||||
- repoUrl
|
||||
properties:
|
||||
repoUrl:
|
||||
title: Repository Location
|
||||
type: string
|
||||
ui:field: RepoUrlPicker
|
||||
ui:options:
|
||||
allowedHosts:
|
||||
- github.com
|
||||
|
||||
# These steps are executed in the scaffolder backend, using data that we gathered
|
||||
# via the parameters above.
|
||||
steps:
|
||||
# Each step executes an action, in this case one templates files into the working directory.
|
||||
- id: fetch-base
|
||||
name: Fetch Base
|
||||
action: fetch:template
|
||||
input:
|
||||
url: ./content
|
||||
values:
|
||||
name: ${{ parameters.name }}
|
||||
|
||||
# This step publishes the contents of the working directory to GitHub.
|
||||
- id: publish
|
||||
name: Publish
|
||||
action: publish:github
|
||||
input:
|
||||
allowedHosts: ['github.com']
|
||||
description: This is ${{ parameters.name }}
|
||||
repoUrl: ${{ parameters.repoUrl }}
|
||||
|
||||
# The final step is to register our new component in the catalog.
|
||||
- id: register
|
||||
name: Register
|
||||
action: catalog:register
|
||||
input:
|
||||
repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }}
|
||||
catalogInfoPath: '/catalog-info.yaml'
|
||||
|
||||
# Outputs are displayed to the user after a successful execution of the template.
|
||||
output:
|
||||
links:
|
||||
- title: Repository
|
||||
url: ${{ steps.publish.output.remoteUrl }}
|
||||
- title: Open in catalog
|
||||
icon: catalog
|
||||
entityRef: ${{ steps.register.output.entityRef }}
|
||||
Reference in New Issue
Block a user