Skip to content

fix(dev): make dev-cluster reliably populate the catalog - #731

Merged
cbrgm merged 4 commits into
mainfrom
fix/demo-setup-scripts
Aug 4, 2026
Merged

cbrgm merged 4 commits into
mainfrom
fix/demo-setup-scripts

Conversation

@cbrgm

@cbrgm cbrgm commented Aug 4, 2026 •

Copy link
Copy Markdown
Contributor

Background

The final goal (part of #644) is one command to spin up SolAr locally with the demo app actually deployed -> make demo, so onboarding is easy and reproducible. Today make dev-cluster gives you an empty SolAr and getting the demo running is a broken, order-sensitive manual dance. We get there in a few small PRs:

  1. (this PR) make make dev-cluster reliably populate the catalog
  2. extract a shared OCM transfer step so the dev path and the e2e suite cant drift
  3. make demo-app / make demo / make demo-clean to seed the full render -> bootstrap flow
  4. Optional but I think worth it: a smoke test which runs in CI that runs the demo so it cant silently rot

Each ships and gets reviewed on its own. This PR is step 1 basically

What

Make make dev-cluster actually populate the catalog out of the box, and fix the discovery transfer helper.

  • deploy solar-discovery in scan mode and register the local discovery Zot as a Registry before the worker starts (both dev-cluster.sh and dev-cluster-rebuild). @olzemal had the idea to include that also in the solar helm chart but I would probably like to do it this way for now and then later we can refactor it if we really agree to extend the helm chart in the future. But this is out of scope for now I would say
  • setup-discovery.sh now uses the ca-trusting ocmconfig and always cleans up its port-forward

Why

On a fresh dev-cluster the catalog was always empty. Dug into it -> discovery was deployed with no registries, and the pipeline builds its scanners from the registries present at startup (pkg/discovery/pipeline). A Registry added after the worker is already running never gets a scanner, so nothing ever gets discovered. Webhook mode doesnt save us either, its push events are one-shot with no retry and race the listener readiness (i watched zot get connection refused on :8080 and just drop the events).

Scan mode is the reproducible choice for a one command dev setup -> it reconciles on an interval, so timing doesnt matter. Applying the scan Registry before the worker starts means the scanner exists from the first reconcile. e2e is untouched, it manages its own discovery and still covers webhook mode, so no drift there.

Separately, setup-discovery.sh pointed at test/fixtures/ocmconfig, which only carries credentials and has no rootcerts block -> ocm transfer failed TLS against the self-signed zot cert. It now uses test/fixtures/e2e/ocmconfig (the same one e2e uses) and tears the port-forward down via a trap, so a failed transfer doesnt leak it.

Testing

Full clean run from teardown against a local kind cluster:

$ make cleanup-dev-cluster && make dev-cluster
...
DONE

$ kubectl -n solar-system get registry          # auto-wired by dev-cluster, no manual step
NAME       HOSTNAME           PLAIN HTTP   AGE
zot-scan   10.96.200.10:443   false        7s

$ kubectl get comp,cv -A                          # before pushing anything
(empty - correct)

$ OCM=./bin/go/ocm bash test/fixtures/setup-discovery.sh
...
Transferring ocm-demo component via OCM...
Transfer done. ...

$ kubectl -n solar-system get comp,cv             # ~10s later, via scan
NAME                                                            REGISTRY           REPOSITORY
component.../opendefense-cloud-ocm-demo                         10.96.200.10:443   test/opendefense.cloud/ocm-demo
NAME                                                            COMPONENT REF                TAG
componentversion.../opendefense-cloud-ocm-demo-v26-4-2          opendefense-cloud-ocm-demo   v26.4.2

No leaked port-forward afterwards. make shellcheck clean, e2e suite untouched.

Checklist

  • Tests added/updated (n/a, dev tooling + docs, verified manually against a live kind cluster, e2e unchanged)
  • No breaking changes (e2e manages its own discovery, only the dev/demo path changes)
  • Readable commit history (two focused commits)
  • AI code review considered and comments resolved

Part of #644

cbrgm added 2 commits August 4, 2026 11:36
…rd in setup-discovery

The script pointed at test/fixtures/ocmconfig, which only carries credentials
and has no rootcerts block, so ocm transfer failed TLS against the self-signed
zot cert (x509: certificate is not trusted). Use test/fixtures/e2e/ocmconfig,
the same ca-trusting config the e2e suite uses.

Also wait for the port-forward to accept connections instead of a fixed sleep,
and tear it down via a trap so a failed transfer no longer leaks it.
…s the catalog

make dev-cluster left an empty catalog: discovery was deployed with no
registries, so the pipeline built zero scanners at startup and a Registry added
afterwards never got one. Webhook mode did not help either, its push events are
one-shot with no retry and race the listener readiness.

Deploy discovery in scan mode and apply the scan Registry before the worker
starts (in both dev-cluster.sh and dev-cluster-rebuild), reusing the same
fixtures the e2e suite uses. The scanner is then present at startup and
reconciles on its interval, so after an OCM package is pushed the Component and
ComponentVersion appear in solar-system reproducibly. e2e is untouched, it
manages its own discovery and still covers webhook mode.
@coderabbitai

coderabbitai Bot commented Aug 4, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

Discovery scan setup

Layer / File(s) Summary
Scan-mode cluster setup
Makefile, hack/dev-cluster.sh, docs/developer-guide/dev-cluster-with-kind.md
Cluster setup applies the discovery registry manifest and deploys Solar Discovery with scan-based values. The guide documents the required tools and scan-mode resources.
Configurable fixture transfer
test/fixtures/setup-discovery.sh, docs/developer-guide/dev-cluster-with-kind.md
The fixture configures OCM and local port values, waits for port-forward readiness, cleans up the specific process, and reports scan-created resources.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: trevex

Sequence Diagram(s)

sequenceDiagram
  participant setup_discovery
  participant kubectl
  participant Zot
  participant solar_discovery
  setup_discovery->>kubectl: Apply discovery registry scan manifest
  kubectl->>Zot: Register discovery registry
  setup_discovery->>kubectl: Deploy with scan values
  kubectl->>solar_discovery: Start scan-mode discovery
  solar_discovery->>Zot: Scan registered registry
Loading
🚥 Pre-merge checks | ✅ 5
✅ 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.
Title check ✅ Passed The title clearly summarizes the main change: making the development cluster reliably populate the catalog.
Description check ✅ Passed The description covers the change, motivation, testing, and checklist; only the optional reviewer notes section is absent.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/demo-setup-scripts

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
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 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 `@docs/developer-guide/dev-cluster-with-kind.md`:
- Around line 39-41: Add solar-discovery to the “What Gets Installed” table with
solar-system as its namespace and a description matching its scan-mode local
discovery and automatic catalog population behavior.
- Around line 126-137: Update the environment-variable table in the dev-cluster
guide to include OCM_CONFIG and LOCAL_PORT, documenting each variable’s default
value and purpose consistent with the script’s behavior. Keep the existing
variable entries unchanged.
- Around line 135-137: Update the kubectl inspection command near
setup-discovery.sh to explicitly select the Kind context derived from
KIND_CLUSTER_DEV, matching the target cluster used by the setup flow. Preserve
the existing namespace and resource arguments.
- Around line 135-137: Convert the kubectl command block near the developer
guide’s kind-cluster instructions from fenced Markdown to the repository’s
required four-space indented code-block style, preserving the command unchanged.
- Around line 18-19: Update the OCM command configuration used by dev-cluster
and test/fixtures/setup-discovery.sh so standalone scripts resolve the
Makefile-provisioned binary in bin/ by default, or document the required
OCM=<provisioned-path> environment override in the environment table; keep the
existing Makefile workflow intact.

In `@test/fixtures/setup-discovery.sh`:
- Around line 27-33: Update the port-forward readiness loop in
setup-discovery.sh to track a readiness flag, and fail immediately if pf_pid
exits before the TCP probe succeeds. After the loop, exit nonzero when the flag
is not true so OCM is never run against an unavailable port.
🪄 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8794e60c-8cd5-4307-a17c-7f39d7c8c148

📥 Commits

Reviewing files that changed from the base of the PR and between fa95810 and eae09f2.

📒 Files selected for processing (4)
  • Makefile
  • docs/developer-guide/dev-cluster-with-kind.md
  • hack/dev-cluster.sh
  • test/fixtures/setup-discovery.sh

Comment thread docs/developer-guide/dev-cluster-with-kind.md
Comment thread docs/developer-guide/dev-cluster-with-kind.md
Comment thread docs/developer-guide/dev-cluster-with-kind.md
Comment thread docs/developer-guide/dev-cluster-with-kind.md
Comment thread test/fixtures/setup-discovery.sh
cbrgm added 2 commits August 4, 2026 11:57
…vars

Add solar-discovery to the installed-components table, document OCM_CONFIG and
LOCAL_PORT, and note that the provisioned ocm lives in bin/go/ocm so standalone
runs need OCM=./bin/go/ocm.
Also pin the docs inspection command to the kind-solar-dev context so it
matches the cluster the script targets.
@coveralls

coveralls commented Aug 4, 2026 •

Copy link
Copy Markdown

Coverage Report for CI Build 30898888452

Coverage remained the same at 82.027%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 6 coverage regressions across 1 file.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

6 previously-covered lines in 1 file lost coverage.

File Lines Losing Coverage Coverage
pkg/controller/rendertask_controller.go 6 86.58%

Coverage Stats

Coverage Status
Relevant Lines: 6404
Covered Lines: 5253
Line Coverage: 82.03%
Coverage Strength: 32.28 hits per line

💛 - Coveralls

@olzemal olzemal left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm, i could reproduce the test setup.
A fixed, small scanning interval is probably the most robust way to discover components at the scale of local development.
E2e tests setup the webhook ptr service themselves so this should have no effects on the e2e cluster / tests.

Comment thread docs/developer-guide/dev-cluster-with-kind.md
@cbrgm
cbrgm merged commit 0af9386 into main Aug 4, 2026
21 checks passed
@cbrgm
cbrgm deleted the fix/demo-setup-scripts branch August 4, 2026 13:10
@ghost ghost mentioned this pull request Aug 4, 2026
cbrgm added a commit that referenced this pull request Aug 5, 2026
## Background

Part of #644, the context is one command to spin up SolAr locally with
the demo app deployed -> `make demo`. Small PRs:

1. ✅ make `make dev-cluster` reliably populate the catalog (#731)
2. **(this PR)** single source of truth for the OCM transfer step
3. `make demo-app` / `make demo` / `make demo-clean` for the full render
-> bootstrap flow
4. a CI smoke test that runs the demo so it cant silently rot

## What

- extract the OCM transfer into `hack/demo/transfer-discovery.sh`.
`setup-discovery.sh` calls it, and the upcoming `make demo-app` flow
reuses it
- delete the credentials-only `test/fixtures/ocmconfig`

## Why

The transfer invocation and its config were living in more than one
place, which is exactly how the drift in #731 happened (dev pointed at a
config without the rootcerts block and failed TLS). Now theres one
helper for the transfer step and one config ->
`test/fixtures/e2e/ocmconfig`, which both the dev scripts and the e2e
suite already use, so the config cant drift between them.

The old top-level `test/fixtures/ocmconfig` was the actual footgun
(credentials only, no CA trust), so I deleted it

e2e is left untouched -> it keeps its own Go transfer and just
references the same single config. Rewiring it to shell out to the
helper would change e2e behavior for no real gain (the config, the thing
that drifted, is already shared). The behavioral no-drift across the
whole flow comes from the demo smoke test in step 4.

## Testing

```
$ shellcheck hack/demo/transfer-discovery.sh test/fixtures/setup-discovery.sh   # clean

# against a live dev cluster, catalog cleared first:
$ OCM=./bin/go/ocm bash test/fixtures/setup-discovery.sh
...
Transferring ocm-demo component via OCM...
Transfer done. ...
# ~15s later, via scan:
$ kubectl -n solar-system get comp,cv
component.../opendefense-cloud-ocm-demo                  10.96.200.10:443   test/opendefense.cloud/ocm-demo
componentversion.../opendefense-cloud-ocm-demo-v26-4-2   opendefense-cloud-ocm-demo   v26.4.2
```

Exit 0, no leaked port-forward. `grep -rn fixtures/ocmconfig` confirms
nothing references the deleted config anymore (e2e uses
`e2e/ocmconfig`).

## Checklist

- [x] Tests added/updated (n/a, dev tooling refactor, verified manually
against a live kind cluster, e2e unchanged)
- [x] No breaking changes (e2e untouched, same single config)
- [x] Readable commit history (one focused commit)
- [x] AI code review considered and comments resolved

Part of #644


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added a command to transfer the OCM demo content to a specified
registry.
- Supports custom OCM executable, configuration, and demo directory
settings.

- **Documentation**
  - Updated setup guidance to require cluster CA trust configuration.
  - Simplified demo transfer instructions using the new command.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
cbrgm added a commit that referenced this pull request Aug 6, 2026
…734)

## Background

Part of #644, the arc is one command to spin up SolAr locally with the
demo app deployed -> `make demo`

1. ✅ make `make dev-cluster` reliably populate the catalog (#731)
2. ✅ single source of truth for the OCM transfer step (#733)
3. **(this PR)** `make demo-app` / `make demo` / `make demo-clean` for
the full render -> bootstrap flow
4. a CI smoke test that runs the demo so it cant silently rot

## What

Three make targets, backed by two scripts under `hack/demo`:

- `make demo-app` -> seeds the ocm-demo app end to end on an existing
dev cluster: transfer -> discover -> release -> render -> bootstrap ->
running workload. Idempotent.
- `make demo` -> from zero: create the dev cluster if its missing, then
`demo-app`.
- `make demo-clean` -> remove the demo resources and the app namespace,
keep the cluster and the catalog.

## Why

After `make dev-cluster` we had an empty SolAr and getting the demo app
actually deployed was a manual, order-sensitive dance across a few
scripts. `demo-app` walks that whole path in one go.

The important bit for not drifting: `demo-app` mirrors the exact happy
path the e2e suite exercises and reuses the **same** `test/fixtures/e2e`
manifests (release, target, registry, bindings, regcred, bootstrap). So
the demo and the e2e tests share their inputs and cant diverge. CI will
guard the ordering in step 4 (pr follows after this one :)).

Topology -> everything runs in `solar-system`, because thats where
dev-cluster's discovery writes the ComponentVersion and where the
discovery Registry (`zot-scan`) and the `zot-deploy` pull secret already
live. So every reference resolves in-namespace, no ReferenceGrants
needed. This matches how the e2e suite runs the whole flow in a single
namespace. The app itself lands in the Release's `targetNamespace`
(`demo`).

Re-runs are cheap -> `demo-app` skips the transfer when the
ComponentVersion is already in the catalog.

## Testing

Full loop against a local kind cluster (`make dev-cluster` first):

```
$ make demo-app
>>> Transferring the ocm-demo component and waiting for discovery...
>>> ...
ocirepository.../solar-bootstrap condition met
helmrelease.../solar-bootstrap condition met

$ kubectl -n solar-system get releases,rendertasks,renderartifacts
release/...-release      ...   Resolved
rendertask/render-rel-...   Target   cluster-1   JobSucceeded
rendertask/render-tgt-cluster-1-0   Target   cluster-1   JobSucceeded
renderartifact/...  solar-system/bootstrap-cluster-1  v0.0.0

$ kubectl -n demo get pods
solar-bootstrap-opendefense-cloud-ocm-demo-...-demo...   1/1   Running     # the demo app is deployed
```

For the person who reviews this, try to run the following locally:
- fresh `make demo-app` -> workload Running
- `make demo-clean` -> demo resources + `demo` namespace gone, catalog +
cluster kept
- re-seed from clean -> workload Running again
- idempotent re-run with catalog present -> skips the transfer, still
reaches Ready
- `make shellcheck` clean

e2e suite is untouched 

## Checklist

- [x] Tests added/updated (n/a, dev tooling, verified manually end to
end against a live kind cluster; reuses the e2e fixtures; CI smoke test
lands in the follow-up PR)
- [x] No breaking changes (new targets only, e2e untouched)
- [x] Readable commit history (one focused commit)
- [ ] AI code review considered and comments resolved

Part of #644


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added commands to launch a complete demo environment, either using an
existing development cluster or creating one as needed.
* Added automated demo setup covering namespaces, credentials,
registries, releases, rendering, and readiness checks.
* Added cleanup support to remove demo resources while preserving the
development cluster and shared setup.
* Added configurable options, progress reporting, timeout handling, and
re-seeding guidance for demo workflows.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
cbrgm added a commit that referenced this pull request Aug 10, 2026
## Background

Part of #644, the context is one command to spin up SolAr locally with
the demo app deployed -> `make demo`. Small PRs:

1. ✅ make `make dev-cluster` reliably populate the catalog (#731)
2. ✅ single source of truth for the OCM transfer step (#733)
3. ✅ `make demo-app` / `make demo` / `make demo-clean` (#734)
4. **(this PR)** a CI smoke test so the demo flow cant silently rot

This is the last one, it closes out the story

## What

A `Demo Smoke Test` workflow that runs `make demo` (dev-cluster +
demo-app) end to end and asserts the demo application actually comes up.

## Why

The demo shares its inputs with the e2e suite (same `test/fixtures/e2e`
manifests), but the ordering and the make targets live outside the e2e
Go test. Without a check they can drift and nobody notices until someone
tries the demo. This job is the backstop: it walks the real transfer ->
discover -> release -> render -> bootstrap pipeline and fails if the
workload doesnt come up.

`demo-app` already waits for the bootstrap HelmRelease to become Ready
and exits non-zero otherwise, so a green `make demo` is the assertion.
The assert step then polls for the demo pod and waits for it to be
Ready.

It builds SolAr from source rather than reusing the ghcr images, because
`dev-cluster.sh` is wired for local images and adding a ghcr values +
pull-secret path just for a smoke test wasnt worth it.

## Gating

The demo is heavy (builds the images + full cluster), so it follows the
same opt-in pattern as docker/helm/e2e:

- on PRs -> only runs when the `ok-to-demo` label is set
- on `main` -> runs automatically, but only when demo-relevant files
change

## Testing

- `actionlint` clean on the workflow.
- The full flow (`make demo` -> running workload) is verified locally
end to end in #734.
- Self-validating: this PR carries `ok-to-demo`, so the smoke job runs
on it (an earlier revision without the label gating already passed green
in CI).

## Checklist

- [x] Tests added/updated (this *is* the test, a CI smoke check)
- [x] No breaking changes (new workflow only)
- [x] Readable commit history (one focused commit)
- [x] AI code review considered and comments resolved

Part of #644
rebEllieous added a commit that referenced this pull request Aug 24, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.3.0](v0.3.0-rc2...v0.3.0)
(2026-08-24)


* gate release-please app token on both app id and private key
([2c5d19e](2c5d19e))


### Features

- add cron workflow for solar catalog chaining
([6c61cff](6c61cff))
- add solar catalog chaining
([#744](#744))
([7001a5e](7001a5e))
- added status visualisation for the deployment workflow in the FE
([#664](#664))
([88dc1ee](88dc1ee))
- **api:** add ObjectReference type for cross-namespace resource
references
([30cecba](30cecba))
- **ci:** replace release-drafter with release-please
([#632](#632))
([#676](#676))
([64a05d9](64a05d9))
- **controller:** own Component lifecycle in a per-Component reconciler
([#745](#745))
([9ac867e](9ac867e))
- crud for k8s ressources in web ui
([#708](#708))
([83ba01b](83ba01b))
- deploy solar-ui as part of the solar chart
([#743](#743))
([3d1ac1e](3d1ac1e))
- **dev:** add make demo / demo-app / demo-clean for a one-command demo
([1524092](1524092))
- **dev:** make demo / demo-app / demo-clean for a one-command demo
([#734](#734))
([386ae19](386ae19))
- **discovery:** added resource watcher
([6d588b2](6d588b2))
- impl fe list views
([#645](#645))
([78c7fd7](78c7fd7))
- production-ready catalog transfer workflow, e2e tests
([#762](#762))
([4454e47](4454e47))
- pull secrets provision added for deployments to solar via ocm-kit
([#739](#739))
([8e3f8cb](8e3f8cb))
- **ui:** add resource detail pages with shared primitives
([#718](#718))
([e53d22a](e53d22a))
- **ui:** pkce implemented, local setup for remote zitadel in both auth
modes
([#764](#764))
([b531958](b531958))

### Bug Fixes

- apply suggestions from code review
([38d109b](38d109b))
- **ci:** address review findings on release-please migration
([a6dec29](a6dec29))
- **controller:** drop post-delete re-check that could strand a
terminating Component
([0366a34](0366a34))
- **controller:** guard the finalizer add with an optimistic lock
([4dbf867](4dbf867))
- **controller:** read the Component uncached before stripping the
finalizer
([f56ccc9](f56ccc9))
- **deps:** bump go-git to v5.19.2, fix OSV-Scanner findings
([7482013](7482013))
- **deps:** bump go-git to v5.19.2, fix OSV-Scanner on main
([#760](#760))
([b2783df](b2783df))
- **deps:** correct the openpgp importer list in the OSV ignore
([0759c3b](0759c3b))
- **deps:** keep crypto11 replace at v1.6.2 and tidy go.sum
([786d860](786d860))
- **deps:** migrate cenkalti/backoff imports from v5 to v7
([7b9ecdc](7b9ecdc))
- **deps:** point crypto11 replace at renamed eclipse-keypont module
([149f778](149f778))
- **deps:** resolve new CVEs flagged by osv-scanner
([#675](#675))
([c7334a5](c7334a5))
- **deps:** update dependencies (minor)
([26698c0](26698c0))
- **deps:** update dependencies (patch & digest)
([#663](#663))
([f4339d7](f4339d7))
- **deps:** update dependencies (patch & digest)
([#698](#698))
([29fc135](29fc135))
- **deps:** update go version in remaining places
([748b48f](748b48f))
- **deps:** update go-overlay to provide go 1.26.5
([e10b8af](e10b8af))
- **deps:** update go-overlay to provide go 1.26.6
([2c33ecc](2c33ecc))
- **deps:** update golang builder image to 1.26.6
([66a0e2a](66a0e2a))
- **deps:** update kubernetes dependencies
([#682](#682))
([aefbd19](aefbd19))
- **deps:** update kubernetes dependencies
([#728](#728))
([c16821b](c16821b))
- **deps:** update kubernetes dependencies to v0.36.4
([#772](#772))
([19448a6](19448a6))
- **deps:** update module github.com/cenkalti/backoff/v5 to v7
([#671](#671))
([6518ca3](6518ca3))
- **deps:** update module github.com/cenkalti/backoff/v5 to v7
([#674](#674))
([09777c6](09777c6))
- **deps:** update module github.com/cenkalti/backoff/v5 to v7
([#716](#716))
([6d464e2](6d464e2))
- **deps:** update module helm.sh/helm/v4 to v4.2.4
([#750](#750))
([2f5476a](2f5476a))
- **deps:** update module oras.land/oras-go/v2 to v2.6.2 [security]
([#696](#696))
([6b52133](6b52133))
- **dev:** deploy solar-discovery in scan mode so dev-cluster populates
the catalog
([eae09f2](eae09f2))
- **dev:** fail setup-discovery when the port-forward never becomes
ready
([626e436](626e436))
- **dev:** make dev-cluster reliably populate the catalog
([#731](#731))
([0af9386](0af9386))
- **dev:** use the ca-trusting ocmconfig and trap-clean the port-forward
in setup-discovery
([9ff18b6](9ff18b6))
- **discovery:** use errors.Is for http.ErrServerClosed check
([#693](#693))
([be17b8f](be17b8f))
- **discovery:** use strings.Cut to strip digest algorithm prefix
([#694](#694))
([1bf1856](1bf1856))
- document reference
([629555a](629555a))
- dont create renderbinding if renderartifact is terminating
([7168331](7168331))
- e2e test regression introduced with discovery api watch
([#727](#727))
([fa95810](fa95810))
- handle insecure deploy registry for bootstrap chart
([#660](#660))
([fb8de30](fb8de30))
- ignore terminating renderartifacts
([0cfc2fe](0cfc2fe)),
closes
[#619](#619)
- improve handling of terminating renderartifacts
([#730](#730))
([0570216](0570216))
- only run e2e test with the ok-to-e2e label
([391a2c2](391a2c2))
- registry resources
([#700](#700))
([756528e](756528e))
- remove orphaned devenv.nix file
([#705](#705))
([7dc25ca](7dc25ca))
- restructured renderartifact and -binding to solve a known problem
([#724](#724))
([c68104f](c68104f))
- retain deleting renderartifacts when they are still referenced by a
binding
([3603545](3603545))
- rstructured renderartifact and -binding to solve the bug
([c41158a](c41158a))
- tightened security around reference grants for RenderArtifacts, minor
fixes
([bc8c5d7](bc8c5d7))
- **ui:** derive ui-e2e backend URLs from UI_DEV_PORT and tighten auth
tests
([0982234](0982234))
- use local dir for dex certs
([#638](#638))
([8f875c8](8f875c8))

### Miscellaneous Chores

- add missing entries to the path filter of GitHub actions
([#670](#670))
([101e4c0](101e4c0))
- **deps:** update actions/cache action to v6
([#692](#692))
([23dd707](23dd707))
- **deps:** update actions/setup-go action to v7
([#721](#721))
([51c1fd5](51c1fd5))
- **deps:** update actions/setup-python action to v7
([#719](#719))
([76bc61e](76bc61e))
- **deps:** update dependencies (patch & digest)
([#683](#683))
([17728f1](17728f1))
- **deps:** update dependencies (patch & digest)
([#749](#749))
([62e20bf](62e20bf))
- **deps:** update dependencies (patch & digest)
([#771](#771))
([9afef5e](9afef5e))
- **deps:** update dependency @testing-library/jest-dom to v7
([#725](#725))
([b411a26](b411a26))
- **deps:** update dependency go to v1.26.5
([2bf738b](2bf738b))
- **deps:** update dependency go to v1.26.6
([63397b8](63397b8))
- **deps:** update dependency jsdom to v30
([#735](#735))
([2be1ea1](2be1ea1))
- **deps:** update dependency pillow to v12.3.0 [security]
([#699](#699))
([d658e68](d658e68))
- **deps:** update dependency typescript to v7
([#691](#691))
([349cd5f](349cd5f))
- **deps:** update golang version sync to v1.26.5
([#697](#697))
([422b1d4](422b1d4))
- **deps:** update golang:1.26.4 docker digest to 32c0e6e
([#662](#662))
([2833f64](2833f64))
- **deps:** update golang:1.26.4 docker digest to f96cc55
([e1ced04](e1ced04))
- **deps:** update golang:1.26.5 docker digest to 2005724
([#740](#740))
([a087073](a087073))
- **deps:** update golang:1.26.5 docker digest to 3aff665
([#712](#712))
([afe9193](afe9193))
- **dev:** drop the unused OCM vars from dev-cluster.sh
([#737](#737))
([875449e](875449e))
- fix issues surfaced by PR review
([4120973](4120973))
- fix target release view
([e347937](e347937))
- fixes and improvements after pr review
([43e0f6a](43e0f6a))
- improve CI docker caching
([#633](#633))
([213f23c](213f23c))
- improved accessability
([2dacb25](2dacb25))
- make codegen
([355611d](355611d))
- minor updates after PR review
([f2c8463](f2c8463))
- renamed make targets
([a6a901d](a6a901d))
- split up unit and integration tests, added tests
([#684](#684))
([1aca0e4](1aca0e4))
- trust-scope docker layer cache, tidy Dockerfile mounts
([17dac28](17dac28))
- **ui:** tidy up after the Zitadel integration
([2ac8011](2ac8011))
- update dev-kit and configure improved branch-protection
([#738](#738))
([132ab55](132ab55))
- update flake and remove kind version workaround
([#732](#732))
([ec91fc2](ec91fc2))


---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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.

4 participants