v0.3.0-beta.1
Pre-release
Pre-release
What's Changed
- Implement root workspace and organization workspaces by @sttts in #508
- Add a label to deactivate automatic namespace scheduling by @astefanutti in #537
- e2e: Ensure cfg is written to temp dir for virtual workspace test by @marun in #585
- e2e: Remove scheduler dependency on controller patch method by @marun in #586
- Refactor namespace scheduler queueing behavior for testability by @marun in #587
- ci: don't run e2e & other tests for documentation-only PRs by @avinal in #589
- Rename namespace scheduler labels (kcp.dev -> workloads.kcp.dev) by @marun in #593
- Add epic template, update CONTRIBUTING by @ncdc in #594
- kube: back to upstream (dd0f1685f84) by @ncdc in #599
- Generators outside gopath by @ncdc in #533
- refactor: remove syncChecks in controllers by @ReToCode in #579
- Refactor namespace scheduler cluster assignment for testability by @marun in #559
- Add .github/ISSUE_TEMPLATE/* to paths to ignore for CI by @avinal in #603
- Refactor namespace scheduler status maintenance for testability by @marun in #592
- Add workspace invariant of valid baseURL by @sttts in #582
- Ensure consistent logging of resource names (
s+%q|%q/%q+%s|%s/%s+
) by @marun in #600 - e2e: Cleanup namespace scheduler e2e in light of unit-test additions by @marun in #598
- Rename the Cluster type and its group for clarity by @marun in #605
- admission: simplify informer sync in ClusterWorkspaceTypeExists by @sttts in #609
- admission: add SubjectAccessReview to ClusterWorkspaceType use by @sttts in #611
- Document ClusterWorkspaceType authz by @sttts in #612
- e2e: Fix broken workspacetype initializer test by @marun in #616
- README clarifications by @ncdc in #576
- admission: add ClusterWorkspaceType plugin to reserve organization type for root by @sttts in #608
- Set up deploy pipeline using Github Actions by @kylape in #483
- apis: add APIExport/Binding/ResourceSchema types by @sttts in #583
- clusterworkspace: admission: fix initializers check by @ncdc in #629
- Remove workloadclusters, apiresourceimports, negotiatedapiresources from root and org workspaces by @sttts in #619
- Rename workspaces to clusterworkspaces by @slaskawi in #639
- kubectl-kcp: add ws alias for workspace by @jbpratt in #637
- Adapt personal workspaces to orgs by @davidfestal in #613
- e2e: Enable use of persistent server fixture by @marun in #614
- config/organization: fix clusterrolebindings by @sttts in #646
- Increase V log level for resources the DynamicDiscoverySharedInformerFactory can't list+watch by @pradeepnnv in #652
- e2e: Switch to DefaultConfig() function from Config("system:admin") by @marun in #650
- e2e: Remove unused constant to satisfy linter by @marun in #660
- Move
TEST_ARGS
formake test-e2e
to after the package list by @marun in #649 - ci: use lint make target by @jbpratt in #635
- make signal handling consistent by @ramessesii2 in #615
- kubectl-kcp: fix logic to derive the orgClusterName by @sttts in #663
- Rbac for orgs in virtual workspaces by @davidfestal in #648
- bootstrap: support create-only resources by @ncdc in #675
- virtual-workspaces: wire into kcp server and remove topology leaking to cli plugin by @sttts in #640
- Better scope management and CLI plugin cleanup by @davidfestal in #673
- disable etcd fsync on github actions tests, fail fast if kcp binary not found and increase kcp verbosity by @aojea in #656
- kubectl-kcp: readd parent logic dropped in rebase by @sttts in #677
- prototype2-script: adapting the script to org workspaces by @sttts in #578
- Handle name transformation to avoid default object conflicts by @jmprusi in #679
- prototype2-script: Fix virtual-workspace-address option to start KCP by @astefanutti in #683
- server: add --experimental-bind-free-port by @sttts in #666
- Update deployment manifest by @kylape in #682
- Rename Github Actions step to avoid conflict by @kylape in #689
- Add DCO information by @ncdc in #669
- prototype2-script: the Ingress demo can run on MacOS by @astefanutti in #584
- Wildcard cluster authorization test by @slaskawi in #664
- Fix resource bootstrapping flake by @aojea in #672
- config/universal: create default namespace by default by @sttts in #691
- e2e/workspace: fix flake by quorum read shard before moving to initializing by @sttts in #700
- e2e/virtual: fix races due to stale authz informers by @sttts in #703
- e2e: Pass
t
to DefaultConfig() to allow failing on error by @marun in #694 - e2e/virtual: fix flake failing on not true WorkspaceShardValid condition by @sttts in #705
- apis/apiresource: fix subresource panic by @sttts in #699
- Link Github projects board from CONTRIBUTING.md by @sttts in #706
- Start service account controller and enable legacy+bound service account token authn+authz by @sttts in #681
- Add CICD options to kubectl for external hostname discovery by @csams in #697
- Convert cmd/syncer/main.go to be a cobra.Command by @ramessesii2 in #601
- contrib/prototype3: start demo script by @sttts in #704
- e2e: Update authorizer testing to use shared fixture by @marun in #698
- kcp terminology doc by @pkprzekwas in #684
- admission: move to runtime.DefaultUnstructuredConverter by @sttts in #577
- reconcilers: get rid of clientcmdapi.Config and pass rest.Config by @sttts in #711
- Enable the RootCACertPublisher by @jmprusi in #667
- kubectl-kcp: point to authInfo config instead of clone by @kylape in #686
- Proxy to terminate TLS and handle client cert auth by @csams in #659
- [kcp-plugin] add org name to kubectl-kcp ws use|current output by @varshaprasad96 in #693
- README.md: Adds the prototype2 demo screencast by @jmprusi in #626
- apis/apibinding: make reference required by @sttts in #713
- apibinding: add admission by @ncdc in #653
- reconcilers: add user-agent to all controller clients by @sttts in #712
- Support adding labels to workspace on creation by @marun in #710
- Fix TestClusterController tests by @jmprusi in #722
- Make namespace scheduling opt-in via label on containing workspace by @marun in #695
- Adds serviceaccounts,secrets and configmaps GVRs to the default Syncer sync list by @jmprusi in #680
- to-kubeconfig is not required, if used InCluster is not set by @aojea in #733
- instructions to install a syncer on a pcluster by @aojea in #723
- go get was deprecated and no longer works with 1.18 by @aojea in #690
- apis/apiexports: remove status.resourceSchemasInUse by @sttts in #732
- Add initial controller developer docs by @ncdc in #734
- e2e: Update workspace shard tests to use shared fixture by @marun in #736
- fix unknown command options for kcp by @UtkarshChaurasia in #737
- kcp-front-proxy: implement options pattern by @sttts in #715
- return error on context cancellation by @aojea in #692
- Update WorkspaceKey to panic for org+ws without ClusterWorkspace by @marun in #735
- e2e: Update compatible workspace test to use shared fixture by @marun in #742
- syncer: don't default resources to sync by @aojea in #745
- Strip finalizers and owner references before syncing downstream by @astefanutti in #534
- virtual: authorize clusterworkspacetype use by @sttts in #718
- e2e: Switch to test-managed syncer and update syncer-dependent tests to use shared fixture by @marun in #636
- e2e: Convert the virtual workspace test to shared fixture by @marun in #651
- Add logging options to virtual workspaces server by @csams in #746
- Remove view and edit verbs from clusterworkspace authz by @slaskawi in #726
- e2e: Cleanup context use by @marun in #658
- Simplify
kubectl kcp workspace
plugin usage and implementation by @davidfestal in #720 - crd bootstrap: better goroutine support by @ncdc in #747
- kube client cert auth in the proxy by @csams in #740
- e2e: add LOG_TO_CONSOLE to enable fixture logging by @sttts in #757
- Cluster heartbeat controller by @imjasonh in #738
- reconciler/namespace: wire metadata client and allow differing schemas for PartialObjectMetadata wildcard requests by @sttts in #765
- kubectl-kcp: add create --type flag by @sttts in #767
- reconcilers: cleanup workload controller packages by @sttts in #768
- reconcilers: cleanup tenancy controller packages by @sttts in #769
- reconciler/cluster: fix queue type cast panic by @sttts in #770
- informer: fix data race by @sttts in #771
- Make Pods from Synced Deployments in a pCluster connect to KCP when using inCluster config. by @jmprusi in #670
- Add APIBinding controller, replace inheritFrom with APIBindings by @sttts in #755
- e2e: unify make-build bin/ dir and e2e search path for binaries by @sttts in #766
- authorization: finish removing edit+view from workspace content authz by @sttts in #776
- Ensure cluster readiness is determined by syncer heartbeat by @marun in #773
- authorization: give everybody authenticated root org access by @sttts in #785
- e2e: Add new shared server ci job by @marun in #777
- server: send warning header to client on /clusters/: access by @sttts in #787
- Fix misspell words by @ArangoGutierrez in #783
- kubectl-kcp+server: set user-agent and version information by @sttts in #788
- virtual: add warning header with old kubectl plugin by @sttts in #789
- e2e: Use ./bin/kcp instead of finding it from the path by @marun in #791
- Update manifest to persist KCP configs between restarts by @kylape in #792
- e2e: cleanup misleading log output from apibinding test by @marun in #794
- e2e: run via go-run by default, NO_GORUN=1 for opt-out from Makefile by @marun in #797
- e2e: Add a command to start a kcp server compatible with e2e testing by @marun in #795
- e2e: Update shared-server job to run twice by @marun in #790
- Add .dockerignore file to exclude cmd/test-server from image build by @marun in #800
- Allow optional port on --external-hostname by @kylape in #801
- e2e: Add --use-default-server to simplify use of persistent fixture by @marun in #804
- gh-actions: Fix relative path of kubectl command by @kylape in #807
- e2e: Run e2e against shared server only a single time. by @marun in #809
- e2e: Update ingress testing to use go run by default by @marun in #806
- e2e: Update cross logical cluster testing to use private fixture by @marun in #811
- push-mode syncer uses localhost for KCP by @csams in #814
- kubectl-kcp: wait for workspace to show up in personal virtual workspace by @sttts in #815
- Add demo script for cordon and evict behavior by @imjasonh in #774
- apibinding demo by @sttts in #763
Full Changelog: https://github.com/kcp-dev/kcp/commits/v0.3.0-beta.1