Skip to content
This repository was archived by the owner on Sep 9, 2026. It is now read-only.

OSAC-1677: drop kustomize from CI deployment pipeline - #398

Merged
omer-vishlitzky merged 10 commits into
osac-project:mainfrom
omer-vishlitzky:OSAC-1677/drop-kustomize
Jul 8, 2026
Merged

omer-vishlitzky merged 10 commits into
osac-project:mainfrom
omer-vishlitzky:OSAC-1677/drop-kustomize

Conversation

@omer-vishlitzky

@omer-vishlitzky omer-vishlitzky commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove all kustomize overlays, base kustomization files, GH Actions workflow, build scripts, and prerequisite kustomization files
  • Rewrite setup.sh, teardown.sh, sync-image-tags.sh, aap-configuration.sh to be Helm-only
  • Convert prerequisite installation from oc apply -k to oc apply -f
  • Update all documentation and bot configs to reflect Helm-only deployment
  • OSAC-1646: Fix stale Keycloak realm in CI snapshots — set KC_SPI_IMPORT_REALM_FILE_STRATEGY=OVERWRITE during snapshot refresh so realm.json changes are always applied

Test plan

  • Verify helm lint charts/osac/ passes
  • Verify scripts/sync-image-tags.sh passes
  • Verify yamllint --strict . passes
  • Run full e2e with snapshot-based CI (vmaas)
  • Run full-install e2e (setup.sh from scratch)
  • Verify keycloak realm changes are picked up on snapshot refresh (OSAC-1646)

🤖 Generated with Claude Code

Remove all kustomize overlays, base kustomization files, GH Actions
workflow, build scripts, and references from the installer. Deployment
is now Helm-only.

- Delete overlays/, base/kustomization.yaml, base/shared/, base/hub-access/
- Delete .github/workflows/kustomize-build.yaml, scripts/kustomize-build-all.sh
- Delete scripts/refresh-after-snapshot.sh (kustomize-era refresh)
- Delete all prerequisites/*/kustomization.yaml files
- Rewrite setup.sh, teardown.sh, sync-image-tags.sh, aap-configuration.sh
  to remove kustomize code paths
- Convert prereq installation from oc apply -k to oc apply -f
- Update keycloak deployment images from bare names to full refs
- Rewrite AGENTS.md, README.md, prerequisites/README.md, .ai-bot/*
- Update helm-deployment-guide.md, aap-configuration.md, OSAC-CLI-HOWTO.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-ci-robot

openshift-ci-robot commented Jul 7, 2026

Copy link
Copy Markdown

@omer-vishlitzky: This pull request references OSAC-1677 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Remove all kustomize overlays, base kustomization files, GH Actions workflow, build scripts, and prerequisite kustomization files
  • Rewrite setup.sh, teardown.sh, sync-image-tags.sh, aap-configuration.sh to be Helm-only
  • Convert prerequisite installation from oc apply -k to oc apply -f
  • Update all documentation and bot configs to reflect Helm-only deployment

Test plan

  • Verify helm lint charts/osac/ passes
  • Verify scripts/sync-image-tags.sh passes
  • Verify yamllint --strict . passes
  • Run full e2e with snapshot-based CI (vmaas)
  • Run full-install e2e (setup.sh from scratch)

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci

openshift-ci Bot commented Jul 7, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: omer-vishlitzky

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved label Jul 7, 2026
@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@omer-vishlitzky, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 2 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: c81d45db-6d84-4baa-8724-5644b0224ed2

📥 Commits

Reviewing files that changed from the base of the PR and between e794238 and a8d47f3.

📒 Files selected for processing (18)
  • .ai-bot/config.yaml
  • .ai-bot/feedback-workflow.md
  • .ai-bot/instructions.md
  • .ai-bot/new-ticket-workflow.md
  • AGENTS.md
  • Makefile
  • README.md
  • charts/osac/templates/hub-access.yaml
  • docs/aap-configuration.md
  • docs/dns-backend.md
  • docs/helm-deployment-guide.md
  • docs/network-backend.md
  • prerequisites/README.md
  • prerequisites/aap-installation.yaml
  • scripts/refresh-after-snapshot.py
  • scripts/setup.sh
  • scripts/sync-image-tags.sh
  • scripts/teardown.sh

Walkthrough

The deployment mechanism is migrated from Kustomize overlays to a Helm umbrella chart. Installer scripts (setup.sh, teardown.sh, aap-configuration.sh, sync-image-tags.sh, and namespace-resolution helpers) are rewritten to use Helm and environment-scoped values files. AI-bot automation configs, AGENTS.md, README.md, and other docs are updated accordingly, and numerous Kustomize base/overlay manifests and scripts are removed.

Changes

Kustomize to Helm migration

Layer / File(s) Summary
Prerequisite manifest labels and images
prerequisites/aap-installation.yaml, prerequisites/keycloak/service/deployment.yaml, charts/osac/templates/operator-rbac-supplement.yaml
Managed-by labels switch to Helm, Keycloak container images are bumped, and an RBAC comment now references upstream manifests instead of kustomize.
Namespace defaulting and script cleanup
scripts/aap-configuration.sh, scripts/prepare-aap.sh, scripts/prepare-fulfillment-service.sh, scripts/prepare-tenant.sh, scripts/setup-remote-cluster.sh, scripts/ensure-ca-bundle.sh
INSTALLER_NAMESPACE now defaults to "osac" instead of being parsed from overlay kustomization files; messaging/comments updated for Helm.
Image tag sync targets Helm values
scripts/sync-image-tags.sh
Removes kustomize/overlay tag-update logic; syncs submodule SHAs directly into values/*/values.yaml.
setup.sh Helm deployment flow
scripts/setup.sh
Validates Helm, applies prerequisites directly, creates namespace/secrets, labels resources for Helm adoption, runs helm upgrade --install, waits for AAP bootstrap job.
teardown.sh Helm uninstall flow
scripts/teardown.sh
Defaults namespace to "osac", runs helm uninstall before namespace deletion, simplifies Keycloak/MetalLB/CA cleanup to direct oc delete -f.
Values file headers
values/development/values.yaml, values/vmaas-ci/values.yaml, values/caas-ci/values.yaml
Header comments updated to remove overlay kustomization.yaml references.
Removed overlay and hub-access manifests
base/hub-access/sa.yaml, overlays/caas-ci/files/osac-aap-configuration.env
Removes hub-access ServiceAccount manifest and empties the caas-ci AAP configuration env file.
AI-bot automation config and workflow docs
.ai-bot/config.yaml, .ai-bot/feedback-workflow.md, .ai-bot/instructions.md, .ai-bot/new-ticket-workflow.md
Validation commands switch to helm lint/sync-image-tags.sh; rules updated for Helm/values-file structure.
AGENTS.md architecture documentation
AGENTS.md
Overview and architecture sections rewritten for the Helm umbrella chart, scripts, and values/schema conventions.
User-facing installation documentation
README.md, OSAC-CLI-HOWTO.md, prerequisites/README.md, docs/aap-configuration.md, docs/helm-deployment-guide.md
Install/teardown/prerequisite instructions and AAP configuration guidance updated to Helm-based commands and values-directory conventions.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Operator
  participant SetupScript as setup.sh
  participant Cluster as OpenShift Cluster
  participant Helm

  Operator->>SetupScript: Run ./scripts/setup.sh
  SetupScript->>Cluster: Apply prerequisites (cert-manager, Keycloak)
  SetupScript->>Cluster: Create namespace, ca-bundle, secrets
  SetupScript->>Cluster: Label pre-created resources for Helm adoption
  SetupScript->>Helm: helm upgrade --install charts/osac with VALUES_FILE
  Helm->>Cluster: Deploy OSAC chart resources
  SetupScript->>Cluster: Run aap-configuration.sh, wait for bootstrap job
  Cluster-->>SetupScript: Bootstrap job complete
  SetupScript-->>Operator: Setup finished
Loading

Estimated code review effort: 4 (Complex) | ~60 minutes

Suggested labels: documentation, infrastructure, breaking-change

Suggested reviewers: none identified from the provided diff

Poem:
Kustomize kits are packed away,
Helm charts rise to lead the way.
Scripts now default namespace true,
"osac" whispered, nothing new.
Overlays sleep, their work is done —
A single chart, deployment, spun. 🚀

🚥 Pre-merge checks | ✅ 5 | ❌ 6

❌ Failed checks (6 inconclusive)

Check name Status Explanation Resolution
No-Hardcoded-Secrets ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
No-Weak-Crypto ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
No-Injection-Vectors ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Container-Privileges ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
No-Sensitive-Data-In-Logs ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Ai-Attribution ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: removing Kustomize from the CI deployment pipeline.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
prerequisites/keycloak/service/deployment.yaml (1)

38-52: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Avoid :latest image tags for reproducible deployments.

Both wait-for-database and keycloak containers now pull :latest instead of a pinned version. Combined with imagePullPolicy: IfNotPresent, this makes deployments non-reproducible: different clusters/nodes can silently drift to different image versions depending on cache state, and upstream releases can introduce breaking changes without any corresponding change in this repo.

Pin to a specific, known-good tag (or digest) for both images.

🔒 Suggested fix
       initContainers:
       - name: wait-for-database
-        image: quay.io/sclorg/postgresql-18-c10s:latest
+        image: quay.io/sclorg/postgresql-18-c10s:c10s
         imagePullPolicy: IfNotPresent
       containers:
       - name: keycloak
-        image: quay.io/keycloak/keycloak:latest
+        image: quay.io/keycloak/keycloak:26.0
         imagePullPolicy: IfNotPresent
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@prerequisites/keycloak/service/deployment.yaml` around lines 38 - 52, The
deployment manifest for the Keycloak workload is using mutable `:latest` tags
for both the `wait-for-database` initContainer and the `keycloak` container,
which makes the rollout non-reproducible. Update the image references in
`deployment.yaml` to pinned, known-good versions or digests, and keep
`imagePullPolicy` consistent with that choice so the `wait-for-database` and
`keycloak` definitions always resolve to the same image versions.
scripts/sync-image-tags.sh (1)

37-39: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Tag-mode lookup lacks the || true guard the inline branch has.

Line 50 protects its command substitution with || true, but line 38 does not. Under pipefail+errexit, if the tag: line is not the immediate line after repository: (e.g. reordered/annotated values), grep "tag:" fails, the pipe returns non-zero, and the script aborts before the [[ -z "${current}" ]] && continue fallback on line 39 can run. Add || true for symmetry and resilience.

🛡️ Proposed guard
-      current=$(grep -A1 "repository: ghcr.io/osac-project/${component}$" "${values_file}" | grep "tag:" | awk '{print $2}')
+      current=$(grep -A1 "repository: ghcr.io/osac-project/${component}$" "${values_file}" | grep "tag:" | awk '{print $2}' || true)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/sync-image-tags.sh` around lines 37 - 39, The tag-mode lookup in
sync-image-tags.sh is missing the same failure guard used by the inline branch,
so a non-matching grep pipeline can abort the script before the empty-value
fallback runs. Update the command substitution assigned to current in the
tag-based repository lookup to include a trailing || true, matching the inline
branch behavior, and keep the existing [[ -z "${current}" ]] check as the
fallback. Use the grep/AWK pipeline around current in the component loop as the
place to apply the fix.
docs/helm-deployment-guide.md (1)

637-641: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep the copy example in the documented values layout.

values/my-env.yaml breaks the repo convention of values/<env>/values.yaml and will make the later Helm examples inconsistent.

