Skip to content
Open
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
1 change: 1 addition & 0 deletions charts/kubeflow-pipelines/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
charts/*.tgz
18 changes: 18 additions & 0 deletions charts/kubeflow-pipelines/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
dependencies:
- name: argo-workflows
repository: https://argoproj.github.io/argo-helm
version: 0.45.28
- name: mysql
repository: https://charts.bitnami.com/bitnami
version: 12.3.5
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 16.7.27
- name: minio
repository: https://charts.min.io/
version: 5.4.0
- name: metacontroller-helm
repository: oci://ghcr.io/metacontroller
version: 4.12.5
digest: sha256:90e8a06d0b163c3e65a5f5b19d029cbbf4fa8b9ba13bad9fc9beffd7b7a25e42
generated: "2026-02-10T23:57:53.239642-05:00"
38 changes: 38 additions & 0 deletions charts/kubeflow-pipelines/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
apiVersion: v2
name: kubeflow-pipelines
description: A Helm chart for Kubeflow Pipelines
type: application
version: 0.1.0
appVersion: "2.15.0"
keywords:
- kubeflow
- pipelines
- machine-learning
- mlops
home: https://github.com/kubeflow/pipelines
sources:
- https://github.com/kubeflow/pipelines
maintainers:
- name: Kubeflow Pipelines Authors
dependencies:
- name: argo-workflows
version: ~0.45.0
repository: https://argoproj.github.io/argo-helm
condition: argo-workflows.enabled
- name: mysql
version: ~12.3.0
repository: https://charts.bitnami.com/bitnami
condition: mysql.enabled
- name: postgresql
version: ~16.7.0
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled
- name: minio
version: ~5.4.0
repository: https://charts.min.io/
condition: minio.enabled
- name: metacontroller-helm
version: ~4.12.0
repository: oci://ghcr.io/metacontroller
condition: metacontroller.enabled
alias: metacontroller
39 changes: 39 additions & 0 deletions charts/kubeflow-pipelines/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Kubeflow Pipelines Helm Chart

## Known Differences vs Kustomize (platform-agnostic)

This chart aims for functional parity with the Kustomize deployment in
`manifests/kustomize/env/platform-agnostic`. Some differences are intentional
due to Helm subcharts and install semantics:

- Argo Workflows is installed via the `argo-workflows` subchart. Resource names
and some RBAC object names differ from the Kustomize namespace-install
manifests, even when `singleNamespace` is enabled.
- Argo Workflows CRDs are disabled in values, but Helm can still install CRDs
from other sources; Kustomize applies CRDs separately outside the
platform-agnostic overlay.
- MySQL is deployed via the Bitnami `mysql` subchart, which uses a StatefulSet,
headless service, and additional resources (PDB, NetworkPolicy, Secret) that
do not exist in the Kustomize deployment (which uses a simple Deployment + PVC).
- KFP CRDs in `charts/kubeflow-pipelines/crds` are installed by Helm, while the
Kustomize platform-agnostic overlay does not include them by default.

If you need exact 1:1 resource parity with Kustomize, replace the Argo and MySQL
subcharts with Kustomize-equivalent native templates.

## Compatibility Options

To reduce naming drift without removing subcharts, this chart provides optional
compatibility resources (enabled by default):

- `compat.argo.rbac`: Adds `argo-role` and `argo-binding` to match the
namespace-install RBAC objects from Kustomize.
- `compat.argo.priorityClass`: Adds `PriorityClass` `workflow-controller`.
- `compat.mysql.pvc`: Creates `PersistentVolumeClaim` `mysql-pv-claim` and sets
MySQL to use it via `mysql.primary.persistence.existingClaim`.
- `compat.mysql.deployment`: Creates a Kustomize-style MySQL `Deployment` and
`ServiceAccount`/`Service`. This is only rendered when `mysql.enabled=false`
to avoid running two MySQL workloads.

These are intended to close parity gaps in tooling and tests that expect
Kustomize resource names.
Binary file not shown.
Binary file not shown.
Binary file added charts/kubeflow-pipelines/charts/minio-5.4.0.tgz
Binary file not shown.
Binary file added charts/kubeflow-pipelines/charts/mysql-12.3.5.tgz
Binary file not shown.
Binary file not shown.
49 changes: 49 additions & 0 deletions charts/kubeflow-pipelines/crds/pipelines.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
name: pipelines.pipelines.kubeflow.org
spec:
group: pipelines.kubeflow.org
names:
kind: Pipeline
listKind: PipelineList
plural: pipelines
singular: pipeline
scope: Namespaced
versions:
- name: v2beta1
schema:
openAPIV3Schema:
description: Pipeline is the Schema for the pipelines API.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: PipelineSpec defines the desired state of Pipeline.
properties:
description:
type: string
displayName:
type: string
type: object
type: object
served: true
storage: true
95 changes: 95 additions & 0 deletions charts/kubeflow-pipelines/crds/pipelineversions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
name: pipelineversions.pipelines.kubeflow.org
spec:
group: pipelines.kubeflow.org
names:
kind: PipelineVersion
listKind: PipelineVersionList
plural: pipelineversions
singular: pipelineversion
scope: Namespaced
versions:
- name: v2beta1
schema:
openAPIV3Schema:
description: PipelineVersion is the Schema for the pipelineversions API.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: PipelineVersionSpec defines the desired state of PipelineVersion.
properties:
codeSourceURL:
type: string
description:
type: string
displayName:
type: string
pipelineName:
type: string
pipelineSpec:
x-kubernetes-preserve-unknown-fields: true
pipelineSpecURI:
type: string
platformSpec:
x-kubernetes-preserve-unknown-fields: true
required:
- pipelineSpec
type: object
status:
description: PipelineVersionStatus defines the observed state of PipelineVersion.
properties:
conditions:
items:
description: |-
SimplifiedCondition is a metav1.Condition without lastTransitionTime since the database model doesn't have such
a concept and it allows a default status in the CRD without a controller setting it.
properties:
message:
maxLength: 32768
type: string
reason:
type: string
status:
enum:
- "True"
- "False"
- Unknown
type: string
type:
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}
39 changes: 39 additions & 0 deletions charts/kubeflow-pipelines/crds/scheduledworkflows.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: scheduledworkflows.kubeflow.org
spec:
group: kubeflow.org
names:
kind: ScheduledWorkflow
listKind: ScheduledWorkflowList
plural: scheduledworkflows
singular: scheduledworkflow
shortNames:
- swf
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
x-kubernetes-map-type: atomic
status:
type: object
x-kubernetes-preserve-unknown-fields: true
x-kubernetes-map-type: atomic
required:
- spec
- status
type: object
served: true
storage: true
34 changes: 34 additions & 0 deletions charts/kubeflow-pipelines/crds/viewers.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: viewers.kubeflow.org
spec:
group: kubeflow.org
names:
kind: Viewer
listKind: ViewerList
plural: viewers
singular: viewer
shortNames:
- vi
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
x-kubernetes-map-type: atomic
required:
- spec
type: object
served: true
storage: true
Loading
Loading