Skip to content

Commit 9bc9973

Browse files
github-actions[bot]dmytro-zaharnytskyiEgorLuclaudemynhardtburger
authored
chore: promote stable to rhoai (#689)
Automated promotion of **41 commit(s)** from `stable` to `rhoai`. ``` 7df0b05 feat(deployment): support configurable cluster audience for AuthPolicy (#688) 1527654 docs: add testing guide for new contributors (#681) 45e8533 feat: add payload-processing as MaaS sub-component (#662) 53d7b27 chore(docs): document pre-requisites for observability stack (#677) 91b3a51 chore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 in /maas-controller (#676) a05deb5 chore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.1 to 4.1.4 in /maas-api (#675) a2cd0de docs: fix CRD reference mismatches and README default operator (#667) dc82561 refactor: allow custom db connection in `deploy.sh` (#649) 2a424d5 fix: handle Forbidden error on namespace GET operation during startup (#668) 2878473 test: add additional GO test coverage in `maas-api/internal/api_keys` (#623) 841f96e fix: generate RBAC ClusterRole from kubebuilder markers (#665) 8cd9505 refactor(observability): migrate metric labels from tier to subscription (#508) 2962519 ci: remove multi-arch build platforms from odh tekton pipelineruns (#664) 50ec2a8 docs: add CVE fix guidance and automation workflow (#603) 7ba7216 fix: add when clauses to AuthPolicy fallbacks and remove redundant patch (#663) 7b73da4 test: improve maas-controller test coverage from 43.6% to 66.5% (#651) 2af4155 feat: add a usage dashboard (#624) 85d906f refactor: use Kustomize components for shared overlay configuration (#551) d7f4495 fix: clean up Kuadrant/RHCL OLM resources before namespace deletion (#653) d3b8012 docs: add missing ODH webhook wait command in platform-setup docs (#641) 416c93d feat: improve deploy and test script robustness (#650) 3d08353 fix: avoid maas-controller env value + valueFrom kustomize merge (#657) 1b86d12 ci: add maas-controller CI workflow and remove obsolete image build from maas-api (#656) 409b0a7 chore: automation for docs pre-release (#563) d0dc95b docs: document TLS_SELF_SIGNED and TLS_MIN_VERSION env vars (#640) 1221310 feat: remove identity headers and simplify subscription info (#645) 152e531 chore: upgrade/validate Kuadrant 1.4.2 (#643) d4a15d8 feat: require tokenRateLimits and remove tokenRateLimitRef for 3.4 (#644) 6b2d7e4 ci: extend Konflux docs-only skip to match Prow skip rules (#642) 291d215 docs: fix access probe response codes in model-listing-flow (#559) ``` --------- Signed-off-by: Dmytro Zaharnytskyi <zdmytro@redhat.com> Signed-off-by: Mynhardt Burger <mynhardt@gmail.com> Signed-off-by: Brent Salisbury <bsalisbu@redhat.com> Signed-off-by: Wen Liang <liangwen12year@gmail.com> Signed-off-by: Chaitanya Kulkarni <ckulkarn@redhat.com> Signed-off-by: Chaitanya Kulkarni <chkulkar@redhat.com> Signed-off-by: Arik Hadas <ahadas@redhat.com> Signed-off-by: Tal Gitelman <tgitelma@redhat.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Dmytro Zaharnytskyi <zdmytro@redhat.com> Co-authored-by: Egor Lunin <banky.webmaster@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Mynhardt Burger <mynhardt@gmail.com> Co-authored-by: Brent Salisbury <bsalisbu@redhat.com> Co-authored-by: liangwen12year <36004580+liangwen12year@users.noreply.github.com> Co-authored-by: Jim Rhyness <jrhyness@redhat.com> Co-authored-by: somya-bhatnagar <sbhatnag@redhat.com> Co-authored-by: Jamie Land <38305141+jland-redhat@users.noreply.github.com> Co-authored-by: Chaitanya Kulkarni <chkulkar@redhat.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Arik Hadas <ahadas@redhat.com> Co-authored-by: tgitelman <tgitelma@redhat.com> Co-authored-by: Andrew Ballantyne <8126518+andrewballantyne@users.noreply.github.com> Co-authored-by: angaduom <12499805+angaduom@users.noreply.github.com> Co-authored-by: angaduom <angaduom@users.noreply.github.com> Co-authored-by: Yuriy Teodorovych <71162952+yu-teo@users.noreply.github.com> Co-authored-by: Yuriy Teodorovych <Yuriy@ibm.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent d64c0fe commit 9bc9973

File tree

144 files changed

+10625
-1753
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+10625
-1753
lines changed

.cve-fix/examples.md

Lines changed: 1552 additions & 0 deletions
Large diffs are not rendered by default.

.github/hack/cleanup-odh.sh

Lines changed: 87 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# - ODH operator namespace (odh-operator)
1010
# - OpenDataHub application namespace (opendatahub)
1111
# - MaaS subscription namespace (models-as-a-service)
12+
# - Keycloak identity provider (if deployed)
1213
# - ODH CRDs (optional)
1314
#
1415
# Usage: ./cleanup-odh.sh [--include-crds]
@@ -116,40 +117,114 @@ echo "9. Deleting models-as-a-service namespace..."
116117
force_delete_namespace "models-as-a-service" \
117118
"maasauthpolicies.maas.opendatahub.io" "maassubscriptions.maas.opendatahub.io"
118119

119-
# 10. Delete policy engine namespaces (Kuadrant or RHCL)
120+
# 10. Delete policy engine workload CRs (before operator cleanup)
121+
# This allows operators to cleanly delete Deployments/ReplicaSets before we delete the operators themselves
122+
echo "10. Deleting policy engine workload CRs..."
120123
for policy_ns in kuadrant-system rh-connectivity-link; do
121-
echo "10. Deleting $policy_ns namespace (if installed)..."
124+
if kubectl get namespace "$policy_ns" &>/dev/null; then
125+
echo " Deleting workload CRs in $policy_ns..."
126+
# Delete high-level CRs to trigger operator cleanup of owned resources
127+
kubectl delete kuadrant --all -n "$policy_ns" --ignore-not-found --timeout=60s 2>/dev/null || true
128+
kubectl delete limitador --all -n "$policy_ns" --ignore-not-found --timeout=60s 2>/dev/null || true
129+
kubectl delete authorino --all -n "$policy_ns" --ignore-not-found --timeout=60s 2>/dev/null || true
130+
131+
# Wait for CRs to be fully deleted (finalizers processed) before removing operators
132+
# This prevents orphaned resources if we delete operators while finalizers are still running
133+
echo " Waiting for CR finalizers to complete in $policy_ns..."
134+
timeout=60
135+
deadline=$((SECONDS + timeout))
136+
remaining=1
137+
while [[ $SECONDS -lt $deadline ]]; do
138+
# Count remaining CRs (wc -l counts all lines, subtract 1 for header if present)
139+
count=$(kubectl get kuadrant,limitador,authorino -n "$policy_ns" --ignore-not-found 2>/dev/null | wc -l)
140+
remaining=$((count > 0 ? count - 1 : 0))
141+
if [[ $remaining -eq 0 ]]; then
142+
echo " ✅ All workload CRs deleted from $policy_ns"
143+
break
144+
fi
145+
sleep 2
146+
done
147+
if [[ $remaining -gt 0 ]]; then
148+
echo " ⚠️ Warning: $remaining CR(s) still exist in $policy_ns after ${timeout}s (finalizers may be stuck)"
149+
fi
150+
fi
151+
done
152+
153+
# 11. Delete policy engine OLM resources (before namespace deletion)
154+
echo "11. Cleaning up policy engine OLM resources..."
155+
# Kuadrant cleanup
156+
if kubectl get namespace kuadrant-system &>/dev/null; then
157+
echo " Cleaning up Kuadrant OLM resources..."
158+
# Delete Subscriptions (triggers CSV cleanup by OLM)
159+
kubectl delete subscription --all -n kuadrant-system --ignore-not-found --timeout=60s 2>/dev/null || true
160+
# Delete CSVs explicitly (includes dependent operators: authorino, limitador, dns-operator)
161+
kubectl delete csv -n kuadrant-system --all --ignore-not-found --timeout=60s 2>/dev/null || true
162+
# Delete CatalogSource (created in kuadrant-system namespace, not marketplace)
163+
kubectl delete catalogsource kuadrant-operator-catalog -n kuadrant-system --ignore-not-found 2>/dev/null || true
164+
echo " ✅ Kuadrant OLM resources cleaned"
165+
fi
166+
# RHCL cleanup
167+
if kubectl get namespace rh-connectivity-link &>/dev/null; then
168+
echo " Cleaning up RHCL OLM resources..."
169+
kubectl delete subscription --all -n rh-connectivity-link --ignore-not-found --timeout=60s 2>/dev/null || true
170+
kubectl delete csv -n rh-connectivity-link --all --ignore-not-found --timeout=60s 2>/dev/null || true
171+
# Note: RHCL uses redhat-operators catalog (not a custom catalog), so no catalog deletion needed
172+
echo " ✅ RHCL OLM resources cleaned"
173+
fi
174+
175+
# 12. Delete policy engine namespaces (Kuadrant or RHCL)
176+
for policy_ns in kuadrant-system rh-connectivity-link; do
177+
echo "12. Deleting $policy_ns namespace (if installed)..."
122178
force_delete_namespace "$policy_ns" \
123179
"authorinos.operator.authorino.kuadrant.io" "kuadrants.kuadrant.io" "limitadors.limitador.kuadrant.io"
124180
done
125181

126-
# 11. Delete llm namespace and model resources
127-
echo "11. Deleting LLM models and namespace..."
182+
# 13. Delete Keycloak identity provider (if installed)
183+
echo "13. Deleting Keycloak namespace (if installed)..."
184+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd ../.. && pwd)"
185+
if [[ -f "${SCRIPT_DIR}/scripts/cleanup-keycloak.sh" ]]; then
186+
# Pass --delete-crds if --include-crds was specified for this script
187+
if $INCLUDE_CRDS; then
188+
"${SCRIPT_DIR}/scripts/cleanup-keycloak.sh" --force --delete-crds 2>/dev/null || true
189+
else
190+
"${SCRIPT_DIR}/scripts/cleanup-keycloak.sh" --force 2>/dev/null || true
191+
fi
192+
else
193+
# Fallback if cleanup script not found - direct cleanup
194+
force_delete_namespace "keycloak-system" "keycloaks.k8s.keycloak.org"
195+
if $INCLUDE_CRDS; then
196+
kubectl delete crd keycloaks.k8s.keycloak.org --ignore-not-found 2>/dev/null || true
197+
kubectl delete crd keycloakrealmimports.k8s.keycloak.org --ignore-not-found 2>/dev/null || true
198+
fi
199+
fi
200+
201+
# 14. Delete llm namespace and model resources
202+
echo "14. Deleting LLM models and namespace..."
128203
force_delete_namespace "llm" "llminferenceservice" "inferenceservice" "maasmodelrefs.maas.opendatahub.io"
129204

130-
# 12. Delete gateway resources in openshift-ingress
131-
echo "12. Deleting gateway resources..."
205+
# 15. Delete gateway resources in openshift-ingress
206+
echo "15. Deleting gateway resources..."
132207
kubectl delete gateway maas-default-gateway -n openshift-ingress --ignore-not-found 2>/dev/null || true
133208
kubectl delete envoyfilter -n openshift-ingress -l kuadrant.io/managed=true --ignore-not-found 2>/dev/null || true
134209
kubectl delete envoyfilter kuadrant-auth-tls-fix -n openshift-ingress --ignore-not-found 2>/dev/null || true
135210
kubectl delete authpolicy -n openshift-ingress --all --ignore-not-found 2>/dev/null || true
136211
kubectl delete ratelimitpolicy -n openshift-ingress --all --ignore-not-found 2>/dev/null || true
137212
kubectl delete tokenratelimitpolicy -n openshift-ingress --all --ignore-not-found 2>/dev/null || true
138213

139-
# 13. Delete MaaS RBAC (ClusterRoles, ClusterRoleBindings - can conflict with other managers)
140-
echo "13. Deleting MaaS RBAC..."
214+
# 16. Delete MaaS RBAC (ClusterRoles, ClusterRoleBindings - can conflict with other managers)
215+
echo "16. Deleting MaaS RBAC..."
141216
kubectl delete clusterrolebinding maas-api maas-controller-rolebinding --ignore-not-found 2>/dev/null || true
142217
kubectl delete clusterrole maas-api maas-controller-role --ignore-not-found 2>/dev/null || true
143218

144-
# 14. Optionally delete CRDs
219+
# 17. Optionally delete CRDs
145220
if $INCLUDE_CRDS; then
146-
echo "14. Deleting ODH CRDs..."
221+
echo "17. Deleting ODH CRDs..."
147222
kubectl delete crd datascienceclusters.datasciencecluster.opendatahub.io --ignore-not-found 2>/dev/null || true
148223
kubectl delete crd dscinitializations.dscinitialization.opendatahub.io --ignore-not-found 2>/dev/null || true
149224
kubectl delete crd datasciencepipelinesapplications.datasciencepipelinesapplications.opendatahub.io --ignore-not-found 2>/dev/null || true
150225
# Add more CRDs as needed
151226
else
152-
echo "14. Skipping CRD deletion (use --include-crds to remove CRDs)"
227+
echo "17. Skipping CRD deletion (use --include-crds to remove CRDs)"
153228
fi
154229

155230
echo ""
@@ -158,4 +233,4 @@ echo ""
158233
echo "Verify cleanup with:"
159234
echo " kubectl get subscription -A | grep -i odh"
160235
echo " kubectl get csv -A | grep -i odh"
161-
echo " kubectl get ns | grep -E 'odh|opendatahub|models-as-a-service|kuadrant|rh-connectivity-link|llm'"
236+
echo " kubectl get ns | grep -E 'odh|opendatahub|models-as-a-service|kuadrant|rh-connectivity-link|keycloak-system|llm'"

