Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b56848b
feat: add suse ai operator charts
leomiraanda Jan 27, 2026
4d799c9
feat: add operator pipeline
leomiraanda Jan 28, 2026
eb2fd7d
chore: make extension pipeline based on specific tags
leomiraanda Jan 28, 2026
d0b3204
fix: refactor charts
leomiraanda Jan 28, 2026
af8f346
feat: add suse ai operator code
leomiraanda Jan 28, 2026
f2ce342
chore: refactor suse ai operator charts
leomiraanda Jan 28, 2026
dbbddaa
fix: rename go modules path from personal to suse
leomiraanda Jan 29, 2026
b0ab6a4
feat: some suse ai operator helm charts refactor
leomiraanda Jan 29, 2026
8e972b5
fix: incorrect values in suse ai operator
leomiraanda Jan 29, 2026
dc87932
fix: chart path in operator pipeline
leomiraanda Jan 29, 2026
2ec2dc2
fix: rolebinding for operator
leomiraanda Jan 29, 2026
4319ccd
fix: remove auto-install crd
leomiraanda Jan 29, 2026
5d60810
fix: refactor charts docs
leomiraanda Jan 30, 2026
2a46149
fix: refactor charts docs
leomiraanda Jan 30, 2026
1264baa
feat: add more docs
leomiraanda Jan 30, 2026
a3ae722
fix: remove unnecessary comments
leomiraanda Jan 30, 2026
7a1fb5f
fix: remove kustomize config in favor of helm charts
leomiraanda Feb 3, 2026
7be7338
fix: change rbac role/clusterrole to follow better least priviledge p…
leomiraanda Feb 3, 2026
f827613
fix: remove unecessary comments and unused parts
leomiraanda Feb 3, 2026
0592dc6
fix: remove uncessary field from spec
leomiraanda Feb 3, 2026
dab163f
fix: readme and samples folder
leomiraanda Feb 3, 2026
ff96b89
chore: refactor extension namespace
leomiraanda Feb 4, 2026
cc7e0c5
fix: duplicate metadata in suse ai operator role
leomiraanda Feb 4, 2026
3c6aa4f
chore: refactor operator pipeline to create pre-releases for dev
leomiraanda Feb 6, 2026
542f5fb
fix: remove hardcoded version in operator values
leomiraanda Feb 6, 2026
84203e2
fix: update readme based on removed hardcoded version in operator values
leomiraanda Feb 6, 2026
09656c8
chore: add new version file for creating releases
leomiraanda Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build and Publish Extension Container and Helm Chart
name: Build and Publish Extension [Container and Helm Chart]

on: [push, pull_request, workflow_dispatch]

Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:
run: yarn

- name: Parse Extension Name
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'suse-ai-lifecycle-manager-') }}
id: parsed-name
env:
GH_TOKEN: ${{ github.token }}
Expand All @@ -68,7 +68,7 @@ jobs:
yarn parse-tag-name ${{ env.RELEASE_TAG }} ${{ github.run_id }} "catalog"

- name: Build and push UI image
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'suse-ai-lifecycle-manager-') }}
env:
RELEASE_TAG: ${{ steps.tags.outputs.TAGS }}
run: |
Expand All @@ -81,18 +81,18 @@ jobs:
"${publish[@]}"

- name: Re-checkout repository
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'suse-ai-lifecycle-manager-') }}
uses: actions/checkout@v4

- name: Package Helm Chart
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'suse-ai-lifecycle-manager-') }}
id: package
run: |
chart_package=$(helm package $CHART_PATH --destination . | awk '{print $NF}')
echo "chart_package=$chart_package" >> $GITHUB_OUTPUT

- name: Publish Helm Chart
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'suse-ai-lifecycle-manager-') }}
run: |
helm push ${{ steps.package.outputs.chart_package }} \
$CHART_REGISTRY
97 changes: 97 additions & 0 deletions .github/workflows/build-operator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Build and Publish SUSE AI Operator [Container and Helm Chart]

on: [push, pull_request, workflow_dispatch]

env:
CONTAINER_REGISTRY: ghcr.io/suse/suse-ai-operator
CHART_PATH: charts/suse-ai-operator
CHART_REGISTRY: oci://ghcr.io/suse/chart
jobs:
container:
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'suse-ai-operator-') }}
permissions:
contents: read
packages: write
actions: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Calculate tags
id: tags
shell: bash
run: |
echo "TAGS<<##" >> "$GITHUB_OUTPUT"
ref=${{ github.ref }}
case "$ref" in
refs/heads/main)
echo "latest" >> "$GITHUB_OUTPUT";;
refs/tags/suse-ai-operator-*)
echo "${ref#refs/tags/suse-ai-operator-}" >> "$GITHUB_OUTPUT";;
*)
echo "${{ github.sha }}" >> "$GITHUB_OUTPUT";;
esac
echo "##" >> "$GITHUB_OUTPUT"

- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Get Docker Metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.CONTAINER_REGISTRY }}
tags: |
type=raw,value=${{ steps.tags.outputs.TAGS }}
type=raw,value=latest

- name: Build Docker Container
id: push
uses: docker/build-push-action@v6
with:
context: ./suse-ai-operator
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta.outputs.tags }}
push: true
platforms: linux/arm64,linux/amd64
helm:
needs: container
if: ${{ github.event_name == 'push' && startsWith(github.ref_name, 'suse-ai-operator-') }}
permissions:
contents: read
packages: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Package Helm Chart
id: package
run: |
chart_package=$(helm package $CHART_PATH --destination . | awk '{print $NF}')
echo "chart_package=$chart_package" >> $GITHUB_OUTPUT

- name: Publish Helm Chart
run: |
helm push ${{ steps.package.outputs.chart_package }} \
$CHART_REGISTRY


6 changes: 3 additions & 3 deletions charts/suse-ai-lifecycle-manager/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SUSE AI Rancher UI Extension
# SUSE AI Lifecycle Manager

This chart installs the **Rancher Extension Catalog**, it contains extension assets bundled into an image and act as a catalog for custom extensions.
1. This Chart is installed.
Expand Down Expand Up @@ -81,11 +81,11 @@ The command removes all the Kubernetes components associated with the chart and
### Check pod status

```bash
kubectl get pods -l app.kubernetes.io/name=suse-ai-lifecycle-manager
kubectl get pods -l app.kubernetes.io/name=suse-ai-lifecycle-manager -n cattle-ui-plugin-system
```

### Check logs

```bash
kubectl logs -l app.kubernetes.io/name=suse-ai-lifecycle-manager
kubectl logs -l app.kubernetes.io/name=suse-ai-lifecycle-manager -n cattle-ui-plugin-system
```
27 changes: 27 additions & 0 deletions charts/suse-ai-operator/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Patterns to ignore when building Helm packages.
# Operating system files
.DS_Store

# Version control directories
.git/
.gitignore
.bzr/
.hg/
.hgignore
.svn/

# Backup and temporary files
*.swp
*.tmp
*.bak
*.orig
*~

# IDE and editor-related files
.idea/
.vscode/

# Helm chart artifacts
dist/chart/*.tgz
chart/*.tgz
chart/*/*.tgz
24 changes: 24 additions & 0 deletions charts/suse-ai-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
annotations:
helm.sh/images: |
- image: ghcr.io/suse/suse-ai-operator:0.1.0
name: suse-ai-operator
license: Apache-2.0
apiVersion: v2
name: suse-ai-operator
version: 0.1.0
description: SUSE AI Operator
type: application
home: https://github.com/SUSE/suse-ai-operator
icon: https://github.com/SUSE/suse-ai-lifecycle-manager/blob/main/pkg/suse-ai-lifecycle-manager/assets/logo.svg
sources:
- https://github.com/SUSE/suse-ai-operator
appVersion: 0.1.0
maintainers:
- url: https://www.suse.com/
name: SUSE LLC
keywords:
- rancher
- extension
- ai
- kubernetes
- operator
Loading