Updates to access, maintenance, and support policy for official packages: On March 25, 2025 Upbound is updating the access policy for Official Providers
xcontrolplanes.mcp.caas.upbound.io xcontrolplanes.mcp.caas.upbound.io
xcontrolplanes.mcp.caas.upbound.io Referenced XRD XControlPlane
YAML kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xcontrolplanes.mcp.caas.upbound.io
creationTimestamp: null
spec:
compositeTypeRef:
apiVersion: mcp.caas.upbound.io/v1alpha1
kind: XControlPlane
mode: Pipeline
pipeline:
- step: patch-and-transform
functionRef:
name: crossplane-contrib-function-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
resources:
- base:
apiVersion: mcp.upbound.io/v1alpha1
kind: ControlPlane
name: controlplane
patches:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: metadata.annotations[crossplane.io/external-name]
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.organizationName
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.configuration
toFieldPath: spec.forProvider.configuration
type: FromCompositeFieldPath
- base:
apiVersion: iam.upbound.io/v1alpha1
kind: Robot
name: mcp-robot
patches:
- combine:
strategy: string
string:
fmt: "%s-%s"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: metadata.name
type: CombineFromComposite
- combine:
strategy: string
string:
fmt: "%s-%s"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: spec.forProvider.name
type: CombineFromComposite
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.owner.name
type: FromCompositeFieldPath
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.description
transforms:
- string:
fmt: "%s"
type: Format
type: string
type: FromCompositeFieldPath
- base:
apiVersion: iam.upbound.io/v1alpha1
kind: Token
spec:
forProvider:
name: mcprobot-composition-token
owner:
idSelector:
matchControllerRef: true
type: robots
writeConnectionSecretToRef:
namespace: upbound-system
name: mcp-robot-token
patches:
- combine:
strategy: string
string:
fmt: "%s-%s-robot-token"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: spec.writeConnectionSecretToRef.name
type: CombineFromComposite
- fromFieldPath: spec.writeConnectionSecretToRef.name
toFieldPath: status.mcp.tokenSecret
type: ToCompositeFieldPath
- combine:
strategy: string
string:
fmt: "%s-%s"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: metadata.name
type: CombineFromComposite
- fromFieldPath: metadata.annotations[crossplane.io/external-name]
policy:
fromFieldPath: Optional
toFieldPath: status.mcp.tokenAccessID
type: ToCompositeFieldPath
- base:
apiVersion: iam.upbound.io/v1alpha1
kind: Team
name: mcp-team
patches:
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.organizationName
type: FromCompositeFieldPath
- combine:
strategy: string
string:
fmt: "%s-%s-access"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: spec.forProvider.name
type: CombineFromComposite
- combine:
strategy: string
string:
fmt: "%s-%s-access"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: metadata.name
type: CombineFromComposite
- base:
apiVersion: iam.upbound.io/v1alpha1
kind: RobotTeamMembership
spec:
forProvider:
robotIdSelector:
matchControllerRef: true
teamIdSelector:
matchControllerRef: true
name: mcp-team-membership
patches:
- combine:
strategy: string
string:
fmt: "%s-%s-access"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: metadata.name
type: CombineFromComposite
- base:
apiVersion: mcp.upbound.io/v1alpha1
kind: ControlPlanePermission
spec:
forProvider:
teamIdSelector:
matchControllerRef: true
name: mcp-team-permission
patches:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.controlPlaneName
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: spec.forProvider.permission
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.organizationName
type: FromCompositeFieldPath
- combine:
strategy: string
string:
fmt: "%s-%s-access"
variables:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
- fromFieldPath: spec.parameters.robotPermission
toFieldPath: metadata.name
type: CombineFromComposite
- base:
apiVersion: mcp.upbound.io/v1alpha1
kind: ControlPlaneAuth
spec:
forProvider:
tokenSecretRef:
key: token
namespace: upbound-system
writeConnectionSecretToRef:
namespace: upbound-system
connectionDetails:
- fromConnectionSecretKey: kubeconfig
name: kubeconfig
type: FromConnectionSecretKey
name: controlplane-auth
patches:
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.writeConnectionSecretToRef.name
transforms:
- string:
fmt: "%s-connection-details"
type: Format
type: string
type: FromCompositeFieldPath
- fromFieldPath: spec.writeConnectionSecretToRef.name
toFieldPath: status.mcp.connectionSecretName
type: ToCompositeFieldPath
- fromFieldPath: status.mcp.tokenSecret
policy:
fromFieldPath: Required
toFieldPath: spec.forProvider.tokenSecretRef.name
type: FromCompositeFieldPath
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.controlPlaneName
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.organizationName
type: FromCompositeFieldPath
writeConnectionSecretsToNamespace: upbound-system