Milestone Blocker Epics
- #280 Deploy an Application: SA Kubeconfigs point to KCP
- #759 Code-generate scoping wrappers for arbitrary k8s.io/code-generator generated clients and informers
- #846 APIBindings: delete CRs when the APIBinding is deleted
- #912 Multi-Release-Epic: Consume Compute via Transparent Multi Cluster set up in a different workspace
- #914 Advanced Scheduling
- #981 Multi-Release-Epic: multi-workspace controller development
- #1013 Add Authorizer that let's APIExport owner restrict what a user can do with objects of an APIBinding
What's Changed
- reconciler/scheduling/location: add missing index by @sttts in #970
- Remove WorkloadClusterSpec.Kubeconfig by @itdove in #974
- build(deps): bump actions/checkout from 2 to 3 by @dependabot in #962
- build(deps): bump actions/upload-artifact from 2 to 3 by @dependabot in #963
- build(deps): bump actions/setup-go from 2 to 3 by @dependabot in #964
- Towards more stable syncer by @ncdc in #955
- Default to -v=2 by @ncdc in #979
- reconciler/workload/scheduling: remove wrong resource enqueuing avoiding optimization by @sttts in #978
- bump(kube): 902041f0e10a by @ncdc in #986
- Make 'kubectl kcp workload sync' idempotent by @itdove in #975
- Stop dynamic informers when their APIs go away + a couple of ns controller fixes by @ncdc in #987
- Don't log when systemCRDProvider can't find ws by @ncdc in #991
- Fix workspace deletion e2e flake by @qiujian16 in #989
- Front proxy: set sane transport defaults and enable http2 to backends by @csams in #993
- ci: update to actions/upload-artifact@v3 by @sttts in #965
- docs/auth: document authorization by @s-urbaniak in #627
- docs/authorization.md: typo fix by @sttts in #995
- Advanced scheduling by @jmprusi in #942
- Revert "ci: update to actions/upload-artifact@v3" by @sttts in #1001
- Remove kube imports in staging by @ncdc in #1000
- Handle logical cluster move to kcp-dev/logicalcluster by @fabianvf in #1002
- cleanup ClusterRoleBinding on failed workspace creation by @geoberle in #1010
- Add front proxy by @kylape in #973
- Forbid kcp.dev CRD groups outside system:system-crds by @robinbobbitt in #1006
- Follow-ups of namespace scheduler fixing by @sttts in #997
- Fetch external hostname from kcp-front-proxy route. by @csams in #1014
- syncer: refactor into two normal controllers by @sttts in #1011
- Generate openapiv2 code for all KCP APIs by @davidfestal in #1023
- image: Add entrypoint to container image by @micahhausler in #1020
- Add helpers in
CommonAPIResourceSpec
by @davidfestal in #1024 - Prepare for other types of virtuall workspaces by @davidfestal in #1025
- Allow several virtual workspace commands by @davidfestal in #1027
- admission: complain about the type of the correct object by @stevekuznetsov in #1029
- ci: ensure no k8s.io modules are imported from outside of the fork by @stevekuznetsov in #1031
- reconcilers/workload: shut down controllers correctly by @sttts in #1034
- server: initialize logs early to avoid races by @sttts in #1036
- virtual: add ForwardingRegistry by @sttts in #1037
- Dynamic Virtual workspace implementation by @davidfestal in #1039
- reconciler/scheduling: fix tombstone handling on delete by @sttts in #1049
- authorization: nits by @stevekuznetsov in #1047
- Misc pre-754 changes by @sttts in #1053
- Syncer virtual workspace by @davidfestal in #754
- virtual: fix some GoDoc by @stevekuznetsov in #1048
- dynamic-informer: stop informers when context is done by @sttts in #1054
- Update Syncer VSCode launch configuration by @davidfestal in #1068
- virtual/syncer: add documentation to the URL parsing by @stevekuznetsov in #1075
- virtual: expand APIDefinitionSetGetter by @stevekuznetsov in #1076
- add kcp workload cordon/uncordon/drain by @chrisahl in #1005
- Use private gitops repo to deploy from main by @kylape in #928
- e2e test transparent SA rewrite in downstream deployment by @geoberle in #1044
- Adds virtualworkspaceurls-controller by @jmprusi in #1018
- Add the WorkloadCluster name to the current context in the syncer virtual workspace by @davidfestal in #1065
- ci: Config author for commit to gitops repo by @kylape in #1079
- Avoid trying to sync namespaces as namespaced resources. by @davidfestal in #1091
- admission: make api binding mutating admission work by @stevekuznetsov in #1080
- test/e2e: quiet down spammy log messages by @stevekuznetsov in #1093
- apibinding: remove initializers by @stevekuznetsov in #1095
- pkg/server: add workspace annotation by @ibihim in #1042
- add initial revision of FAQ by @pweil- in #1045
- test/e2e: quiet down more spam by @stevekuznetsov in #1094
- Fix make test-e2e WHAT so that it works by using WHAT-TESTS by @chrisahl in #1099
- virtual: factor label selector injection out by @stevekuznetsov in #1055
- Add break when cluster found by @itdove in #1106
- virtual: expose fields in internal api struct by @stevekuznetsov in #1107
- admission: add a mutating webhook for clusterworkspaces by @stevekuznetsov in #1081
- Apply audit config to server by @kylape in #1109
- Wire syncer to the virtual workspace by @davidfestal in #1067
- test: stop using require.Equal for composite objects by @stevekuznetsov in #1102
- Deflake namespace reconciler e2e by @ncdc in #1114
- ci: Wrap commit ID in quotes by @kylape in #1115
- Bump kcp-dev/kubernetes dependency by @fabianvf in #1112
- Support APIExport identity in the Syncer virtual workspace by @davidfestal in #1111
- Sync from multiple workspaces by @davidfestal in #927
- Split workloads/namespace controller in namespace and resources controllers by @sttts in #1108
- Makefile: fix WHAT for test-e2e by @sttts in #1117
- reconciler/workloads/apiexport: fix missing byWorkspace index for exports by @sttts in #1118
- e2e: print failing server log with newlines by @sttts in #1120
- apis/workloads: move scheduling labels here by @sttts in #1119
- reconciler/workloads/apiexport: don't stomp all APIExport, but only those named 'kubernetes' by @sttts in #1121
- forbid resource creation when APIBinding is deleting by @qiujian16 in #1043
- Delete custom resources when apibinding is deleted by @qiujian16 in #1040
- Don't sync ServiceAccounts by default by @jmprusi in #1123
- Fix typo in goals.md by @pavolloffay in #1122
- api: Enables the binding of APIs in protected groups by @astefanutti in #1104
- hack: Remove conflicting bash flag by @rgolangh in #1126
- virtualworkspace: inspect available verbs from storage by @stevekuznetsov in #1101
- hack: check for missing parameters correctly by @stevekuznetsov in #1128
- virtual: fix an error by @stevekuznetsov in #1129
- virtual: snip dependency on CRD storage builder by @stevekuznetsov in #1110
- Makefile: fix build-all target for GNU make by @sttts in #1131
- apiresourceimport: fix cache mutation by @ncdc in #1133
- Propagate api-approved.kubernetes.io annotation from pcluster upwards by @sttts in #1135
- Fix wildcard partial metadata list/watch requests by @ncdc in #1082
- e2e/virtual: remove disabled and outdated framework test by @sttts in #1136
- *: shorten initializer names by @stevekuznetsov in #1137
- Filter out workspaces type from workspace content deletor by @kylape in #1143
- reconciler/namespace: implement location API MVP by @sttts in #1084
- reconciler: clusterworkspace: enforce labels by @stevekuznetsov in #1140
- pkg/server: add audit annotation init by @ibihim in #1124
- remove getting cluster name from object meta by @shawn-hurley in #1146
- virtual: ignore requests without clusters/ suffix by @sttts in #1144
- e2e-shared-server: stop running 2x by @ncdc in #1147
- Adding apibinding authorizer to allow service bindings ability to limit access to exported resources by @shawn-hurley in #1078
- APIExport Virtual API Server by @sttts in #1132
- makefile: update things to be consistent & simple by @stevekuznetsov in #1148
- Recreate downstream resource by @itdove in #1046
- apis/bindings: allow absolute workspace references by @sttts in #1125
- tenancy: improve initializer label mechanism by @stevekuznetsov in #1152
- document kubebuilder validations by @stevekuznetsov in #1153
- virtual: fix internalapi APIResourceSchema version by @sttts in #1150
- virtual: update some names in a test for clarity by @stevekuznetsov in #1154
- make: use gotestsum for tests by @stevekuznetsov in #1156
- Better error when failing to create a sub workspace by @rgolangh in #1145
- Set APIExport.status.virtualWorkspaceURLs by @ncdc in #1155
- *: bootstrap some items for CI by @stevekuznetsov in #1160
- make: add a target for all of our tools by @stevekuznetsov in #1161
- e2e/virtual: use normal test args for standalone test by @sttts in #1162
- make: fix a copy-pasta error by @stevekuznetsov in #1164
- e2e/framework: set klog verbosity 2 by @sttts in #1166
- reconciler/clusterworkspace: fix cache mutation by @sttts in #1167
- makefile: update path to include output binaries by @stevekuznetsov in #1171
- virtual: add initializingworkspaces endpoint by @stevekuznetsov in #1141
- Add kubectl kcp crd snapshot command by @ncdc in #1009
- Do not use
context.WithValue
directly for the VirtualWorkspace name. by @davidfestal in #1179 - Rework virtual workspace root api server handler chain by @davidfestal in #1180
- e2e: fix kcp server shutdown/waiting by @ncdc in #1178
- Syncer: Deployment Mutator use the full secret name instead of a hardcoded one by @jmprusi in #1127
New Contributors
- @itdove made their first contribution in #974
- @fabianvf made their first contribution in #1002
- @robinbobbitt made their first contribution in #1006
- @micahhausler made their first contribution in #1020
- @chrisahl made their first contribution in #1005
- @ibihim made their first contribution in #1042
- @pweil- made their first contribution in #1045
- @pavolloffay made their first contribution in #1122
- @rgolangh made their first contribution in #1126
Full Changelog: v0.4.0-alpha.0...v0.5.0-alpha.1