v0.11.0
This release contains breaking changes. You must wipe any preexisting etcd data before trying to use v0.11!
Changes since v0.10.0
⚠️ Breaking Changes
- Move Workspace.Status.{Cluster, URL} to Spec (#2557)
- replace kcp.dev by kcp.io (#2523)
- ClusterWorkspace => LogicalCluster refactor (#2510)
✨ New Features
- Provide access to physical cluster pod definitions from upstream KCP, relying on upsyncing (#2805)
- cache: add a synthetic delay to the cache server (#2742)
- Add Upsync controller (#2214)
- Adding DNS network policies (#2423)
- Partitionset reconciliation (#2513)
- Add pods resource to the default Kubernetes APIExport (#2417)
- Support for pod logs and other subresources (#2401)
- enable shard scheduling and fix e2e tests (#2596)
- Make apigen a standalone go module (#2669)
- Add conversions + CEL transformations for APIResourceSchemas (#2105)
- Admission for APIExportEndpointSlice (#2560)
- Install Calico in kind for CI testing (#2431)
- Partition reconciliation (#2469)
- wire more controllers cross-shard and authz (#2562)
- DRY committer factory functions (#2590)
- Refactor Syncer based on the enhanced ddsif, with controller manager and endpoints controller (#2452)
- Synctarget: Have URLs for both syncer and upsyncer (#2570)
- server: wire cache informers instead of root informers (#2559)
- Allow home workspaces to be accessed via
user:<username>
(#2547) - APIExportEndpointSlice reconciliation (#2432)
- Use distroless/static:debug as base image (#2512)
🐛 Bug Fixes
- Fix nil pointer error in the Upsyncer reconcile (#2822)
- cli: honor expanded
~
in kcp ws (#2816) - Fix location cannot be found by placement during scheduling (#2784)
- Only validate the path component of a fully-qualified
APIExport
ref (#2809) - Prevent gc/quota workqueue backlogs (#2764)
- Fix multiple CRDs/workspaces/versions (#2751)
- bind compute: handle placement already exists correctly (#2779)
- Bump github.com/emicklei/go-restful from 2.9.5+incompatible to 2.16.0+incompatible in /cmd/apigen (#2777)
- Enqueue location upon synctarget update (#2624)
- tmc e2e: fix Syncer virtual workspace e2e test flakes (#2767)
- pkg/tunneler: remove non-error verbose log (#2766)
- Fix TMC flake in the Upsyncer VW e2e test (#2765)
- Fix make install doesn't exit without required tools (#2760)
- test/e2e/scheduling: don't require kind for upsynced test (#2761)
- E2E failing on APIExportEndpointSlice creation (flake) (#2755)
- workload/resource: handle upsynced resources (#2533)
- Fix frontmatter on replicating new resource doc (#2752)
- Drop non-existent workspace get command from help output (#2731)
- cmd/sharded-test-server: Reuse Certificates instead of generating new ones (#2746)
- Show workspace name in kubectl kcp ws tree (#2719)
- Fix API binding privilege escalation (#2695)
- Fix Makefile clean target and add .kcp cleanup (#2712)
- Deflake quota e2e (#2688)
- Fix typo breaking codegen: crds not stored at the right location (#2724)
- Fix gap in APIExport virtual workspace queues (#2720)
- Do not look up APIExports in the generic webhook (#2690)
- test/e2e: remove a data race (#2694)
- Deflake TestSpecSyncerProcess (#2684)
- *: update listers to have correct NotFound messages (#2683)
- Use status.phase as printer column on workspaces and logical clusters (#2680)
- Add a kcp RequestInfoResolver (#2677)
- server: revert non-standalone VW URL (#2667)
- Use APIExport cluster names within webhooks (#2637)
- controller: use the global informer to get Shards (#2660)
- e2e: temporarily schedule all workspaces on the root shard for tmc-related tests (#2651)
- server: relax ShardVirtualWorkspace flag validation (#2659)
- add support for standalone virtualworkspace server (#2407)
- e2e/conversion: wrap create in eventually (#2644)
- reconciler/apiexport: use the gloabl informer to get Shards (#2641)
- e2e/reconciler/workspace: use cluster client (#2639)
- e2e/watchcache: use cluster client for creating content in a workspace (#2632)
- pkg/reconciler/apis/apibinding: return error in case of conflicts (#2645)
- pkg/server: ensure that home workspace handler gets authz with audit … (#2628)
- Add bind permission for kubernetes apiexport (#2618)
- Role and ClusterRole merger should not modify cache objects (#2604)
- IndexByLogicalClusterPathAndName should return clusterpath and name (#2606)
- cache: stop reporting an error from a CRD lister on incorrect cluster name (#2592)
- e2e: PrivateKcpServer enable audit-policy (#2591)
- committer: fix equality check in statusless committer (#2602)
- reconciler/cache: remove reflection and fix replicate+NotFound logic (#2594)
- WorkspaceType admission should respect LimitAllow{Parents, Children}.None (#2588)
- Fix APIExport virtual workspace API bug (#2564)
- workspace controller: use loopback client for local shard (#2554)
- cel-go: update to pull in data race fix (#2549)
- Docker build/push should not use a matrix (#2544)
- Add missing CGO_ENABLED flag in the install makefile target (#2540)
- Increase CRD cleanup requeue delay; remove e2e test (#2541)
- kcp: fix waitForOptionalSync method to wait for a proper signal (#2536)
- pkg/authorization: prevent double audit logs (#2511)
- pkg/softimpersonation: deep copy rest config (#2509)
- Fix and add test to capture a race w/ partial metadata in cache (#2505)
- docs: mkdir before moving (#2503)
- Fix parsing of requests to root path of a workload cluster (#2405)
🌱 Others
- Remove direct klog usage (#2842)
- Add --labels to kubectl kcp workload sync (#2815)
- docs: actually add main.py module to git (#2825)
- Make DirectOrGoRunCommand aware of the deployment-coordinator being moved to tmc/cmd (#2814)
- server: split apart first tmc pieces (#2795)
- workspace_reconcile_scheduling: allow for skipping a shard with a special annotation during scheduling (#2782)
- test/e2e,cmd/test: scrape metrics for test servers and e2e tests (#2774)
- docs: document the process (#2808)
- fix broken documentation links (#2806)
- More mkdocs updates (#2798)
- docs: fix mike config file path (#2793)
- docs: fix pip install (#2792)
- docs: fix Makefile, pip install (#2791)
- more docs CI changes (#2790)
- Make syncer vw global (#2744)
- syncer vw: add API definition logging (#2780)
- build(deps): bump docker/build-push-action from 3 to 4 (#2715)
- build(deps): bump actions/cache from 3.2.4 to 3.2.5 (#2778)
- manifest: remove outdated manifests (#2716)
- Fix git in Prow (#2769)
- /pkg/proxy/server: handle /readyz and /livez outside of the auth chain (#2747)
- tmc e2e : Split SyncerFixture (#2730)
- Small improvements to dev workflow (#2753)
- Use a private kcp per disruptive replication test (#2745)
- Add make target to download e2e logs from Prow (#2734)
- Dockerfile: remove SHELL for OCI compliance (#2728)
- Enable virtual workspace server audit logging (#2733)
- Fix ready-to-test location (#2736)
- More APIExport VW e2e deflaking (#2735)
- test/e2e: DRY up waiting on conditions (#2703)
- remove deprecated home workspaces fields, add waiting for unmanaged servers in e2e (#2707)
- Trying to fix doc generation (#2717)
- tests: gather metrics (#2705)
- build(deps): bump actions/cache from 3.2.3 to 3.2.4 (#2704)
- End-to-end tests for APIExportEndpointSlice (#2608)
- correctly log unstructured group/resource with k8s reflector (#2701)
- reconcilers/workspace: add logging to outgoing client calls (#2698)
- pkg/authorization: enable audit logging for SAR requests (#2678)
- logicalcluster_deletion_controller uses committer (#2661)
- test/e2e: add support for dynamic users using client certs (#2640)
- clusterworkspacetype_controller uses committer. (#2674)
- Remove trailing parentheses in ASCII diagram link (#2670)
- bootstrap_controller uses committer (#2653)
- Bump actions/cache from 3.0.11 to 3.2.3 (#2567)
- build(deps): bump uraimo/run-on-arch-action from 2.3.0 to 2.5.0 (#2531)
- placement_controller uses committer (#2648)
- extraannotationsync: use function pointers (#2646)
- location_controller uses committer (#2638)
- permissionclaimlabel_controller uses committer (#2636)
- Admission cleanup (#2629)
- run replication tests on a shared kcp instance (#2620)
- test/e2e/virtual/apiexport: make authorizer test self-contained (#2611)
- Enable KUBE_CACHE_MUTATION_DETECTOR in e2e tests (#2605)
- e2e: TestAuditLogs remove duplicate audit-log-path (#2610)
- reconciler/cache/reconciler: simplify and generalize (#2609)
- remove tenancy v1beta1 (#2595)
- resource controller: log each gvr by itself instead of accumulating (#2600)
- Use caching authorizers per-workspace in initializingworkspaces/builder (#2477)
- Stop checking PR descriptions in CI (#2599)
- clean up workspace e2e fixtures (#2586)
- Update logcheck to 0.4.0 (#2587)
- *: update to some structured, contextual logging (#2576)
- cache: add replication tests for WorkspaceType resource (#2578)
- verify-contextual-logging should diff from old to new (#2577)
- Rename ClusterWorkspace (#2569)
- apiexport: strongly type enqueue params (#2575)
- Add e2e DNS tests (#2542)
- vw/apiexport: strongly type enqueue params (#2574)
- crdcleanup: strongly type enqueue params (#2573)
- *: remove tenancy.kcp.dev/v1alpha1.ClusterWorkspace (#2543)
- index controller rename (#2561)
- add missing unit tests for the index (#2565)
- cluster workspace rename (#2558)
- Switch cel-go to upstream v0.12.6 (#2556)
- Debug deployment coordinator e2e (#2555)
- Update golangci-lint 1.50.1, add more linters (#2480)
- Cross-compile container image binaries from host platform (#2551)
- add missing unit tests for the pathannotation admission plugin (#2535)
- follow-ups of workspace refactor (#2553)
- Add authorizer test for static endpoints (#2487)
- Skip upsynced resources in resource scheduling (#2545)
- Scope APIBinding logger (#2546)
- DDSIF: Make it more generally useful (#2440)
- Update .goreleaser.yaml to build binaries with CGO_ENABLED=0 (#2508)
- :*: use 'logicalCluster' instead of 'this' (#2524)
- Use buildx to build KCP images (#2528)
- test/e2e: remove MultiClusterRoundTripper (#2522)
- *: s/SystemBoundCRDSClusterName/SystemBoundCRDsClusterName/g (#2521)
- Add indexers.ByPathAndName helper (#2516)
- Use deletion handling keyfunc where needed (#2519)
- logicalcluster deletion: switch to .Cluster() (#2520)
- Deflake apibinding immutability test (#2515)
- sharded-test-server: add quiet support to front-proxy (#2514)
- Correct the typo in an error message (#2506)
- Add test for shallow copy and make partial metadata CRD (#2497)
- build(deps): bump goreleaser/goreleaser-action from 3 to 4 (#2483)
- goreleaser: distinguish tags and PRs (#2495)
- Test goreleaser changes in CI (#2492)
- Add github action concurrency based on workflow-ref (#2488)
📖 Additionally, there have been 15 contributions to our documentation and book. (#2799, #2828, #2823, #2801, #2796, #2788, #2768, #2702, #2722, #2749, #2725, #2673, #2708, #2580, #2499)
Thanks to all our contributors! 😊