.github/hack/install-odh.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,18 @@ plan_approval="${OPERATOR_INSTALL_PLAN_APPROVAL:-Manual}"
8787

8888
# 2. Install ODH operator via OLM
8989
echo "2. Installing ODH operator..."
90-
install_olm_operator \
90+
if ! install_olm_operator \
9191
"opendatahub-operator" \
9292
"$NAMESPACE" \
9393
"$catalog_source" \
9494
"$channel" \
9595
"$starting_csv" \
9696
"AllNamespaces" \
9797
"openshift-marketplace" \
98-
"$plan_approval"
98+
"$plan_approval"; then
99+
log_error "ODH operator installation failed"
100+
exit 1
101+
fi
99102

100103
# 3. Patch CSV with custom image if specified
101104
if [[ -n "$OPERATOR_IMAGE" ]]; then

.github/workflows/build-test.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ on:
44
pull_request:
55
paths:
66
- 'maas-controller/api/**'
7+
- 'maas-controller/cmd/**'
8+
- 'maas-controller/pkg/**'
79
- 'maas-controller/Makefile'
810
- 'deployment/base/maas-controller/crd/**'
911
- 'deployment/**'
@@ -39,7 +41,7 @@ jobs:
3941
./scripts/ci/validate-manifests.sh
4042
4143
verify-codegen:
42-
name: Verify generated CRDs and deepcopy
44+
name: Verify generated CRDs, RBAC, and deepcopy
4345
timeout-minutes: 10
4446
concurrency:
4547
group: ${{ github.workflow }}-${{ github.ref }}-verify-codegen

.github/workflows/create-release.yml

Lines changed: 56 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@
1010
# Usage:
1111
# 1. Go to Actions > Create Release > Run workflow
1212
# 2. Enter the tag (e.g., v1.0.0)
13-
# 3. Optionally enable "Allow overwriting existing tag" (only for pre-release iterations)
14-
# 4. Optionally enable "Create GitHub release"
13+
# 3. Optionally enable "Pre-release" to skip updating the docs 'latest' alias
14+
# 4. Optionally enable "Allow overwriting existing tag" (only for pre-release iterations)
15+
# 5. Optionally enable "Create GitHub release"
1516
#
1617
# The workflow will:
1718
# - Extract minor version (e.g., v1.0.0 -> v1.x)
@@ -30,6 +31,11 @@ on:
3031
description: 'Release tag (e.g., v1.0.0)'
3132
required: true
3233
type: string
34+
prerelease:
35+
description: 'Pre-release (will not update the docs "latest" alias)'
36+
required: false
37+
type: boolean
38+
default: false
3339
allow_tag_overwrite:
3440
description: 'Allow overwriting existing tag (use only for pre-release iterations)'
3541
required: false
@@ -58,7 +64,8 @@ jobs:
5864
version_tag: ${{ steps.set_vars.outputs.version_tag }}
5965
minor_release_branch: ${{ steps.set_vars.outputs.minor_release_branch }}
6066
minor_version: ${{ steps.set_vars.outputs.minor_version }}
61-
67+
is_prerelease: ${{ steps.prerelease.outputs.is_prerelease }}
68+
6269
steps:
6370
- name: Checkout code
6471
uses: actions/checkout@v6
@@ -95,6 +102,11 @@ jobs:
95102
echo "Minor version: $MINOR_VERSION"
96103
echo "Release branch: $MINOR_BRANCH"
97104
105+
- name: Set unified prerelease flag
106+
id: prerelease
107+
run: |
108+
echo "is_prerelease=${{ inputs.prerelease || contains(inputs.tag, '-') || contains(inputs.tag, 'alpha') || contains(inputs.tag, 'beta') || contains(inputs.tag, 'rc') }}" >> "$GITHUB_OUTPUT"
109+
98110
- name: Validate tag format
99111
run: |
100112
TAG="${{ inputs.tag }}"
@@ -110,6 +122,7 @@ jobs:
110122
outputs:
111123
version_tag: ${{ needs.prepare-release.outputs.version_tag }}
112124
minor_release_branch: ${{ needs.prepare-release.outputs.minor_release_branch }}
125+
is_prerelease: ${{ needs.prepare-release.outputs.is_prerelease }}
113126

