|
| 1 | +# Backstage Scaffolder Backend Module for Kusion |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +This plugin integrates [KusionStack](https://github.com/KusionStack/kusion) with Backstage's scaffolder backend, enabling you to create and manage Kusion backends directly from Backstage templates. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Prerequisites |
| 10 | + |
| 11 | +- A running [Kusion Server](https://github.com/KusionStack/kusion) |
| 12 | +- A Backstage instance (see [Backstage documentation](https://backstage.io/docs/getting-started/)) |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## Installation |
| 17 | + |
| 18 | +From your Backstage root directory, install the plugin: |
| 19 | + |
| 20 | +```bash |
| 21 | +yarn add --cwd packages/backend @kusionstack/plugin-scaffolder-backend-module-kusion |
| 22 | +``` |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## Configuration |
| 27 | + |
| 28 | +Add the following configuration to your `app-config.yaml` to specify the Kusion server endpoint: |
| 29 | + |
| 30 | +```yaml |
| 31 | +backend: |
| 32 | + kusion: |
| 33 | + baseUrl: 'http://localhost:3000' # Replace with your Kusion server URL |
| 34 | +``` |
| 35 | +
|
| 36 | +--- |
| 37 | +
|
| 38 | +## Backend Integration |
| 39 | +
|
| 40 | +Import and register the plugin in your Backstage backend: |
| 41 | +
|
| 42 | +Edit `packages/backend/src/index.ts`: |
| 43 | + |
| 44 | +```typescript |
| 45 | +// Import and register the Kusion scaffolder backend module |
| 46 | +backend.add(import('@kusionstack/plugin-scaffolder-backend-module-kusion')); |
| 47 | +``` |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## Usage Example |
| 52 | + |
| 53 | +### Kusion Backend Creation Template. |
| 54 | + |
| 55 | +`kusion:backend:create` |
| 56 | + |
| 57 | +```yaml |
| 58 | +apiVersion: scaffolder.backstage.io/v1beta3 |
| 59 | +kind: Template |
| 60 | +metadata: |
| 61 | + name: create-kusion-backend |
| 62 | + title: Create Kusion Backend |
| 63 | + description: Template to create a new Kusion Backend. |
| 64 | +spec: |
| 65 | + owner: KusionStack |
| 66 | + type: service |
| 67 | + steps: |
| 68 | + - id: createBackend |
| 69 | + name: Create Backend |
| 70 | + action: kusion:backend:create |
| 71 | + input: |
| 72 | + name: ${{ parameters.name }} |
| 73 | + description: ${{ parameters.description }} |
| 74 | + backendConfig: |
| 75 | + type: ${{ parameters.backendType }} |
| 76 | + configs: ${{ parameters.backendConfigs }} |
| 77 | +
|
| 78 | + output: |
| 79 | + text: |
| 80 | + - title: Information |
| 81 | + content: | |
| 82 | + * success: ${{ steps.createBackend.output.success }} |
| 83 | + * message: ${{ steps.createBackend.output.message }} |
| 84 | + * data: ${{ steps.createBackend.output.data }} |
| 85 | +``` |
0 commit comments