Skip to content

BYO-Provider Limitations #1134

@mjudeikis

Description

@mjudeikis

1st: When dealing with providers, in most cases APIExport is internally managed, generated and immutable (self-bootstrapped).

The fact that we need to add this into every API export makes it so each provider must be custom-built for PM, and one can just use kcp apigen for it.

  labels:
    ui.platform-mesh.io/content-for: wildwest.platform-mesh.io

It should be referred in the content object, not the other way around.

2nd: When dealing with a multi-cluster controller, sometimes you need an anchor to hook into "identity of the cluster". Usually, it's the UID of the kube-system namespace. But there is a problem in PM: I can't see the details of this namespace to determine its UID. We need to show more details on the console, even exposing yaml editor:

Image
  1. When dealing with ContentConfiguration, I want to be able to have more control. In example my provider required this type of "first request" to establish a handshake:
now I want to expose `BindableResourcesRequest` in the ContentConfiguration view. chema is like this kubectl apply -f - <<EOF
apiVersion: kube-bind.io/v1alpha2
kind: BindableResourcesRequest
metadata:
  name: 0ac6800e-bc4f-4c70-814b-45b44e04aa02
  namespace: default
spec:
  kubeconfigSecretRef:
    name: 0ac6800e-bc4f-4c70-814b-45b44e04aa02-response
    key: response
  author: "backend-only-user"
  clusterIdentity:
    identity: 0ac6800e-bc4f-4c70-814b-45b44e04aa02
EOF

The problem is that this payload MUST run once "per consumer cluster". And current CRD does not quite tell what It suppose to be doing. I want to be able to customize 3rd to be something like:

Export Services to remot cluster (button)
Once pressed it would ask form:
0. Remote cluster Name (maps to name)

  1. RemoteCluster Identity (maps to spec.clusterIdentity.Identity)
    (add a provided command in kubectl to run to get it)
  2. The author should be prefiled from the session
  3. Secret will need to be templated from name

All this would be filled to same CRD under the hood, but its not quite 1:1 mapping.

  1. My provider now created me a new namespace and secret. I dont have ways to download it, see content, OR attach some documentation to this (like kubectl get secret -o bla bla to configure remote cluster)
Image

in general provider in UI are very limited to basic crud operations

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions