Implementation:Kubeflow Pipelines Application CRD
| Knowledge Sources | |
|---|---|
| Domains | Kubernetes, Deployment, CRD |
| Last Updated | 2026-02-13 14:00 GMT |
Overview
CustomResourceDefinition manifest registering the `applications.app.k8s.io` CRD, enabling KFP to be represented as a structured Kubernetes Application.
Description
This manifest (531 lines) defines the Application CRD from the upstream `kubernetes-sigs/application` project. It registers the `app.k8s.io` API group with the `Application` kind as a namespaced resource. The CRD includes printer columns for type, version, owner, component readiness, and age. The full OpenAPI v3 schema covers spec fields for descriptor (type, version, description), component groups, info links, and status conditions.
Usage
This CRD must be installed as a cluster-scoped prerequisite before the Application controller or any Application CRs can be created. It is installed via kustomize during KFP deployment.
Code Reference
Source Location
- Repository: Kubeflow_Pipelines
- File: manifests/kustomize/third-party/application/cluster-scoped/application-crd.yaml
- Lines: 1-531
Signature
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: applications.app.k8s.io
spec:
group: app.k8s.io
names:
kind: Application
plural: applications
shortNames: ["app"]
scope: Namespaced
versions:
- name: v1beta1
served: true
storage: true
# Full OpenAPI v3 schema for Application spec
Import
# Applied via kubectl or kustomize
kubectl apply -f application-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 |
|---|---|---|
| CRD registration | side effect | Registers applications.app.k8s.io in the cluster API |
| Application kind | API resource | Enables creating Application custom resources |
Usage Examples
Creating a KFP Application Resource
apiVersion: app.k8s.io/v1beta1
kind: Application
metadata:
name: kubeflow-pipelines
namespace: kubeflow
spec:
descriptor:
type: Kubeflow Pipelines
version: "2.0"
description: "ML pipeline platform"
componentKinds:
- group: apps
kind: Deployment
selector:
matchLabels:
app.kubernetes.io/part-of: kubeflow-pipelines