Implementation:Kubeflow Pipelines Metacontroller CRD
| Knowledge Sources | |
|---|---|
| Domains | Kubernetes, Deployment, CRD |
| Last Updated | 2026-02-13 14:00 GMT |
Overview
CustomResourceDefinition manifest registering the Metacontroller CRDs (CompositeController, DecoratorController, ControllerRevision) under the `metacontroller.k8s.io` API group.
Description
This manifest (827 lines) defines three CRDs for the Metacontroller framework: CompositeController (short: cc, cctl) defines parent-child resource relationships with sync/customize webhooks; DecoratorController adds behavior to existing resources; ControllerRevision tracks configuration history. All use v1alpha1 with full OpenAPI v3 schemas. KFP uses Metacontroller's composite controllers for profile management and multi-tenancy automation.
Usage
This CRD must be installed as a cluster-scoped prerequisite before Metacontroller can operate. It is installed via kustomize during KFP multi-user deployment.
Code Reference
Source Location
- Repository: Kubeflow_Pipelines
- File: manifests/kustomize/third-party/metacontroller/base/crd.yaml
- Lines: 1-827
Signature
# Three CRDs in one manifest:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: compositecontrollers.metacontroller.k8s.io
spec:
group: metacontroller.k8s.io
names:
kind: CompositeController
shortNames: ["cc", "cctl"]
scope: Cluster
---
# DecoratorController and ControllerRevision follow similar pattern
Import
# Applied via kubectl or kustomize
kubectl apply -f crd.yaml
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| Kubernetes cluster | cluster | Yes | Target cluster with apiextensions.k8s.io/v1 support |
Outputs
| Name | Type | Description |
|---|---|---|
| CompositeController CRD | API resource | Enables declarative parent-child resource automation |
| DecoratorController CRD | API resource | Enables adding behavior to existing resources |
| ControllerRevision CRD | API resource | Tracks controller configuration history |
Usage Examples
KFP DecoratorController for Profile Sync
apiVersion: metacontroller.k8s.io/v1alpha1
kind: DecoratorController
metadata:
name: kubeflow-pipelines-profile-controller
spec:
resources:
- apiVersion: v1
resource: namespaces
annotationSelector:
matchExpressions:
- key: pipelines.kubeflow.org/enabled
operator: Exists
hooks:
sync:
webhook:
url: http://pipelines-profile-controller:8080/sync