软件模板配置
Backstage软件模板会创建源代码,因此您的Backstage应用程序需要设置为允许创建资源库。
在您的app-config.yaml
加入Backstage集成查找适合贵组织的源代码库。
注意:集成可能已经设置为
app-config.yaml
的一部分。
下一步是添加模板到您的 Backstage 应用程序。
发布默认值
软件模板可以定义出版行动,例如publish:github
来创建新版本库或向现有版本库提交拉取/合并请求。 您可以通过scaffolder
中的配置app-config.yaml
:
scaffolder:
defaultAuthor:
name: M.C. Hammer # Defaults to `Scaffolder`
email: [email protected] # Defaults to `[email protected]`
defaultCommitMessage: "U can't touch this" # Defaults to 'Initial commit'
要配置谁可以查看从软件模板创建的新版本库,请添加repoVisibility
键:
- id: publish
name: Publish
action: publish:github
input:
repoUrl: '{{ parameters.repoUrl }}'
repoVisibility: public # or 'internal' or 'private'
在 Docker 情况下禁用 Docker(可选)
软件模板使用fetch:template
默认情况下,该操作不需要外部依赖性,并提供一个Cookiecutter 兼容模式还有一个fetch:cookiecutter
动作,它使用Cookiecutter默认情况下,......fetch:cookiecutter
操作将使用scaffolder-backend/Cookiecutterdocker 映像。
如果你是从 Docker 容器运行 backstage,又想避免在容器内调用容器,可以在自己的镜像中设置 Cookiecutter,这将使用本地安装来代替。
要做到这一点,您可以在最后一步的Dockerfile
:
RUN apt-get update && apt-get install -y python3 python3-pip
RUN pip3 install cookiecutter
使用分组和筛选功能自定义 ScaffolderPage
一旦你拥有了几个以上的软件模板,你可能想自定义你的ScaffolderPage
您可以通过创建groups
并将它们传递给您的ScaffolderPage
如下
<ScaffolderPage
groups={[
{
title: "Recommended",
filter: entity =>
entity?.metadata?.tags?.includes('recommended') ?? false,
},
]}
/>
这段代码会将所有带有 "推荐 "标签的模板分组放在页面顶部,高于未被该组或其他组过滤的其他模板。
您还可以通过传递titleComponent
而不是title
组件,而不仅仅是默认的ContentHeader
与title
设置为其值。
您还可以选择隐藏某些模板,这样做有多种用途:
- 它仍处于试验阶段,因此您可以将其与功能标记等结合起来 * 您不想让它们从模板列表中访问,而只想在某些操作中打开它,并预先填充数据 * 根据目标环境显示不同的模板集
<ScaffolderPage
templateFilter={entity =>
entity?.metadata?.tags?.includes('experimental') ?? false
}
/>