Fix
-cp values/development/values.yaml values/my-env.yaml
+mkdir -p values/my-env
+cp values/development/values.yaml values/my-env/values.yaml
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/helm-deployment-guide.md` around lines 637 - 641, The copy example in
the Helm guide uses an inconsistent target path and should follow the repo’s
values layout. Update the example in the deployment guide so it copies to the
documented `values/<env>/values.yaml` structure instead of `values/my-env.yaml`,
keeping the naming consistent with the rest of the Helm examples and the values
directory convention.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.ai-bot/config.yaml:
- Around line 12-16: The validation list is missing the per-values-file render
check, so update the configuration used by the validation workflow to include
the same templating step that iterates through each values file under
values/*/values.yaml. Add this alongside the existing validation_commands in the
config so the environment-specific render check runs in CI, and make sure the
command targets the chart referenced by the helm lint setup.

In @.ai-bot/feedback-workflow.md:
- Around line 28-31: The post-change validation workflow is missing the chart
template render check for each values file, so update the validation steps
alongside helm lint in the feedback workflow to also run the same templating
command used by CI against every values/*/values.yaml file. Keep this near the
existing chart validation in the workflow so it catches values-specific
rendering failures before review.

In @.ai-bot/instructions.md:
- Around line 88-92: The “What Not to Modify” guardrail in instructions.md is
missing one submodule from the repository structure, so update that exclusion
list to also include base/bare-metal-fulfillment-operator/ alongside the
existing submodule paths. Keep the wording consistent with the current bullet
list so the ignore rule clearly covers every submodule mentioned in the repo
layout.
- Around line 23-35: The validation section is missing the environment-specific
Helm rendering step, so update the playbook to include a per-values-file
template pass alongside helm lint. Add the same check CI uses by templating
charts/osac/ against each values/*/values.yaml file, and keep the guidance in
the validation list near helm lint and the image tag sync step so it is easy to
find.

In @.ai-bot/new-ticket-workflow.md:
- Around line 23-28: The validation steps in the new-ticket workflow are missing
the same per-environment Helm rendering check used by CI, so update the workflow
instructions to include the `helm template` pass for every
`values/*/values.yaml` file alongside the existing `yamllint`, `pre-commit`,
`helm lint`, and sync script steps. Keep this aligned with the CI validation
flow in the new-ticket workflow document so rendering failures are caught before
merge.

In `@AGENTS.md`:
- Around line 36-47: The fenced code block in AGENTS.md is missing a language
tag, which triggers markdownlint. Update the bare fence in the chart/values
directory listing snippet to use the appropriate language tag (text) while
keeping the content unchanged, so the rendered output stays the same and the
linter passes.

In `@README.md`:
- Around line 249-250: Create the target values directory before the copy step
in the README example, since the current cp command in the values setup
instructions assumes values/<project-name> already exists. Update the setup
guidance around the values/development/values.yaml copy so it explicitly
includes creating values/<project-name> first, then copying the file, using the
same values path references shown in the existing instructions.
- Around line 118-120: The README submodule setup commands are using git
submodule update with --remote, which pulls moving branch tips instead of the
pinned commits. Update both submodule init commands in the README to remove
--remote and keep them aligned with the snapshot workflow, preserving the
checked-in submodule state and image tags.

In `@scripts/setup.sh`:
- Around line 307-322: The Helm adoption loop in setup.sh is applying Helm
labels/annotations to a shared configmap/ca-bundle that is not owned by
charts/osac. Remove ca-bundle from the resource list processed by the adoption
block, and only keep fulfillment-db in this loop when bundledPostgres.enabled is
true so the adoption logic matches the chart-managed resources. Use the existing
setup.sh adoption section and the resource entries in the for-loop to locate the
change.
- Around line 262-263: The explicit osac-controller secret error path in
setup.sh is currently unreachable because the FC_CLIENT_SECRET jq assignment
fails fast under set -e before the [[ -n ... ]] check can run. Update the secret
lookup around FC_CLIENT_SECRET so the jq failure does not abort the script
immediately, letting the subsequent empty-value check execute and print the
custom error message; keep the existing validation flow intact in that block.

---

Outside diff comments:
In `@docs/helm-deployment-guide.md`:
- Around line 637-641: The copy example in the Helm guide uses an inconsistent
target path and should follow the repo’s values layout. Update the example in
the deployment guide so it copies to the documented `values/<env>/values.yaml`
structure instead of `values/my-env.yaml`, keeping the naming consistent with
the rest of the Helm examples and the values directory convention.

In `@prerequisites/keycloak/service/deployment.yaml`:
- Around line 38-52: The deployment manifest for the Keycloak workload is using
mutable `:latest` tags for both the `wait-for-database` initContainer and the
`keycloak` container, which makes the rollout non-reproducible. Update the image
references in `deployment.yaml` to pinned, known-good versions or digests, and
keep `imagePullPolicy` consistent with that choice so the `wait-for-database`
and `keycloak` definitions always resolve to the same image versions.

In `@scripts/sync-image-tags.sh`:
- Around line 37-39: The tag-mode lookup in sync-image-tags.sh is missing the
same failure guard used by the inline branch, so a non-matching grep pipeline
can abort the script before the empty-value fallback runs. Update the command
substitution assigned to current in the tag-based repository lookup to include a
trailing || true, matching the inline branch behavior, and keep the existing [[
-z "${current}" ]] check as the fallback. Use the grep/AWK pipeline around
current in the component loop as the place to apply the fix.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 58ab3830-e05e-4ddc-9c0b-e9ee26e55fa9

📥 Commits

Reviewing files that changed from the base of the PR and between 7275ab1 and e794238.

📒 Files selected for processing (90)
  • .ai-bot/config.yaml
  • .ai-bot/feedback-workflow.md
  • .ai-bot/instructions.md
  • .ai-bot/new-ticket-workflow.md
  • .github/workflows/kustomize-build.yaml
  • AGENTS.md
  • OSAC-CLI-HOWTO.md
  • README.md
  • base/fulfillment-service/controller/deployment.yaml
  • base/hub-access/README.md
  • base/hub-access/kustomization.yaml
  • base/hub-access/rbac.yaml
  • base/hub-access/sa.yaml
  • base/hub-access/secret.yaml
  • base/kustomization.yaml
  • base/nameReference.yaml
  • base/shared/kustomization.yaml
  • base/shared/namespace.yaml
  • charts/osac/templates/operator-rbac-supplement.yaml
  • docs/aap-configuration.md
  • docs/helm-deployment-guide.md
  • overlays/_shared/console-proxy-shared-dev/kustomization.yaml
  • overlays/_shared/console-proxy-shared-dev/secret-reader-rolebinding.yaml
  • overlays/caas-ci/.buildfiles
  • overlays/caas-ci/ca-trust-bundle.yaml
  • overlays/caas-ci/console-proxy-replacements.yaml
  • overlays/caas-ci/files/osac-aap-configuration.env
  • overlays/caas-ci/files/osac-aap-secrets.env.example
  • overlays/caas-ci/kustomization.yaml
  • overlays/caas-ci/prefixTransformer.yaml
  • overlays/development/.buildfiles
  • overlays/development/ca-trust-bundle.yaml
  • overlays/development/capi-provider-role.yaml
  • overlays/development/console-proxy-replacements.yaml
  • overlays/development/files/clouds.yaml.example
  • overlays/development/files/inventory.yaml.example
  • overlays/development/files/management.yaml.example
  • overlays/development/files/osac-aap-configuration.env
  • overlays/development/files/osac-aap-secrets.env.example
  • overlays/development/files/profile.yaml.example
  • overlays/development/kustomization.yaml
  • overlays/development/prefixTransformer.yaml
  • overlays/hypershift2/console-proxy-replacements.yaml
  • overlays/hypershift2/externalsecrets/cluster-fulfillment-ig.yaml
  • overlays/hypershift2/externalsecrets/config-as-code-manifest-ig.yaml
  • overlays/hypershift2/externalsecrets/default-cluster-credentials.yaml
  • overlays/hypershift2/externalsecrets/kustomization.yaml
  • overlays/hypershift2/externalsecrets/quay-pull-secret.yaml
  • overlays/hypershift2/kustomization.yaml
  • overlays/osac-integration/.buildfiles
  • overlays/osac-integration/README.md
  • overlays/osac-integration/ca-trust-bundle.yaml
  • overlays/osac-integration/console-proxy-replacements.yaml
  • overlays/osac-integration/files/osac-aap-configuration.env
  • overlays/osac-integration/files/osac-aap-secrets.env.example
  • overlays/osac-integration/kustomization.yaml
  • overlays/osac-integration/prefixTransformer.yaml
  • overlays/vmaas-ci/.buildfiles
  • overlays/vmaas-ci/ca-trust-bundle.yaml
  • overlays/vmaas-ci/console-proxy-replacements.yaml
  • overlays/vmaas-ci/kustomization.yaml
  • overlays/vmaas-ci/prefixTransformer.yaml
  • prerequisites/README.md
  • prerequisites/aap-installation.yaml
  • prerequisites/cert-manager/kustomization.yaml
  • prerequisites/cnv/kustomization.yaml
  • prerequisites/keycloak/database/kustomization.yaml
  • prerequisites/keycloak/kustomization.yaml
  • prerequisites/keycloak/service/deployment.yaml
  • prerequisites/keycloak/service/kustomization.yaml
  • prerequisites/kustomization.yaml
  • prerequisites/lvms/kustomization.yaml
  • prerequisites/mce/kustomization.yaml
  • prerequisites/metallb/kustomization.yaml
  • prerequisites/nfs-subdir-provisioner/base/kustomization.yaml
  • prerequisites/nfs-subdir-provisioner/overlays/lab/kustomization.yaml
  • scripts/aap-configuration.sh
  • scripts/ensure-ca-bundle.sh
  • scripts/kustomize-build-all.sh
  • scripts/prepare-aap.sh
  • scripts/prepare-fulfillment-service.sh
  • scripts/prepare-tenant.sh
  • scripts/refresh-after-snapshot.sh
  • scripts/setup-remote-cluster.sh
  • scripts/setup.sh
  • scripts/sync-image-tags.sh
  • scripts/teardown.sh
  • values/caas-ci/values.yaml
  • values/development/values.yaml
  • values/vmaas-ci/values.yaml
💤 Files with no reviewable changes (65)
  • base/nameReference.yaml
  • prerequisites/mce/kustomization.yaml
  • base/hub-access/README.md
  • overlays/osac-integration/.buildfiles
  • overlays/vmaas-ci/.buildfiles
  • overlays/hypershift2/externalsecrets/config-as-code-manifest-ig.yaml
  • overlays/development/.buildfiles
  • prerequisites/nfs-subdir-provisioner/overlays/lab/kustomization.yaml
  • overlays/osac-integration/files/osac-aap-secrets.env.example
  • overlays/development/files/inventory.yaml.example
  • overlays/_shared/console-proxy-shared-dev/kustomization.yaml
  • overlays/_shared/console-proxy-shared-dev/secret-reader-rolebinding.yaml
  • base/hub-access/kustomization.yaml
  • overlays/development/files/profile.yaml.example
  • overlays/caas-ci/.buildfiles
  • base/hub-access/secret.yaml
  • prerequisites/keycloak/database/kustomization.yaml
  • overlays/development/ca-trust-bundle.yaml
  • prerequisites/keycloak/service/kustomization.yaml
  • base/hub-access/sa.yaml
  • overlays/hypershift2/kustomization.yaml
  • overlays/vmaas-ci/kustomization.yaml
  • overlays/vmaas-ci/console-proxy-replacements.yaml
  • prerequisites/kustomization.yaml
  • overlays/osac-integration/files/osac-aap-configuration.env
  • prerequisites/nfs-subdir-provisioner/base/kustomization.yaml
  • prerequisites/lvms/kustomization.yaml
  • base/shared/kustomization.yaml
  • overlays/development/kustomization.yaml
  • scripts/kustomize-build-all.sh
  • overlays/development/files/management.yaml.example
  • overlays/hypershift2/externalsecrets/quay-pull-secret.yaml
  • overlays/development/console-proxy-replacements.yaml
  • overlays/caas-ci/prefixTransformer.yaml
  • overlays/osac-integration/README.md
  • overlays/caas-ci/kustomization.yaml
  • overlays/osac-integration/console-proxy-replacements.yaml
  • overlays/osac-integration/ca-trust-bundle.yaml
  • base/shared/namespace.yaml
  • overlays/development/files/osac-aap-configuration.env
  • overlays/vmaas-ci/ca-trust-bundle.yaml
  • prerequisites/cert-manager/kustomization.yaml
  • overlays/hypershift2/externalsecrets/cluster-fulfillment-ig.yaml
  • overlays/caas-ci/console-proxy-replacements.yaml
  • base/kustomization.yaml
  • base/hub-access/rbac.yaml
  • overlays/vmaas-ci/prefixTransformer.yaml
  • overlays/osac-integration/kustomization.yaml
  • prerequisites/cnv/kustomization.yaml
  • overlays/hypershift2/console-proxy-replacements.yaml
  • base/fulfillment-service/controller/deployment.yaml
  • overlays/caas-ci/files/osac-aap-secrets.env.example
  • overlays/development/capi-provider-role.yaml
  • overlays/development/files/clouds.yaml.example
  • overlays/development/prefixTransformer.yaml
  • scripts/refresh-after-snapshot.sh
  • overlays/development/files/osac-aap-secrets.env.example
  • overlays/caas-ci/ca-trust-bundle.yaml
  • .github/workflows/kustomize-build.yaml
  • overlays/caas-ci/files/osac-aap-configuration.env
  • prerequisites/keycloak/kustomization.yaml
  • overlays/osac-integration/prefixTransformer.yaml
  • overlays/hypershift2/externalsecrets/default-cluster-credentials.yaml
  • overlays/hypershift2/externalsecrets/kustomization.yaml
  • prerequisites/metallb/kustomization.yaml

Comment thread .ai-bot/config.yaml
Comment thread .ai-bot/feedback-workflow.md
Comment thread .ai-bot/instructions.md
Comment thread .ai-bot/instructions.md Outdated
Comment thread .ai-bot/new-ticket-workflow.md
Comment thread AGENTS.md Outdated
Comment thread README.md
Comment thread README.md
Comment thread scripts/setup.sh Outdated
Comment thread scripts/setup.sh
…heck

- Create keycloak ConfigMaps (db-server-config, db-access-config, realm)
  explicitly via oc create configmap before applying keycloak resources.
  These were previously generated by kustomize configMapGenerator.
- Add externalip{pools,s,attachments} RBAC entries to Helm hub-access
  Role — was in kustomize base/hub-access/rbac.yaml but never ported.
- Remove duplicate AAP namespace check for -n aap in setup.sh.
- Update keycloak install docs in README, prerequisites/README,
  helm-deployment-guide to include ConfigMap creation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update aap-configuration.md, dns-backend.md, network-backend.md to
remove references to deleted osac-aap-configuration.env,
osac-aap-secrets.env, and overlay files/ directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ardown timeout

- Fix VALUES_FILE default from values/development.yaml to
  values/development/values.yaml (pre-existing bug).
- Remove dead DEPLOY_MODE variable and its usage in setup target.
- Bump helm uninstall timeout from 5m to 20m.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Drop --remote from submodule init in README (defeats image pinning)
- Add mkdir -p before cp in values customization docs
- Fix values/my-env.yaml to values/my-env/values.yaml in helm guide
- Guard jq -er with || true so set -e doesn't mask the error message
- Remove ca-bundle from Helm adoption loop (trust-manager-managed)
- Add || true to sync-image-tags grep pipeline under pipefail
- Remove inaccurate managed-by label from AAP prerequisites

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…p only

Keycloak is already installed on the snapshot. The old oc apply -k
re-applied all keycloak resources (StatefulSet, Deployment, certs,
services) as a no-op. Replace with a targeted realm configmap update —
the only thing that actually changes between snapshot bake and refresh.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
omer-vishlitzky and others added 3 commits July 7, 2026 23:43
Set KC_SPI_IMPORT_REALM_FILE_STRATEGY=OVERWRITE so keycloak overwrites
the existing realm from the configmap on every startup instead of
silently skipping the import when the realm already exists in the
database. Fixes stale realm configuration in CI snapshot boots.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Set KC_SPI_IMPORT_REALM_FILE_STRATEGY=OVERWRITE on the keycloak
deployment during snapshot refresh only. This forces keycloak to
re-import the realm from the configmap instead of silently skipping
when the realm already exists in the database from the snapshot.

Applied via oc set env in the refresh script (CI-only), not in the
base deployment yaml, so dev clusters are unaffected.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add per-values-file helm template render check to all .ai-bot
  validation commands (config.yaml, instructions.md, feedback-workflow,
  new-ticket-workflow)
- Add bare-metal-fulfillment-operator to submodule exclusion list
- Add language tag to AGENTS.md fenced code block

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@omer-vishlitzky
omer-vishlitzky merged commit a932ed4 into osac-project:main Jul 8, 2026
7 of 8 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants