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

DSPv2 #539

Merged
merged 112 commits into from
Jan 18, 2024
Merged

DSPv2 #539

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
d3fafbc
Add ApplyAll function
gmfrasca Sep 14, 2023
7d60bf9
Add ApplyDir Reconciler function, Dynamically retrieve templates
gmfrasca Sep 14, 2023
17559ce
Handle subdirectories in GetTemplatesInDir util
gmfrasca Sep 14, 2023
e0b59b4
Restructure Common Templates directory
gmfrasca Sep 14, 2023
ebfde58
Restructure Database templates directory
gmfrasca Sep 14, 2023
b1dba38
Restructure Object Storage templates directory
gmfrasca Sep 14, 2023
0f17eeb
Restructure components manifest directories with conditions
gmfrasca Sep 14, 2023
c9452a6
Add VisualizationServer and CRDViewer component manifests
gmfrasca Sep 15, 2023
51fbc8e
Add Reconcile Handlers for CRDViewer and VisualizationServer
gmfrasca Sep 19, 2023
8d3c8bd
Fix Functional Tests (handle new envvars)
gmfrasca Sep 19, 2023
e67b42c
Fix self-deployed DB/Storage missing secrets
gmfrasca Sep 26, 2023
bc692e9
WIP: Add DSPv2 Internal Manifests
gmfrasca Sep 26, 2023
be4814a
WIP: Implement v2deploy make command
gmfrasca Sep 26, 2023
94adfa6
Implement DSPVersion item in DSPA CRD
gmfrasca Sep 27, 2023
a23666c
Remove unneeded v2 kustomization params
gmfrasca Sep 27, 2023
611b415
Add ApplyAll function
gmfrasca Sep 14, 2023
88004d1
Add ApplyDir Reconciler function, Dynamically retrieve templates
gmfrasca Sep 14, 2023
7b4c1cb
Handle subdirectories in GetTemplatesInDir util
gmfrasca Sep 14, 2023
2856b85
Restructure Common Templates directory
gmfrasca Sep 14, 2023
eb86f6d
Restructure Database templates directory
gmfrasca Sep 14, 2023
45ddc2c
Restructure Object Storage templates directory
gmfrasca Sep 14, 2023
3f5e09f
Restructure components manifest directories with conditions
gmfrasca Sep 14, 2023
b4f0ece
Add VisualizationServer and CRDViewer component manifests
gmfrasca Sep 15, 2023
3fcbb14
Add Reconcile Handlers for CRDViewer and VisualizationServer
gmfrasca Sep 19, 2023
55774dc
Fix Functional Tests (handle new envvars)
gmfrasca Sep 19, 2023
bbd0aec
Fix self-deployed DB/Storage missing secrets
gmfrasca Sep 26, 2023
1aa8bb7
WIP: Add DSPv2 Internal Manifests
gmfrasca Sep 26, 2023
3892ba5
WIP: Implement v2deploy make command
gmfrasca Sep 26, 2023
e21369a
Implement DSPVersion item in DSPA CRD
gmfrasca Sep 27, 2023
bb82a91
Remove unneeded v2 kustomization params
gmfrasca Sep 27, 2023
5594994
Add v2undeploy command to Makefile
gmfrasca Oct 17, 2023
e4b3f15
Merge branch 'dspv2' into v2-continued
gmfrasca Oct 17, 2023
9700595
Code formatting cleanliness updates
gmfrasca Oct 17, 2023
e051c7f
Merge pull request #401 from gmfrasca/v2-continued
openshift-ci[bot] Oct 17, 2023
4e0bb8a
Fix Leader Election Cluster Role Names
gmfrasca Oct 19, 2023
9157071
Merge pull request #406 from gmfrasca/v2-continued
openshift-ci[bot] Oct 19, 2023
2fec334
Updating v2 manifests to utilize DSPO namePrefix
DharmitD Oct 18, 2023
e09a802
Merge pull request #405 from DharmitD/name-prefix-dsp
openshift-ci[bot] Oct 19, 2023
cefc24f
Update RBAC for webhook clusterroles
gmfrasca Oct 19, 2023
2e17ad4
Add MLMD GRPC env vars to APIServer if defined
gmfrasca Oct 19, 2023
7f762cc
Merge pull request #409 from gmfrasca/v2-continued
openshift-ci[bot] Oct 20, 2023
1416f28
Add NetworkPolicy for kfp-driver and TaskRuns to allow access to API …
rimolive Oct 20, 2023
f5e75c5
Remove SCCs from DSPv2 manifests
DharmitD Oct 20, 2023
ec35ad3
Merge pull request #414 from DharmitD/remove-sccs
openshift-ci[bot] Oct 20, 2023
327d3ab
Merge pull request #413 from rimolive/dspv2-rmartine
openshift-ci[bot] Oct 20, 2023
fa7ca32
Last changes for DSPv2 PoC
rimolive Oct 25, 2023
76e17de
Merge pull request #422 from rimolive/dspv2-rmartine
HumairAK Oct 27, 2023
01cd52d
Replace sample iris-dataset pipeline with a v2 one
rimolive Oct 30, 2023
35e2704
Merge pull request #436 from rimolive/dspv2-rmartine
openshift-ci[bot] Nov 1, 2023
027e8ab
Slim down v2 ClusterRoles
DharmitD Nov 3, 2023
bea760e
Added missing Tekton ConfigMaps and Secrets.
Nov 6, 2023
ed4d5c0
Merge pull request #443 from amadhusu/am/377
openshift-merge-bot[bot] Nov 10, 2023
f24983b
Merge pull request #442 from DharmitD/slim-roles
openshift-merge-bot[bot] Nov 13, 2023
eb73db1
Adding back run and task related permissions
DharmitD Nov 13, 2023
db9d8b1
Merge pull request #458 from DharmitD/perms-add
openshift-merge-bot[bot] Nov 14, 2023
ee78da4
Merge remote-tracking branch 'odh/main' into dspv2-merge
gmfrasca Nov 14, 2023
07a78e2
Seperate name-collided functest cases
gmfrasca Nov 21, 2023
72c0315
Fix functest case_7
gmfrasca Nov 22, 2023
eca5c8b
Fix improperly formatted kustomization.yaml
gmfrasca Nov 22, 2023
e250647
Deploy Argo Infrastructure
gmfrasca Oct 23, 2023
f2e9e99
Add WorkflowController DSPA Item
gmfrasca Oct 23, 2023
f250763
Env and Manifest adjustments for ArgoWf backend engine
gmfrasca Oct 26, 2023
91c6968
Add EngineDriver field for DSPA
gmfrasca Nov 1, 2023
407ecdd
Add V2 Argo Images
gmfrasca Nov 1, 2023
5d37266
Update Images based on EngineDriver specified in DSPA
gmfrasca Nov 1, 2023
5bc68fd
Handle dynamically deploying NetworkPolicy based on EngineDriver
gmfrasca Nov 1, 2023
776e669
Engine-Agnostic Manifests: PersistenceAgent
gmfrasca Nov 1, 2023
ae80f25
Engine-Agnostic Manifests: APIServer
gmfrasca Nov 1, 2023
85d2e0f
Remove EngineDriver field
gmfrasca Nov 21, 2023
4333b16
Simplify ImagePath retrieval in DSPAParams
gmfrasca Nov 21, 2023
1f880eb
Fix YAML formatting
gmfrasca Dec 5, 2023
e5e04d2
Fix and Re-generate DataSciencePipelinesApplication CRD
gmfrasca Dec 5, 2023
b3014b0
Only apply Argo-specfic env vars if on v2
gmfrasca Dec 5, 2023
c909d66
Fix/Update Functional Tests to accomodate v2-argo
gmfrasca Dec 5, 2023
8749630
Add Context Documentation for WorkflowController
gmfrasca Dec 5, 2023
07cf05f
Fix WorkflowController incorrect log messages
gmfrasca Dec 6, 2023
86e191a
Remove Unused V2Tekton Image References
gmfrasca Dec 6, 2023
e4921bc
Correct makedeploy newTag pointer
gmfrasca Dec 11, 2023
ade82da
Remove broken rbac kustomization item
gmfrasca Dec 11, 2023
98f23f8
Merge pull request #4 from gmfrasca/v2-engineagnostic-rebased
gmfrasca Dec 11, 2023
7db16ff
Merge pull request #462 from gmfrasca/dspv2-merge
HumairAK Dec 11, 2023
0b70493
Add a sample dspa for v2.
HumairAK Dec 11, 2023
fa00b58
Merge pull request #504 from HumairAK/dspv2
openshift-merge-bot[bot] Dec 12, 2023
e7b1631
Add minio artifact secret name exception for v2.
HumairAK Dec 12, 2023
fa6b567
Merge remote-tracking branch 'odh/main' into dspv2-merge
gmfrasca Dec 12, 2023
420719e
Include minio-service in minio deployment.
HumairAK Dec 13, 2023
6127c4d
Merge pull request #513 from HumairAK/dspv2-secrets
HumairAK Dec 14, 2023
6551c13
chore: further simplify v2 simple dspa example.
HumairAK Dec 15, 2023
0fa3544
Add default values for v2 sample pipeline input parameters
gmfrasca Dec 15, 2023
a79e48f
Merge pull request #514 from HumairAK/update_simple_v2
HumairAK Dec 15, 2023
88ae448
Merge pull request #517 from gmfrasca/v2iris-defaults-vals
openshift-merge-bot[bot] Dec 15, 2023
dd54ed5
Removed VisualizationServer and MLMD Writer
hbelmiro Dec 11, 2023
4ff63f6
Restored ML_PIPELINE_VISUALIZATIONSERVER_SERVICE_HOST and ML_PIPELINE…
hbelmiro Dec 15, 2023
c9da18a
Removed GetImageForComponentV2
hbelmiro Dec 15, 2023
af2e5a8
Restored SetupMLMD
hbelmiro Dec 15, 2023
8e65d60
Updated `DSPAParams#UsingV1Pipelines`.
hbelmiro Dec 19, 2023
a1fc85c
Merge remote-tracking branch 'odh/main' into dspv2-merge
gmfrasca Dec 19, 2023
b0f2bd1
Update sample pipeline and remove unused sample
gmfrasca Dec 20, 2023
9b39ab9
Remove String-length limit for Declarative tests (helps debugging)
gmfrasca Dec 20, 2023
a311b92
Restored health check
hbelmiro Dec 21, 2023
54ddfde
Merge pull request #512 from hbelmiro/issue-495
openshift-merge-bot[bot] Dec 21, 2023
dcdec26
Merge pull request #521 from gmfrasca/dspv2-merge
openshift-merge-bot[bot] Jan 8, 2024
ae3f49b
Merge remote-tracking branch 'odh/main' into dspv2-merge
gmfrasca Jan 8, 2024
bb8356b
Document supported Argo versions for v2
VaniHaripriya Jan 8, 2024
a10e4b6
Require MLMD to be deployed when using V2 Pipelines
gmfrasca Jan 8, 2024
e0ed31c
Update FuncTests to validate against new expected MLMD behavior
gmfrasca Jan 9, 2024
7979f2c
Throw error when user explitly disables MLMD with V2 Pipeline DSPAs
gmfrasca Jan 9, 2024
2d4a924
Merge branch 'dspv2' into dspv2-merge
gmfrasca Jan 9, 2024
7c67e42
Fix v2 mlmd conditional check in dspa params
gmfrasca Jan 10, 2024
cd786d9
Merge pull request #535 from gmfrasca/dspv2-merge
HumairAK Jan 10, 2024
7da7cab
Updated versions
VaniHaripriya Jan 12, 2024
9aaf91e
Merge pull request #536 from VaniHaripriya/issue-496
HumairAK Jan 16, 2024
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
16 changes: 16 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ IMG ?= quay.io/opendatahub/data-science-pipelines-operator:main
ENVTEST_K8S_VERSION = 1.25.0
# Namespace to deploy the operator
OPERATOR_NS ?= opendatahub
# Namespace to deploy v2 infrastructure
V2INFRA_NS ?= openshift-pipelines
# Namespace to deploy argo infrastructure
ARGO_NS ?= argo

# Integration Test ENVvars
KUBECONFIGPATH ?= $(HOME)/.kube/config
Expand Down Expand Up @@ -177,6 +181,18 @@ undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/confi
cd config/overlays/make-deploy && $(KUSTOMIZE) edit set namespace ${OPERATOR_NS}
$(KUSTOMIZE) build config/overlays/make-deploy | kubectl delete --ignore-not-found=$(ignore-not-found) -f -

.PHONY: argodeploy
argodeploy: manifests kustomize
cd config/overlays/make-argodeploy \
&& $(KUSTOMIZE) edit set namespace ${ARGO_NS}
$(KUSTOMIZE) build config/overlays/make-argodeploy | kubectl apply -f -

.PHONY: argoundeploy
argoundeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
cd config/overlays/make-argodeploy \
&& $(KUSTOMIZE) edit set namespace ${ARGO_NS}
$(KUSTOMIZE) build config/overlays/make-argodeploy | kubectl delete --ignore-not-found=$(ignore-not-found) -f -

.PHONY: undeploy-kind
undeploy-kind: ## Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
cd config/overlays/kind-tests \
Expand Down
27 changes: 25 additions & 2 deletions api/v1alpha1/dspipeline_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,17 @@ type DSPASpec struct {
// ObjectStorage specifies Object Store configurations, used for DS Pipelines artifact passing and storage. Specify either the your own External Storage (e.g. AWS S3), or use the default Minio deployment (unsupported, primarily for development, and testing) .
// +kubebuilder:validation:Required
*ObjectStorage `json:"objectStorage"`
*MLMD `json:"mlmd,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default:={deploy: false}
*MLMD `json:"mlmd"`
*CRDViewer `json:"crdviewer"`
// +kubebuilder:validation:Optional
// +kubebuilder:default:="v1"
DSPVersion string `json:"dspVersion,omitempty"`
// WorkflowController is an argo-specific component that manages a DSPA's Workflow objects and handles the orchestration of them with the central Argo server
// +kubebuilder:validation:Optional
// +kubebuilder:default:={deploy: false}
*WorkflowController `json:"workflowController,omitempty"`
}

type APIServer struct {
Expand Down Expand Up @@ -248,7 +256,7 @@ type Minio struct {
}

type MLMD struct {
// Enable DS Pipelines Operator management of MLMD. Setting Deploy to false disables operator reconciliation. Default: false
// Enable DS Pipelines Operator management of MLMD. Setting Deploy to false disables operator reconciliation. Default: true
// +kubebuilder:default:=false
// +kubebuilder:validation:Optional
Deploy bool `json:"deploy"`
Expand Down Expand Up @@ -277,6 +285,20 @@ type Writer struct {
Image string `json:"image"`
}

type CRDViewer struct {
// +kubebuilder:default:=true
// +kubebuilder:validation:Optional
Deploy bool `json:"deploy"`
Image string `json:"image,omitempty"`
}

type WorkflowController struct {
// +kubebuilder:default:=true
// +kubebuilder:validation:Optional
Deploy bool `json:"deploy"`
Image string `json:"image,omitempty"`
}

// ResourceRequirements structures compute resource requirements.
// Replaces ResourceRequirements from corev1 which also includes optional storage field.
// We handle storage field separately, and should not include it as a subfield for Resources.
Expand Down Expand Up @@ -304,6 +326,7 @@ type ExternalStorage struct {

type S3CredentialSecret struct {
// +kubebuilder:validation:Required
// Note: In V2 this value needs to be mlpipeline-minio-artifact
SecretName string `json:"secretName"`
// The "Keys" in the k8sSecret key/value pairs. Not to be confused with the values.
AccessKey string `json:"accessKey"`
Expand Down
40 changes: 40 additions & 0 deletions api/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 34 additions & 0 deletions config/argo/clusterrole.argo-aggregate-to-admin.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rbac.authorization.k8s.io/aggregate-to-admin: "true"
name: argo-aggregate-to-admin
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowtaskresults
- workflowtaskresults/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
32 changes: 32 additions & 0 deletions config/argo/clusterrole.argo-aggregate-to-edit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rbac.authorization.k8s.io/aggregate-to-edit: "true"
name: argo-aggregate-to-edit
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
- workflowtaskresults
- workflowtaskresults/finalizers
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
27 changes: 27 additions & 0 deletions config/argo/clusterrole.argo-aggregate-to-view.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rbac.authorization.k8s.io/aggregate-to-view: "true"
name: argo-aggregate-to-view
rules:
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workfloweventbindings
- workfloweventbindings/finalizers
- workflowtemplates
- workflowtemplates/finalizers
- cronworkflows
- cronworkflows/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
- workflowtaskresults
- workflowtaskresults/finalizers
verbs:
- get
- list
- watch
106 changes: 106 additions & 0 deletions config/argo/clusterrole.argo-cluster-role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: argo-cluster-role
rules:
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- persistentvolumeclaims
- persistentvolumeclaims/finalizers
verbs:
- create
- update
- delete
- get
- apiGroups:
- argoproj.io
resources:
- workflows
- workflows/finalizers
- workflowtasksets
- workflowtasksets/finalizers
- workflowartifactgctasks
verbs:
- get
- list
- watch
- update
- patch
- delete
- create
- apiGroups:
- argoproj.io
resources:
- workflowtemplates
- workflowtemplates/finalizers
- clusterworkflowtemplates
- clusterworkflowtemplates/finalizers
verbs:
- get
- list
- watch
- apiGroups:
- argoproj.io
resources:
- workflowtaskresults
verbs:
- list
- watch
- deletecollection
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- get
- list
- apiGroups:
- argoproj.io
resources:
- cronworkflows
- cronworkflows/finalizers
verbs:
- get
- list
- watch
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- create
- get
- delete
Loading
Loading