40 Commits
Author SHA1 Message Date
Roke JungandCursor 3da28e4bf7 🐛 fix(placement): correct debug permission checks and reject bad methods (#1623)
Map GET/POST debug requests to get/create SAR verbs and return 403 on
denial. Reject unsupported HTTP methods with 405 instead of treating
them as GET. Update the GET RBAC integration test Role to grant get.

Also free unused disk on e2e runners before image builds to reduce
"no space left on device" flakes.

Fixes open-cluster-management-io/ocm#1622

Signed-off-by: Roke Jung <roke@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 07:27:40 +00:00
Roke JungandCursor 09ddee7b8f 🐛 fix(placement): return correct HTTP status codes from debug endpoint (#1593)
PlacementDebugServer previously returned HTTP 200 for all error responses
because reportErr never called WriteHeader. Classify errors as 400/401/403/404/500,
reject incomplete debug paths without a namespace, and add unit test coverage
for all reachable reportErr paths.

Fixes open-cluster-management-io/ocm#1592

Signed-off-by: Roke Jung <roke@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 02:41:47 +00:00
Tesshu Flower 3fc97b0c98 🌱 chore: upgrade to go 1.26 (#1571)
* chore: upgrade to go 1.26

Upgrades Go version from 1.25 to 1.26.

Changes:
- go.mod — go directive updated to 1.26.0
- .github/workflows/*.yml — GO_VERSION updated to 1.26 (5 workflows)
- build/Dockerfile.* — base image updated to golang:1.26-bookworm (5 Dockerfiles)
- pkg/placement/controllers/scheduling/scheduling_controller.go — fix
  pre-existing printf format mismatch (%q -> %d for int args) surfaced
  by stricter Go 1.26 linter

Relates to: https://github.com/open-cluster-management-io/ocm/issues/1555

Signed-off-by: Tesshu Flower <tflower@redhat.com>

* fix: pin engineerd/setup-kind to working commit SHA

Pin engineerd/setup-kind to commit SHA ecfad61750951586a9ef973db567df1d28671bdc
which is the tip of the v0.6.2 branch and includes the required dist/
build artifact. The v0.6.2 tag currently resolves to a different commit
that is missing dist/main/index.js, causing e2e CI to fail.

Signed-off-by: Tesshu Flower <tflower@redhat.com>

---------

Signed-off-by: Tesshu Flower <tflower@redhat.com>
2026-06-15 01:30:48 +00:00
Qing HaoandClaude Sonnet 4.5 391ae86bff split debug controller as standalone service with proper validation (#1461)
* feat(placement): split debug controller as standalone service with proper validation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Qing Hao <qhao@redhat.com>

* feat(placement): make placement service conditional on PlacementDebugServer feature gate

Make placement debug service deployment conditional based on
PlacementDebugServer feature gate to allow users to control
whether to expose the debug endpoint.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: Qing Hao <qhao@redhat.com>

---------

Signed-off-by: Qing Hao <qhao@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-04-03 02:40:24 +00:00
Qing HaoandClaude Sonnet 4.5 7f4d432638 improve event recording logic and test maintainability (#1376)
🤖 Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: Qing Hao <qhao@redhat.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 02:15:46 +00:00
Qing HaoandClaude c516beffa6 Add addon conversion webhook for v1alpha1/v1beta1 API migration (#1289)
Post / images (amd64, addon-manager) (push) Failing after 46s
Post / images (amd64, placement) (push) Failing after 41s
Post / images (amd64, registration-operator) (push) Failing after 39s
Post / images (amd64, work) (push) Failing after 42s
Post / images (arm64, addon-manager) (push) Failing after 39s
Post / images (arm64, placement) (push) Failing after 39s
Post / images (arm64, registration) (push) Failing after 40s
Post / images (arm64, registration-operator) (push) Failing after 42s
Post / images (arm64, work) (push) Failing after 39s
Post / images (amd64, registration) (push) Failing after 7m46s
Post / image manifest (addon-manager) (push) Has been skipped
Post / image manifest (placement) (push) Has been skipped
Post / image manifest (registration) (push) Has been skipped
Post / image manifest (registration-operator) (push) Has been skipped
Post / image manifest (work) (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Post / coverage (push) Failing after 14m33s
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m25s
Close stale issues and PRs / stale (push) Successful in 46s
* Add addon conversion webhook for v1alpha1/v1beta1 API migration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Qing Hao <qhao@redhat.com>

* Fix GroupVersion compatibility issues after API dependency update

This commit fixes compilation and test errors introduced by updating
the API dependency to use native conversion functions from PR #411.

Changes include:

1. Fix GroupVersion type mismatches across the codebase:
   - Updated OwnerReference creation to use schema.GroupVersion
   - Fixed webhook scheme registration to use proper GroupVersion type
   - Applied fixes to addon, placement, migration, work, and registration controllers

2. Enhance addon conversion webhook:
   - Use native API conversion functions from addon/v1beta1/conversion.go
   - Fix InstallNamespace annotation key to match expected format
   - Add custom logic to populate deprecated ConfigReferent field in ConfigReferences
   - Properly preserve annotations during v1alpha1 <-> v1beta1 conversion

3. Remove duplicate conversion code:
   - Deleted pkg/addon/webhook/conversion/ directory (~500 lines)
   - Now using native conversion functions from the API repository

4. Patch vendored addon-framework:
   - Fixed GroupVersion errors in agentdeploy utils

All unit tests pass successfully (97 packages, 0 failures).

Signed-off-by: Qing Hao <qhao@redhat.com>

---------

Signed-off-by: Qing Hao <qhao@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-24 08:26:35 +00:00
Jian Qiu 99265f6113 Refactor to contextual logging (#1283)
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m25s
Post / coverage (push) Failing after 36m59s
Post / images (amd64, addon-manager) (push) Failing after 7m34s
Post / images (amd64, placement) (push) Failing after 7m4s
Post / images (amd64, registration) (push) Failing after 7m8s
Post / images (amd64, registration-operator) (push) Failing after 7m3s
Post / images (amd64, work) (push) Failing after 6m59s
Post / images (arm64, addon-manager) (push) Failing after 7m0s
Post / images (arm64, placement) (push) Failing after 6m54s
Post / images (arm64, registration) (push) Failing after 6m55s
Post / images (arm64, registration-operator) (push) Failing after 6m55s
Post / images (arm64, work) (push) Failing after 7m16s
Post / image manifest (addon-manager) (push) Has been skipped
Post / image manifest (placement) (push) Has been skipped
Post / image manifest (registration) (push) Has been skipped
Post / image manifest (registration-operator) (push) Has been skipped
Post / image manifest (work) (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2025-12-08 08:14:30 +00:00
Jian Qiu 33310619d9 🌱 use SDK basecontroller for better logging. (#1269)
* Use basecontroller in sdk-go instead for better logging

Signed-off-by: Jian Qiu <jqiu@redhat.com>

* Rename to fakeSyncContext

Signed-off-by: Jian Qiu <jqiu@redhat.com>

---------

Signed-off-by: Jian Qiu <jqiu@redhat.com>
2025-12-01 03:07:02 +00:00
Jian Qiu eb033993c2 🌱 Use base controller in sdk-go (#1251)
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m11s
Post / coverage (push) Failing after 37m30s
Post / images (amd64, addon-manager) (push) Failing after 7m29s
Post / images (amd64, placement) (push) Failing after 6m57s
Post / images (amd64, registration) (push) Failing after 7m5s
Post / images (amd64, registration-operator) (push) Failing after 7m5s
Post / images (amd64, work) (push) Failing after 7m2s
Post / images (arm64, addon-manager) (push) Failing after 7m18s
Post / images (arm64, placement) (push) Failing after 7m7s
Post / images (arm64, registration) (push) Failing after 7m13s
Post / images (arm64, registration-operator) (push) Failing after 7m6s
Post / images (arm64, work) (push) Failing after 7m2s
Post / image manifest (addon-manager) (push) Has been skipped
Post / image manifest (placement) (push) Has been skipped
Post / image manifest (registration) (push) Has been skipped
Post / image manifest (registration-operator) (push) Has been skipped
Post / image manifest (work) (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Close stale issues and PRs / stale (push) Successful in 45s
* Use base controller in sdk-go

We can leverage contextual logger in base controller.

Signed-off-by: Jian Qiu <jqiu@redhat.com>

* Fix integration test error

Signed-off-by: Jian Qiu <jqiu@redhat.com>

---------

Signed-off-by: Jian Qiu <jqiu@redhat.com>
2025-11-20 07:53:42 +00:00
Ben Perry f13599ffdb Refactor common CEL eval functions into shared pkg (#1003)
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m10s
Post / coverage (push) Failing after 30m9s
Post / images (amd64) (push) Failing after 3m38s
Post / images (arm64) (push) Failing after 2m50s
Post / image manifest (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Close stale issues and PRs / stale (push) Successful in 35s
Signed-off-by: Ben Perry <bhperry94@gmail.com>
2025-05-26 14:36:04 +00:00
Qing Hao 67f0db9311 remove cel from placement decision group (#981)
Signed-off-by: Qing Hao <qhao@redhat.com>
2025-05-06 12:35:15 +00:00
Qing Hao df87f528d7 add cost budget, runtime cost estimator and metrics (#964)
Post / images (amd64) (push) Failing after 6m56s
Post / images (arm64) (push) Failing after 6m41s
Post / image manifest (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Post / coverage (push) Failing after 27m27s
Scorecard supply-chain security / Scorecard analysis (push) Failing after 4m7s
Close stale issues and PRs / stale (push) Successful in 34s
Signed-off-by: Qing Hao <qhao@redhat.com>
2025-04-30 08:15:22 +00:00
Qing Hao f4b6dcb159 select clusters with cel selector (#693)
Post / images (amd64) (push) Failing after 3m11s
Post / coverage (push) Failing after 8m5s
Post / images (arm64) (push) Failing after 3m27s
Post / image manifest (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Close stale issues and PRs / stale (push) Successful in 7s
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m34s
Signed-off-by: Qing Hao <qhao@redhat.com>
2025-04-22 15:00:56 +00:00
Ankit Kurmi cd8827572e feat: updated golang to v1.23.6 and related k8s.io packages (#870)
Signed-off-by: Ankit152 <ankitkurmi152@gmail.com>
2025-04-09 07:46:27 +00:00
Jian Qiu 241a3eaaa3 Reduce client scope built from driver (#915)
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m1s
Post / coverage (push) Failing after 22m36s
Post / images (amd64) (push) Failing after 13m6s
Post / images (arm64) (push) Failing after 2m21s
Post / image manifest (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Close stale issues and PRs / stale (push) Successful in 13s
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2025-03-27 09:44:13 +00:00
Jian Qiu 2582ad922d Update deps to 1.30 (#546)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2024-07-02 14:04:15 +00:00
Jian Zhu 468fdc0476 Exclude terminating clusters from Placementdecision (#480)
Signed-off-by: zhujian <jiazhu@redhat.com>
2024-05-29 01:45:08 +00:00
Jian Zhu c749b42ca0 Send available condition events for managed cluster (#450)
* Send available condition events for managed cluster

Signed-off-by: zhujian <jiazhu@redhat.com>

* Send available condition events for managed cluster

Signed-off-by: zhujian <jiazhu@redhat.com>

* Rename event reporting component

Signed-off-by: zhujian <jiazhu@redhat.com>

---------

Signed-off-by: zhujian <jiazhu@redhat.com>
2024-05-06 07:00:36 +00:00
Jian Qiu 1c3cb033b0 Bump ocm/api to v0.13.0 (#361)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2024-02-21 08:51:34 +00:00
Jian Qiu c04ab368de Bump api and addon-framework deps (#354)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2024-01-23 07:40:26 +00:00
Jian Qiu 6cfce8ce24 Revert apply func (#353)
this part dep on library-go so remove from
sdk-go

Signed-off-by: Jian Qiu <jqiu@redhat.com>
2024-01-22 03:46:46 +00:00
Jian Qiu bede3edd92 Switch to patcher in sdk-go (#349)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2024-01-22 02:04:49 +00:00
Jian Qiu 1d42f4285e Switch to sdk-go for helper functions (#346)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2024-01-17 14:28:54 +00:00
Qing Hao 2f4ff9f424 🌱 add metrics for placement (#297)
* add metrics for placement

Signed-off-by: haoqing0110 <qhao@redhat.com>

* record plugin metrics in schedule()

Signed-off-by: haoqing0110 <qhao@redhat.com>

* add plugin type

Signed-off-by: haoqing0110 <qhao@redhat.com>

---------

Signed-off-by: haoqing0110 <qhao@redhat.com>
2023-10-26 06:44:59 +00:00
Nitish Chauhan 36e389cc07 adding contextual logging in placement component (#254)
Signed-off-by: ntishchauhan0022 <nitishchauhan0022@gmail.com>
2023-08-24 21:19:17 -04:00
Qing Hao a2b3c6d54c revert placement decision start index from 1 to keep backward compatibility (#253)
Signed-off-by: haoqing0110 <qhao@redhat.com>
2023-08-23 03:45:27 -02:30
Jian Qiu 88f6f4dd17 Refactor code to start managers with shared informers (#232)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2023-08-21 00:03:58 -02:30
Qing Hao 4f3749970e fix the placement decision clusters have random order issue (#235)
Signed-off-by: haoqing0110 <qhao@redhat.com>
2023-07-27 03:00:42 +02:00
Jian Qiu e810520961 🌱 Refactor code to fix lint warning (#218)
* Refactor code to fix lint warning

Signed-off-by: Jian Qiu <jqiu@redhat.com>

* enable lint for testing files

Signed-off-by: Jian Qiu <jqiu@redhat.com>

---------

Signed-off-by: Jian Qiu <jqiu@redhat.com>
2023-07-25 07:12:34 +02:00
Qing Hao 5c03624912 divide pre-defined decision groups by length (#227)
Signed-off-by: haoqing0110 <qhao@redhat.com>
2023-07-21 10:34:21 +02:00
Qing Hao 66498342dd 🌱 placement support decision groups (#200)
* placement support decision groups

Signed-off-by: haoqing0110 <qhao@redhat.com>

* update decision generation flow

Signed-off-by: haoqing0110 <qhao@redhat.com>

* fix label update issue

Signed-off-by: haoqing0110 <qhao@redhat.com>

* update decision group logic

Signed-off-by: haoqing0110 <qhao@redhat.com>

* update placement and decision with patcher

Signed-off-by: haoqing0110 <qhao@redhat.com>

* modify code based on review comments

Signed-off-by: haoqing0110 <qhao@redhat.com>

---------

Signed-off-by: haoqing0110 <qhao@redhat.com>
2023-07-10 09:46:23 -04:00
Qing Hao de2b7d35be generalize cluster selector method (#204)
Signed-off-by: haoqing0110 <qhao@redhat.com>
2023-06-29 15:11:56 +02:00
Jian Qiu e4792e4b83 Refactor to use common queue/filter funcs (#197)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2023-06-28 15:59:19 +02:00
Jian Qiu db3b6fdb20 Add owner file for sub project (#182)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2023-06-13 05:21:07 -04:00
Jian Zhu d3d648283e 🌱 Configure the golangci lint (#180)
* 🌱 Configure the golangci lint

Signed-off-by: zhujian <jiazhu@redhat.com>

* 🌱 Fix lint issues

Signed-off-by: zhujian <jiazhu@redhat.com>

---------

Signed-off-by: zhujian <jiazhu@redhat.com>
2023-06-13 03:51:48 -04:00
Jian Zhu 7332a585c0 🌱 add a verify rule for golang files import order (#177)
* 🌱 add a verify rule for golang files import order

This PR uses the [gci tool](https://github.com/daixiang0/gci) to make all go files' import section with a specific order, it will organize import with group with order:
1. standard library modules
2. 3rd party modules
3. modules in OCM org, like the `open-cluster-management.io/api`
4. current project `open-cluster-management.io/ocm` modules

developers can use the `make fmt-imports` to format the import automatically and the `make verify-fmt-imports` to check for any violation.

Signed-off-by: zhujian <jiazhu@redhat.com>

* 🌱 format the go files import

Signed-off-by: zhujian <jiazhu@redhat.com>

---------

Signed-off-by: zhujian <jiazhu@redhat.com>
2023-06-12 10:23:04 -04:00
Chunlin Yang 6f21760b7e Bump k8s to v0.27.2 (#160)
upgrade to golang 1.20

Signed-off-by: clyang82 <chuyang@redhat.com>
2023-06-06 05:55:07 -04:00
Jian Qiu 72d87a2ea5 Refactor testing (#161)
* Move common testing fixture to a common location

Signed-off-by: Jian Qiu <jqiu@redhat.com>

* Add common pkg

Signed-off-by: Jian Qiu <jqiu@redhat.com>

---------

Signed-off-by: Jian Qiu <jqiu@redhat.com>
2023-06-04 22:47:08 -04:00
Jian Qiu 116ae8cc28 Refactor version/feature/cmd packages (#148)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
2023-05-30 02:07:32 -04:00
xuezhaojun ad38b9465f Relocate pkgs. (#146)
Signed-off-by: xuezhaojun <zxue@redhat.com>
2023-05-29 07:20:55 -04:00