• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

opendefensecloud / solution-arsenal / 38726163838
80%

Build:
DEFAULT BRANCH: main
Ran 15 Oct 2026 11:26AM UTC
Jobs 1
Files 95
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Oct 2026 11:16AM UTC coverage: 79.653% (+0.2%) from 79.423%
38726163838

push

github

web-flow
fix(ui): show a Target without ReleaseBindings as idle (#864)

## What

A Target with no ReleaseBindings shows as **Idle** in the UI instead of
Degraded.

- `targetRollupHealth` (`web/src/lib/utils.ts`) -> new `idle` result for
`ReleasesRendered=False (NoReleaseBindings)` with no `BootstrapReady`
- `health-badge.tsx`, `targets/detail.tsx` -> "Idle" label, same grey as
"Unknown"
- one line in `docs/developer-guide/target_controller.md`

Closes #823

## Why

"Nothing deployed yet" is not a broken cluster. The rollup returned
`degraded` on the first `False` it saw, so every freshly registered
Target looked broken, permanently.

UI-side only, as the issue suggests. The controller keeps its conditions
as they are, #817 showed that changing the polarity there has a bigger
blast radius than it looks.

The match is narrow on purpose. `AllReleaseBindingsFiltered`, `Pending`,
`MissingDependencies` and a failing leftover bootstrap all stay
degraded.

## Testing

Unit, new `web/src/lib/utils.test.ts`. The idle case failed first
(`expected 'degraded' to be 'idle'`), then:

```console
$ pnpm test
 Test Files  11 passed (11)
      Tests  36 passed (36)
$ pnpm exec tsc -b
```

Manual against a fresh `make ui-dev-cluster` (kind), Target from the
issue pointed at `zot-scan`:

```console
$ kubectl -n solar-system get target probe-nobind -o json | jq -r '.status.conditions[] | .type+"="+.status+" ("+.reason+")"'
RegistryResolved=True (Resolved)
ReleasesRendered=False (NoReleaseBindings)
ReleasesResolved=False (NoReleaseBindings)
```

## Notes for reviewers

A cross-namespace ReleaseBinding without a ReferenceGrant also surfaces
as `NoReleaseBindings` (`docs/user-guide/reference-grants.md:55`). That
Target now reads Idle where it used to read Degraded. The UI cant tell
the two apart, the controller reports the same reason for both. Fixing
that needs the `BindingsNotGranted` split from #817, out of scope here.

No API, CRD or RBAC changes.

## Checklist
- [x] Tests added/u... (continued)

5195 of 6522 relevant lines covered (79.65%)

36.08 hits per line

Coverage Regressions

Lines Coverage ∆ File
4
78.37
0.19% pkg/controller/target_controller.go
Jobs
ID Job ID Ran Files Coverage
1 38726163838.1 15 Oct 2026 11:26AM UTC 95
79.65
GitHub Action Run
Source Files on build 38726163838
  • Tree
  • List 95
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38726163838
  • 4e19cb0b on github
  • Prev Build on main (#38716292664)
  • Next Build on main (#38740734904)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc