Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(mcp-connector): add mcp-connector as composition #2

Merged
merged 2 commits into from
Aug 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .up/examples/upbound/mcp-connector.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: mcp.caas.upbound.io/v1alpha1
kind: Connector
metadata:
name: aws-spoke-01
namespace: default
spec:
parameters:
organizationName: upbound
controlPlaneName: caas
version: "0.3.2"
providerConfigName: aws-spoke-01
160 changes: 160 additions & 0 deletions apis/upbound/mcp-connector/composition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: xconnectors.mcp.caas.upbound.io
spec:
writeConnectionSecretsToNamespace: upbound-system
compositeTypeRef:
apiVersion: mcp.caas.upbound.io/v1alpha1
kind: XConnector
resources:
- name: mcp-serviceaccount
base:
apiVersion: iam.upbound.io/v1alpha1
kind: Robot
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.owner.name
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
haarchri marked this conversation as resolved.
Show resolved Hide resolved
toFieldPath: spec.forProvider.name
transforms:
- type: string
string:
fmt: "%s-mcp-connector"
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.description
transforms:
- type: string
string:
fmt: "%s-mcp-connector"
- name: mcp-token
base:
apiVersion: iam.upbound.io/v1alpha1
kind: Token
spec:
forProvider:
owner:
type: robots
idSelector:
matchControllerRef: true
writeConnectionSecretToRef:
namespace: upbound-system
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.name
transforms:
- type: string
string:
fmt: "%s-mcp-connector-access-token"
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.writeConnectionSecretToRef.name
transforms:
- type: string
string:
fmt: "%s-mcp-connector"
- name: mcp-team
base:
apiVersion: iam.upbound.io/v1alpha1
kind: Team
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.organizationName
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.name
transforms:
- type: string
string:
fmt: "%s-mcp-connector"
- name: mcp-team-membership
base:
apiVersion: iam.upbound.io/v1alpha1
kind: RobotTeamMembership
spec:
forProvider:
robotIdSelector:
matchControllerRef: true
teamIdSelector:
matchControllerRef: true
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
- name: mcp-controlplane-permission
base:
apiVersion: mcp.upbound.io/v1alpha1
kind: ControlPlanePermission
spec:
forProvider:
teamIdSelector:
matchControllerRef: true
permission: owner
patches:
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.organizationName
- fromFieldPath: spec.parameters.controlPlaneName
toFieldPath: spec.forProvider.controlPlaneName
- name: mcp-connector
base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
spec:
forProvider:
namespace: kube-system
chart:
name: mcp-connector
url: https://charts.upbound.io/beta/mcp-connector-0.3.2.tgz
version: 0.3.2
haarchri marked this conversation as resolved.
Show resolved Hide resolved
values:
mcp:
host: https://proxy.upbound.io
set:
- name: mcp.token
valueFrom:
secretKeyRef:
key: token
namespace: upbound-system
optional: false
patches:
- fromFieldPath: metadata.labels
toFieldPath: metadata.labels
- fromFieldPath: metadata.annotations
toFieldPath: metadata.annotations
- fromFieldPath: spec.parameters.providerConfigName
toFieldPath: spec.providerConfigRef.name
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
- fromFieldPath: spec.parameters.organizationName
toFieldPath: spec.forProvider.values.mcp.account
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.set[0].valueFrom.secretKeyRef.name
transforms:
- type: string
string:
fmt: "%s-mcp-connector"
- fromFieldPath: spec.parameters.controlPlaneName
toFieldPath: spec.forProvider.values.mcp.name
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
toFieldPath: spec.forProvider.values.mcp.namespace
- fromFieldPath: spec.parameters.version
toFieldPath: spec.forProvider.chart.version
- type: CombineFromComposite
combine:
variables:
- fromFieldPath: spec.parameters.version
strategy: string
string:
fmt: https://charts.upbound.io/beta/mcp-connector-%s.tgz
toFieldPath: spec.forProvider.chart.url
- fromFieldPath: spec.parameters.version
toFieldPath: spec.forProvider.values.image.tag
transforms:
- type: string
string:
fmt: "v%s"
56 changes: 56 additions & 0 deletions apis/upbound/mcp-connector/definition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: xconnectors.mcp.caas.upbound.io
spec:
group: mcp.caas.upbound.io
names:
kind: XConnector
plural: xconnectors
claimNames:
kind: Connector
plural: connectors
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
parameters:
type: object
description: Connector configuration parameters.
properties:
deletionPolicy:
description: When the Composition is deleleted, delelete the Upbound resources. Defaults to Delete
enum:
- Delete
- Orphan
type: string
default: Delete
providerConfigName:
description: Crossplane ProviderConfig to use for provisioning this resources
type: string
default: default
version:
type: string
description: mcp-connector version of the helm-chart
default: "0.3.2"
organizationName:
type: string
description: OrganizationName is the name of the organization to which the control plane belongs
controlPlaneName:
type: string
description: ControlPlaneName is the name of the mcp controlplane to connect a spoke cluster.
required:
- controlPlaneName
- deletionPolicy
- organizationName
- providerConfigName
- version
required:
- parameters