Skip to content

Provider resource

Definition

Provider is a kcp-facing, cluster-scoped custom resource in the providers.platform-mesh.io/v1alpha1 API group. Creating one provisions a dedicated workspace and a scoped kubeconfig for the service provider.

For the conceptual overview, see Provider bootstrap.

INFO

Provider resources are available in workspaces that have an APIBinding to the providers.platform-mesh.io export from root:platform-mesh-system. The workflow for obtaining that binding (the "become a provider" onboarding path) is TBD. For now, platform owners can create the binding manually where needed.

Schema

All spec fields are optional. A minimal Provider has an empty spec:

yaml
apiVersion: providers.platform-mesh.io/v1alpha1
kind: Provider
metadata:
  name: my-service
spec: {}

Spec fields

FieldRequiredDefaultDescription
providerKubeconfigSecret.nameNo<Provider.name>-provider-kubeconfigName of the Secret to write the generated kubeconfig into.
providerKubeconfigSecret.namespaceNodefaultNamespace of the Secret.
providerKubeconfigSecret.keyNokubeconfigKey in the Secret's data map.
hostOverrideNoOperator-configured front-proxy URLOverrides the kcp front-proxy host written into the generated kubeconfig.

Status fields

FieldDescription
phaseCurrent bootstrap phase. See Lifecycle.
providerKubeconfigSecretRefReference to the Secret containing the scoped kubeconfig for the provider workspace.
conditionsStandard Kubernetes conditions, including Ready.

Who creates it

Service providers — any team in the service provider persona — create Provider resources in their kcp workspace.

TIP

For platform admins who want to automate the full onboarding lifecycle, see ManagedProvider.

Who reconciles it

The Provider controller, part of the Platform Mesh operator, provisions the workspace and kubeconfig for each Provider.

What happens when you apply one

  1. Finalizers are added for ordered cleanup.
  2. A workspace (WorkspaceType root:provider) is created under root:providers. Its name is <Provider.name>-<random-suffix>.
  3. Inside that workspace, a ServiceAccount, ClusterRoleBinding, and token Secret are created.
  4. A kubeconfig is generated from those credentials and written to the Secret specified by providerKubeconfigSecret (or the default location). The Secret is placed in the workspace where the Provider object lives, not in the provider workspace itself.
  5. status.phase transitions to Ready once provisioning completes.

Lifecycle

EU and German government funding logos

Funded by the European Union – NextGenerationEU.

The views and opinions expressed are solely those of the author(s) and do not necessarily reflect the views of the European Union or the European Commission. Neither the European Union nor the European Commission can be held responsible for them.