114127
steps:
115128
- name: Checkout code
@@ -176,6 +189,7 @@ jobs:
176189
needs: create-release-branch
177190
outputs:
178191
version_tag: ${{ needs.create-release-branch.outputs.version_tag }}
192+
is_prerelease: ${{ needs.create-release-branch.outputs.is_prerelease }}
179193

180194
steps:
181195
- name: Checkout release branch
@@ -191,13 +205,15 @@ jobs:
191205
git config user.email "${{ env.GH_USER_EMAIL }}"
192206
193207
- name: Create and push git tag
208+
env:
209+
ALLOW_TAG_OVERWRITE: ${{ inputs.allow_tag_overwrite }}
194210
run: |
195211
TAG="${{ needs.create-release-branch.outputs.version_tag }}"
196212
BRANCH="${{ needs.create-release-branch.outputs.minor_release_branch }}"
197213
198214
# Check if tag already exists
199215
if git rev-parse "$TAG" >/dev/null 2>&1; then
200-
if [ "${{ inputs.allow_tag_overwrite }}" != "true" ]; then
216+
if [ "$ALLOW_TAG_OVERWRITE" != "true" ]; then
201217
echo "❌ Error: Tag $TAG already exists!"
202218
echo ""
203219
echo "Tags should be immutable once released. To overwrite an existing tag:"
@@ -241,7 +257,7 @@ jobs:
241257
242258
> Note: Release notes can be edited after creation.
243259
draft: false
244-
prerelease: ${{ contains(inputs.tag, '-') || contains(inputs.tag, 'alpha') || contains(inputs.tag, 'beta') || contains(inputs.tag, 'rc') }}
260+
prerelease: ${{ needs.create-release-branch.outputs.is_prerelease == 'true' }}
245261

246262
build-and-push-image:
247263
name: Build and Push Image
@@ -278,22 +294,26 @@ jobs:
278294
id: build_image
279295
env:
280296
QUAY_REPO: ${{ secrets.APP_QUAY_REPO }}
297+
VERSION_TAG: ${{ needs.create-tag.outputs.version_tag }}
281298
run: |
282299
if [ -n "$QUAY_REPO" ]; then
283300
echo "Using custom repository from secret: $QUAY_REPO"
284301
echo "repo=$QUAY_REPO" >> $GITHUB_OUTPUT
285-
make build-push-image REPO="$QUAY_REPO" TAG=${{ needs.create-tag.outputs.version_tag }} CONTAINER_ENGINE=docker
302+
make build-push-image REPO="$QUAY_REPO" TAG="$VERSION_TAG" CONTAINER_ENGINE=docker
286303
else
287304
echo "Using Makefile default repository: quay.io/opendatahub/maas-api"
288305
echo "repo=quay.io/opendatahub/maas-api" >> $GITHUB_OUTPUT
289-
make build-push-image TAG=${{ needs.create-tag.outputs.version_tag }} CONTAINER_ENGINE=docker
306+
make build-push-image TAG="$VERSION_TAG" CONTAINER_ENGINE=docker
290307
fi
291308
292309
deploy-documentation:
293310
name: Deploy Documentation
294311
runs-on: ubuntu-latest
295312
needs: create-tag
296-
313+
concurrency:
314+
group: pages
315+
cancel-in-progress: false
316+
297317
steps:
298318
- name: Checkout version tag
299319
uses: actions/checkout@v6
@@ -326,13 +346,18 @@ jobs:
326346
git config --global user.email "${{ env.GH_USER_EMAIL }}"
327347
328348
- name: Deploy versioned docs with mike
349+
env:
350+
PRERELEASE: ${{ needs.create-tag.outputs.is_prerelease }}
351+
VERSION_TAG: ${{ needs.create-tag.outputs.version_tag }}
329352
run: |
330353
cd docs
331-
# Deploy the new version and update latest
332-
# Note: mike will automatically create the gh-pages branch if it doesn't exist
333-
mike deploy --push --update-aliases ${{ needs.create-tag.outputs.version_tag }} latest
334-
# Set latest as the default version
335-
mike set-default --push latest
354+
if [ "$PRERELEASE" = "true" ]; then
355+
echo "Pre-release: deploying docs version without updating 'latest' alias"
356+
mike deploy --push "$VERSION_TAG"
357+
else
358+
mike deploy --push --update-aliases "$VERSION_TAG" latest
359+
mike set-default --push latest
360+
fi
336361
337362
summary:
338363
name: Release Summary
@@ -342,27 +367,37 @@ jobs:
342367

343368
steps:
344369
- name: Summary
370+
env:
371+
VERSION_TAG: ${{ needs.create-tag.outputs.version_tag }}
372+
MINOR_BRANCH: ${{ needs.create-release-branch.outputs.minor_release_branch }}
373+
IMAGE_REPO: ${{ needs.build-and-push-image.outputs.image_repo }}
374+
IS_PRERELEASE: ${{ needs.prepare-release.outputs.is_prerelease }}
375+
CREATE_RELEASE: ${{ inputs.create_release }}
345376
run: |
346377
{
347378
echo "## Release Summary"
348379
echo ""
349-
echo "✅ **Tag**: \`${{ needs.create-tag.outputs.version_tag }}\`"
350-
echo "✅ **Release Branch**: \`${{ needs.create-release-branch.outputs.minor_release_branch }}\`"
380+
echo "✅ **Tag**: \`$VERSION_TAG\`"
381+
echo "✅ **Release Branch**: \`$MINOR_BRANCH\`"
351382
echo "✅ **Git Tag**: Created and pushed from release branch"
352-
echo "✅ **Image Built & Pushed**: \`${{ needs.build-and-push-image.outputs.image_repo }}:${{ needs.create-tag.outputs.version_tag }}\`"
353-
echo "✅ **Documentation Deployed**: \`${{ needs.create-tag.outputs.version_tag }}\`"
354-
if [ "${{ inputs.create_release }}" == "true" ]; then
383+
echo "✅ **Image Built & Pushed**: \`$IMAGE_REPO:$VERSION_TAG\`"
384+
echo "✅ **Documentation Deployed**: \`$VERSION_TAG\`"
385+
if [ "$CREATE_RELEASE" = "true" ]; then
355386
echo "✅ **GitHub Release**: Created"
356387
fi
357388
echo ""
358389
echo "### Updated Files"
359390
echo "- \`deployment/base/maas-api/kustomization.yaml\`"
360391
echo "- \`maas-api/deploy/overlays/dev/kustomization.yaml\`"
361392
echo "- \`maas-api/deploy/overlays/odh/params.env\`"
362-
echo "- MAAS_REF references updated to use \`${{ needs.create-tag.outputs.version_tag }}\`"
393+
echo "- MAAS_REF references updated to use \`$VERSION_TAG\`"
363394
echo ""
364395
echo "### Documentation"
365-
echo "- Docs Version: \`${{ needs.create-tag.outputs.version_tag }}\`"
366-
echo "- Docs Alias: \`latest\`"
396+
echo "- Docs Version: \`$VERSION_TAG\`"
397+
if [ "$IS_PRERELEASE" = "true" ]; then
398+
echo "- Docs Alias: _(not updated — pre-release)_"
399+
else
400+
echo "- Docs Alias: \`latest\`"
401+
fi
367402
echo "- Docs URL: https://opendatahub-io.github.io/models-as-a-service/"
368403
} >> "$GITHUB_STEP_SUMMARY"

0 commit comments

Comments
 (0)