이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Chapter 10. Kubernetes custom actions in Red Hat Developer Hub
With Kubernetes custom actions, you can create and manage Kubernetes resources.
The Kubernetes custom actions plugin is preinstalled and disabled on a Developer Hub instance by default. You can disable or enable the Kubernetes custom actions plugin, and change other parameters, by configuring the Red Hat Developer Hub Helm chart.
Kubernetes scaffolder actions and Kubernetes custom actions refer to the same concept throughout this documentation.
10.1. Enabling Kubernetes custom actions plugin in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
In Red Hat Developer Hub, the Kubernetes custom actions are provided as a preinstalled plugin, which is disabled by default. You can enable the Kubernetes custom actions plugin by updating the disabled key value in your Helm chart.
Prerequisites
- You have installed Red Hat Developer Hub with the Helm chart.
Procedure
To enable the Kubernetes custom actions plugin, complete the following step:
In your Helm chart, add a
packagewith the Kubernetes custom action plugin name and update thedisabledfield. For example:global: dynamic: includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-kubernetes-dynamic disabled: falseNoteThe default configuration for a plugin is extracted from the
dynamic-plugins.default.yamlfile, however, you can use apluginConfigentry to override the default configuration.
10.2. Using Kubernetes custom actions plugin in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
In Red Hat Developer Hub, the Kubernetes custom actions enable you to run template actions for Kubernetes.
Procedure
To use a Kubernetes custom action in your custom template, add the following Kubernetes actions to your template:
action: kubernetes:create-namespace id: create-kubernetes-namespace name: Create kubernetes namespace input: namespace: my-rhdh-project clusterRef: bar token: TOKEN skipTLSVerify: false caData: Zm9v labels: app.io/type=ns; app.io/managed-by=org;
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 }}
10.3.1. Supported Kubernetes custom actions in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
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; |