Skip to content

feature: Implement WorkspaceTree for forest workspace hierarchy #3716

Description

@mjudeikis

Feature Description

Currently, everything in the kcp build on top of the root workspace. But this exposes some of the unnecessary details to the users. For example, if we usea structure like below

root:
   organizations:
       org1
          departament1
          departament2
       org2
          departament1
          departament2
       org3

If you are part of org1, you might guess org2 structure. This is like saying "knowing your AWS account ID allows you to guess other people's account IDs," then doing some guesswork and trying to access resources.

kcp supports a forest-type structure, but it's not exposed.

Proposed Solution

Proposal is to add a new tenancy API object:

apiVersion: tenancy.kcp.io/v1alpha1
Kind: WorkspaceTree
spec:
   type:
   cluster:
status:
   ...

Which would follow closely the workspace API. But the idea is that one could request this "named WorkspaceTree
object and get its own tree assigned, which is not under the root.

Example:

root:
  organizations:
     {WorkspaceTree/foo, WorkspaceTree/bar}

foo:
  departament1
  departament2
bar:

Where foo, bar` could be user-provided, or randomly generated, making the system non-guessable. Use same base36 nomenclature.

And users would see this in their kubeconfig clusters/foo:department1 or random string.

This will include a reconciler that provides trees to form a forest.
Some arbitrary scheduling capabilities should be added to distributed workspaces.
If WorkspaceTree is deleted, all workspace tree should be purged. This should be guarded by finalisers
Advanced scheduling is out of scope.

Alternative Solutions

No response

Want to contribute?

  • I would like to work on this issue.

Additional Context

No response

Activity

  1. added
    kind/featureCategorizes issue or PR as related to a new feature.
    on Nov 11, 2025
  2. mjudeikis commented on Nov 11, 2025

    @mjudeikis
    ContributorAuthor

    Alternative names:
    WorkspaceTrunk
    WorkspaceRoot

  3. moved this from New to Backlog in kcpon Dec 10, 2025
  4. added this to the v0.31.0 milestone on Dec 10, 2025
  5. mirzakopic commented on Feb 5, 2026

    @mirzakopic

    to be refined

  6. mjudeikis commented on Feb 9, 2026

    @mjudeikis
    ContributorAuthor

    Based on https://clysogmbh.slack.com/archives/C07V5RV5HK7/p1770305213184019 I think we ok to schedule work for this?

  7. ntnn commented on Feb 9, 2026

    @ntnn
    Member

    +1 for WorkspaceRoot

  8. moved this from ForRefinement to Backlog in Platform Mesh & Kube Projects - Backlogon Feb 9, 2026
  9. ntnn commented on Feb 10, 2026

    @ntnn
    Member

    PR in kcp-dev/enhancements: kcp-dev/enhancements#10

  10. moved this from Backlog to ForRefinement in Platform Mesh & Kube Projects - Backlogon Feb 12, 2026
  11. moved this from ForRefinement to ParkingLot in Platform Mesh & Kube Projects - Backlogon Feb 12, 2026
  12. modified the milestones: v0.31.0, TBD on May 12, 2026
  13. Elbehery commented on Jun 17, 2026

    @Elbehery

    /assign

  14. mengliwg commented on Nov 3, 2026

    @mengliwg

    Discusssed in daily, low prio for now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Projects

    • Status
      Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions