Skip to content

feat: AIF UI Build#85

Open
leooamaral wants to merge 12 commits into
ai-factoryfrom
feat/aif-ui-build
Open

feat: AIF UI Build#85
leooamaral wants to merge 12 commits into
ai-factoryfrom
feat/aif-ui-build

Conversation

@leooamaral
Copy link
Copy Markdown
Contributor

@leooamaral leooamaral commented Jun 2, 2026

Summary

Rebrand and restructure the UI extension from suse-ai-lifecycle-manager to aif-ui to align with the AI Factory (AIF) project naming, and add a CI/CD pipeline for building and publishing the extension.

Changes

  • Rename package: Update package.json and package-lock.json to use the new aif-ui name and reset version to 0.1.0
  • Replace Helm chart: Remove the old charts/suse-ai-lifecycle-manager chart and create a new charts/aif-ui chart with:
    • Rewritten templates (_helpers.tpl, deployment.yaml, service.yaml, NOTES.txt)
    • Proper values.schema.json for input validation
    • Comprehensive README.md documenting all chart values
    • Security-hardened defaults (podSecurityContext, containerSecurityContext, seccompProfile)
    • Named port references in health probes instead of hardcoded port numbers
    • Support for both global.imagePullSecrets and chart-level imagePullSecrets
  • Add build pipeline: New GitHub Actions workflow (release-aif-extension.yml) that:
    • Triggers on aif-ui-* tags
    • Builds multi-arch container images (amd64 + arm64)
    • Creates and pushes a multi-arch Docker manifest
    • Packages and pushes the Helm chart to the OCI registry (oci://ghcr.io/suse/chart)
  • Remove LICENSE: Removed pending AIF project license discussion

Test plan

  • Verify the GitHub Actions workflow triggers correctly on aif-ui-* tag pushes
  • Validate the Helm chart renders correctly: helm template test charts/aif-ui
  • Confirm multi-arch image builds succeed for both amd64 and arm64
  • Verify the chart installs and the extension loads in Rancher Dashboard

@leooamaral leooamaral marked this pull request as draft June 2, 2026 20:17
@leooamaral
Copy link
Copy Markdown
Contributor Author

Follow-up: Rename pkg/suse-ai-lifecycle-manager to pkg/aif-ui

The build pipeline (release-aif-extension.yml) uses yarn parse-tag-name and yarn publish-pkgs which resolve the extension package by name. Since the root package.json was renamed to aif-ui, the pkg/ directory and its internal references also need to be updated for the pipeline to work correctly.

What needs to change

  1. Rename the directory: pkg/suse-ai-lifecycle-managerpkg/aif-ui
  2. pkg/aif-ui/package.json: Update "name" and "icon" URL
  3. pkg/aif-ui/utils/constants.ts: Update EXTENSION_NAME from 'suse-ai-lifecycle-manager' to 'aif-ui'
  4. pkg/aif-ui/config/suseai.ts: Update the repository URL
  5. pkg/aif-ui/config/doc-links.ts: Update GitHub URL and doc links (these may also need new paths depending on the docs site structure)

Without this, yarn parse-tag-name "aif-ui-<version>" won't find the matching package under pkg/, and the container build will fail.

Should we include this in this PR or handle it as a separate follow-up?

@leooamaral leooamaral marked this pull request as ready for review June 2, 2026 21:19
@leooamaral leooamaral marked this pull request as draft June 2, 2026 21:27
@leooamaral
Copy link
Copy Markdown
Contributor Author

Rename pkg/suse-ai-lifecycle-managerpkg/aif-ui

Follow-up on the rename discussed in this PR. The pkg/ directory and internal references were still using the old suse-ai-lifecycle-manager name, which would break the build pipeline (yarn parse-tag-name and yarn publish-pkgs resolve the extension package by name).

Changes

  1. pkg/suse-ai-lifecycle-manager/pkg/aif-ui/ — directory rename via git mv
  2. pkg/aif-ui/utils/constants.tsEXTENSION_NAME updated to 'aif-ui'
  3. pkg/aif-ui/package.json — icon URL path updated to pkg/aif-ui/
  4. .husky/commit-msg and .husky/pre-commit — updated cd path to pkg/aif-ui
  5. README.md — all package references updated
  6. suse-ai-operator/README.md and samples/installaiextension.yaml — helm chart name, OCI URL, and extension name updated to aif-ui
  7. charts/suse-ai-operator/Chart.yaml — icon path updated
  8. docs/superpowers/specs/ — path references updated

Not changed (intentionally)

  • pkg/aif-ui/config/doc-links.ts — documentation URLs point to external sites, not the package path
  • pkg/aif-ui/config/suseai.ts — GitHub repository URL unchanged (repo is still named suse-ai-lifecycle-manager)
  • .github/workflows/build-extension.yml — not updated here since we already have a separate pipeline for aif-ui

Build verified locally with yarn build-pkg aif-ui — compiles successfully.

@leooamaral leooamaral marked this pull request as ready for review June 2, 2026 22:11
- Fix Chart.yaml: appVersion 1.1.0 → 0.1.0, correct home/sources URLs
- Fix workflow: quote github.ref, align GHCR username to repository_owner
- Fix README: correct container registry browse URL
- Add values.schema.json: additionalProperties, typed array items
- Add values.yaml: resource defaults, initialDelaySeconds for probes
- Update chart README to reflect new defaults
- Update operator namespace/service constants to aif-operator
- Remove obsolete build-extension.yml and release-operator.yml workflows
…chema

- Truncate helm.sh/chart label to 63 chars per Kubernetes limit
- Extract aif-ui.podLabels helper to avoid hardcoded catalog label in deployment template
- Add structural limits/requests schema for resources in values.schema.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant