SUSE AI Lifecycle Manager is a Rancher UI Extension for managing SUSE AI components across Kubernetes clusters. This extension provides a unified interface for installing, managing, and monitoring AI workloads in Rancher-managed clusters.
Note: While this extension is open source (Apache 2.0), it requires an active SUSE AI subscription to access the application catalog.
- Node.js 20+ and Yarn
- Access to a Rancher cluster
- Extension developer features enabled in Rancher
-
Clone and install dependencies:
git clone <repository-url> cd suse-ai-lifecycle-manager yarn install
-
Build the extension:
yarn build-pkg suse-ai-lifecycle-manager
-
Serve during development:
yarn serve-pkgs
Copy the URL shown in the terminal.
-
Load in Rancher:
- In Rancher, go to your user profile (top right) → Preferences
- Enable "Extension Developer Features"
- Navigate to Extensions from the side nav
- Click the 3 dots (top right) → Developer Load
- Paste the URL from step 3, select "Persist"
- Reload the page
Enable debug logging in development:
NODE_ENV=development yarn build-pkg suse-ai-lifecycle-manageryarn build-pkg suse-ai-lifecycle-manager --mode production- The container packages the SUSE AI Lifecycle Manager (Rancher UI Extension) into a single OCI container image.
- This container is:
- Built and published during CI
- Stored in GitHub Container Registry (GHCR)
- Consumed by Rancher as an extension catalog source
- The catalog container allows:
- Versioned releases
- Immutable distribution
- Simple rollout via container tags
- The catalog container tag is derived from the Git tag:
suse-ai-lifecycle-manager-<version> → ghcr.io/suse/suse-ai-lifecycle-manager:<version>
In the examples below, <version> refers to a published extension release (e.g. 0.2.0).
Available catalog image versions are published in GitHub Container Registry: https://github.com/SUSE/suse-ai-lifecycle-manager/pkgs/container/suse-ai-lifecycle-manager
/home/plugin-server
└── plugin-contents/
├── files.txt
├── index.yaml
└── plugin/
├── index.yaml
├── package.json
├── suse-ai-lifecycle-manager
└── suse-ai-lifecycle-manager-<version>.tgz
└── suse-ai-lifecycle-manager-<version>
├── files.txt
└── plugin/
└── <plugin source code>
- Add the catalog source in the Rancher Dashboard:
- Navigate to Extensions → Manage Extensions Catalog
- Import Extension Catalog → Use the Catalog Image Reference:
ghcr.io/suse/suse-ai-lifecycle-manager:<version>→ PressLoad - From the Extensions page, Go to Manage Repositories. Verify if the SUSE AI Rancher Extension repository has the
Activestate. If not, refresh the connection. - Go back to Extensions and install SUSE AI Rancher Extension.
NOTE: Replace
<version>with a tag published in GitHub Container Registry. NOTE: Newly published catalogs are not always available immediately. If the catalog does not show up after publishing, navigate to Extensions → Manage Repositories and manually refresh the repository to force a re-sync.
When contributing to this extension:
- Follow Standard Patterns: Use the established domain model and store patterns
- Component Organization: Place components in appropriate directories (formatters/, validators/, pages/)
- Type Safety: Maintain strict TypeScript usage, avoid
anytypes - Internationalization: Add translation keys to l10n/en-us.json for new UI text
- Code Quality: Run
yarn lintand ensure all pre-commit hooks pass - Feature Flags: Use feature flags for new functionality
- Manual Testing: Ensure all functionality works across multi-cluster scenarios
This project uses conventional commits enforced by commitlint:
type: subject
body (optional)
footer (optional)
Valid types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, wip, deps, security
Example:
git commit -m "feat: add multi-cluster installation support"
git commit -m "fix: resolve app installation error handling"- Extension not loading: Verify URL in developer tools console
- Build errors: Check Node.js version compatibility (requires 20+)
- API errors: Verify cluster permissions and connectivity
- Linting errors: Run
cd pkg/suse-ai-lifecycle-manager && yarn lintto see details