10.3. Creating a template using Kubernetes custom actions in Red Hat Developer Hub
You can create a template by defining a Template object as a YAML file.
The Template object describes the template and its metadata. It also contains required input variables and a list of actions that are executed by the scaffolding service.
+
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 }}
In Red Hat Developer Hub, you can use custom Kubernetes actions in scaffolder templates.
Custom Kubernetes scaffolder actions
- Action: kubernetes:create-namespace
- Creates a namespace for the Kubernetes cluster in the Developer Hub.
| Parameter name | Type | Requirement | Description | Example |
|---|---|---|---|---|
|
|
| Required | Name of the Kubernetes namespace |
|
|
|
|
Required only if | Cluster resource entity reference from the catalog |
|
|
|
|
Required only if | API url of the Kubernetes cluster |
|
|
|
| Required | Kubernetes API bearer token used for authentication | |
|
|
| Optional | If true, certificate verification is skipped | false |
|
|
| Optional | Base64 encoded certificate data | |
|
|
| Optional | Labels applied to the namespace | app.io/type=ns; app.io/managed-by=org; |