Skip to content

feature: share instances of an API with other workspaces #2022

Open
@maleck13

Description

@maleck13

Feature Description

Some APIs and service are intended to be shared and can have different creators and consumers that may span multiple workspaces. An example of this would be a messaging system or a gateway. I would like to have a mechanism for sharing/ making an instance of an API visible (read only) with other workspaces where I have the permissions to do so.

Stories

I have provisioned a Gateway using Gateway API via a KCP workspace and placed a replica on each sync target within in a location. I want to share this Gateway object as a read only object into a set of other workspaces within my org that have access to this location so that they can create HTTPRoute objects and attach them to this Gateway. I don't want every workspace that wants to use HTTPRoutes to need to create their own Gateway.

I have provisioned a instance of a messaging service via a service API, there are multiple teams using multiple workspaces to develop applications that need to be able to see this service or features of this service (a topic for example) as available to them so that they can consume and publish messages without needing to create their own messaging service instance.

Proposed Solution

Currently I think a workspace admin could grant get/list access in their workspace to a resource to a group in another workspace via RBAC. This is not the most intuitive of options and requires the consumer to be told which workspace he has been granted permissions in.

Naively Ideally I think we want something like:

  1. I express that this instance of an API object is available to a group
  2. As a member of that group, I can list things that have been made available to me
  3. As a member of that group and with correct RBAC I can then "bind" that thing into my workspace.

So similar to the APIExport concept but for API instance(s) rather than allowing new instances to be created

Alternative Solutions

No response

Want to contribute?

  • I would like to work on this issue.

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/api-changeCategorizes issue or PR as related to adding, removing, or otherwise changing an APIkind/designCategorizes issue or PR as related to design.kind/featureCategorizes issue or PR as related to a new feature.

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions