10.3. 使用 Red Hat Developer Hub 中的 Kubernetes 自定义操作创建模板
10.3. 使用 Red Hat Developer Hub 中的 Kubernetes 自定义操作创建模板
您可以通过将 Template 对象定义为 YAML 文件来创建模板。
Template 对象描述了模板及其元数据。它还包含所需的输入变量,以及构建服务所执行的操作列表。
+
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: create-kubernetes-namespace
title: Create a kubernetes namespace
description: Create a kubernetes namespace
spec:
type: service
parameters:
- title: Information
required: [namespace, token]
properties:
namespace:
title: Namespace name
type: string
description: Name of the namespace to be created
clusterRef:
title: Cluster reference
type: string
description: Cluster resource entity reference from the catalog
ui:field: EntityPicker
ui:options:
catalogFilter:
kind: Resource
url:
title: Url
type: string
description: Url of the kubernetes API, will be used if clusterRef is not provided
token:
title: Token
type: string
ui:field: Secret
description: Bearer token to authenticate with
skipTLSVerify:
title: Skip TLS verification
type: boolean
description: Skip TLS certificate verification, not recommended to use in production environment, default to false
caData:
title: CA data
type: string
ui:field: Secret
description: Certificate Authority base64 encoded certificate
labels:
title: Labels
type: string
description: Labels to be applied to the namespace
ui:widget: textarea
ui:options:
rows: 3
ui:help: 'Hint: Separate multiple labels with a semicolon!'
ui:placeholder: 'kubernetes.io/type=namespace; app.io/managed-by=org'
steps:
- id: create-kubernetes-namespace
name: Create kubernetes namespace
action: kubernetes:create-namespace
input:
namespace: ${{ parameters.namespace }}
clusterRef: ${{ parameters.clusterRef }}
url: ${{ parameters.url }}
token: ${{ secrets.token }}
skipTLSVerify: ${{ parameters.skipTLSVerify }}
caData: ${{ secrets.caData }}
labels: ${{ parameters.labels }}
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:name: create-kubernetes-namespace
title: Create a kubernetes namespace
description: Create a kubernetes namespace
spec:type: service
parameters:-title: Information
required:[namespace, token]properties:namespace:title: Namespace name
type: string
description: Name of the namespace to be created
clusterRef:title: Cluster reference
type: string
description: Cluster resource entity reference from the catalog
ui:field: EntityPicker
ui:options:catalogFilter:kind: Resource
url:title: Url
type: string
description: Url of the kubernetes API, will be used if clusterRef is not provided
token:title: Token
type: string
ui:field: Secret
description: Bearer token to authenticate with
skipTLSVerify:title: Skip TLS verification
type: boolean
description: Skip TLS certificate verification, not recommended to use in production environment, default to false
caData:title: CA data
type: string
ui:field: Secret
description: Certificate Authority base64 encoded certificate
labels:title: Labels
type: string
description: Labels to be applied to the namespace
ui:widget: textarea
ui:options:rows:3ui:help:'Hint: Separate multiple labels with a semicolon!'ui:placeholder:'kubernetes.io/type=namespace; app.io/managed-by=org'steps:-id: create-kubernetes-namespace
name: Create kubernetes namespace
action: kubernetes:create-namespace
input:namespace: ${{ parameters.namespace }}clusterRef: ${{ parameters.clusterRef }}url: ${{ parameters.url }}token: ${{ secrets.token }}skipTLSVerify: ${{ parameters.skipTLSVerify }}caData: ${{ secrets.caData }}labels: ${{ parameters.labels }}
Copy to ClipboardCopied!Toggle word wrapToggle overflow