Skip to content

v0.3.0-beta.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@sttts sttts released this 01 Apr 16:32
· 4438 commits to main since this release
58f6166

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 for make 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
    1. authorization: don't leak authz information in authz errors by @sttts in #781
    1. ingress-controller: fix race leading to too many leaves when informers are stale by @sttts in #784
    1. Plumb LogicalCluster type through and generalize lcluster logic by @sttts in #744
  • authorization: give everybody authenticated root org access by @sttts in #785
    1. virtual: implement full generalized logical cluster support and prepare for sharding by @sttts in #780
  • e2e: Add new shared server ci job by @marun in #777
  • server: send warning header to client on /clusters/: access by @sttts in #787
    1. authorization: add top-level org authorizer by @sttts in #782
  • 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
    1. kubectl-kcp: get rid of workspace duality and implement logical cluster path semantics by @sttts in #778
  • 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
    1. kubectl-kcp: add create-context command by @sttts in #779
  • apibinding demo by @sttts in #763

Full Changelog: https://github.com/kcp-dev/kcp/commits/v0.3.0-beta.1