From 3413cb07cd2cf0dc84939d7deac76e7470f349d4 Mon Sep 17 00:00:00 2001 From: Tommy Li Date: Mon, 9 Nov 2020 14:33:45 -0800 Subject: [PATCH 1/2] add kfp-tekton deployment and update IBM stacks --- kfdef/kfctl_ibm.yaml | 80 ++++- kfdef/kfctl_ibm_customstack.yaml | 139 -------- kfdef/kfctl_ibm_multi_user.yaml | 71 +++- .../tekton-multi-user/kustomization.yaml | 42 +++ .../metadata-writer-clusterrole.yaml | 43 +++ .../ml-pipeline-apiserver-clusterrole.yaml | 50 +++ ...pipeline-persistenceagent-clusterrole.yaml | 31 ++ .../ml-pipeline-ui-clusterrole.yaml | 51 +++ .../scheduled-workflow-clusterrole.yaml | 50 +++ pipeline/installs/tekton-multi-user/sync.py | 313 +++++++++++++++++ pipeline/installs/tekton/OWNERS | 4 + .../tekton/kfp-tekton/catalog-condition.yaml | 15 + .../kfp-tekton/kfp-pipeline-config.yaml | 27 ++ .../tekton/kfp-tekton/kustomization.yaml | 17 + .../metadata-writer-deployment-patch.yaml | 15 + .../kfp-tekton/metadata-writer-role.yaml | 43 +++ .../ml-pipeline-apiserver-role.yaml | 51 +++ .../ml-pipeline-deployment-patch.yaml | 55 +++ .../ml-pipeline-persistenceagent-role.yaml | 31 ++ .../kfp-tekton/ml-pipeline-ui-role.yaml | 51 +++ .../kfp-tekton/pipeline-runner-role.yaml | 92 +++++ .../kfp-tekton/scheduledworkflow-role.yaml | 51 +++ pipeline/installs/tekton/kustomization.yaml | 39 +++ .../minio/installs/ibm/deployment-patch.yaml | 2 + .../kfp-argo-multi-user/kustomization.yaml | 36 ++ .../kustomization.yaml | 3 +- .../kfp-tekton-multi-user/kustomization.yaml | 34 ++ .../application/kfp-tekton/kustomization.yaml | 24 ++ stacks/ibm/config/params.env | 2 + ...configmap_kubeflow-config-bk4bc7m928.yaml} | 4 +- ...configmap_kubeflow-config-bk4bc7m928.yaml} | 4 +- ...configmap_kubeflow-config-bk4bc7m928.yaml} | 4 +- .../kfp-argo-multi-user/kustomize_test.go | 15 + ...ition_scheduledworkflows.kubeflow.org.yaml | 0 ...sourcedefinition_viewers.kubeflow.org.yaml | 0 ...1beta1_application_kubeflow-pipelines.yaml | 52 +++ .../app.k8s.io_v1beta1_application_minio.yaml | 0 .../app.k8s.io_v1beta1_application_mysql.yaml | 0 ..._deployment_cache-deployer-deployment.yaml | 0 .../apps_v1_deployment_cache-server.yaml | 77 +++++ ...kubeflow-pipelines-profile-controller.yaml | 59 ++++ .../apps_v1_deployment_metadata-writer.yaml | 30 ++ .../expected/apps_v1_deployment_minio.yaml | 2 + ...ployment_ml-pipeline-persistenceagent.yaml | 32 ++ ...loyment_ml-pipeline-scheduledworkflow.yaml | 30 ++ .../apps_v1_deployment_ml-pipeline-ui.yaml | 100 ++++++ ..._v1_deployment_ml-pipeline-viewer-crd.yaml | 37 ++ ...yment_ml-pipeline-visualizationserver.yaml | 0 .../apps_v1_deployment_ml-pipeline.yaml | 116 +++++++ .../expected/apps_v1_deployment_mysql.yaml | 0 ...kubeflow-pipelines-profile-controller.yaml | 48 +++ ...ha3_destinationrule_ml-pipeline-mysql.yaml | 13 + ...alpha3_destinationrule_ml-pipeline-ui.yaml | 13 + ...nrule_ml-pipeline-visualizationserver.yaml | 13 + ..._v1alpha3_destinationrule_ml-pipeline.yaml | 13 + ...1alpha3_virtualservice_ml-pipeline-ui.yaml | 0 ...-pipelines-cache-deployer-clusterrole.yaml | 0 ...terrole_kubeflow-pipelines-cache-role.yaml | 34 ++ ...beflow-pipelines-metadata-writer-role.yaml | 34 ++ ...ole_ml-pipeline-persistenceagent-role.yaml | 24 ++ ...le_ml-pipeline-scheduledworkflow-role.yaml | 39 +++ ....k8s.io_v1_clusterrole_ml-pipeline-ui.yaml | 46 +++ ...le_ml-pipeline-viewer-controller-role.yaml | 33 ++ ...ding_kubeflow-pipelines-cache-binding.yaml | 15 + ...nes-cache-deployer-clusterrolebinding.yaml | 0 ...low-pipelines-metadata-writer-binding.yaml | 15 + ..._ml-pipeline-persistenceagent-binding.yaml | 15 + ...ml-pipeline-scheduledworkflow-binding.yaml | 15 + ..._v1_clusterrolebinding_ml-pipeline-ui.yaml | 16 + ...inding_ml-pipeline-viewer-crd-binding.yaml | 15 + ...ubeflow-pipelines-cache-deployer-role.yaml | 0 ...v1_role_kubeflow-pipelines-cache-role.yaml | 0 ...beflow-pipelines-metadata-writer-role.yaml | 0 ...ole_ml-pipeline-persistenceagent-role.yaml | 0 ...le_ml-pipeline-scheduledworkflow-role.yaml | 0 ...ization.k8s.io_v1_role_ml-pipeline-ui.yaml | 0 ...le_ml-pipeline-viewer-controller-role.yaml | 0 ...horization.k8s.io_v1_role_ml-pipeline.yaml | 0 ...zation.k8s.io_v1_role_pipeline-runner.yaml | 0 ...ding_kubeflow-pipelines-cache-binding.yaml | 0 ...-pipelines-cache-deployer-rolebinding.yaml | 0 ...low-pipelines-metadata-writer-binding.yaml | 0 ..._ml-pipeline-persistenceagent-binding.yaml | 0 ...ml-pipeline-scheduledworkflow-binding.yaml | 0 ....k8s.io_v1_rolebinding_ml-pipeline-ui.yaml | 0 ...inding_ml-pipeline-viewer-crd-binding.yaml | 0 ...ion.k8s.io_v1_rolebinding_ml-pipeline.yaml | 0 ...1_rolebinding_pipeline-runner-binding.yaml | 0 ...8s.io_v1beta1_clusterrole_ml-pipeline.yaml | 37 ++ ...1beta1_clusterrolebinding_ml-pipeline.yaml | 15 + ....io_v1alpha1_servicerole_cache-server.yaml | 12 + ...pha1_servicerole_ml-pipeline-services.yaml | 15 + ...o_v1alpha1_servicerole_ml-pipeline-ui.yaml | 12 + ...g_bind-cache-server-admission-webhook.yaml | 14 + ...lebinding_bind-gateway-ml-pipeline-ui.yaml | 15 + ...rolebinding_bind-ml-pipeline-internal.yaml | 25 ++ ...configmap_kubeflow-config-bk4bc7m928.yaml} | 4 +- ...es-profile-controller-code-gd97t2m5f5.yaml | 292 ++++++++++++++++ ...nes-profile-controller-env-mgh6th2gff.yaml | 11 + ...v1_configmap_ml-pipeline-ui-configmap.yaml | 15 + ...pipeline-api-server-config-f4t72426kt.yaml | 13 + ...ap_pipeline-install-config-2829cc67f8.yaml | 0 ...1_configmap_pipeline-minio-parameters.yaml | 0 ...1_configmap_pipeline-mysql-parameters.yaml | 0 ...ne-upstream-install-config-d7hkh24mdg.yaml | 0 ..._persistentvolumeclaim_minio-pv-claim.yaml | 0 ...~g_v1_persistentvolumeclaim_minio-pvc.yaml | 0 ..._persistentvolumeclaim_mysql-pv-claim.yaml | 0 ...g_v1_secret_mlpipeline-minio-artifact.yaml | 0 .../~g_v1_secret_mysql-secret-fd5gktm75t.yaml | 0 .../expected/~g_v1_service_cache-server.yaml | 0 ...kubeflow-pipelines-profile-controller.yaml | 19 + .../expected/~g_v1_service_minio-service.yaml | 0 .../~g_v1_service_ml-pipeline-ui.yaml | 0 ...rvice_ml-pipeline-visualizationserver.yaml | 0 .../expected/~g_v1_service_ml-pipeline.yaml | 0 .../expected/~g_v1_service_mysql.yaml | 0 ..._kubeflow-pipelines-cache-deployer-sa.yaml | 0 ...rviceaccount_kubeflow-pipelines-cache.yaml | 0 ..._kubeflow-pipelines-container-builder.yaml | 0 ...nt_kubeflow-pipelines-metadata-writer.yaml | 0 ...viceaccount_kubeflow-pipelines-viewer.yaml | 0 ...eaccount_ml-pipeline-persistenceagent.yaml | 0 ...account_ml-pipeline-scheduledworkflow.yaml | 0 .../~g_v1_serviceaccount_ml-pipeline-ui.yaml | 0 ...l-pipeline-viewer-crd-service-account.yaml | 0 ...count_ml-pipeline-visualizationserver.yaml | 0 .../~g_v1_serviceaccount_ml-pipeline.yaml | 0 .../~g_v1_serviceaccount_pipeline-runner.yaml | 0 .../{pipelines => kfp-argo}/kustomize_test.go | 4 +- ...ition_scheduledworkflows.kubeflow.org.yaml | 21 ++ ...sourcedefinition_viewers.kubeflow.org.yaml | 21 ++ ...1beta1_application_kubeflow-pipelines.yaml | 0 .../app.k8s.io_v1beta1_application_minio.yaml | 31 ++ .../app.k8s.io_v1beta1_application_mysql.yaml | 32 ++ ..._deployment_cache-deployer-deployment.yaml | 36 ++ .../apps_v1_deployment_cache-server.yaml | 0 .../apps_v1_deployment_metadata-writer.yaml | 0 .../expected/apps_v1_deployment_minio.yaml | 55 +++ ...ployment_ml-pipeline-persistenceagent.yaml | 0 ...loyment_ml-pipeline-scheduledworkflow.yaml | 0 .../apps_v1_deployment_ml-pipeline-ui.yaml | 0 ..._v1_deployment_ml-pipeline-viewer-crd.yaml | 0 ...yment_ml-pipeline-visualizationserver.yaml | 54 +++ .../apps_v1_deployment_ml-pipeline.yaml | 0 .../expected/apps_v1_deployment_mysql.yaml | 40 +++ ...1alpha3_virtualservice_ml-pipeline-ui.yaml | 25 ++ ...-pipelines-cache-deployer-clusterrole.yaml | 37 ++ ...nes-cache-deployer-clusterrolebinding.yaml | 15 + ...ubeflow-pipelines-cache-deployer-role.yaml | 20 ++ ...v1_role_kubeflow-pipelines-cache-role.yaml | 36 ++ ...beflow-pipelines-metadata-writer-role.yaml | 36 ++ ...ole_ml-pipeline-persistenceagent-role.yaml | 25 ++ ...le_ml-pipeline-scheduledworkflow-role.yaml | 41 +++ ...ization.k8s.io_v1_role_ml-pipeline-ui.yaml | 47 +++ ...le_ml-pipeline-viewer-controller-role.yaml | 34 ++ ...horization.k8s.io_v1_role_ml-pipeline.yaml | 41 +++ ...zation.k8s.io_v1_role_pipeline-runner.yaml | 84 +++++ ...ding_kubeflow-pipelines-cache-binding.yaml | 16 + ...-pipelines-cache-deployer-rolebinding.yaml | 16 + ...low-pipelines-metadata-writer-binding.yaml | 16 + ..._ml-pipeline-persistenceagent-binding.yaml | 16 + ...ml-pipeline-scheduledworkflow-binding.yaml | 16 + ....k8s.io_v1_rolebinding_ml-pipeline-ui.yaml | 17 + ...inding_ml-pipeline-viewer-crd-binding.yaml | 16 + ...ion.k8s.io_v1_rolebinding_ml-pipeline.yaml | 17 + ...1_rolebinding_pipeline-runner-binding.yaml | 16 + ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ...v1_configmap_ml-pipeline-ui-configmap.yaml | 0 ...ap_pipeline-install-config-2829cc67f8.yaml | 15 + ...1_configmap_pipeline-minio-parameters.yaml | 11 + ...1_configmap_pipeline-mysql-parameters.yaml | 12 + ...ne-upstream-install-config-d7hkh24mdg.yaml | 18 + ..._persistentvolumeclaim_minio-pv-claim.yaml | 14 + ...~g_v1_persistentvolumeclaim_minio-pvc.yaml | 14 + ..._persistentvolumeclaim_mysql-pv-claim.yaml | 15 + ...g_v1_secret_mlpipeline-minio-artifact.yaml | 12 + .../~g_v1_secret_mysql-secret-fd5gktm75t.yaml | 12 + .../expected/~g_v1_service_cache-server.yaml | 16 + .../expected/~g_v1_service_minio-service.yaml | 18 + .../~g_v1_service_ml-pipeline-ui.yaml | 19 + ...rvice_ml-pipeline-visualizationserver.yaml | 18 + .../expected/~g_v1_service_ml-pipeline.yaml | 22 ++ .../expected/~g_v1_service_mysql.yaml | 18 + ..._kubeflow-pipelines-cache-deployer-sa.yaml | 8 + ...rviceaccount_kubeflow-pipelines-cache.yaml | 8 + ..._kubeflow-pipelines-container-builder.yaml | 8 + ...nt_kubeflow-pipelines-metadata-writer.yaml | 8 + ...viceaccount_kubeflow-pipelines-viewer.yaml | 8 + ...eaccount_ml-pipeline-persistenceagent.yaml | 8 + ...account_ml-pipeline-scheduledworkflow.yaml | 8 + .../~g_v1_serviceaccount_ml-pipeline-ui.yaml | 8 + ...l-pipeline-viewer-crd-service-account.yaml | 8 + ...count_ml-pipeline-visualizationserver.yaml | 8 + .../~g_v1_serviceaccount_ml-pipeline.yaml | 8 + .../~g_v1_serviceaccount_pipeline-runner.yaml | 8 + .../kfp-tekton-multi-user/kustomize_test.go | 15 + ...ition_scheduledworkflows.kubeflow.org.yaml | 21 ++ ...sourcedefinition_viewers.kubeflow.org.yaml | 21 ++ ...1beta1_application_kubeflow-pipelines.yaml | 52 +++ .../app.k8s.io_v1beta1_application_minio.yaml | 31 ++ .../app.k8s.io_v1beta1_application_mysql.yaml | 32 ++ ..._deployment_cache-deployer-deployment.yaml | 36 ++ .../apps_v1_deployment_cache-server.yaml | 77 +++++ ...kubeflow-pipelines-profile-controller.yaml | 59 ++++ .../apps_v1_deployment_metadata-writer.yaml | 35 ++ .../expected/apps_v1_deployment_minio.yaml | 55 +++ ...ployment_ml-pipeline-persistenceagent.yaml | 32 ++ ...loyment_ml-pipeline-scheduledworkflow.yaml | 30 ++ .../apps_v1_deployment_ml-pipeline-ui.yaml | 100 ++++++ ..._v1_deployment_ml-pipeline-viewer-crd.yaml | 37 ++ ...yment_ml-pipeline-visualizationserver.yaml | 54 +++ .../apps_v1_deployment_ml-pipeline.yaml | 161 +++++++++ .../expected/apps_v1_deployment_mysql.yaml | 40 +++ ...kubeflow-pipelines-profile-controller.yaml | 48 +++ ...ha3_destinationrule_ml-pipeline-mysql.yaml | 13 + ...alpha3_destinationrule_ml-pipeline-ui.yaml | 13 + ...nrule_ml-pipeline-visualizationserver.yaml | 13 + ..._v1alpha3_destinationrule_ml-pipeline.yaml | 13 + ...1alpha3_virtualservice_ml-pipeline-ui.yaml | 25 ++ ...-pipelines-cache-deployer-clusterrole.yaml | 37 ++ ...terrole_kubeflow-pipelines-cache-role.yaml | 34 ++ ...beflow-pipelines-metadata-writer-role.yaml | 46 +++ ...ole_ml-pipeline-persistenceagent-role.yaml | 34 ++ ...le_ml-pipeline-scheduledworkflow-role.yaml | 53 +++ ....k8s.io_v1_clusterrole_ml-pipeline-ui.yaml | 55 +++ ...le_ml-pipeline-viewer-controller-role.yaml | 33 ++ ...ding_kubeflow-pipelines-cache-binding.yaml | 15 + ...nes-cache-deployer-clusterrolebinding.yaml | 15 + ...low-pipelines-metadata-writer-binding.yaml | 15 + ..._ml-pipeline-persistenceagent-binding.yaml | 15 + ...ml-pipeline-scheduledworkflow-binding.yaml | 15 + ..._v1_clusterrolebinding_ml-pipeline-ui.yaml | 16 + ...inding_ml-pipeline-viewer-crd-binding.yaml | 15 + ...ubeflow-pipelines-cache-deployer-role.yaml | 20 ++ ...v1_role_kubeflow-pipelines-cache-role.yaml | 36 ++ ...beflow-pipelines-metadata-writer-role.yaml | 36 ++ ...ole_ml-pipeline-persistenceagent-role.yaml | 25 ++ ...le_ml-pipeline-scheduledworkflow-role.yaml | 41 +++ ...ization.k8s.io_v1_role_ml-pipeline-ui.yaml | 47 +++ ...le_ml-pipeline-viewer-controller-role.yaml | 34 ++ ...horization.k8s.io_v1_role_ml-pipeline.yaml | 41 +++ ...zation.k8s.io_v1_role_pipeline-runner.yaml | 84 +++++ ...ding_kubeflow-pipelines-cache-binding.yaml | 16 + ...-pipelines-cache-deployer-rolebinding.yaml | 16 + ...low-pipelines-metadata-writer-binding.yaml | 16 + ..._ml-pipeline-persistenceagent-binding.yaml | 16 + ...ml-pipeline-scheduledworkflow-binding.yaml | 16 + ....k8s.io_v1_rolebinding_ml-pipeline-ui.yaml | 17 + ...inding_ml-pipeline-viewer-crd-binding.yaml | 16 + ...ion.k8s.io_v1_rolebinding_ml-pipeline.yaml | 17 + ...1_rolebinding_pipeline-runner-binding.yaml | 16 + ...8s.io_v1beta1_clusterrole_ml-pipeline.yaml | 53 +++ ...1beta1_clusterrolebinding_ml-pipeline.yaml | 15 + ....io_v1alpha1_servicerole_cache-server.yaml | 12 + ...pha1_servicerole_ml-pipeline-services.yaml | 15 + ...o_v1alpha1_servicerole_ml-pipeline-ui.yaml | 12 + ...g_bind-cache-server-admission-webhook.yaml | 14 + ...lebinding_bind-gateway-ml-pipeline-ui.yaml | 15 + ...rolebinding_bind-ml-pipeline-internal.yaml | 25 ++ .../~g_v1_configmap_kfp-tekton-config.yaml | 31 ++ ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ...es-profile-controller-code-gg2h6k2fch.yaml | 325 ++++++++++++++++++ ...nes-profile-controller-env-mgh6th2gff.yaml | 11 + ...v1_configmap_ml-pipeline-ui-configmap.yaml | 15 + ...pipeline-api-server-config-f4t72426kt.yaml | 13 + ...ap_pipeline-install-config-2829cc67f8.yaml | 15 + ...1_configmap_pipeline-minio-parameters.yaml | 11 + ...1_configmap_pipeline-mysql-parameters.yaml | 12 + ...ne-upstream-install-config-d7hkh24mdg.yaml | 18 + ..._persistentvolumeclaim_minio-pv-claim.yaml | 14 + ...~g_v1_persistentvolumeclaim_minio-pvc.yaml | 14 + ..._persistentvolumeclaim_mysql-pv-claim.yaml | 15 + ...g_v1_secret_mlpipeline-minio-artifact.yaml | 12 + .../~g_v1_secret_mysql-secret-fd5gktm75t.yaml | 12 + .../expected/~g_v1_service_cache-server.yaml | 16 + ...kubeflow-pipelines-profile-controller.yaml | 19 + .../expected/~g_v1_service_minio-service.yaml | 18 + .../~g_v1_service_ml-pipeline-ui.yaml | 19 + ...rvice_ml-pipeline-visualizationserver.yaml | 18 + .../expected/~g_v1_service_ml-pipeline.yaml | 22 ++ .../expected/~g_v1_service_mysql.yaml | 18 + ..._kubeflow-pipelines-cache-deployer-sa.yaml | 8 + ...rviceaccount_kubeflow-pipelines-cache.yaml | 8 + ..._kubeflow-pipelines-container-builder.yaml | 8 + ...nt_kubeflow-pipelines-metadata-writer.yaml | 8 + ...viceaccount_kubeflow-pipelines-viewer.yaml | 8 + ...eaccount_ml-pipeline-persistenceagent.yaml | 8 + ...account_ml-pipeline-scheduledworkflow.yaml | 8 + .../~g_v1_serviceaccount_ml-pipeline-ui.yaml | 8 + ...l-pipeline-viewer-crd-service-account.yaml | 8 + ...count_ml-pipeline-visualizationserver.yaml | 8 + .../~g_v1_serviceaccount_ml-pipeline.yaml | 8 + .../~g_v1_serviceaccount_pipeline-runner.yaml | 8 + .../application/kfp-tekton/kustomize_test.go | 15 + ...ition_scheduledworkflows.kubeflow.org.yaml | 21 ++ ...sourcedefinition_viewers.kubeflow.org.yaml | 21 ++ ...1beta1_application_kubeflow-pipelines.yaml | 44 +++ ..._deployment_cache-deployer-deployment.yaml | 36 ++ .../apps_v1_deployment_cache-server.yaml | 79 +++++ .../apps_v1_deployment_metadata-writer.yaml | 37 ++ .../expected/apps_v1_deployment_minio.yaml | 51 +++ ...ployment_ml-pipeline-persistenceagent.yaml | 34 ++ ...loyment_ml-pipeline-scheduledworkflow.yaml | 32 ++ .../apps_v1_deployment_ml-pipeline-ui.yaml | 80 +++++ ..._v1_deployment_ml-pipeline-viewer-crd.yaml | 34 ++ ...yment_ml-pipeline-visualizationserver.yaml | 54 +++ .../apps_v1_deployment_ml-pipeline.yaml | 148 ++++++++ .../expected/apps_v1_deployment_mysql.yaml | 40 +++ ...1alpha3_virtualservice_ml-pipeline-ui.yaml | 25 ++ ...-pipelines-cache-deployer-clusterrole.yaml | 37 ++ ...nes-cache-deployer-clusterrolebinding.yaml | 15 + ...ubeflow-pipelines-cache-deployer-role.yaml | 20 ++ ...v1_role_kubeflow-pipelines-cache-role.yaml | 36 ++ ...beflow-pipelines-metadata-writer-role.yaml | 48 +++ ...ole_ml-pipeline-persistenceagent-role.yaml | 35 ++ ...le_ml-pipeline-scheduledworkflow-role.yaml | 55 +++ ...ization.k8s.io_v1_role_ml-pipeline-ui.yaml | 56 +++ ...le_ml-pipeline-viewer-controller-role.yaml | 34 ++ ...horization.k8s.io_v1_role_ml-pipeline.yaml | 56 +++ ...zation.k8s.io_v1_role_pipeline-runner.yaml | 96 ++++++ ...ding_kubeflow-pipelines-cache-binding.yaml | 16 + ...-pipelines-cache-deployer-rolebinding.yaml | 16 + ...low-pipelines-metadata-writer-binding.yaml | 16 + ..._ml-pipeline-persistenceagent-binding.yaml | 16 + ...ml-pipeline-scheduledworkflow-binding.yaml | 16 + ....k8s.io_v1_rolebinding_ml-pipeline-ui.yaml | 17 + ...inding_ml-pipeline-viewer-crd-binding.yaml | 16 + ...ion.k8s.io_v1_rolebinding_ml-pipeline.yaml | 17 + ...1_rolebinding_pipeline-runner-binding.yaml | 16 + ...ev_v1alpha1_condition_super-condition.yaml | 25 ++ .../~g_v1_configmap_kfp-tekton-config.yaml | 31 ++ ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ...v1_configmap_ml-pipeline-ui-configmap.yaml | 15 + ...ap_pipeline-install-config-2829cc67f8.yaml | 15 + ...ne-upstream-install-config-d7hkh24mdg.yaml | 18 + ...~g_v1_persistentvolumeclaim_minio-pvc.yaml | 14 + ..._persistentvolumeclaim_mysql-pv-claim.yaml | 14 + ...g_v1_secret_mlpipeline-minio-artifact.yaml | 12 + .../~g_v1_secret_mysql-secret-fd5gktm75t.yaml | 12 + .../expected/~g_v1_service_cache-server.yaml | 16 + .../expected/~g_v1_service_minio-service.yaml | 18 + .../~g_v1_service_ml-pipeline-ui.yaml | 19 + ...rvice_ml-pipeline-visualizationserver.yaml | 18 + .../expected/~g_v1_service_ml-pipeline.yaml | 22 ++ .../expected/~g_v1_service_mysql.yaml | 17 + ..._kubeflow-pipelines-cache-deployer-sa.yaml | 8 + ...rviceaccount_kubeflow-pipelines-cache.yaml | 8 + ..._kubeflow-pipelines-container-builder.yaml | 8 + ...nt_kubeflow-pipelines-metadata-writer.yaml | 8 + ...viceaccount_kubeflow-pipelines-viewer.yaml | 8 + ...eaccount_ml-pipeline-persistenceagent.yaml | 8 + ...account_ml-pipeline-scheduledworkflow.yaml | 8 + .../~g_v1_serviceaccount_ml-pipeline-ui.yaml | 8 + ...l-pipeline-viewer-crd-service-account.yaml | 8 + ...count_ml-pipeline-visualizationserver.yaml | 8 + .../~g_v1_serviceaccount_ml-pipeline.yaml | 8 + .../~g_v1_serviceaccount_pipeline-runner.yaml | 8 + ...configmap_kubeflow-config-bk4bc7m928.yaml} | 4 +- ...deployment_jupyter-web-app-deployment.yaml | 4 +- ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ..._configmap_kubeflow-config-d7dttg89h2.yaml | 9 - .../apps_v1_deployment_centraldashboard.yaml | 4 +- ...pps_v1_deployment_profiles-deployment.yaml | 8 +- ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ..._configmap_kubeflow-config-d7dttg89h2.yaml | 9 - ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ..._configmap_kubeflow-config-d7dttg89h2.yaml | 9 - ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ..._configmap_kubeflow-config-d7dttg89h2.yaml | 9 - ..._configmap_kubeflow-config-bk4bc7m928.yaml | 11 + ..._configmap_kubeflow-config-d7dttg89h2.yaml | 9 - .../apps_v1_deployment_centraldashboard.yaml | 4 +- ...deployment_jupyter-web-app-deployment.yaml | 4 +- .../expected/apps_v1_deployment_minio.yaml | 2 + .../apps_v1_deployment_ml-pipeline-ui.yaml | 4 +- .../apps_v1_deployment_ml-pipeline.yaml | 4 +- ...pps_v1_deployment_profiles-deployment.yaml | 8 +- ...configmap_kubeflow-config-bk4bc7m928.yaml} | 4 +- .../apps_v1_deployment_centraldashboard.yaml | 4 +- ...deployment_jupyter-web-app-deployment.yaml | 4 +- .../expected/apps_v1_deployment_minio.yaml | 2 + ...pps_v1_deployment_profiles-deployment.yaml | 8 +- ...configmap_kubeflow-config-bk4bc7m928.yaml} | 4 +- 384 files changed, 8680 insertions(+), 233 deletions(-) delete mode 100644 kfdef/kfctl_ibm_customstack.yaml create mode 100644 pipeline/installs/tekton-multi-user/kustomization.yaml create mode 100644 pipeline/installs/tekton-multi-user/metadata-writer-clusterrole.yaml create mode 100644 pipeline/installs/tekton-multi-user/ml-pipeline-apiserver-clusterrole.yaml create mode 100644 pipeline/installs/tekton-multi-user/ml-pipeline-persistenceagent-clusterrole.yaml create mode 100644 pipeline/installs/tekton-multi-user/ml-pipeline-ui-clusterrole.yaml create mode 100644 pipeline/installs/tekton-multi-user/scheduled-workflow-clusterrole.yaml create mode 100644 pipeline/installs/tekton-multi-user/sync.py create mode 100644 pipeline/installs/tekton/OWNERS create mode 100644 pipeline/installs/tekton/kfp-tekton/catalog-condition.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/kfp-pipeline-config.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/kustomization.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/metadata-writer-deployment-patch.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/metadata-writer-role.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/ml-pipeline-apiserver-role.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/ml-pipeline-deployment-patch.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/ml-pipeline-persistenceagent-role.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/ml-pipeline-ui-role.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/pipeline-runner-role.yaml create mode 100644 pipeline/installs/tekton/kfp-tekton/scheduledworkflow-role.yaml create mode 100644 pipeline/installs/tekton/kustomization.yaml create mode 100644 stacks/ibm/application/kfp-argo-multi-user/kustomization.yaml rename stacks/ibm/application/{pipelines => kfp-argo}/kustomization.yaml (97%) create mode 100644 stacks/ibm/application/kfp-tekton-multi-user/kustomization.yaml create mode 100644 stacks/ibm/application/kfp-tekton/kustomization.yaml rename tests/stacks/ibm/application/{katib/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml => admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml} (64%) rename tests/stacks/ibm/application/{notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml => argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml} (64%) rename tests/stacks/ibm/application/{admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml => katib/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml} (64%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/kustomize_test.go rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/apps_v1_deployment_minio.yaml (96%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/apps_v1_deployment_mysql.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml rename tests/stacks/ibm/application/{argo/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml => kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml} (64%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gd97t2m5f5.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_service_cache-server.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_service_minio-service.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_service_ml-pipeline.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_service_mysql.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo-multi-user}/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo}/kustomize_test.go (72%) create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/apps_v1_deployment_cache-server.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/apps_v1_deployment_metadata-writer.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_minio.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml (100%) rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/apps_v1_deployment_ml-pipeline.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml rename tests/stacks/ibm/application/{pipelines => kfp-argo}/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml (100%) create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_minio-service.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/kustomize_test.go create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_minio.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gg2h6k2fch.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_minio-service.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/kustomize_test.go create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_metadata-writer.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_minio.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/tekton.dev_v1alpha1_condition_super-condition.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_cache-server.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_minio-service.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_mysql.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml create mode 100644 tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml rename tests/stacks/ibm/{multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml => application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml} (76%) create mode 100644 tests/stacks/ibm/application/notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml delete mode 100644 tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml create mode 100644 tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml delete mode 100644 tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml create mode 100644 tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml delete mode 100644 tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml create mode 100644 tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml delete mode 100644 tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml create mode 100644 tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml delete mode 100644 tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename tests/stacks/ibm/{application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml => multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml} (76%) rename tests/stacks/ibm/test_data/expected/{~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml => ~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml} (76%) diff --git a/kfdef/kfctl_ibm.yaml b/kfdef/kfctl_ibm.yaml index 5e899d487c..a4b996be8d 100644 --- a/kfdef/kfctl_ibm.yaml +++ b/kfdef/kfctl_ibm.yaml @@ -26,16 +26,19 @@ spec: name: manifests path: stacks/ibm/application/add-anonymous-user-filter name: add-anonymous-user-filter + # application - kustomizeConfig: repoRef: name: manifests path: application/v3 name: application + # bootstrap - kustomizeConfig: repoRef: name: manifests path: stacks/ibm/application/bootstrap name: bootstrap + # cert-manager - kustomizeConfig: repoRef: name: manifests @@ -51,22 +54,76 @@ spec: name: manifests path: stacks/ibm/application/cert-manager name: cert-manager - # Install Kubeflow applications. + # Tekton - kustomizeConfig: repoRef: name: manifests - path: stacks/ibm + path: tektoncd/tektoncd-install/base + name: tektoncd-install + - kustomizeConfig: + repoRef: + name: manifests + path: tektoncd/tektoncd-dashboard/base + name: tektoncd-dashboard + # Kubeflow components + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/admission-webhook + name: admission-webhook + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/profile-control-plane name: kubeflow-apps - kustomizeConfig: repoRef: name: manifests - path: metacontroller/base - name: metacontroller + path: stacks/ibm/application/metadata + name: metadata + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/katib + name: katib - kustomizeConfig: repoRef: name: manifests - path: stacks/ibm/application/spark-operator - name: spark-operator + path: stacks/ibm/application/kfp-tekton + name: kfp-tekton + # Switch the above kfp-tekton to + # the below applications if you want to + # run KFP with Argo + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/argo + # name: argo + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/kfp-argo + # name: kfp-argo + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/notebooks + name: notebooks + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/pytorch-job + name: pytorch-job + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/tf-job + name: tf-job + - kustomizeConfig: + repoRef: + name: manifests + path: metacontroller/base + name: metacontroller - kustomizeConfig: repoRef: name: manifests @@ -84,6 +141,17 @@ spec: name: manifests path: stacks/ibm/application/spartakus name: spartakus + # Optional applications + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/seldon-core-operator + # name: seldon-core-operator + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/spark-operator + # name: spark-operator repos: - name: manifests uri: https://github.com/kubeflow/manifests/archive/master.tar.gz diff --git a/kfdef/kfctl_ibm_customstack.yaml b/kfdef/kfctl_ibm_customstack.yaml deleted file mode 100644 index e49af49da9..0000000000 --- a/kfdef/kfctl_ibm_customstack.yaml +++ /dev/null @@ -1,139 +0,0 @@ -apiVersion: kfdef.apps.kubeflow.org/v1 -kind: KfDef -metadata: - namespace: kubeflow -spec: - applications: - # Install istio in a different namespace: istio-system - # Remove this application if istio is already installed - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/istio-1-3-1-stack - name: istio-stack - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/cluster-local-gateway-1-3-1 - name: cluster-local-gateway - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/istio - name: istio - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/add-anonymous-user-filter - name: add-anonymous-user-filter - # application - - kustomizeConfig: - repoRef: - name: manifests - path: application/v3 - name: application - # bootstrap - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/bootstrap - name: bootstrap - # cert-manager - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/cert-manager-crds - name: cert-manager-crds - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/cert-manager-kube-system-resources - name: cert-manager-kube-system-resources - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/cert-manager - name: cert-manager - # Kubeflow components - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/admission-webhook - name: admission-webhook - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/profile-control-plane - name: kubeflow-apps - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/metadata - name: metadata - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/argo - name: argo - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/katib - name: katib - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/pipelines - name: pipelines - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/notebooks - name: notebooks - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/pytorch-job - name: pytorch-job - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/tf-job - name: tf-job - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/seldon-core-operator - name: seldon-core-operator - # other applications - - kustomizeConfig: - repoRef: - name: manifests - path: metacontroller/base - name: metacontroller - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/spark-operator - name: spark-operator - - kustomizeConfig: - repoRef: - name: manifests - path: knative/installs/generic - name: knative - - kustomizeConfig: - repoRef: - name: manifests - path: kfserving/installs/generic - name: kfserving - # Spartakus is a separate applications so that kfctl can remove it - # to disable usage reporting - - kustomizeConfig: - repoRef: - name: manifests - path: stacks/ibm/application/spartakus - name: spartakus - repos: - - name: manifests - uri: https://github.com/kubeflow/manifests/archive/master.tar.gz - version: master diff --git a/kfdef/kfctl_ibm_multi_user.yaml b/kfdef/kfctl_ibm_multi_user.yaml index 767f8565da..dd5985b92a 100644 --- a/kfdef/kfctl_ibm_multi_user.yaml +++ b/kfdef/kfctl_ibm_multi_user.yaml @@ -61,17 +61,69 @@ spec: name: manifests path: metacontroller/base name: metacontroller - # Install kubeflow applications. - kustomizeConfig: repoRef: name: manifests - path: stacks/ibm/multi-user + path: tektoncd/tektoncd-install/base + name: tektoncd-install + - kustomizeConfig: + repoRef: + name: manifests + path: tektoncd/tektoncd-dashboard/base + name: tektoncd-dashboard + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/admission-webhook + name: admission-webhook + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/profile-control-plane name: kubeflow-apps - kustomizeConfig: repoRef: name: manifests - path: stacks/ibm/application/spark-operator - name: spark-operator + path: stacks/ibm/application/metadata + name: metadata + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/katib + name: katib + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/kfp-tekton-multi-user + name: kfp-tekton-multi-user + # Switch the above kfp-tekton to + # the below applications if you want to + # run KFP with Argo + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/argo + # name: argo + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/kfp-argo-multi-user + # name: kfp-argo-multi-user + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/notebooks + name: notebooks + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/pytorch-job + name: pytorch-job + - kustomizeConfig: + repoRef: + name: manifests + path: stacks/ibm/application/tf-job + name: tf-job - kustomizeConfig: repoRef: name: manifests @@ -87,6 +139,17 @@ spec: name: manifests path: stacks/ibm/application/spartakus name: spartakus + # Optional applications + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/seldon-core-operator + # name: seldon-core-operator + # - kustomizeConfig: + # repoRef: + # name: manifests + # path: stacks/ibm/application/spark-operator + # name: spark-operator repos: - name: manifests uri: https://github.com/kubeflow/manifests/archive/master.tar.gz diff --git a/pipeline/installs/tekton-multi-user/kustomization.yaml b/pipeline/installs/tekton-multi-user/kustomization.yaml new file mode 100644 index 0000000000..a8a3ceb83d --- /dev/null +++ b/pipeline/installs/tekton-multi-user/kustomization.yaml @@ -0,0 +1,42 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: kubeflow +commonLabels: + app.kubernetes.io/name: kubeflow-pipelines + app.kubernetes.io/component: ml-pipeline +resources: +- ../multi-user +- ../tekton/kfp-tekton/kfp-pipeline-config.yaml +patchesStrategicMerge: +- metadata-writer-clusterrole.yaml +- ml-pipeline-apiserver-clusterrole.yaml +- ml-pipeline-persistenceagent-clusterrole.yaml +- ml-pipeline-ui-clusterrole.yaml +- scheduled-workflow-clusterrole.yaml +- ../tekton/kfp-tekton/ml-pipeline-deployment-patch.yaml +- ../tekton/kfp-tekton/metadata-writer-deployment-patch.yaml +configMapGenerator: +- name: kubeflow-pipelines-profile-controller-code + behavior: replace + files: + - sync.py +images: + - name: mysql + newTag: "5.6" + - name: minio/minio + newTag: RELEASE.2018-02-09T22-40-05Z + - name: gcr.io/ml-pipeline/api-server + newName: docker.io/aipipeline/api-server + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/persistenceagent + newName: docker.io/aipipeline/persistenceagent + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/frontend + newName: docker.io/aipipeline/frontend + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/metadata-writer + newName: docker.io/aipipeline/metadata-writer + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/scheduledworkflow + newName: docker.io/aipipeline/scheduledworkflow + newTag: 0.4.0 diff --git a/pipeline/installs/tekton-multi-user/metadata-writer-clusterrole.yaml b/pipeline/installs/tekton-multi-user/metadata-writer-clusterrole.yaml new file mode 100644 index 0000000000..ef3efc4212 --- /dev/null +++ b/pipeline/installs/tekton-multi-user/metadata-writer-clusterrole.yaml @@ -0,0 +1,43 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: kubeflow-pipelines-metadata-writer-role +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch + - update + - patch diff --git a/pipeline/installs/tekton-multi-user/ml-pipeline-apiserver-clusterrole.yaml b/pipeline/installs/tekton-multi-user/ml-pipeline-apiserver-clusterrole.yaml new file mode 100644 index 0000000000..bec3396303 --- /dev/null +++ b/pipeline/installs/tekton-multi-user/ml-pipeline-apiserver-clusterrole.yaml @@ -0,0 +1,50 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: ml-pipeline +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - update + - patch + - delete +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get + - delete +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/pipeline/installs/tekton-multi-user/ml-pipeline-persistenceagent-clusterrole.yaml b/pipeline/installs/tekton-multi-user/ml-pipeline-persistenceagent-clusterrole.yaml new file mode 100644 index 0000000000..cc51fe97fc --- /dev/null +++ b/pipeline/installs/tekton-multi-user/ml-pipeline-persistenceagent-clusterrole.yaml @@ -0,0 +1,31 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ml-pipeline-persistenceagent-role +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - get + - list + - watch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch diff --git a/pipeline/installs/tekton-multi-user/ml-pipeline-ui-clusterrole.yaml b/pipeline/installs/tekton-multi-user/ml-pipeline-ui-clusterrole.yaml new file mode 100644 index 0000000000..459cb38b73 --- /dev/null +++ b/pipeline/installs/tekton-multi-user/ml-pipeline-ui-clusterrole.yaml @@ -0,0 +1,51 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ml-pipeline-ui +rules: +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - list +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list +- apiGroups: + - "kubeflow.org" + resources: + - viewers + verbs: + - create + - get + - list + - watch + - delete +- apiGroups: + - "argoproj.io" + resources: + - workflows + verbs: + - get + - list +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list diff --git a/pipeline/installs/tekton-multi-user/scheduled-workflow-clusterrole.yaml b/pipeline/installs/tekton-multi-user/scheduled-workflow-clusterrole.yaml new file mode 100644 index 0000000000..e0eee898b8 --- /dev/null +++ b/pipeline/installs/tekton-multi-user/scheduled-workflow-clusterrole.yaml @@ -0,0 +1,50 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ml-pipeline-scheduledworkflow-role +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - '' + resources: + - events + verbs: + - create + - patch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/pipeline/installs/tekton-multi-user/sync.py b/pipeline/installs/tekton-multi-user/sync.py new file mode 100644 index 0000000000..ff58ed1145 --- /dev/null +++ b/pipeline/installs/tekton-multi-user/sync.py @@ -0,0 +1,313 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json +import os +import base64 + +kfp_version = os.environ["KFP_VERSION"] +disable_istio_sidecar = os.environ.get("DISABLE_ISTIO_SIDECAR") == "true" +mlpipeline_minio_access_key = base64.b64encode( + bytes(os.environ.get("MINIO_ACCESS_KEY"), 'utf-8')).decode('utf-8') +mlpipeline_minio_secret_key = base64.b64encode( + bytes(os.environ.get("MINIO_SECRET_KEY"), 'utf-8')).decode('utf-8') + + +class Controller(BaseHTTPRequestHandler): + def sync(self, parent, children): + # HACK: Currently using serving.kubeflow.org/inferenceservice to identify + # kubeflow user namespaces. + # TODO: let Kubeflow profile controller add a pipeline specific label to + # user namespaces and use that label instead. + pipeline_enabled = parent.get("metadata", {}).get( + "labels", {}).get("serving.kubeflow.org/inferenceservice") + + if not pipeline_enabled: + return {"status": {}, "children": []} + + # Compute status based on observed state. + desired_status = { + "kubeflow-pipelines-ready": \ + len(children["Secret.v1"]) == 1 and \ + len(children["ConfigMap.v1"]) == 1 and \ + len(children["Deployment.apps/v1"]) == 2 and \ + len(children["Service.v1"]) == 2 and \ + len(children["DestinationRule.networking.istio.io/v1alpha3"]) == 1 and \ + len(children["ServiceRole.rbac.istio.io/v1alpha1"]) == 1 and \ + len(children["ServiceRoleBinding.rbac.istio.io/v1alpha1"]) == 1 and \ + "True" or "False" + } + + # Generate the desired child object(s). + # parent is a namespace + namespace = parent.get("metadata", {}).get("name") + desired_resources = [ + { + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "metadata-grpc-configmap", + "namespace": namespace, + }, + "data": { + "METADATA_GRPC_SERVICE_HOST": + "metadata-grpc-service.kubeflow", + "METADATA_GRPC_SERVICE_PORT": "8080", + }, + }, + # Visualization server related manifests below + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "labels": { + "app": "ml-pipeline-visualizationserver" + }, + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "selector": { + "matchLabels": { + "app": "ml-pipeline-visualizationserver" + }, + }, + "template": { + "metadata": { + "labels": { + "app": "ml-pipeline-visualizationserver" + }, + "annotations": disable_istio_sidecar and { + "sidecar.istio.io/inject": "false" + } or {}, + }, + "spec": { + "containers": [{ + "image": + "gcr.io/ml-pipeline/visualization-server:" + + kfp_version, + "imagePullPolicy": + "IfNotPresent", + "name": + "ml-pipeline-visualizationserver", + "ports": [{ + "containerPort": 8888 + }], + }], + "serviceAccountName": + "default-editor", + }, + }, + }, + }, + { + "apiVersion": "networking.istio.io/v1alpha3", + "kind": "DestinationRule", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "host": "ml-pipeline-visualizationserver", + "trafficPolicy": { + "tls": { + "mode": "ISTIO_MUTUAL" + } + } + } + }, + { + "apiVersion": "rbac.istio.io/v1alpha1", + "kind": "ServiceRole", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "rules": [{ + "services": ["ml-pipeline-visualizationserver.*"] + }] + } + }, + { + "apiVersion": "rbac.istio.io/v1alpha1", + "kind": "ServiceRoleBinding", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "subjects": [{ + "properties": { + "source.principal": + "cluster.local/ns/kubeflow/sa/ml-pipeline" + } + }], + "roleRef": { + "kind": "ServiceRole", + "name": "ml-pipeline-visualizationserver" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "ports": [{ + "name": "http", + "port": 8888, + "protocol": "TCP", + "targetPort": 8888, + }], + "selector": { + "app": "ml-pipeline-visualizationserver", + }, + }, + }, + # Artifact fetcher related resources below. + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "labels": { + "app": "ml-pipeline-ui-artifact" + }, + "name": "ml-pipeline-ui-artifact", + "namespace": namespace, + }, + "spec": { + "selector": { + "matchLabels": { + "app": "ml-pipeline-ui-artifact" + } + }, + "template": { + "metadata": { + "labels": { + "app": "ml-pipeline-ui-artifact" + }, + "annotations": disable_istio_sidecar and { + "sidecar.istio.io/inject": "false" + } or {}, + }, + "spec": { + "containers": [{ + "name": + "ml-pipeline-ui-artifact", + "image": + "gcr.io/ml-pipeline/frontend:" + kfp_version, + "imagePullPolicy": + "IfNotPresent", + "ports": [{ + "containerPort": 3000 + }] + }], + "serviceAccountName": + "default-editor" + } + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "ml-pipeline-ui-artifact", + "namespace": namespace, + "labels": { + "app": "ml-pipeline-ui-artifact" + } + }, + "spec": { + "ports": [{ + "name": + "http", # name is required to let istio understand request protocol + "port": 80, + "protocol": "TCP", + "targetPort": 3000 + }], + "selector": { + "app": "ml-pipeline-ui-artifact" + } + } + }, + { + "apiVersion": "tekton.dev/v1alpha1", + "kind": "Condition", + "metadata": { + "name": "super-condition", + "namespace": namespace, + }, + "spec": { + "check": { + "image": "python:alpine3.6", + "script": ("python -c 'import sys\ninput1=str.rstrip(sys.argv[1])\n" + "input2=str.rstrip(sys.argv[2])\ntry:\n input1=int(input1)\n" + " input2=int(input2)\nexcept:\n input1=str(input1)\nsys.exit(0)" + " if (input1 $(params.operator) input2) else sys.exit(1)' " + "'$(params.operand1)' '$(params.operand2)'") + }, + "params": [ + { + "name": "operand1", + "type": "string" + }, + { + "name": "operand2", + "type": "string" + }, + { + "name": "operator", + "type": "string" + } + ] + } + }, + ] + print('Received request:', parent) + print('Desired resources except secrets:', desired_resources) + # Moved after the print argument because this is sensitive data. + desired_resources.append({ + "apiVersion": "v1", + "kind": "Secret", + "metadata": { + "name": "mlpipeline-minio-artifact", + "namespace": namespace, + }, + "data": { + "accesskey": mlpipeline_minio_access_key, + "secretkey": mlpipeline_minio_secret_key, + }, + }) + + return {"status": desired_status, "children": desired_resources} + + def do_POST(self): + # Serve the sync() function as a JSON webhook. + observed = json.loads( + self.rfile.read(int(self.headers.get("content-length")))) + desired = self.sync(observed["parent"], observed["children"]) + + self.send_response(200) + self.send_header("Content-type", "application/json") + self.end_headers() + self.wfile.write(bytes(json.dumps(desired), 'utf-8')) + + +HTTPServer(("", 80), Controller).serve_forever() diff --git a/pipeline/installs/tekton/OWNERS b/pipeline/installs/tekton/OWNERS new file mode 100644 index 0000000000..0e5c85d5a2 --- /dev/null +++ b/pipeline/installs/tekton/OWNERS @@ -0,0 +1,4 @@ +approvers: +- adrian555 +- animeshsingh +- tomcli diff --git a/pipeline/installs/tekton/kfp-tekton/catalog-condition.yaml b/pipeline/installs/tekton/kfp-tekton/catalog-condition.yaml new file mode 100644 index 0000000000..592b03fd08 --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/catalog-condition.yaml @@ -0,0 +1,15 @@ +apiVersion: tekton.dev/v1alpha1 +kind: Condition +metadata: + name: super-condition +spec: + check: + image: python:alpine3.6 + script: "python -c 'import sys\ninput1=str.rstrip(sys.argv[1])\ninput2=str.rstrip(sys.argv[2])\n\ + try:\n input1=int(input1)\n input2=int(input2)\nexcept:\n input1=str(input1)\n\ + sys.exit(0) if (input1 $(params.operator) input2) else sys.exit(1)' '$(params.operand1)'\ + \ '$(params.operand2)'" + params: + - name: operand1 + - name: operand2 + - name: operator diff --git a/pipeline/installs/tekton/kfp-tekton/kfp-pipeline-config.yaml b/pipeline/installs/tekton/kfp-tekton/kfp-pipeline-config.yaml new file mode 100644 index 0000000000..0d5ec33b14 --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/kfp-pipeline-config.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: kfp-tekton-config +data: + artifact_bucket: "mlpipeline" + artifact_endpoint: "minio-service.kubeflow:9000" + artifact_endpoint_scheme: "http://" + artifact_image: "minio/mc" + archive_logs: "false" + track_artifacts: "true" + strip_eof: "false" + inject_default_script: "true" + artifact_script: |- + #!/usr/bin/env sh + push_artifact() { + tar -cvzf $1.tgz $2 + mc cp $1.tgz storage/$ARTIFACT_BUCKET/artifacts/$PIPELINERUN/$PIPELINETASK/$1.tgz + } + push_log() { + cat /var/log/containers/$PODNAME*$NAMESPACE*step-main*.log > step-main.log + push_artifact main-log step-main.log + } + strip_eof() { + awk 'NF' $2 | head -c -1 > $1_temp_save && cp $1_temp_save $2 + } + mc config host add storage ${ARTIFACT_ENDPOINT_SCHEME}${ARTIFACT_ENDPOINT} $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY diff --git a/pipeline/installs/tekton/kfp-tekton/kustomization.yaml b/pipeline/installs/tekton/kfp-tekton/kustomization.yaml new file mode 100644 index 0000000000..7d2390fe7c --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/kustomization.yaml @@ -0,0 +1,17 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- ../../generic +- catalog-condition.yaml +- kfp-pipeline-config.yaml + +patchesStrategicMerge: +- metadata-writer-role.yaml +- ml-pipeline-apiserver-role.yaml +- ml-pipeline-persistenceagent-role.yaml +- ml-pipeline-ui-role.yaml +- pipeline-runner-role.yaml +- scheduledworkflow-role.yaml +- ml-pipeline-deployment-patch.yaml +- metadata-writer-deployment-patch.yaml diff --git a/pipeline/installs/tekton/kfp-tekton/metadata-writer-deployment-patch.yaml b/pipeline/installs/tekton/kfp-tekton/metadata-writer-deployment-patch.yaml new file mode 100644 index 0000000000..a5ab9a9aa1 --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/metadata-writer-deployment-patch.yaml @@ -0,0 +1,15 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: metadata-writer +spec: + template: + spec: + containers: + - name: main + env: + - name: ARCHIVE_LOGS + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: archive_logs diff --git a/pipeline/installs/tekton/kfp-tekton/metadata-writer-role.yaml b/pipeline/installs/tekton/kfp-tekton/metadata-writer-role.yaml new file mode 100644 index 0000000000..273640c051 --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/metadata-writer-role.yaml @@ -0,0 +1,43 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: kubeflow-pipelines-metadata-writer-role +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/pipeline/installs/tekton/kfp-tekton/ml-pipeline-apiserver-role.yaml b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-apiserver-role.yaml new file mode 100644 index 0000000000..4b67678b9d --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-apiserver-role.yaml @@ -0,0 +1,51 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: ml-pipeline +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get + - list + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - update + - patch + - delete diff --git a/pipeline/installs/tekton/kfp-tekton/ml-pipeline-deployment-patch.yaml b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-deployment-patch.yaml new file mode 100644 index 0000000000..c0aa15317a --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-deployment-patch.yaml @@ -0,0 +1,55 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ml-pipeline +spec: + template: + spec: + containers: + - name: ml-pipeline-api-server + env: + - name: ARTIFACT_BUCKET + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: artifact_bucket + - name: ARTIFACT_ENDPOINT + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: artifact_endpoint + - name: ARTIFACT_ENDPOINT_SCHEME + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: artifact_endpoint_scheme + - name: ARCHIVE_LOGS + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: archive_logs + - name: TRACK_ARTIFACTS + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: track_artifacts + - name: STRIP_EOF + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: strip_eof + - name: ARTIFACT_SCRIPT + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: artifact_script + - name: ARTIFACT_IMAGE + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: artifact_image + - name: INJECT_DEFAULT_SCRIPT + valueFrom: + configMapKeyRef: + name: kfp-tekton-config + key: inject_default_script diff --git a/pipeline/installs/tekton/kfp-tekton/ml-pipeline-persistenceagent-role.yaml b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-persistenceagent-role.yaml new file mode 100644 index 0000000000..00dd2bac6c --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-persistenceagent-role.yaml @@ -0,0 +1,31 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: ml-pipeline-persistenceagent-role +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - get + - list + - watch diff --git a/pipeline/installs/tekton/kfp-tekton/ml-pipeline-ui-role.yaml b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-ui-role.yaml new file mode 100644 index 0000000000..04e2bf80f6 --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/ml-pipeline-ui-role.yaml @@ -0,0 +1,51 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: ml-pipeline-ui +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - list +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list +- apiGroups: + - "kubeflow.org" + resources: + - viewers + verbs: + - create + - get + - list + - watch + - delete +- apiGroups: + - "argoproj.io" + resources: + - workflows + verbs: + - get + - list diff --git a/pipeline/installs/tekton/kfp-tekton/pipeline-runner-role.yaml b/pipeline/installs/tekton/kfp-tekton/pipeline-runner-role.yaml new file mode 100644 index 0000000000..f0c33474a0 --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/pipeline-runner-role.yaml @@ -0,0 +1,92 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: pipeline-runner +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - secrets + verbs: + - get +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - watch + - list +- apiGroups: + - "" + resources: + - persistentvolumes + - persistentvolumeclaims + verbs: + - '*' +- apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - create + - delete + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - pods + - pods/exec + - pods/log + - services + verbs: + - '*' +- apiGroups: + - "" + - apps + - extensions + resources: + - deployments + - replicasets + verbs: + - '*' +- apiGroups: + - kubeflow.org + resources: + - '*' + verbs: + - '*' +- apiGroups: + - batch + resources: + - jobs + verbs: + - '*' +- apiGroups: + - machinelearning.seldon.io + resources: + - seldondeployments + verbs: + - '*' diff --git a/pipeline/installs/tekton/kfp-tekton/scheduledworkflow-role.yaml b/pipeline/installs/tekton/kfp-tekton/scheduledworkflow-role.yaml new file mode 100644 index 0000000000..3abdf561dc --- /dev/null +++ b/pipeline/installs/tekton/kfp-tekton/scheduledworkflow-role.yaml @@ -0,0 +1,51 @@ + +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: ml-pipeline-scheduledworkflow-role +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - '' + resources: + - events + verbs: + - create + - patch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/pipeline/installs/tekton/kustomization.yaml b/pipeline/installs/tekton/kustomization.yaml new file mode 100644 index 0000000000..3e730c7029 --- /dev/null +++ b/pipeline/installs/tekton/kustomization.yaml @@ -0,0 +1,39 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +bases: + - ../../upstream/env/platform-agnostic/minio + - ../../upstream/env/platform-agnostic/mysql + - kfp-tekton + +# Identifier for application manager to apply ownerReference. +# The ownerReference ensures the resources get garbage collected +# when application is deleted. +commonLabels: + app.kubernetes.io/name: kubeflow-pipelines + app.kubernetes.io/component: ml-pipeline + +# !!! If you want to customize the namespace, +# please also update base/cache-deployer/cluster-scoped/cache-deployer-clusterrolebinding.yaml +namespace: kubeflow + +images: + - name: mysql + newTag: "5.6" + - name: minio/minio + newTag: RELEASE.2018-02-09T22-40-05Z + - name: gcr.io/ml-pipeline/api-server + newName: docker.io/aipipeline/api-server + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/persistenceagent + newName: docker.io/aipipeline/persistenceagent + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/frontend + newName: docker.io/aipipeline/frontend + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/metadata-writer + newName: docker.io/aipipeline/metadata-writer + newTag: 0.4.0 + - name: gcr.io/ml-pipeline/scheduledworkflow + newName: docker.io/aipipeline/scheduledworkflow + newTag: 0.4.0 diff --git a/pipeline/minio/installs/ibm/deployment-patch.yaml b/pipeline/minio/installs/ibm/deployment-patch.yaml index 6cb7f3e9e9..c9cb0ad97a 100644 --- a/pipeline/minio/installs/ibm/deployment-patch.yaml +++ b/pipeline/minio/installs/ibm/deployment-patch.yaml @@ -2,6 +2,8 @@ apiVersion: apps/v1 kind: Deployment metadata: name: minio + annotations: + sidecar.istio.io/inject: "false" spec: template: spec: diff --git a/stacks/ibm/application/kfp-argo-multi-user/kustomization.yaml b/stacks/ibm/application/kfp-argo-multi-user/kustomization.yaml new file mode 100644 index 0000000000..29805289da --- /dev/null +++ b/stacks/ibm/application/kfp-argo-multi-user/kustomization.yaml @@ -0,0 +1,36 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: kubeflow +resources: + - ../../../../pipeline/minio/installs/ibm + - ../../../../pipeline/mysql/installs/ibm + - ../../../../pipeline/installs/multi-user +configMapGenerator: +- name: pipeline-mysql-parameters + behavior: merge + literals: + - mysqlPvcName=mysql-pv-claim +- name: pipeline-minio-parameters + behavior: merge + literals: + - minioPvcName=minio-pv-claim +- name: kubeflow-config + envs: + - ../../config/params.env +vars: +# We need to define vars at the top level otherwise we will get +# conflicts. +- fieldref: + fieldPath: data.clusterDomain + name: clusterDomain + objref: + apiVersion: v1 + kind: ConfigMap + name: kubeflow-config +- fieldref: + fieldPath: metadata.namespace + name: namespace + objref: + apiVersion: v1 + kind: ConfigMap + name: kubeflow-config diff --git a/stacks/ibm/application/pipelines/kustomization.yaml b/stacks/ibm/application/kfp-argo/kustomization.yaml similarity index 97% rename from stacks/ibm/application/pipelines/kustomization.yaml rename to stacks/ibm/application/kfp-argo/kustomization.yaml index 3ace864c17..d745d03655 100644 --- a/stacks/ibm/application/pipelines/kustomization.yaml +++ b/stacks/ibm/application/kfp-argo/kustomization.yaml @@ -19,7 +19,7 @@ configMapGenerator: - ../../config/params.env vars: # We need to define vars at the top level otherwise we will get -# conflicts. +# conflicts. - fieldref: fieldPath: data.clusterDomain name: clusterDomain @@ -34,4 +34,3 @@ vars: apiVersion: v1 kind: ConfigMap name: kubeflow-config - \ No newline at end of file diff --git a/stacks/ibm/application/kfp-tekton-multi-user/kustomization.yaml b/stacks/ibm/application/kfp-tekton-multi-user/kustomization.yaml new file mode 100644 index 0000000000..0bf283de94 --- /dev/null +++ b/stacks/ibm/application/kfp-tekton-multi-user/kustomization.yaml @@ -0,0 +1,34 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: kubeflow +resources: + - ../../../../pipeline/minio/installs/ibm + - ../../../../pipeline/mysql/installs/ibm + - ../../../../pipeline/installs/tekton-multi-user +configMapGenerator: +- name: pipeline-mysql-parameters + behavior: merge + literals: + - mysqlPvcName=mysql-pv-claim +- name: pipeline-minio-parameters + behavior: merge + literals: + - minioPvcName=minio-pv-claim +- name: kubeflow-config + envs: + - ../../config/params.env +vars: +- fieldref: + fieldPath: data.clusterDomain + name: clusterDomain + objref: + apiVersion: v1 + kind: ConfigMap + name: kubeflow-config +- fieldref: + fieldPath: metadata.namespace + name: namespace + objref: + apiVersion: v1 + kind: ConfigMap + name: kubeflow-config diff --git a/stacks/ibm/application/kfp-tekton/kustomization.yaml b/stacks/ibm/application/kfp-tekton/kustomization.yaml new file mode 100644 index 0000000000..4f0bdd65b7 --- /dev/null +++ b/stacks/ibm/application/kfp-tekton/kustomization.yaml @@ -0,0 +1,24 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: kubeflow +resources: + - ../../../../pipeline/installs/tekton +configMapGenerator: +- name: kubeflow-config + envs: + - ../../config/params.env +vars: +- fieldref: + fieldPath: data.clusterDomain + name: clusterDomain + objref: + apiVersion: v1 + kind: ConfigMap + name: kubeflow-config +- fieldref: + fieldPath: metadata.namespace + name: namespace + objref: + apiVersion: v1 + kind: ConfigMap + name: kubeflow-config diff --git a/stacks/ibm/config/params.env b/stacks/ibm/config/params.env index 1eaf03bab1..e296f8f01b 100644 --- a/stacks/ibm/config/params.env +++ b/stacks/ibm/config/params.env @@ -1,3 +1,5 @@ clusterDomain=cluster.local userid-header=kubeflow-userid userid-prefix= +cluster-name= +istio-namespace=istio-system diff --git a/tests/stacks/ibm/application/katib/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml similarity index 64% rename from tests/stacks/ibm/application/katib/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename to tests/stacks/ibm/application/admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml index e37cc3dac4..2c4a11fcc5 100644 --- a/tests/stacks/ibm/application/katib/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ b/tests/stacks/ibm/application/admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -1,9 +1,11 @@ apiVersion: v1 data: + cluster-name: "" clusterDomain: cluster.local + istio-namespace: istio-system userid-header: kubeflow-userid userid-prefix: "" kind: ConfigMap metadata: - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 namespace: kubeflow diff --git a/tests/stacks/ibm/application/notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml similarity index 64% rename from tests/stacks/ibm/application/notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename to tests/stacks/ibm/application/argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml index e37cc3dac4..2c4a11fcc5 100644 --- a/tests/stacks/ibm/application/notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ b/tests/stacks/ibm/application/argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -1,9 +1,11 @@ apiVersion: v1 data: + cluster-name: "" clusterDomain: cluster.local + istio-namespace: istio-system userid-header: kubeflow-userid userid-prefix: "" kind: ConfigMap metadata: - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 namespace: kubeflow diff --git a/tests/stacks/ibm/application/admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/katib/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml similarity index 64% rename from tests/stacks/ibm/application/admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename to tests/stacks/ibm/application/katib/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml index e37cc3dac4..2c4a11fcc5 100644 --- a/tests/stacks/ibm/application/admission-webhook/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ b/tests/stacks/ibm/application/katib/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -1,9 +1,11 @@ apiVersion: v1 data: + cluster-name: "" clusterDomain: cluster.local + istio-namespace: istio-system userid-header: kubeflow-userid userid-prefix: "" kind: ConfigMap metadata: - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/kustomize_test.go b/tests/stacks/ibm/application/kfp-argo-multi-user/kustomize_test.go new file mode 100644 index 0000000000..0c02ad87df --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/kustomize_test.go @@ -0,0 +1,15 @@ +package kfp_argo_multi_user + +import ( + "github.com/kubeflow/manifests/tests" + "testing" +) + +func TestKustomize(t *testing.T) { + testCase := &tests.KustomizeTestCase{ + Package: "../../../../../stacks/ibm/application/kfp-argo-multi-user", + Expected: "test_data/expected", + } + + tests.RunTestCase(t, testCase) +} diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml new file mode 100644 index 0000000000..b43f8ee33c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml @@ -0,0 +1,52 @@ +apiVersion: app.k8s.io/v1beta1 +kind: Application +metadata: + annotations: + kubernetes-engine.cloud.google.com/icon: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAyCAYAAADx/eOPAAALuUlEQVRogd2afWxd9XnHP99bK4pS3yhiGUIRiiJUVVVqbq8ppdR20ibqpuIMtDRkUYERp29J57gMZVuxsrZiK7oZXVv5re1AiOuoG+N1DMkuytprsGPEVMouxqQZJVHEWIdQlGVxZlmZdb/747zcc869jpMO+seOdPz7nd/L83tev89zzjX8Bq795Rq9o17zXp+Tey+Ijkyboela29DRWkhffyT733pH/Z3este9F2cC6N0kNjxtjD+FdRD8UF9X7u97y7UbQFPAivC0BdllS381slun3s3z3xVhhqeds90tqR/oMB7u68z19ZZra0E/l1if3WOziPx3skrDPTr+bvDxfxImEIJbgX6gGBJ7EfHJX/ySReDHwO9KYAenyWCMFKw21GSeslwa2Z17+TcuzPBRr7B8m6Df5oOJqdPAR/u6cm/2lmv3At+IT3GiXZqbcaxSLsfRoTsvn7XL2jE87ZXGnwf+VGiDY86ETM1wU1+XjvSW/RlgTJADQ2QaCZKWcX1/aDIcjE8i3SdzZLjn0lm8pJXD02417BM+gLmq2Rqjr/d16Vu95dp6wc8Ra5O8NrPIcoZCvIR1H+KZkd2qLcfnRYUZOuorJO+3uQt0RerolGYZR7r5+C9ZATwPviGyQprd6Liszy3bnwVKwGMjPbnFyxJmeNpX2T4gaR/QmmSpyYZTho/2depMb9k/kNh3KawuJ1bWauHzUcyXRpZAv5Zmg7aHBLcmNN9ECAFeAO3s69KZ3nLtDuF9dnBs0IT9JO24rbPb0JfP2syCZpFfE5q1mRWcvlgMNcwMTRq9z/+OWXdx4AGjvX1deqC37DbwPwOrMgsufol5mWMWs1ivEbjTrOCtLNNb+udygqsNbUBtopR/NkuuwTJ6Hxsw67KSuvH5MPDA/nJttfGTdUFCMUlp/ALwOtIs9muBxpnFnBzuSQf21oP/BbXclVvumWuTaDN8WNBm2GizJkxPM0CDMA2WGZ72bbb/Njue2TRj9Il/PcG87SeBz4ZTNaSTsmctHcO8SqDp14d7dCFLZ2v/3OpQ023Ah4n65kohvETUCdcsfmuilD+bpNdgGZvOODuHqYGIVGCec9g7+7o031v2jaBTiD0ysxbHRnZrPktzyz1zK7f0z10nh5pWwLRhvZro1KqznVJhNB8UyDeSsU4zAOiIXV1OuEqQ2AR79nflXgcY6dGLwIvR8q39cy1b+uc2Emo6dI824BpMSxz8iVhy4m/2WiYHdV5UmOHp2mpwm52ESCdwRn+9v0tPAWzpn9sAFAQbMdc60PaHsFZEWd9uxk4z8G3seykECfObTEd2KmuZG4CWyLXkYLMwtiYt+hMsTUdAEZQzjs9apv66SHJRk73ZjBQ+iRu29s+1VEr5OImmXs4MHUahVoLWgK23wbv6OrU4OulcuHYehWsVHhpXwpE2FNRayTszX2cwDpQEzTB+QvrJHCXUaigk+c++aXZiE98YmUVgV19X7u3ypH/fgfUA5h2usY2jNjmWoGVn50nvC9T2NviA5OPBGPW91OlG+0Xa1WJhhqadk3WjpKCilQIQFP19XZocnfIHgIeFWyNh6goXyX6gdNWfU8aJ5tNjEheAHZVS/ruGj0s8k6VPhh6ms6kwgoLl1aGuCEuSpwXfHZ2qrTJ+HHkNCpOjmbdFcEcGUIhUSj/H65rPO6j+766U8i/QXV0z8cqJc4btwF8AtWgtMb1wj+j41Df/s1EYQwdEDiqM3hDes9quGY3IKoYOvCrU7HlCoZtEWapPkzEpsU8uq8b36a6uBqaBv5l45URLpZT/pmGH8LnkvlAdAOt1oeXqRsuYTjlEMJiXvWN/Z+5szfqioKcOKo7qr/nAEesKiOyv2A/q88rOx8+8bPhK5dUTAA8jbUT6MuKnbKteNVHKP23xCeD1LC0F2TWOmzoAKEiWxmC+sr8rN1OerF2HGaqXFcZhDWaYj11S4ZxcXxVqyKqPZOeNTwM7Jkr5BeDPQJ8NFQaoC/gZ26rXT5TyxxAfRx6P94d0gU0pYYama+tsbwix/AHM4fKUrwAeB68kRJ5AZsWWieGTjLipsVCgrKCwKHF7pZQ/RXf104j76i4ZMmquxkzRXb2zUsqfxdxsfCiA70hRjZbpCDHmJcRdeZPDHkVck0Ul5PeHZ81DgHxKtglXaHCxVN9fr5TyR9hW3QA8Amqp5526SyKtBEbZVv1eZeZkbqKU7xfsFJwPqRW29s+11oUxnUhnkHf2dWoB+R5Jv5dNaGHh1wog8d/ZAI+0GgVpFPTp4AfJT2Hup7u6EvMk0tpkboutEz0HMPzHyD+mu3pFpZR/Aug0Pgm0RLkvFzLWYfjDvs7cqfKUt2LuXTLhue5mdWhVDJdEzxDDcRKawceN9lRePVkDfgBcR/LKVqNpz/s08DO6q4VKKT8j8zHgJ1HyzA1P11YZjfV1arw85auBR4RalDB5lEjDKi0CgPPphKZ0QiNRwUQeg88B2ydKreew9yH1NCxe/r4GaZpt1Vsrh/JnDDcBLwPkbLVgf6s86RXYj4KvtJKJM8KsGLkSlsmUL6mSg1RJY1xD7KmU8sfprnYgBqJsGVsiEfupsca7FfMo26p/OfHKiVqllB8HyPV16VxfV66G/G1QBwY5xvCgTT7X3/MTaBbFVr0fJvqw2ASZ+yul/FN0V68CHsesiDl3UopM3CwhDZDD/Dnwj3S/sjoYAMqTtc1YX02jVqYOiuuqsAKIkqZCfFIz/IrfFY8gDrKt2gI8irSuwQezyTeNaOl+6qYb+fpYGKEXJE9GSTObK5ItrheaLHE5/XRKcHul+kYN8x2kzWlLNNuVtUqibzKW5CBjxUoszO7NWrS1E/xWvMeJjck2WQHEKJeMD+qH4gWCSvg00m3AVxv5TMRKsp9Cs0Q/Ka/1BOZQNBSXMz2b9Q5oO9JCKgkqg2aKofl8uvTPeE1w3t5KKf8y26pFxINhLRa5R9JV6huT/aZuFu7Ds+A9jBdj+VIvZz2b9BL2Xi5yJQEgUFqinI9SZBDx358o5Q/HiRGtquOEmxJu6DcbC/afQWxnvHg+Odrwm2bP5txh5OEYjOM3vaiu8qqHJw1mPmK/Xs7HJf0LRncDMF5cAL6NWUxDrX/duwbczljxjSzvTX+gtXU3MBlrRCltrsxBTgorACKrRGf5bczOiVLrhUL74B2F9oHVjBd/iLwTWEhr+CIWaLYumDjIWLHha+aSwvRs1iJmJ9Kb9ZJRETS3ACsMC8i1ZNwgXZDYWTmU/1WhfeAW8Cjo+UL7wDrGik8jfid0kYz/Z2ODepv+GPIY+FAznpcUJhAo9w5mh81CFtEsWieCTzwXkogmfKBSyh8ttA98EDPqoPouYqYLxYEPMVY8itmEeTM+KEaqZhVAkiPPIL6QDPhLFiYQSC9J7M3mGlF/24zWSvwIM1xoH2gF/sFiTcSPxQakqUJxsIPx4jGCr0AzCUYTbROJ7DPAdsbSAX9ZwgDs3qTDiMGUOxF/1DgfekLVsPf0sw8DPARsDNwy8iYBXov4p0L7wC2MF99CfBJ4rqmbJbO/qYE+x1jx5HK8Xtp/aFgHDM/FX+RM9FFjHjjj4NV3HvlPsP4g+SqQgm6zCuvJQnHgi4wVz2JuAj8RnLGEVaCf8Y8cuRQ2L0mYEBB2Gb8ZHKD4NQBx+0Qpf7LQPrAVVGqiiWTpCcEn4QcLxcF7C7+aXMDahT1YX5IS5DHE/ZfC4yULEwr0DtIOWwuuvwZ8rVLKP1soDqzHPGJoyRao9b4SXiQQ30A8eO1/PJ8D7gK+BtQSJcQM8AXGlg747LUkmi91lad8J3CuZ5OeBii0D64ET2FdH1N0omWJvgLPkvwM8LmZf7lrnm3VO4CHsM4DH2P8I8vGSfK67P9q8v9wWPAcQLH4PbBHbK6Pq+3M9+Ml+6FL2dyC+WmhOLiWseKPMDeDd12uIPBrWCZ5Xds++AHsAwGlBKnoB5747c2J+aSJEuvRL8CDv/2Zz+cqh/LL/gPD//vrfwFjcI5oX6jDBwAAAABJRU5ErkJggg== + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines + namespace: kubeflow +spec: + addOwnerRef: true + componentKinds: + - group: networking.istio.io/v1alpha3 + kind: DestinationRule + - group: rbac.istio.io/v1alpha1 + kind: ServiceRoleBinding + - group: rbac.istio.io/v1alpha1 + kind: ServiceRole + - group: metacontroller.k8s.io/v1alpha1 + kind: CompositeController + - group: v1 + kind: ServiceAccount + - group: rbac.authorization.k8s.io/v1 + kind: Role + - group: rbac.authorization.k8s.io/v1 + kind: RoleBinding + - group: v1 + kind: Service + - group: v1 + kind: PersistentVolumeClaim + - group: v1 + kind: ConfigMap + - group: v1 + kind: Secret + - group: apps/v1 + kind: Deployment + - group: networking.istio.io/v1alpha3 + kind: VirtualService + descriptor: + description: Reusable end-to-end ML workflow + links: + - description: Kubeflow Pipelines Documentation + url: https://www.kubeflow.org/docs/pipelines/ + maintainers: + - name: Kubeflow Pipelines + url: https://github.com/kubeflow/pipelines + type: Kubeflow Pipelines + version: 1.0.4 + selector: + matchLabels: + app.kubernetes.io/application: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml new file mode 100644 index 0000000000..9d5bbcd218 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml @@ -0,0 +1,77 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - args: + - --db_driver=$(DBCONFIG_DRIVER) + - --db_host=$(DBCONFIG_HOST_NAME) + - --db_port=$(DBCONFIG_PORT) + - --db_name=$(DBCONFIG_DB_NAME) + - --db_user=$(DBCONFIG_USER) + - --db_password=$(DBCONFIG_PASSWORD) + - --namespace_to_watch=$(NAMESPACE_TO_WATCH) + env: + - name: DBCONFIG_DRIVER + value: mysql + - name: DBCONFIG_DB_NAME + valueFrom: + configMapKeyRef: + key: cacheDb + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_HOST_NAME + valueFrom: + configMapKeyRef: + key: dbHost + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_PORT + valueFrom: + configMapKeyRef: + key: dbPort + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_USER + valueFrom: + secretKeyRef: + key: username + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: mysql-secret-fd5gktm75t + - name: NAMESPACE_TO_WATCH + value: "" + image: gcr.io/ml-pipeline/cache-server:1.0.4 + imagePullPolicy: Always + name: server + ports: + - containerPort: 8443 + name: webhook-api + volumeMounts: + - mountPath: /etc/webhook/certs + name: webhook-tls-certs + readOnly: true + serviceAccountName: kubeflow-pipelines-cache + volumes: + - name: webhook-tls-certs + secret: + secretName: webhook-server-tls diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml new file mode 100644 index 0000000000..9fe651c283 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + annotations: + sidecar.istio.io/inject: "false" + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - command: + - python + - /hooks/sync.py + env: + - name: KFP_VERSION + valueFrom: + configMapKeyRef: + key: appVersion + name: pipeline-upstream-install-config-d7hkh24mdg + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + envFrom: + - configMapRef: + name: kubeflow-pipelines-profile-controller-env-mgh6th2gff + image: python:3.7 + name: profile-controller + ports: + - containerPort: 80 + volumeMounts: + - mountPath: /hooks + name: hooks + volumes: + - configMap: + name: kubeflow-pipelines-profile-controller-code-gd97t2m5f5 + name: hooks diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml new file mode 100644 index 0000000000..8860476d6e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml @@ -0,0 +1,30 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: metadata-writer + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE_TO_WATCH + value: "" + image: gcr.io/ml-pipeline/metadata-writer:1.0.4 + name: main + serviceAccountName: kubeflow-pipelines-metadata-writer diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_minio.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_minio.yaml similarity index 96% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_minio.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_minio.yaml index 74b09c5cce..dd97d1e4d3 100644 --- a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_minio.yaml +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_minio.yaml @@ -1,6 +1,8 @@ apiVersion: apps/v1 kind: Deployment metadata: + annotations: + sidecar.istio.io/inject: "false" labels: app: minio app.kubernetes.io/component: minio diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml new file mode 100644 index 0000000000..e88e10832a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + value: "" + - name: TTL_SECONDS_AFTER_WORKFLOW_FINISH + value: "86400" + image: gcr.io/ml-pipeline/persistenceagent:1.0.4 + imagePullPolicy: IfNotPresent + name: ml-pipeline-persistenceagent + serviceAccountName: ml-pipeline-persistenceagent diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml new file mode 100644 index 0000000000..93dfff37b1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml @@ -0,0 +1,30 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + value: "" + image: gcr.io/ml-pipeline/scheduledworkflow:1.0.4 + imagePullPolicy: IfNotPresent + name: ml-pipeline-scheduledworkflow + serviceAccountName: ml-pipeline-scheduledworkflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..59d87d4e67 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml @@ -0,0 +1,100 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: VIEWER_TENSORBOARD_POD_TEMPLATE_SPEC_PATH + value: /etc/config/viewer-pod-template.json + - name: DEPLOYMENT + value: KUBEFLOW + - name: ARTIFACTS_SERVICE_PROXY_NAME + value: ml-pipeline-ui-artifact + - name: ARTIFACTS_SERVICE_PROXY_PORT + value: "80" + - name: ARTIFACTS_SERVICE_PROXY_ENABLED + value: "true" + - name: ENABLE_AUTHZ + value: "true" + - name: KUBEFLOW_USERID_HEADER + valueFrom: + configMapKeyRef: + key: userid-header + name: kubeflow-config-bk4bc7m928 + - name: KUBEFLOW_USERID_PREFIX + valueFrom: + configMapKeyRef: + key: userid-prefix + name: kubeflow-config-bk4bc7m928 + - name: MINIO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + - name: ALLOW_CUSTOM_VISUALIZATIONS + value: "true" + image: gcr.io/ml-pipeline/frontend:1.0.4 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:3000/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-ui + ports: + - containerPort: 3000 + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:3000/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + volumeMounts: + - mountPath: /etc/config + name: config-volume + readOnly: true + serviceAccountName: ml-pipeline-ui + volumes: + - configMap: + name: ml-pipeline-ui-configmap + name: config-volume diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml new file mode 100644 index 0000000000..995881231a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + value: "" + valueFrom: null + - name: MAX_NUM_VIEWERS + value: "50" + - name: MINIO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: gcr.io/ml-pipeline/viewer-crd-controller:1.0.4 + imagePullPolicy: Always + name: ml-pipeline-viewer-crd + serviceAccountName: ml-pipeline-viewer-crd-service-account diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml new file mode 100644 index 0000000000..b82271798a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml @@ -0,0 +1,116 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: KUBEFLOW_USERID_HEADER + valueFrom: + configMapKeyRef: + key: userid-header + name: kubeflow-config-bk4bc7m928 + - name: KUBEFLOW_USERID_PREFIX + valueFrom: + configMapKeyRef: + key: userid-prefix + name: kubeflow-config-bk4bc7m928 + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: OBJECTSTORECONFIG_SECURE + value: "false" + - name: OBJECTSTORECONFIG_BUCKETNAME + valueFrom: + configMapKeyRef: + key: bucketName + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_USER + valueFrom: + secretKeyRef: + key: username + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_DBNAME + valueFrom: + configMapKeyRef: + key: pipelineDb + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_HOST + valueFrom: + configMapKeyRef: + key: dbHost + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_PORT + valueFrom: + configMapKeyRef: + key: dbPort + name: pipeline-install-config-2829cc67f8 + - name: OBJECTSTORECONFIG_ACCESSKEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: OBJECTSTORECONFIG_SECRETACCESSKEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + envFrom: + - configMapRef: + name: pipeline-api-server-config-f4t72426kt + image: gcr.io/ml-pipeline/api-server:1.0.4 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-api-server + ports: + - containerPort: 8888 + name: http + - containerPort: 8887 + name: grpc + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + serviceAccountName: ml-pipeline diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_mysql.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_mysql.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_mysql.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/apps_v1_deployment_mysql.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml new file mode 100644 index 0000000000..7f869f34fd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml @@ -0,0 +1,48 @@ +apiVersion: metacontroller.k8s.io/v1alpha1 +kind: CompositeController +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller + namespace: kubeflow +spec: + childResources: + - apiVersion: v1 + resource: secrets + updateStrategy: + method: OnDelete + - apiVersion: v1 + resource: configmaps + updateStrategy: + method: OnDelete + - apiVersion: apps/v1 + resource: deployments + updateStrategy: + method: InPlace + - apiVersion: v1 + resource: services + updateStrategy: + method: InPlace + - apiVersion: networking.istio.io/v1alpha3 + resource: destinationrules + updateStrategy: + method: InPlace + - apiVersion: rbac.istio.io/v1alpha1 + resource: serviceroles + updateStrategy: + method: InPlace + - apiVersion: rbac.istio.io/v1alpha1 + resource: servicerolebindings + updateStrategy: + method: InPlace + generateSelector: true + hooks: + sync: + webhook: + url: http://kubeflow-pipelines-profile-controller/sync + parentResource: + apiVersion: v1 + resource: namespaces + resyncPeriodSeconds: 10 diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml new file mode 100644 index 0000000000..09c0a7d17d --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-mysql + namespace: kubeflow +spec: + host: mysql.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..ad592610e0 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + host: ml-pipeline-ui.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..2e2fd51f44 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + host: ml-pipeline-visualizationserver.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml new file mode 100644 index 0000000000..8cca5fda78 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + host: ml-pipeline.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml new file mode 100644 index 0000000000..e6bc4ed4ea --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-role +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml new file mode 100644 index 0000000000..bffc6fda4a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-role +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml new file mode 100644 index 0000000000..180e34e5c4 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml @@ -0,0 +1,24 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-role +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - get + - list + - watch diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml new file mode 100644 index 0000000000..f206ae5fc3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml @@ -0,0 +1,39 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-role +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..862294c42e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml @@ -0,0 +1,46 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui +rules: +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - list +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml new file mode 100644 index 0000000000..c4d627de01 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml @@ -0,0 +1,33 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-controller-role +rules: +- apiGroups: + - '*' + resources: + - deployments + - services + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml new file mode 100644 index 0000000000..a13cabbb82 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubeflow-pipelines-cache-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml new file mode 100644 index 0000000000..e7ee7127e6 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubeflow-pipelines-metadata-writer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml new file mode 100644 index 0000000000..96febc69e1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-persistenceagent-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml new file mode 100644 index 0000000000..f3f1b2dc2e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-scheduledworkflow-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..7a864a75dd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-ui +subjects: +- kind: ServiceAccount + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml new file mode 100644 index 0000000000..c815c7bcdf --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-viewer-controller-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml new file mode 100644 index 0000000000..a18fd8fbb3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml @@ -0,0 +1,37 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - update + - patch + - delete +- apiGroups: + - "" + resources: + - pods + verbs: + - delete diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml new file mode 100644 index 0000000000..4d0d9ff2dd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline +subjects: +- kind: ServiceAccount + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml new file mode 100644 index 0000000000..3386ae37fb --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + rules: + - services: + - cache-server.kubeflow.svc.cluster.local diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml new file mode 100644 index 0000000000..2725a334f9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-services + namespace: kubeflow +spec: + rules: + - services: + - ml-pipeline.kubeflow.svc.cluster.local + - ml-pipeline-ui.kubeflow.svc.cluster.local + - ml-pipeline-visualizationserver.kubeflow.svc.cluster.local + - mysql.kubeflow.svc.cluster.local diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..a95b8f795c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + rules: + - services: + - ml-pipeline-ui.kubeflow.svc.cluster.local diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml new file mode 100644 index 0000000000..d02359475a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml @@ -0,0 +1,14 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: bind-cache-server-admission-webhook + namespace: kubeflow +spec: + roleRef: + kind: ServiceRole + name: cache-server + subjects: + - user: '*' diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml new file mode 100644 index 0000000000..6a6dad8158 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: bind-gateway-ml-pipeline-ui + namespace: kubeflow +spec: + roleRef: + kind: ServiceRole + name: ml-pipeline-ui + subjects: + - properties: + source.namespace: istio-system diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml new file mode 100644 index 0000000000..ca3acbebe1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml @@ -0,0 +1,25 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: bind-ml-pipeline-internal + namespace: kubeflow +spec: + roleRef: + kind: ServiceRole + name: ml-pipeline-services + subjects: + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-ui + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-persistenceagent + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-scheduledworkflow + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-viewer-crd-service-account + - properties: + source.principal: cluster.local/ns/kubeflow/sa/kubeflow-pipelines-cache diff --git a/tests/stacks/ibm/application/argo/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml similarity index 64% rename from tests/stacks/ibm/application/argo/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml index e37cc3dac4..2c4a11fcc5 100644 --- a/tests/stacks/ibm/application/argo/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -1,9 +1,11 @@ apiVersion: v1 data: + cluster-name: "" clusterDomain: cluster.local + istio-namespace: istio-system userid-header: kubeflow-userid userid-prefix: "" kind: ConfigMap metadata: - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gd97t2m5f5.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gd97t2m5f5.yaml new file mode 100644 index 0000000000..88d8815a30 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gd97t2m5f5.yaml @@ -0,0 +1,292 @@ +apiVersion: v1 +data: + sync.py: | + # Copyright 2020 Google LLC + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + + from http.server import BaseHTTPRequestHandler, HTTPServer + import json + import os + import base64 + + kfp_version = os.environ["KFP_VERSION"] + disable_istio_sidecar = os.environ.get("DISABLE_ISTIO_SIDECAR") == "true" + mlpipeline_minio_access_key = base64.b64encode( + bytes(os.environ.get("MINIO_ACCESS_KEY"), 'utf-8')).decode('utf-8') + mlpipeline_minio_secret_key = base64.b64encode( + bytes(os.environ.get("MINIO_SECRET_KEY"), 'utf-8')).decode('utf-8') + + + class Controller(BaseHTTPRequestHandler): + def sync(self, parent, children): + # HACK: Currently using serving.kubeflow.org/inferenceservice to identify + # kubeflow user namespaces. + # TODO: let Kubeflow profile controller add a pipeline specific label to + # user namespaces and use that label instead. + pipeline_enabled = parent.get("metadata", {}).get( + "labels", {}).get("serving.kubeflow.org/inferenceservice") + + if not pipeline_enabled: + return {"status": {}, "children": []} + + # Compute status based on observed state. + desired_status = { + "kubeflow-pipelines-ready": \ + len(children["Secret.v1"]) == 1 and \ + len(children["ConfigMap.v1"]) == 1 and \ + len(children["Deployment.apps/v1"]) == 2 and \ + len(children["Service.v1"]) == 2 and \ + len(children["DestinationRule.networking.istio.io/v1alpha3"]) == 1 and \ + len(children["ServiceRole.rbac.istio.io/v1alpha1"]) == 1 and \ + len(children["ServiceRoleBinding.rbac.istio.io/v1alpha1"]) == 1 and \ + "True" or "False" + } + + # Generate the desired child object(s). + # parent is a namespace + namespace = parent.get("metadata", {}).get("name") + desired_resources = [ + { + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "metadata-grpc-configmap", + "namespace": namespace, + }, + "data": { + "METADATA_GRPC_SERVICE_HOST": + "metadata-grpc-service.kubeflow", + "METADATA_GRPC_SERVICE_PORT": "8080", + }, + }, + # Visualization server related manifests below + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "labels": { + "app": "ml-pipeline-visualizationserver" + }, + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "selector": { + "matchLabels": { + "app": "ml-pipeline-visualizationserver" + }, + }, + "template": { + "metadata": { + "labels": { + "app": "ml-pipeline-visualizationserver" + }, + "annotations": disable_istio_sidecar and { + "sidecar.istio.io/inject": "false" + } or {}, + }, + "spec": { + "containers": [{ + "image": + "gcr.io/ml-pipeline/visualization-server:" + + kfp_version, + "imagePullPolicy": + "IfNotPresent", + "name": + "ml-pipeline-visualizationserver", + "ports": [{ + "containerPort": 8888 + }], + }], + "serviceAccountName": + "default-editor", + }, + }, + }, + }, + { + "apiVersion": "networking.istio.io/v1alpha3", + "kind": "DestinationRule", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "host": "ml-pipeline-visualizationserver", + "trafficPolicy": { + "tls": { + "mode": "ISTIO_MUTUAL" + } + } + } + }, + { + "apiVersion": "rbac.istio.io/v1alpha1", + "kind": "ServiceRole", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "rules": [{ + "services": ["ml-pipeline-visualizationserver.*"] + }] + } + }, + { + "apiVersion": "rbac.istio.io/v1alpha1", + "kind": "ServiceRoleBinding", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "subjects": [{ + "properties": { + "source.principal": + "cluster.local/ns/kubeflow/sa/ml-pipeline" + } + }], + "roleRef": { + "kind": "ServiceRole", + "name": "ml-pipeline-visualizationserver" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "ports": [{ + "name": "http", + "port": 8888, + "protocol": "TCP", + "targetPort": 8888, + }], + "selector": { + "app": "ml-pipeline-visualizationserver", + }, + }, + }, + # Artifact fetcher related resources below. + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "labels": { + "app": "ml-pipeline-ui-artifact" + }, + "name": "ml-pipeline-ui-artifact", + "namespace": namespace, + }, + "spec": { + "selector": { + "matchLabels": { + "app": "ml-pipeline-ui-artifact" + } + }, + "template": { + "metadata": { + "labels": { + "app": "ml-pipeline-ui-artifact" + }, + "annotations": disable_istio_sidecar and { + "sidecar.istio.io/inject": "false" + } or {}, + }, + "spec": { + "containers": [{ + "name": + "ml-pipeline-ui-artifact", + "image": + "gcr.io/ml-pipeline/frontend:" + kfp_version, + "imagePullPolicy": + "IfNotPresent", + "ports": [{ + "containerPort": 3000 + }] + }], + "serviceAccountName": + "default-editor" + } + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "ml-pipeline-ui-artifact", + "namespace": namespace, + "labels": { + "app": "ml-pipeline-ui-artifact" + } + }, + "spec": { + "ports": [{ + "name": + "http", # name is required to let istio understand request protocol + "port": 80, + "protocol": "TCP", + "targetPort": 3000 + }], + "selector": { + "app": "ml-pipeline-ui-artifact" + } + } + }, + ] + print('Received request:', parent) + print('Desired resources except secrets:', desired_resources) + # Moved after the print argument because this is sensitive data. + desired_resources.append({ + "apiVersion": "v1", + "kind": "Secret", + "metadata": { + "name": "mlpipeline-minio-artifact", + "namespace": namespace, + }, + "data": { + "accesskey": mlpipeline_minio_access_key, + "secretkey": mlpipeline_minio_secret_key, + }, + }) + + return {"status": desired_status, "children": desired_resources} + + def do_POST(self): + # Serve the sync() function as a JSON webhook. + observed = json.loads( + self.rfile.read(int(self.headers.get("content-length")))) + desired = self.sync(observed["parent"], observed["children"]) + + self.send_response(200) + self.send_header("Content-type", "application/json") + self.end_headers() + self.wfile.write(bytes(json.dumps(desired), 'utf-8')) + + + HTTPServer(("", 80), Controller).serve_forever() +kind: ConfigMap +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller-code-gd97t2m5f5 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml new file mode 100644 index 0000000000..80bb7ba538 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + DISABLE_ISTIO_SIDECAR: "false" +kind: ConfigMap +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller-env-mgh6th2gff + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml new file mode 100644 index 0000000000..da561543e7 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +data: + viewer-pod-template.json: |- + { + "spec": { + "serviceAccountName": "default-editor" + } + } +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui-configmap + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml new file mode 100644 index 0000000000..90de9ec34a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +data: + DEFAULTPIPELINERUNNERSERVICEACCOUNT: default-editor + MULTIUSER: "true" + VISUALIZATIONSERVICE_NAME: ml-pipeline-visualizationserver + VISUALIZATIONSERVICE_PORT: "8888" +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-api-server-config-f4t72426kt + namespace: kubeflow diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_cache-server.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_cache-server.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_cache-server.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_cache-server.yaml diff --git a/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml new file mode 100644 index 0000000000..a22de6bef3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller + namespace: kubeflow +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 80 + selector: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_minio-service.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_minio-service.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_minio-service.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_minio-service.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_ml-pipeline.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_ml-pipeline.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_ml-pipeline.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_mysql.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_mysql.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_service_mysql.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_service_mysql.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml rename to tests/stacks/ibm/application/kfp-argo-multi-user/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml diff --git a/tests/stacks/ibm/application/pipelines/kustomize_test.go b/tests/stacks/ibm/application/kfp-argo/kustomize_test.go similarity index 72% rename from tests/stacks/ibm/application/pipelines/kustomize_test.go rename to tests/stacks/ibm/application/kfp-argo/kustomize_test.go index 750dad4d1c..0018753f61 100644 --- a/tests/stacks/ibm/application/pipelines/kustomize_test.go +++ b/tests/stacks/ibm/application/kfp-argo/kustomize_test.go @@ -1,4 +1,4 @@ -package pipelines +package kfp_argo import ( "github.com/kubeflow/manifests/tests" @@ -7,7 +7,7 @@ import ( func TestKustomize(t *testing.T) { testCase := &tests.KustomizeTestCase{ - Package: "../../../../../stacks/ibm/application/pipelines", + Package: "../../../../../stacks/ibm/application/kfp-argo", Expected: "test_data/expected", } diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml new file mode 100644 index 0000000000..39c462bb2e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml @@ -0,0 +1,21 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: scheduledworkflows.kubeflow.org +spec: + group: kubeflow.org + names: + kind: ScheduledWorkflow + listKind: ScheduledWorkflowList + plural: scheduledworkflows + shortNames: + - swf + singular: scheduledworkflow + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml new file mode 100644 index 0000000000..711e1a0029 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml @@ -0,0 +1,21 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: viewers.kubeflow.org +spec: + group: kubeflow.org + names: + kind: Viewer + listKind: ViewerList + plural: viewers + shortNames: + - vi + singular: viewer + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml new file mode 100644 index 0000000000..e1b386dfb9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml @@ -0,0 +1,31 @@ +apiVersion: app.k8s.io/v1beta1 +kind: Application +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio + namespace: kubeflow +spec: + addOwnerRef: true + componentKinds: + - group: core + kind: ConfigMap + - group: apps + kind: Deployment + descriptor: + description: "" + keywords: + - minio + - kubeflow + links: + - description: About + url: "" + maintainers: [] + owners: [] + type: minio + version: v1beta1 + selector: + matchLabels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml new file mode 100644 index 0000000000..d4db458295 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml @@ -0,0 +1,32 @@ +apiVersion: app.k8s.io/v1beta1 +kind: Application +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql + namespace: kubeflow +spec: + addOwnerRef: true + componentKinds: + - group: core + kind: ConfigMap + - group: apps + kind: Deployment + descriptor: + description: "" + keywords: + - mysql + - kubeflow + links: + - description: About + url: "" + maintainers: [] + owners: [] + type: mysql + version: v1beta1 + selector: + matchLabels: + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml new file mode 100644 index 0000000000..e8a95f1f1a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-deployer-deployment + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + strategy: + type: Recreate + template: + metadata: + labels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE_TO_WATCH + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: gcr.io/ml-pipeline/cache-deployer:1.0.4 + imagePullPolicy: Always + name: main + restartPolicy: Always + serviceAccountName: kubeflow-pipelines-cache-deployer-sa diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_cache-server.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_cache-server.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_cache-server.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_cache-server.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_metadata-writer.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_metadata-writer.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_metadata-writer.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_metadata-writer.yaml diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_minio.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_minio.yaml new file mode 100644 index 0000000000..dd97d1e4d3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_minio.yaml @@ -0,0 +1,55 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + sidecar.istio.io/inject: "false" + labels: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio + namespace: kubeflow +spec: + selector: + matchLabels: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + strategy: + type: Recreate + template: + metadata: + annotations: + sidecar.istio.io/inject: "false" + labels: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + spec: + containers: + - args: + - server + - /data + env: + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + image: gcr.io/ml-pipeline/minio:RELEASE.2019-08-14T20-37-41Z-license-compliance + name: minio + ports: + - containerPort: 9000 + volumeMounts: + - mountPath: /data + name: data + subPath: minio + volumes: + - name: data + persistentVolumeClaim: + claimName: minio-pv-claim diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..bf0ef4fb76 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,54 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - image: gcr.io/ml-pipeline/visualization-server:1.0.4 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/ + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-visualizationserver + ports: + - containerPort: 8888 + name: http + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/ + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + serviceAccountName: ml-pipeline-visualizationserver diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/apps_v1_deployment_ml-pipeline.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_ml-pipeline.yaml diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_mysql.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_mysql.yaml new file mode 100644 index 0000000000..b47bdbb60a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/apps_v1_deployment_mysql.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql + namespace: kubeflow +spec: + selector: + matchLabels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + strategy: + type: Recreate + template: + metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + spec: + containers: + - env: + - name: MYSQL_ALLOW_EMPTY_PASSWORD + value: "true" + image: gcr.io/ml-pipeline/mysql:5.6 + name: mysql + ports: + - containerPort: 3306 + name: mysql + volumeMounts: + - mountPath: /var/lib/mysql + name: mysql-persistent-storage + volumes: + - name: mysql-persistent-storage + persistentVolumeClaim: + claimName: mysql-pv-claim diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..f626864576 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + gateways: + - kubeflow-gateway + hosts: + - '*' + http: + - match: + - uri: + prefix: /pipeline + rewrite: + uri: /pipeline + route: + - destination: + host: ml-pipeline-ui.kubeflow.svc.cluster.local + port: + number: 80 + timeout: 300s diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml new file mode 100644 index 0000000000..5ba54f3cda --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml @@ -0,0 +1,37 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: kubeflow-pipelines-cache-deployer-clusterrole + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-clusterrole +rules: +- apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + verbs: + - create + - delete + - get + - update +- apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - create + - delete + - get + - list + - patch +- apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/* + resources: + - signers + verbs: + - approve diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml new file mode 100644 index 0000000000..459313eff8 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-clusterrolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubeflow-pipelines-cache-deployer-clusterrole +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml new file mode 100644 index 0000000000..59924196e1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml @@ -0,0 +1,20 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-cache-deployer-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - patch + - list diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml new file mode 100644 index 0000000000..7c2b27e343 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml @@ -0,0 +1,36 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-cache-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml new file mode 100644 index 0000000000..c300b1cda8 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml @@ -0,0 +1,36 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-metadata-writer-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml new file mode 100644 index 0000000000..8d376c6ae5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml @@ -0,0 +1,25 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-role + namespace: kubeflow +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - get + - list + - watch diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml new file mode 100644 index 0000000000..a31ac1ebfd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml @@ -0,0 +1,41 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline-scheduledworkflow-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-role + namespace: kubeflow +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..4ff55fe4e7 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml @@ -0,0 +1,47 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - list +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml new file mode 100644 index 0000000000..522897510e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-controller-role + namespace: kubeflow +rules: +- apiGroups: + - '*' + resources: + - deployments + - services + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml new file mode 100644 index 0000000000..5a947370a6 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml @@ -0,0 +1,41 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml new file mode 100644 index 0000000000..fdd503498a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml @@ -0,0 +1,84 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - get +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - watch + - list +- apiGroups: + - "" + resources: + - persistentvolumes + - persistentvolumeclaims + verbs: + - '*' +- apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - create + - delete + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - pods + - pods/exec + - pods/log + - services + verbs: + - '*' +- apiGroups: + - "" + - apps + - extensions + resources: + - deployments + - replicasets + verbs: + - '*' +- apiGroups: + - kubeflow.org + resources: + - '*' + verbs: + - '*' +- apiGroups: + - batch + resources: + - jobs + verbs: + - '*' +- apiGroups: + - machinelearning.seldon.io + resources: + - seldondeployments + verbs: + - '*' diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml new file mode 100644 index 0000000000..e76122f19f --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-cache-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml new file mode 100644 index 0000000000..7471959ec9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-rolebinding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-cache-deployer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml new file mode 100644 index 0000000000..32755c9be3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-metadata-writer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml new file mode 100644 index 0000000000..c1033e02db --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-persistenceagent-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml new file mode 100644 index 0000000000..c3ed87368c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-scheduledworkflow-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..1d78022b2b --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-ui +subjects: +- kind: ServiceAccount + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml new file mode 100644 index 0000000000..96503d4ab4 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-viewer-controller-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml new file mode 100644 index 0000000000..ff6a5433d3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline +subjects: +- kind: ServiceAccount + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml new file mode 100644 index 0000000000..9e1352d61a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pipeline-runner +subjects: +- kind: ServiceAccount + name: pipeline-runner + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml similarity index 100% rename from tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml rename to tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml new file mode 100644 index 0000000000..c2b0b0572c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +data: + bucketName: mlpipeline + cacheDb: cachedb + dbHost: mysql + dbPort: "3306" + mlmdDb: metadb + pipelineDb: mlpipeline +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-install-config-2829cc67f8 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml new file mode 100644 index 0000000000..b2cd7cdbe4 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + minioPvcName: minio-pv-claim +kind: ConfigMap +metadata: + annotations: {} + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: pipeline-minio-parameters + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml new file mode 100644 index 0000000000..7d9e9da8fb --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + mysqlPvcName: mysql-pv-claim +kind: ConfigMap +metadata: + annotations: {} + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: pipeline-mysql-parameters + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml new file mode 100644 index 0000000000..3aef75a62e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +data: + appName: pipeline + appVersion: 1.0.4 + bucketName: mlpipeline + cacheDb: cachedb + containerRuntimeExecutor: docker + dbHost: mysql + dbPort: "3306" + mlmdDb: metadb + pipelineDb: mlpipeline +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-upstream-install-config-d7hkh24mdg + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml new file mode 100644 index 0000000000..e1792aa3a0 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio-pv-claim + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml new file mode 100644 index 0000000000..0dd8344034 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio-pvc + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml new file mode 100644 index 0000000000..bf0c560da5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql-pv-claim + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml new file mode 100644 index 0000000000..2c774e447c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + accesskey: bWluaW8= + secretkey: bWluaW8xMjM= +kind: Secret +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: mlpipeline-minio-artifact + namespace: kubeflow +type: Opaque diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml new file mode 100644 index 0000000000..3490a9d7f1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + password: "" + username: cm9vdA== +kind: Secret +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: mysql-secret-fd5gktm75t + namespace: kubeflow +type: Opaque diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_cache-server.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_cache-server.yaml new file mode 100644 index 0000000000..ab6cf5124e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_cache-server.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + ports: + - port: 443 + targetPort: webhook-api + selector: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_minio-service.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_minio-service.yaml new file mode 100644 index 0000000000..c7f0acee21 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_minio-service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio-service + namespace: kubeflow +spec: + ports: + - name: http + port: 9000 + protocol: TCP + targetPort: 9000 + selector: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..4b493f3119 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 3000 + selector: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..71a24c4ada --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + ports: + - name: http + port: 8888 + protocol: TCP + targetPort: 8888 + selector: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline.yaml new file mode 100644 index 0000000000..4d23b20f01 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_ml-pipeline.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + ports: + - name: http + port: 8888 + protocol: TCP + targetPort: 8888 + - name: grpc + port: 8887 + protocol: TCP + targetPort: 8887 + selector: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_mysql.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_mysql.yaml new file mode 100644 index 0000000000..da8f8cb93a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_service_mysql.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql + namespace: kubeflow +spec: + ports: + - port: 3306 + protocol: TCP + targetPort: 3306 + selector: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml new file mode 100644 index 0000000000..a985549ba3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml new file mode 100644 index 0000000000..f7555f0f35 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml new file mode 100644 index 0000000000..b0bbf5da53 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-container-builder + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml new file mode 100644 index 0000000000..de94276552 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml new file mode 100644 index 0000000000..9521f5b74d --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-viewer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml new file mode 100644 index 0000000000..5bc5786177 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml new file mode 100644 index 0000000000..4a157173bc --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..9318d09104 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml new file mode 100644 index 0000000000..ff0696597e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..5c8e34b2a1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml new file mode 100644 index 0000000000..b95a37213c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml new file mode 100644 index 0000000000..13fb2a95dd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-argo/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/kustomize_test.go b/tests/stacks/ibm/application/kfp-tekton-multi-user/kustomize_test.go new file mode 100644 index 0000000000..58f326cb63 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/kustomize_test.go @@ -0,0 +1,15 @@ +package kfp_tekton_multi_user + +import ( + "github.com/kubeflow/manifests/tests" + "testing" +) + +func TestKustomize(t *testing.T) { + testCase := &tests.KustomizeTestCase{ + Package: "../../../../../stacks/ibm/application/kfp-tekton-multi-user", + Expected: "test_data/expected", + } + + tests.RunTestCase(t, testCase) +} diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml new file mode 100644 index 0000000000..39c462bb2e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml @@ -0,0 +1,21 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: scheduledworkflows.kubeflow.org +spec: + group: kubeflow.org + names: + kind: ScheduledWorkflow + listKind: ScheduledWorkflowList + plural: scheduledworkflows + shortNames: + - swf + singular: scheduledworkflow + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml new file mode 100644 index 0000000000..711e1a0029 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml @@ -0,0 +1,21 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: viewers.kubeflow.org +spec: + group: kubeflow.org + names: + kind: Viewer + listKind: ViewerList + plural: viewers + shortNames: + - vi + singular: viewer + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml new file mode 100644 index 0000000000..b43f8ee33c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml @@ -0,0 +1,52 @@ +apiVersion: app.k8s.io/v1beta1 +kind: Application +metadata: + annotations: + kubernetes-engine.cloud.google.com/icon: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAyCAYAAADx/eOPAAALuUlEQVRogd2afWxd9XnHP99bK4pS3yhiGUIRiiJUVVVqbq8ppdR20ibqpuIMtDRkUYERp29J57gMZVuxsrZiK7oZXVv5re1AiOuoG+N1DMkuytprsGPEVMouxqQZJVHEWIdQlGVxZlmZdb/747zcc869jpMO+seOdPz7nd/L83tev89zzjX8Bq795Rq9o17zXp+Tey+Ijkyboela29DRWkhffyT733pH/Z3este9F2cC6N0kNjxtjD+FdRD8UF9X7u97y7UbQFPAivC0BdllS381slun3s3z3xVhhqeds90tqR/oMB7u68z19ZZra0E/l1if3WOziPx3skrDPTr+bvDxfxImEIJbgX6gGBJ7EfHJX/ySReDHwO9KYAenyWCMFKw21GSeslwa2Z17+TcuzPBRr7B8m6Df5oOJqdPAR/u6cm/2lmv3At+IT3GiXZqbcaxSLsfRoTsvn7XL2jE87ZXGnwf+VGiDY86ETM1wU1+XjvSW/RlgTJADQ2QaCZKWcX1/aDIcjE8i3SdzZLjn0lm8pJXD02417BM+gLmq2Rqjr/d16Vu95dp6wc8Ra5O8NrPIcoZCvIR1H+KZkd2qLcfnRYUZOuorJO+3uQt0RerolGYZR7r5+C9ZATwPviGyQprd6Liszy3bnwVKwGMjPbnFyxJmeNpX2T4gaR/QmmSpyYZTho/2depMb9k/kNh3KawuJ1bWauHzUcyXRpZAv5Zmg7aHBLcmNN9ECAFeAO3s69KZ3nLtDuF9dnBs0IT9JO24rbPb0JfP2syCZpFfE5q1mRWcvlgMNcwMTRq9z/+OWXdx4AGjvX1deqC37DbwPwOrMgsufol5mWMWs1ivEbjTrOCtLNNb+udygqsNbUBtopR/NkuuwTJ6Hxsw67KSuvH5MPDA/nJttfGTdUFCMUlp/ALwOtIs9muBxpnFnBzuSQf21oP/BbXclVvumWuTaDN8WNBm2GizJkxPM0CDMA2WGZ72bbb/Njue2TRj9Il/PcG87SeBz4ZTNaSTsmctHcO8SqDp14d7dCFLZ2v/3OpQ023Ah4n65kohvETUCdcsfmuilD+bpNdgGZvOODuHqYGIVGCec9g7+7o031v2jaBTiD0ysxbHRnZrPktzyz1zK7f0z10nh5pWwLRhvZro1KqznVJhNB8UyDeSsU4zAOiIXV1OuEqQ2AR79nflXgcY6dGLwIvR8q39cy1b+uc2Emo6dI824BpMSxz8iVhy4m/2WiYHdV5UmOHp2mpwm52ESCdwRn+9v0tPAWzpn9sAFAQbMdc60PaHsFZEWd9uxk4z8G3seykECfObTEd2KmuZG4CWyLXkYLMwtiYt+hMsTUdAEZQzjs9apv66SHJRk73ZjBQ+iRu29s+1VEr5OImmXs4MHUahVoLWgK23wbv6OrU4OulcuHYehWsVHhpXwpE2FNRayTszX2cwDpQEzTB+QvrJHCXUaigk+c++aXZiE98YmUVgV19X7u3ypH/fgfUA5h2usY2jNjmWoGVn50nvC9T2NviA5OPBGPW91OlG+0Xa1WJhhqadk3WjpKCilQIQFP19XZocnfIHgIeFWyNh6goXyX6gdNWfU8aJ5tNjEheAHZVS/ruGj0s8k6VPhh6ms6kwgoLl1aGuCEuSpwXfHZ2qrTJ+HHkNCpOjmbdFcEcGUIhUSj/H65rPO6j+766U8i/QXV0z8cqJc4btwF8AtWgtMb1wj+j41Df/s1EYQwdEDiqM3hDes9quGY3IKoYOvCrU7HlCoZtEWapPkzEpsU8uq8b36a6uBqaBv5l45URLpZT/pmGH8LnkvlAdAOt1oeXqRsuYTjlEMJiXvWN/Z+5szfqioKcOKo7qr/nAEesKiOyv2A/q88rOx8+8bPhK5dUTAA8jbUT6MuKnbKteNVHKP23xCeD1LC0F2TWOmzoAKEiWxmC+sr8rN1OerF2HGaqXFcZhDWaYj11S4ZxcXxVqyKqPZOeNTwM7Jkr5BeDPQJ8NFQaoC/gZ26rXT5TyxxAfRx6P94d0gU0pYYama+tsbwix/AHM4fKUrwAeB68kRJ5AZsWWieGTjLipsVCgrKCwKHF7pZQ/RXf104j76i4ZMmquxkzRXb2zUsqfxdxsfCiA70hRjZbpCDHmJcRdeZPDHkVck0Ul5PeHZ81DgHxKtglXaHCxVN9fr5TyR9hW3QA8Amqp5526SyKtBEbZVv1eZeZkbqKU7xfsFJwPqRW29s+11oUxnUhnkHf2dWoB+R5Jv5dNaGHh1wog8d/ZAI+0GgVpFPTp4AfJT2Hup7u6EvMk0tpkboutEz0HMPzHyD+mu3pFpZR/Aug0Pgm0RLkvFzLWYfjDvs7cqfKUt2LuXTLhue5mdWhVDJdEzxDDcRKawceN9lRePVkDfgBcR/LKVqNpz/s08DO6q4VKKT8j8zHgJ1HyzA1P11YZjfV1arw85auBR4RalDB5lEjDKi0CgPPphKZ0QiNRwUQeg88B2ydKreew9yH1NCxe/r4GaZpt1Vsrh/JnDDcBLwPkbLVgf6s86RXYj4KvtJKJM8KsGLkSlsmUL6mSg1RJY1xD7KmU8sfprnYgBqJsGVsiEfupsca7FfMo26p/OfHKiVqllB8HyPV16VxfV66G/G1QBwY5xvCgTT7X3/MTaBbFVr0fJvqw2ASZ+yul/FN0V68CHsesiDl3UopM3CwhDZDD/Dnwj3S/sjoYAMqTtc1YX02jVqYOiuuqsAKIkqZCfFIz/IrfFY8gDrKt2gI8irSuwQezyTeNaOl+6qYb+fpYGKEXJE9GSTObK5ItrheaLHE5/XRKcHul+kYN8x2kzWlLNNuVtUqibzKW5CBjxUoszO7NWrS1E/xWvMeJjck2WQHEKJeMD+qH4gWCSvg00m3AVxv5TMRKsp9Cs0Q/Ka/1BOZQNBSXMz2b9Q5oO9JCKgkqg2aKofl8uvTPeE1w3t5KKf8y26pFxINhLRa5R9JV6huT/aZuFu7Ds+A9jBdj+VIvZz2b9BL2Xi5yJQEgUFqinI9SZBDx358o5Q/HiRGtquOEmxJu6DcbC/afQWxnvHg+Odrwm2bP5txh5OEYjOM3vaiu8qqHJw1mPmK/Xs7HJf0LRncDMF5cAL6NWUxDrX/duwbczljxjSzvTX+gtXU3MBlrRCltrsxBTgorACKrRGf5bczOiVLrhUL74B2F9oHVjBd/iLwTWEhr+CIWaLYumDjIWLHha+aSwvRs1iJmJ9Kb9ZJRETS3ACsMC8i1ZNwgXZDYWTmU/1WhfeAW8Cjo+UL7wDrGik8jfid0kYz/Z2ODepv+GPIY+FAznpcUJhAo9w5mh81CFtEsWieCTzwXkogmfKBSyh8ttA98EDPqoPouYqYLxYEPMVY8itmEeTM+KEaqZhVAkiPPIL6QDPhLFiYQSC9J7M3mGlF/24zWSvwIM1xoH2gF/sFiTcSPxQakqUJxsIPx4jGCr0AzCUYTbROJ7DPAdsbSAX9ZwgDs3qTDiMGUOxF/1DgfekLVsPf0sw8DPARsDNwy8iYBXov4p0L7wC2MF99CfBJ4rqmbJbO/qYE+x1jx5HK8Xtp/aFgHDM/FX+RM9FFjHjjj4NV3HvlPsP4g+SqQgm6zCuvJQnHgi4wVz2JuAj8RnLGEVaCf8Y8cuRQ2L0mYEBB2Gb8ZHKD4NQBx+0Qpf7LQPrAVVGqiiWTpCcEn4QcLxcF7C7+aXMDahT1YX5IS5DHE/ZfC4yULEwr0DtIOWwuuvwZ8rVLKP1soDqzHPGJoyRao9b4SXiQQ30A8eO1/PJ8D7gK+BtQSJcQM8AXGlg747LUkmi91lad8J3CuZ5OeBii0D64ET2FdH1N0omWJvgLPkvwM8LmZf7lrnm3VO4CHsM4DH2P8I8vGSfK67P9q8v9wWPAcQLH4PbBHbK6Pq+3M9+Ml+6FL2dyC+WmhOLiWseKPMDeDd12uIPBrWCZ5Xds++AHsAwGlBKnoB5747c2J+aSJEuvRL8CDv/2Zz+cqh/LL/gPD//vrfwFjcI5oX6jDBwAAAABJRU5ErkJggg== + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines + namespace: kubeflow +spec: + addOwnerRef: true + componentKinds: + - group: networking.istio.io/v1alpha3 + kind: DestinationRule + - group: rbac.istio.io/v1alpha1 + kind: ServiceRoleBinding + - group: rbac.istio.io/v1alpha1 + kind: ServiceRole + - group: metacontroller.k8s.io/v1alpha1 + kind: CompositeController + - group: v1 + kind: ServiceAccount + - group: rbac.authorization.k8s.io/v1 + kind: Role + - group: rbac.authorization.k8s.io/v1 + kind: RoleBinding + - group: v1 + kind: Service + - group: v1 + kind: PersistentVolumeClaim + - group: v1 + kind: ConfigMap + - group: v1 + kind: Secret + - group: apps/v1 + kind: Deployment + - group: networking.istio.io/v1alpha3 + kind: VirtualService + descriptor: + description: Reusable end-to-end ML workflow + links: + - description: Kubeflow Pipelines Documentation + url: https://www.kubeflow.org/docs/pipelines/ + maintainers: + - name: Kubeflow Pipelines + url: https://github.com/kubeflow/pipelines + type: Kubeflow Pipelines + version: 1.0.4 + selector: + matchLabels: + app.kubernetes.io/application: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml new file mode 100644 index 0000000000..e1b386dfb9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_minio.yaml @@ -0,0 +1,31 @@ +apiVersion: app.k8s.io/v1beta1 +kind: Application +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio + namespace: kubeflow +spec: + addOwnerRef: true + componentKinds: + - group: core + kind: ConfigMap + - group: apps + kind: Deployment + descriptor: + description: "" + keywords: + - minio + - kubeflow + links: + - description: About + url: "" + maintainers: [] + owners: [] + type: minio + version: v1beta1 + selector: + matchLabels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml new file mode 100644 index 0000000000..d4db458295 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/app.k8s.io_v1beta1_application_mysql.yaml @@ -0,0 +1,32 @@ +apiVersion: app.k8s.io/v1beta1 +kind: Application +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql + namespace: kubeflow +spec: + addOwnerRef: true + componentKinds: + - group: core + kind: ConfigMap + - group: apps + kind: Deployment + descriptor: + description: "" + keywords: + - mysql + - kubeflow + links: + - description: About + url: "" + maintainers: [] + owners: [] + type: mysql + version: v1beta1 + selector: + matchLabels: + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml new file mode 100644 index 0000000000..e8a95f1f1a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-deployer-deployment + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + strategy: + type: Recreate + template: + metadata: + labels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE_TO_WATCH + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: gcr.io/ml-pipeline/cache-deployer:1.0.4 + imagePullPolicy: Always + name: main + restartPolicy: Always + serviceAccountName: kubeflow-pipelines-cache-deployer-sa diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml new file mode 100644 index 0000000000..9d5bbcd218 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_cache-server.yaml @@ -0,0 +1,77 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - args: + - --db_driver=$(DBCONFIG_DRIVER) + - --db_host=$(DBCONFIG_HOST_NAME) + - --db_port=$(DBCONFIG_PORT) + - --db_name=$(DBCONFIG_DB_NAME) + - --db_user=$(DBCONFIG_USER) + - --db_password=$(DBCONFIG_PASSWORD) + - --namespace_to_watch=$(NAMESPACE_TO_WATCH) + env: + - name: DBCONFIG_DRIVER + value: mysql + - name: DBCONFIG_DB_NAME + valueFrom: + configMapKeyRef: + key: cacheDb + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_HOST_NAME + valueFrom: + configMapKeyRef: + key: dbHost + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_PORT + valueFrom: + configMapKeyRef: + key: dbPort + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_USER + valueFrom: + secretKeyRef: + key: username + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: mysql-secret-fd5gktm75t + - name: NAMESPACE_TO_WATCH + value: "" + image: gcr.io/ml-pipeline/cache-server:1.0.4 + imagePullPolicy: Always + name: server + ports: + - containerPort: 8443 + name: webhook-api + volumeMounts: + - mountPath: /etc/webhook/certs + name: webhook-tls-certs + readOnly: true + serviceAccountName: kubeflow-pipelines-cache + volumes: + - name: webhook-tls-certs + secret: + secretName: webhook-server-tls diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml new file mode 100644 index 0000000000..009d76e696 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_kubeflow-pipelines-profile-controller.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + annotations: + sidecar.istio.io/inject: "false" + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - command: + - python + - /hooks/sync.py + env: + - name: KFP_VERSION + valueFrom: + configMapKeyRef: + key: appVersion + name: pipeline-upstream-install-config-d7hkh24mdg + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + envFrom: + - configMapRef: + name: kubeflow-pipelines-profile-controller-env-mgh6th2gff + image: python:3.7 + name: profile-controller + ports: + - containerPort: 80 + volumeMounts: + - mountPath: /hooks + name: hooks + volumes: + - configMap: + name: kubeflow-pipelines-profile-controller-code-gg2h6k2fch + name: hooks diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml new file mode 100644 index 0000000000..a2243b9ec9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_metadata-writer.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: metadata-writer + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: ARCHIVE_LOGS + valueFrom: + configMapKeyRef: + key: archive_logs + name: kfp-tekton-config + - name: NAMESPACE_TO_WATCH + value: "" + image: docker.io/aipipeline/metadata-writer:0.4.0 + name: main + serviceAccountName: kubeflow-pipelines-metadata-writer diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_minio.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_minio.yaml new file mode 100644 index 0000000000..dd97d1e4d3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_minio.yaml @@ -0,0 +1,55 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + sidecar.istio.io/inject: "false" + labels: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio + namespace: kubeflow +spec: + selector: + matchLabels: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + strategy: + type: Recreate + template: + metadata: + annotations: + sidecar.istio.io/inject: "false" + labels: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + spec: + containers: + - args: + - server + - /data + env: + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + image: gcr.io/ml-pipeline/minio:RELEASE.2019-08-14T20-37-41Z-license-compliance + name: minio + ports: + - containerPort: 9000 + volumeMounts: + - mountPath: /data + name: data + subPath: minio + volumes: + - name: data + persistentVolumeClaim: + claimName: minio-pv-claim diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml new file mode 100644 index 0000000000..b35938fe35 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + value: "" + - name: TTL_SECONDS_AFTER_WORKFLOW_FINISH + value: "86400" + image: docker.io/aipipeline/persistenceagent:0.4.0 + imagePullPolicy: IfNotPresent + name: ml-pipeline-persistenceagent + serviceAccountName: ml-pipeline-persistenceagent diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml new file mode 100644 index 0000000000..2af2c46654 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml @@ -0,0 +1,30 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + value: "" + image: docker.io/aipipeline/scheduledworkflow:0.4.0 + imagePullPolicy: IfNotPresent + name: ml-pipeline-scheduledworkflow + serviceAccountName: ml-pipeline-scheduledworkflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..91ab49d5ce --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml @@ -0,0 +1,100 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: VIEWER_TENSORBOARD_POD_TEMPLATE_SPEC_PATH + value: /etc/config/viewer-pod-template.json + - name: DEPLOYMENT + value: KUBEFLOW + - name: ARTIFACTS_SERVICE_PROXY_NAME + value: ml-pipeline-ui-artifact + - name: ARTIFACTS_SERVICE_PROXY_PORT + value: "80" + - name: ARTIFACTS_SERVICE_PROXY_ENABLED + value: "true" + - name: ENABLE_AUTHZ + value: "true" + - name: KUBEFLOW_USERID_HEADER + valueFrom: + configMapKeyRef: + key: userid-header + name: kubeflow-config-bk4bc7m928 + - name: KUBEFLOW_USERID_PREFIX + valueFrom: + configMapKeyRef: + key: userid-prefix + name: kubeflow-config-bk4bc7m928 + - name: MINIO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + - name: ALLOW_CUSTOM_VISUALIZATIONS + value: "true" + image: docker.io/aipipeline/frontend:0.4.0 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:3000/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-ui + ports: + - containerPort: 3000 + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:3000/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + volumeMounts: + - mountPath: /etc/config + name: config-volume + readOnly: true + serviceAccountName: ml-pipeline-ui + volumes: + - configMap: + name: ml-pipeline-ui-configmap + name: config-volume diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml new file mode 100644 index 0000000000..995881231a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + value: "" + valueFrom: null + - name: MAX_NUM_VIEWERS + value: "50" + - name: MINIO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: gcr.io/ml-pipeline/viewer-crd-controller:1.0.4 + imagePullPolicy: Always + name: ml-pipeline-viewer-crd + serviceAccountName: ml-pipeline-viewer-crd-service-account diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..bf0ef4fb76 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,54 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - image: gcr.io/ml-pipeline/visualization-server:1.0.4 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/ + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-visualizationserver + ports: + - containerPort: 8888 + name: http + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/ + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + serviceAccountName: ml-pipeline-visualizationserver diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml new file mode 100644 index 0000000000..b7d8ae85ff --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml @@ -0,0 +1,161 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: ARTIFACT_BUCKET + valueFrom: + configMapKeyRef: + key: artifact_bucket + name: kfp-tekton-config + - name: ARTIFACT_ENDPOINT + valueFrom: + configMapKeyRef: + key: artifact_endpoint + name: kfp-tekton-config + - name: ARTIFACT_ENDPOINT_SCHEME + valueFrom: + configMapKeyRef: + key: artifact_endpoint_scheme + name: kfp-tekton-config + - name: ARCHIVE_LOGS + valueFrom: + configMapKeyRef: + key: archive_logs + name: kfp-tekton-config + - name: TRACK_ARTIFACTS + valueFrom: + configMapKeyRef: + key: track_artifacts + name: kfp-tekton-config + - name: STRIP_EOF + valueFrom: + configMapKeyRef: + key: strip_eof + name: kfp-tekton-config + - name: ARTIFACT_SCRIPT + valueFrom: + configMapKeyRef: + key: artifact_script + name: kfp-tekton-config + - name: ARTIFACT_IMAGE + valueFrom: + configMapKeyRef: + key: artifact_image + name: kfp-tekton-config + - name: INJECT_DEFAULT_SCRIPT + valueFrom: + configMapKeyRef: + key: inject_default_script + name: kfp-tekton-config + - name: KUBEFLOW_USERID_HEADER + valueFrom: + configMapKeyRef: + key: userid-header + name: kubeflow-config-bk4bc7m928 + - name: KUBEFLOW_USERID_PREFIX + valueFrom: + configMapKeyRef: + key: userid-prefix + name: kubeflow-config-bk4bc7m928 + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: OBJECTSTORECONFIG_SECURE + value: "false" + - name: OBJECTSTORECONFIG_BUCKETNAME + valueFrom: + configMapKeyRef: + key: bucketName + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_USER + valueFrom: + secretKeyRef: + key: username + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_DBNAME + valueFrom: + configMapKeyRef: + key: pipelineDb + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_HOST + valueFrom: + configMapKeyRef: + key: dbHost + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_PORT + valueFrom: + configMapKeyRef: + key: dbPort + name: pipeline-install-config-2829cc67f8 + - name: OBJECTSTORECONFIG_ACCESSKEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: OBJECTSTORECONFIG_SECRETACCESSKEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + envFrom: + - configMapRef: + name: pipeline-api-server-config-f4t72426kt + image: docker.io/aipipeline/api-server:0.4.0 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-api-server + ports: + - containerPort: 8888 + name: http + - containerPort: 8887 + name: grpc + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + serviceAccountName: ml-pipeline diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_mysql.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_mysql.yaml new file mode 100644 index 0000000000..b47bdbb60a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/apps_v1_deployment_mysql.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql + namespace: kubeflow +spec: + selector: + matchLabels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + strategy: + type: Recreate + template: + metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + spec: + containers: + - env: + - name: MYSQL_ALLOW_EMPTY_PASSWORD + value: "true" + image: gcr.io/ml-pipeline/mysql:5.6 + name: mysql + ports: + - containerPort: 3306 + name: mysql + volumeMounts: + - mountPath: /var/lib/mysql + name: mysql-persistent-storage + volumes: + - name: mysql-persistent-storage + persistentVolumeClaim: + claimName: mysql-pv-claim diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml new file mode 100644 index 0000000000..7f869f34fd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/metacontroller.k8s.io_v1alpha1_compositecontroller_kubeflow-pipelines-profile-controller.yaml @@ -0,0 +1,48 @@ +apiVersion: metacontroller.k8s.io/v1alpha1 +kind: CompositeController +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller + namespace: kubeflow +spec: + childResources: + - apiVersion: v1 + resource: secrets + updateStrategy: + method: OnDelete + - apiVersion: v1 + resource: configmaps + updateStrategy: + method: OnDelete + - apiVersion: apps/v1 + resource: deployments + updateStrategy: + method: InPlace + - apiVersion: v1 + resource: services + updateStrategy: + method: InPlace + - apiVersion: networking.istio.io/v1alpha3 + resource: destinationrules + updateStrategy: + method: InPlace + - apiVersion: rbac.istio.io/v1alpha1 + resource: serviceroles + updateStrategy: + method: InPlace + - apiVersion: rbac.istio.io/v1alpha1 + resource: servicerolebindings + updateStrategy: + method: InPlace + generateSelector: true + hooks: + sync: + webhook: + url: http://kubeflow-pipelines-profile-controller/sync + parentResource: + apiVersion: v1 + resource: namespaces + resyncPeriodSeconds: 10 diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml new file mode 100644 index 0000000000..09c0a7d17d --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-mysql.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-mysql + namespace: kubeflow +spec: + host: mysql.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..ad592610e0 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-ui.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + host: ml-pipeline-ui.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..2e2fd51f44 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + host: ml-pipeline-visualizationserver.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml new file mode 100644 index 0000000000..8cca5fda78 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_destinationrule_ml-pipeline.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: DestinationRule +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + host: ml-pipeline.kubeflow.svc.cluster.local + trafficPolicy: + tls: + mode: ISTIO_MUTUAL diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..f626864576 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + gateways: + - kubeflow-gateway + hosts: + - '*' + http: + - match: + - uri: + prefix: /pipeline + rewrite: + uri: /pipeline + route: + - destination: + host: ml-pipeline-ui.kubeflow.svc.cluster.local + port: + number: 80 + timeout: 300s diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml new file mode 100644 index 0000000000..5ba54f3cda --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml @@ -0,0 +1,37 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: kubeflow-pipelines-cache-deployer-clusterrole + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-clusterrole +rules: +- apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + verbs: + - create + - delete + - get + - update +- apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - create + - delete + - get + - list + - patch +- apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/* + resources: + - signers + verbs: + - approve diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml new file mode 100644 index 0000000000..e6bc4ed4ea --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-role.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-role +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml new file mode 100644 index 0000000000..70678cc148 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-metadata-writer-role.yaml @@ -0,0 +1,46 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-role +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml new file mode 100644 index 0000000000..8036a41555 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-persistenceagent-role.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-role +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - get + - list + - watch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml new file mode 100644 index 0000000000..db407f5818 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-scheduledworkflow-role.yaml @@ -0,0 +1,53 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-role +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..3f998fe349 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-ui.yaml @@ -0,0 +1,55 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui +rules: +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - list +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml new file mode 100644 index 0000000000..c4d627de01 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_ml-pipeline-viewer-controller-role.yaml @@ -0,0 +1,33 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-controller-role +rules: +- apiGroups: + - '*' + resources: + - deployments + - services + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml new file mode 100644 index 0000000000..a13cabbb82 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubeflow-pipelines-cache-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml new file mode 100644 index 0000000000..459313eff8 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-clusterrolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubeflow-pipelines-cache-deployer-clusterrole +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml new file mode 100644 index 0000000000..e7ee7127e6 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-metadata-writer-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubeflow-pipelines-metadata-writer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml new file mode 100644 index 0000000000..96febc69e1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-persistenceagent-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-persistenceagent-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml new file mode 100644 index 0000000000..f3f1b2dc2e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-scheduledworkflow-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-scheduledworkflow-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..7a864a75dd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-ui.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-ui +subjects: +- kind: ServiceAccount + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml new file mode 100644 index 0000000000..c815c7bcdf --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_ml-pipeline-viewer-crd-binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline-viewer-controller-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml new file mode 100644 index 0000000000..59924196e1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml @@ -0,0 +1,20 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-cache-deployer-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - patch + - list diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml new file mode 100644 index 0000000000..7c2b27e343 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml @@ -0,0 +1,36 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-cache-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml new file mode 100644 index 0000000000..c300b1cda8 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml @@ -0,0 +1,36 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-metadata-writer-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml new file mode 100644 index 0000000000..8d376c6ae5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml @@ -0,0 +1,25 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-role + namespace: kubeflow +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - get + - list + - watch diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml new file mode 100644 index 0000000000..a31ac1ebfd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml @@ -0,0 +1,41 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline-scheduledworkflow-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-role + namespace: kubeflow +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..4ff55fe4e7 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml @@ -0,0 +1,47 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - list +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml new file mode 100644 index 0000000000..522897510e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-controller-role + namespace: kubeflow +rules: +- apiGroups: + - '*' + resources: + - deployments + - services + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml new file mode 100644 index 0000000000..5a947370a6 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml @@ -0,0 +1,41 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml new file mode 100644 index 0000000000..fdd503498a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml @@ -0,0 +1,84 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - get +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - watch + - list +- apiGroups: + - "" + resources: + - persistentvolumes + - persistentvolumeclaims + verbs: + - '*' +- apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - create + - delete + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - pods + - pods/exec + - pods/log + - services + verbs: + - '*' +- apiGroups: + - "" + - apps + - extensions + resources: + - deployments + - replicasets + verbs: + - '*' +- apiGroups: + - kubeflow.org + resources: + - '*' + verbs: + - '*' +- apiGroups: + - batch + resources: + - jobs + verbs: + - '*' +- apiGroups: + - machinelearning.seldon.io + resources: + - seldondeployments + verbs: + - '*' diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml new file mode 100644 index 0000000000..e76122f19f --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-cache-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml new file mode 100644 index 0000000000..7471959ec9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-rolebinding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-cache-deployer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml new file mode 100644 index 0000000000..32755c9be3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-metadata-writer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml new file mode 100644 index 0000000000..c1033e02db --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-persistenceagent-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml new file mode 100644 index 0000000000..c3ed87368c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-scheduledworkflow-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..1d78022b2b --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-ui +subjects: +- kind: ServiceAccount + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml new file mode 100644 index 0000000000..96503d4ab4 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-viewer-controller-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml new file mode 100644 index 0000000000..ff6a5433d3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline +subjects: +- kind: ServiceAccount + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml new file mode 100644 index 0000000000..9e1352d61a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pipeline-runner +subjects: +- kind: ServiceAccount + name: pipeline-runner + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml new file mode 100644 index 0000000000..6945d0b189 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrole_ml-pipeline.yaml @@ -0,0 +1,53 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - update + - patch + - delete +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get + - delete +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml new file mode 100644 index 0000000000..4d0d9ff2dd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.authorization.k8s.io_v1beta1_clusterrolebinding_ml-pipeline.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ml-pipeline +subjects: +- kind: ServiceAccount + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml new file mode 100644 index 0000000000..3386ae37fb --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_cache-server.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + rules: + - services: + - cache-server.kubeflow.svc.cluster.local diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml new file mode 100644 index 0000000000..2725a334f9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-services.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-services + namespace: kubeflow +spec: + rules: + - services: + - ml-pipeline.kubeflow.svc.cluster.local + - ml-pipeline-ui.kubeflow.svc.cluster.local + - ml-pipeline-visualizationserver.kubeflow.svc.cluster.local + - mysql.kubeflow.svc.cluster.local diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..a95b8f795c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerole_ml-pipeline-ui.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRole +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + rules: + - services: + - ml-pipeline-ui.kubeflow.svc.cluster.local diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml new file mode 100644 index 0000000000..d02359475a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-cache-server-admission-webhook.yaml @@ -0,0 +1,14 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: bind-cache-server-admission-webhook + namespace: kubeflow +spec: + roleRef: + kind: ServiceRole + name: cache-server + subjects: + - user: '*' diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml new file mode 100644 index 0000000000..6a6dad8158 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-gateway-ml-pipeline-ui.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: bind-gateway-ml-pipeline-ui + namespace: kubeflow +spec: + roleRef: + kind: ServiceRole + name: ml-pipeline-ui + subjects: + - properties: + source.namespace: istio-system diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml new file mode 100644 index 0000000000..ca3acbebe1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/rbac.istio.io_v1alpha1_servicerolebinding_bind-ml-pipeline-internal.yaml @@ -0,0 +1,25 @@ +apiVersion: rbac.istio.io/v1alpha1 +kind: ServiceRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: bind-ml-pipeline-internal + namespace: kubeflow +spec: + roleRef: + kind: ServiceRole + name: ml-pipeline-services + subjects: + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-ui + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-persistenceagent + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-scheduledworkflow + - properties: + source.principal: cluster.local/ns/kubeflow/sa/ml-pipeline-viewer-crd-service-account + - properties: + source.principal: cluster.local/ns/kubeflow/sa/kubeflow-pipelines-cache diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml new file mode 100644 index 0000000000..f67b5c140c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml @@ -0,0 +1,31 @@ +apiVersion: v1 +data: + archive_logs: "false" + artifact_bucket: mlpipeline + artifact_endpoint: minio-service.kubeflow:9000 + artifact_endpoint_scheme: http:// + artifact_image: minio/mc + artifact_script: |- + #!/usr/bin/env sh + push_artifact() { + tar -cvzf $1.tgz $2 + mc cp $1.tgz storage/$ARTIFACT_BUCKET/artifacts/$PIPELINERUN/$PIPELINETASK/$1.tgz + } + push_log() { + cat /var/log/containers/$PODNAME*$NAMESPACE*step-main*.log > step-main.log + push_artifact main-log step-main.log + } + strip_eof() { + awk 'NF' $2 | head -c -1 > $1_temp_save && cp $1_temp_save $2 + } + mc config host add storage ${ARTIFACT_ENDPOINT_SCHEME}${ARTIFACT_ENDPOINT} $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY + inject_default_script: "true" + strip_eof: "false" + track_artifacts: "true" +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kfp-tekton-config + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gg2h6k2fch.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gg2h6k2fch.yaml new file mode 100644 index 0000000000..2eccebede9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-code-gg2h6k2fch.yaml @@ -0,0 +1,325 @@ +apiVersion: v1 +data: + sync.py: | + # Copyright 2020 Google LLC + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + + from http.server import BaseHTTPRequestHandler, HTTPServer + import json + import os + import base64 + + kfp_version = os.environ["KFP_VERSION"] + disable_istio_sidecar = os.environ.get("DISABLE_ISTIO_SIDECAR") == "true" + mlpipeline_minio_access_key = base64.b64encode( + bytes(os.environ.get("MINIO_ACCESS_KEY"), 'utf-8')).decode('utf-8') + mlpipeline_minio_secret_key = base64.b64encode( + bytes(os.environ.get("MINIO_SECRET_KEY"), 'utf-8')).decode('utf-8') + + + class Controller(BaseHTTPRequestHandler): + def sync(self, parent, children): + # HACK: Currently using serving.kubeflow.org/inferenceservice to identify + # kubeflow user namespaces. + # TODO: let Kubeflow profile controller add a pipeline specific label to + # user namespaces and use that label instead. + pipeline_enabled = parent.get("metadata", {}).get( + "labels", {}).get("serving.kubeflow.org/inferenceservice") + + if not pipeline_enabled: + return {"status": {}, "children": []} + + # Compute status based on observed state. + desired_status = { + "kubeflow-pipelines-ready": \ + len(children["Secret.v1"]) == 1 and \ + len(children["ConfigMap.v1"]) == 1 and \ + len(children["Deployment.apps/v1"]) == 2 and \ + len(children["Service.v1"]) == 2 and \ + len(children["DestinationRule.networking.istio.io/v1alpha3"]) == 1 and \ + len(children["ServiceRole.rbac.istio.io/v1alpha1"]) == 1 and \ + len(children["ServiceRoleBinding.rbac.istio.io/v1alpha1"]) == 1 and \ + "True" or "False" + } + + # Generate the desired child object(s). + # parent is a namespace + namespace = parent.get("metadata", {}).get("name") + desired_resources = [ + { + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "metadata-grpc-configmap", + "namespace": namespace, + }, + "data": { + "METADATA_GRPC_SERVICE_HOST": + "metadata-grpc-service.kubeflow", + "METADATA_GRPC_SERVICE_PORT": "8080", + }, + }, + # Visualization server related manifests below + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "labels": { + "app": "ml-pipeline-visualizationserver" + }, + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "selector": { + "matchLabels": { + "app": "ml-pipeline-visualizationserver" + }, + }, + "template": { + "metadata": { + "labels": { + "app": "ml-pipeline-visualizationserver" + }, + "annotations": disable_istio_sidecar and { + "sidecar.istio.io/inject": "false" + } or {}, + }, + "spec": { + "containers": [{ + "image": + "gcr.io/ml-pipeline/visualization-server:" + + kfp_version, + "imagePullPolicy": + "IfNotPresent", + "name": + "ml-pipeline-visualizationserver", + "ports": [{ + "containerPort": 8888 + }], + }], + "serviceAccountName": + "default-editor", + }, + }, + }, + }, + { + "apiVersion": "networking.istio.io/v1alpha3", + "kind": "DestinationRule", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "host": "ml-pipeline-visualizationserver", + "trafficPolicy": { + "tls": { + "mode": "ISTIO_MUTUAL" + } + } + } + }, + { + "apiVersion": "rbac.istio.io/v1alpha1", + "kind": "ServiceRole", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "rules": [{ + "services": ["ml-pipeline-visualizationserver.*"] + }] + } + }, + { + "apiVersion": "rbac.istio.io/v1alpha1", + "kind": "ServiceRoleBinding", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "subjects": [{ + "properties": { + "source.principal": + "cluster.local/ns/kubeflow/sa/ml-pipeline" + } + }], + "roleRef": { + "kind": "ServiceRole", + "name": "ml-pipeline-visualizationserver" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "ml-pipeline-visualizationserver", + "namespace": namespace, + }, + "spec": { + "ports": [{ + "name": "http", + "port": 8888, + "protocol": "TCP", + "targetPort": 8888, + }], + "selector": { + "app": "ml-pipeline-visualizationserver", + }, + }, + }, + # Artifact fetcher related resources below. + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "labels": { + "app": "ml-pipeline-ui-artifact" + }, + "name": "ml-pipeline-ui-artifact", + "namespace": namespace, + }, + "spec": { + "selector": { + "matchLabels": { + "app": "ml-pipeline-ui-artifact" + } + }, + "template": { + "metadata": { + "labels": { + "app": "ml-pipeline-ui-artifact" + }, + "annotations": disable_istio_sidecar and { + "sidecar.istio.io/inject": "false" + } or {}, + }, + "spec": { + "containers": [{ + "name": + "ml-pipeline-ui-artifact", + "image": + "gcr.io/ml-pipeline/frontend:" + kfp_version, + "imagePullPolicy": + "IfNotPresent", + "ports": [{ + "containerPort": 3000 + }] + }], + "serviceAccountName": + "default-editor" + } + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "ml-pipeline-ui-artifact", + "namespace": namespace, + "labels": { + "app": "ml-pipeline-ui-artifact" + } + }, + "spec": { + "ports": [{ + "name": + "http", # name is required to let istio understand request protocol + "port": 80, + "protocol": "TCP", + "targetPort": 3000 + }], + "selector": { + "app": "ml-pipeline-ui-artifact" + } + } + }, + { + "apiVersion": "tekton.dev/v1alpha1", + "kind": "Condition", + "metadata": { + "name": "super-condition", + "namespace": namespace, + }, + "spec": { + "check": { + "image": "python:alpine3.6", + "script": ("python -c 'import sys\ninput1=str.rstrip(sys.argv[1])\n" + "input2=str.rstrip(sys.argv[2])\ntry:\n input1=int(input1)\n" + " input2=int(input2)\nexcept:\n input1=str(input1)\nsys.exit(0)" + " if (input1 $(params.operator) input2) else sys.exit(1)' " + "'$(params.operand1)' '$(params.operand2)'") + }, + "params": [ + { + "name": "operand1", + "type": "string" + }, + { + "name": "operand2", + "type": "string" + }, + { + "name": "operator", + "type": "string" + } + ] + } + }, + ] + print('Received request:', parent) + print('Desired resources except secrets:', desired_resources) + # Moved after the print argument because this is sensitive data. + desired_resources.append({ + "apiVersion": "v1", + "kind": "Secret", + "metadata": { + "name": "mlpipeline-minio-artifact", + "namespace": namespace, + }, + "data": { + "accesskey": mlpipeline_minio_access_key, + "secretkey": mlpipeline_minio_secret_key, + }, + }) + + return {"status": desired_status, "children": desired_resources} + + def do_POST(self): + # Serve the sync() function as a JSON webhook. + observed = json.loads( + self.rfile.read(int(self.headers.get("content-length")))) + desired = self.sync(observed["parent"], observed["children"]) + + self.send_response(200) + self.send_header("Content-type", "application/json") + self.end_headers() + self.wfile.write(bytes(json.dumps(desired), 'utf-8')) + + + HTTPServer(("", 80), Controller).serve_forever() +kind: ConfigMap +metadata: + annotations: {} + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller-code-gg2h6k2fch + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml new file mode 100644 index 0000000000..80bb7ba538 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_kubeflow-pipelines-profile-controller-env-mgh6th2gff.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + DISABLE_ISTIO_SIDECAR: "false" +kind: ConfigMap +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller-env-mgh6th2gff + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml new file mode 100644 index 0000000000..da561543e7 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +data: + viewer-pod-template.json: |- + { + "spec": { + "serviceAccountName": "default-editor" + } + } +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui-configmap + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml new file mode 100644 index 0000000000..90de9ec34a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-api-server-config-f4t72426kt.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +data: + DEFAULTPIPELINERUNNERSERVICEACCOUNT: default-editor + MULTIUSER: "true" + VISUALIZATIONSERVICE_NAME: ml-pipeline-visualizationserver + VISUALIZATIONSERVICE_PORT: "8888" +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-api-server-config-f4t72426kt + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml new file mode 100644 index 0000000000..c2b0b0572c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +data: + bucketName: mlpipeline + cacheDb: cachedb + dbHost: mysql + dbPort: "3306" + mlmdDb: metadb + pipelineDb: mlpipeline +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-install-config-2829cc67f8 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml new file mode 100644 index 0000000000..b2cd7cdbe4 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-minio-parameters.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + minioPvcName: minio-pv-claim +kind: ConfigMap +metadata: + annotations: {} + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: pipeline-minio-parameters + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml new file mode 100644 index 0000000000..7d9e9da8fb --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-mysql-parameters.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + mysqlPvcName: mysql-pv-claim +kind: ConfigMap +metadata: + annotations: {} + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: pipeline-mysql-parameters + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml new file mode 100644 index 0000000000..3aef75a62e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +data: + appName: pipeline + appVersion: 1.0.4 + bucketName: mlpipeline + cacheDb: cachedb + containerRuntimeExecutor: docker + dbHost: mysql + dbPort: "3306" + mlmdDb: metadb + pipelineDb: mlpipeline +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-upstream-install-config-d7hkh24mdg + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml new file mode 100644 index 0000000000..e1792aa3a0 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pv-claim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio-pv-claim + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml new file mode 100644 index 0000000000..0dd8344034 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio-pvc + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml new file mode 100644 index 0000000000..bf0c560da5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql-pv-claim + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml new file mode 100644 index 0000000000..2c774e447c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + accesskey: bWluaW8= + secretkey: bWluaW8xMjM= +kind: Secret +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: mlpipeline-minio-artifact + namespace: kubeflow +type: Opaque diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml new file mode 100644 index 0000000000..3490a9d7f1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + password: "" + username: cm9vdA== +kind: Secret +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: mysql-secret-fd5gktm75t + namespace: kubeflow +type: Opaque diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_cache-server.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_cache-server.yaml new file mode 100644 index 0000000000..ab6cf5124e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_cache-server.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + ports: + - port: 443 + targetPort: webhook-api + selector: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml new file mode 100644 index 0000000000..a22de6bef3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_kubeflow-pipelines-profile-controller.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-profile-controller + namespace: kubeflow +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 80 + selector: + app: kubeflow-pipelines-profile-controller + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_minio-service.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_minio-service.yaml new file mode 100644 index 0000000000..c7f0acee21 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_minio-service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio + name: minio-service + namespace: kubeflow +spec: + ports: + - name: http + port: 9000 + protocol: TCP + targetPort: 9000 + selector: + app: minio + app.kubernetes.io/component: minio + app.kubernetes.io/name: minio diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..4b493f3119 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 3000 + selector: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..71a24c4ada --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + ports: + - name: http + port: 8888 + protocol: TCP + targetPort: 8888 + selector: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline.yaml new file mode 100644 index 0000000000..4d23b20f01 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_ml-pipeline.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + ports: + - name: http + port: 8888 + protocol: TCP + targetPort: 8888 + - name: grpc + port: 8887 + protocol: TCP + targetPort: 8887 + selector: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_mysql.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_mysql.yaml new file mode 100644 index 0000000000..da8f8cb93a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_service_mysql.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql + name: mysql + namespace: kubeflow +spec: + ports: + - port: 3306 + protocol: TCP + targetPort: 3306 + selector: + app: mysql + app.kubernetes.io/component: mysql + app.kubernetes.io/name: mysql diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml new file mode 100644 index 0000000000..a985549ba3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml new file mode 100644 index 0000000000..f7555f0f35 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml new file mode 100644 index 0000000000..b0bbf5da53 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-container-builder + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml new file mode 100644 index 0000000000..de94276552 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml new file mode 100644 index 0000000000..9521f5b74d --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-viewer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml new file mode 100644 index 0000000000..5bc5786177 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml new file mode 100644 index 0000000000..4a157173bc --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..9318d09104 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml new file mode 100644 index 0000000000..ff0696597e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..5c8e34b2a1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml new file mode 100644 index 0000000000..b95a37213c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml new file mode 100644 index 0000000000..13fb2a95dd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton-multi-user/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/kustomize_test.go b/tests/stacks/ibm/application/kfp-tekton/kustomize_test.go new file mode 100644 index 0000000000..3f5946aaa3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/kustomize_test.go @@ -0,0 +1,15 @@ +package kfp_tekton + +import ( + "github.com/kubeflow/manifests/tests" + "testing" +) + +func TestKustomize(t *testing.T) { + testCase := &tests.KustomizeTestCase{ + Package: "../../../../../stacks/ibm/application/kfp-tekton", + Expected: "test_data/expected", + } + + tests.RunTestCase(t, testCase) +} diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml new file mode 100644 index 0000000000..39c462bb2e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_scheduledworkflows.kubeflow.org.yaml @@ -0,0 +1,21 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: scheduledworkflows.kubeflow.org +spec: + group: kubeflow.org + names: + kind: ScheduledWorkflow + listKind: ScheduledWorkflowList + plural: scheduledworkflows + shortNames: + - swf + singular: scheduledworkflow + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml new file mode 100644 index 0000000000..711e1a0029 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apiextensions.k8s.io_v1beta1_customresourcedefinition_viewers.kubeflow.org.yaml @@ -0,0 +1,21 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: viewers.kubeflow.org +spec: + group: kubeflow.org + names: + kind: Viewer + listKind: ViewerList + plural: viewers + shortNames: + - vi + singular: viewer + scope: Namespaced + versions: + - name: v1beta1 + served: true + storage: true diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml new file mode 100644 index 0000000000..1528604b3a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/app.k8s.io_v1beta1_application_kubeflow-pipelines.yaml @@ -0,0 +1,44 @@ +apiVersion: app.k8s.io/v1beta1 +kind: Application +metadata: + annotations: + kubernetes-engine.cloud.google.com/icon: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAyCAYAAADx/eOPAAALuUlEQVRogd2afWxd9XnHP99bK4pS3yhiGUIRiiJUVVVqbq8ppdR20ibqpuIMtDRkUYERp29J57gMZVuxsrZiK7oZXVv5re1AiOuoG+N1DMkuytprsGPEVMouxqQZJVHEWIdQlGVxZlmZdb/747zcc869jpMO+seOdPz7nd/L83tev89zzjX8Bq795Rq9o17zXp+Tey+Ijkyboela29DRWkhffyT733pH/Z3este9F2cC6N0kNjxtjD+FdRD8UF9X7u97y7UbQFPAivC0BdllS381slun3s3z3xVhhqeds90tqR/oMB7u68z19ZZra0E/l1if3WOziPx3skrDPTr+bvDxfxImEIJbgX6gGBJ7EfHJX/ySReDHwO9KYAenyWCMFKw21GSeslwa2Z17+TcuzPBRr7B8m6Df5oOJqdPAR/u6cm/2lmv3At+IT3GiXZqbcaxSLsfRoTsvn7XL2jE87ZXGnwf+VGiDY86ETM1wU1+XjvSW/RlgTJADQ2QaCZKWcX1/aDIcjE8i3SdzZLjn0lm8pJXD02417BM+gLmq2Rqjr/d16Vu95dp6wc8Ra5O8NrPIcoZCvIR1H+KZkd2qLcfnRYUZOuorJO+3uQt0RerolGYZR7r5+C9ZATwPviGyQprd6Liszy3bnwVKwGMjPbnFyxJmeNpX2T4gaR/QmmSpyYZTho/2depMb9k/kNh3KawuJ1bWauHzUcyXRpZAv5Zmg7aHBLcmNN9ECAFeAO3s69KZ3nLtDuF9dnBs0IT9JO24rbPb0JfP2syCZpFfE5q1mRWcvlgMNcwMTRq9z/+OWXdx4AGjvX1deqC37DbwPwOrMgsufol5mWMWs1ivEbjTrOCtLNNb+udygqsNbUBtopR/NkuuwTJ6Hxsw67KSuvH5MPDA/nJttfGTdUFCMUlp/ALwOtIs9muBxpnFnBzuSQf21oP/BbXclVvumWuTaDN8WNBm2GizJkxPM0CDMA2WGZ72bbb/Njue2TRj9Il/PcG87SeBz4ZTNaSTsmctHcO8SqDp14d7dCFLZ2v/3OpQ023Ah4n65kohvETUCdcsfmuilD+bpNdgGZvOODuHqYGIVGCec9g7+7o031v2jaBTiD0ysxbHRnZrPktzyz1zK7f0z10nh5pWwLRhvZro1KqznVJhNB8UyDeSsU4zAOiIXV1OuEqQ2AR79nflXgcY6dGLwIvR8q39cy1b+uc2Emo6dI824BpMSxz8iVhy4m/2WiYHdV5UmOHp2mpwm52ESCdwRn+9v0tPAWzpn9sAFAQbMdc60PaHsFZEWd9uxk4z8G3seykECfObTEd2KmuZG4CWyLXkYLMwtiYt+hMsTUdAEZQzjs9apv66SHJRk73ZjBQ+iRu29s+1VEr5OImmXs4MHUahVoLWgK23wbv6OrU4OulcuHYehWsVHhpXwpE2FNRayTszX2cwDpQEzTB+QvrJHCXUaigk+c++aXZiE98YmUVgV19X7u3ypH/fgfUA5h2usY2jNjmWoGVn50nvC9T2NviA5OPBGPW91OlG+0Xa1WJhhqadk3WjpKCilQIQFP19XZocnfIHgIeFWyNh6goXyX6gdNWfU8aJ5tNjEheAHZVS/ruGj0s8k6VPhh6ms6kwgoLl1aGuCEuSpwXfHZ2qrTJ+HHkNCpOjmbdFcEcGUIhUSj/H65rPO6j+766U8i/QXV0z8cqJc4btwF8AtWgtMb1wj+j41Df/s1EYQwdEDiqM3hDes9quGY3IKoYOvCrU7HlCoZtEWapPkzEpsU8uq8b36a6uBqaBv5l45URLpZT/pmGH8LnkvlAdAOt1oeXqRsuYTjlEMJiXvWN/Z+5szfqioKcOKo7qr/nAEesKiOyv2A/q88rOx8+8bPhK5dUTAA8jbUT6MuKnbKteNVHKP23xCeD1LC0F2TWOmzoAKEiWxmC+sr8rN1OerF2HGaqXFcZhDWaYj11S4ZxcXxVqyKqPZOeNTwM7Jkr5BeDPQJ8NFQaoC/gZ26rXT5TyxxAfRx6P94d0gU0pYYama+tsbwix/AHM4fKUrwAeB68kRJ5AZsWWieGTjLipsVCgrKCwKHF7pZQ/RXf104j76i4ZMmquxkzRXb2zUsqfxdxsfCiA70hRjZbpCDHmJcRdeZPDHkVck0Ul5PeHZ81DgHxKtglXaHCxVN9fr5TyR9hW3QA8Amqp5526SyKtBEbZVv1eZeZkbqKU7xfsFJwPqRW29s+11oUxnUhnkHf2dWoB+R5Jv5dNaGHh1wog8d/ZAI+0GgVpFPTp4AfJT2Hup7u6EvMk0tpkboutEz0HMPzHyD+mu3pFpZR/Aug0Pgm0RLkvFzLWYfjDvs7cqfKUt2LuXTLhue5mdWhVDJdEzxDDcRKawceN9lRePVkDfgBcR/LKVqNpz/s08DO6q4VKKT8j8zHgJ1HyzA1P11YZjfV1arw85auBR4RalDB5lEjDKi0CgPPphKZ0QiNRwUQeg88B2ydKreew9yH1NCxe/r4GaZpt1Vsrh/JnDDcBLwPkbLVgf6s86RXYj4KvtJKJM8KsGLkSlsmUL6mSg1RJY1xD7KmU8sfprnYgBqJsGVsiEfupsca7FfMo26p/OfHKiVqllB8HyPV16VxfV66G/G1QBwY5xvCgTT7X3/MTaBbFVr0fJvqw2ASZ+yul/FN0V68CHsesiDl3UopM3CwhDZDD/Dnwj3S/sjoYAMqTtc1YX02jVqYOiuuqsAKIkqZCfFIz/IrfFY8gDrKt2gI8irSuwQezyTeNaOl+6qYb+fpYGKEXJE9GSTObK5ItrheaLHE5/XRKcHul+kYN8x2kzWlLNNuVtUqibzKW5CBjxUoszO7NWrS1E/xWvMeJjck2WQHEKJeMD+qH4gWCSvg00m3AVxv5TMRKsp9Cs0Q/Ka/1BOZQNBSXMz2b9Q5oO9JCKgkqg2aKofl8uvTPeE1w3t5KKf8y26pFxINhLRa5R9JV6huT/aZuFu7Ds+A9jBdj+VIvZz2b9BL2Xi5yJQEgUFqinI9SZBDx358o5Q/HiRGtquOEmxJu6DcbC/afQWxnvHg+Odrwm2bP5txh5OEYjOM3vaiu8qqHJw1mPmK/Xs7HJf0LRncDMF5cAL6NWUxDrX/duwbczljxjSzvTX+gtXU3MBlrRCltrsxBTgorACKrRGf5bczOiVLrhUL74B2F9oHVjBd/iLwTWEhr+CIWaLYumDjIWLHha+aSwvRs1iJmJ9Kb9ZJRETS3ACsMC8i1ZNwgXZDYWTmU/1WhfeAW8Cjo+UL7wDrGik8jfid0kYz/Z2ODepv+GPIY+FAznpcUJhAo9w5mh81CFtEsWieCTzwXkogmfKBSyh8ttA98EDPqoPouYqYLxYEPMVY8itmEeTM+KEaqZhVAkiPPIL6QDPhLFiYQSC9J7M3mGlF/24zWSvwIM1xoH2gF/sFiTcSPxQakqUJxsIPx4jGCr0AzCUYTbROJ7DPAdsbSAX9ZwgDs3qTDiMGUOxF/1DgfekLVsPf0sw8DPARsDNwy8iYBXov4p0L7wC2MF99CfBJ4rqmbJbO/qYE+x1jx5HK8Xtp/aFgHDM/FX+RM9FFjHjjj4NV3HvlPsP4g+SqQgm6zCuvJQnHgi4wVz2JuAj8RnLGEVaCf8Y8cuRQ2L0mYEBB2Gb8ZHKD4NQBx+0Qpf7LQPrAVVGqiiWTpCcEn4QcLxcF7C7+aXMDahT1YX5IS5DHE/ZfC4yULEwr0DtIOWwuuvwZ8rVLKP1soDqzHPGJoyRao9b4SXiQQ30A8eO1/PJ8D7gK+BtQSJcQM8AXGlg747LUkmi91lad8J3CuZ5OeBii0D64ET2FdH1N0omWJvgLPkvwM8LmZf7lrnm3VO4CHsM4DH2P8I8vGSfK67P9q8v9wWPAcQLH4PbBHbK6Pq+3M9+Ml+6FL2dyC+WmhOLiWseKPMDeDd12uIPBrWCZ5Xds++AHsAwGlBKnoB5747c2J+aSJEuvRL8CDv/2Zz+cqh/LL/gPD//vrfwFjcI5oX6jDBwAAAABJRU5ErkJggg== + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines + namespace: kubeflow +spec: + addOwnerRef: true + componentKinds: + - group: v1 + kind: ServiceAccount + - group: rbac.authorization.k8s.io/v1 + kind: Role + - group: rbac.authorization.k8s.io/v1 + kind: RoleBinding + - group: v1 + kind: Service + - group: v1 + kind: PersistentVolumeClaim + - group: v1 + kind: ConfigMap + - group: v1 + kind: Secret + - group: apps/v1 + kind: Deployment + - group: networking.istio.io/v1alpha3 + kind: VirtualService + descriptor: + description: Reusable end-to-end ML workflow + links: + - description: Kubeflow Pipelines Documentation + url: https://www.kubeflow.org/docs/pipelines/ + maintainers: + - name: Kubeflow Pipelines + url: https://github.com/kubeflow/pipelines + type: Kubeflow Pipelines + version: 1.0.4 + selector: + matchLabels: + app.kubernetes.io/application: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml new file mode 100644 index 0000000000..e8a95f1f1a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-deployer-deployment.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-deployer-deployment + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + strategy: + type: Recreate + template: + metadata: + labels: + app: cache-deployer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE_TO_WATCH + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: gcr.io/ml-pipeline/cache-deployer:1.0.4 + imagePullPolicy: Always + name: main + restartPolicy: Always + serviceAccountName: kubeflow-pipelines-cache-deployer-sa diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-server.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-server.yaml new file mode 100644 index 0000000000..a5373e3d14 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_cache-server.yaml @@ -0,0 +1,79 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - args: + - --db_driver=$(DBCONFIG_DRIVER) + - --db_host=$(DBCONFIG_HOST_NAME) + - --db_port=$(DBCONFIG_PORT) + - --db_name=$(DBCONFIG_DB_NAME) + - --db_user=$(DBCONFIG_USER) + - --db_password=$(DBCONFIG_PASSWORD) + - --namespace_to_watch=$(NAMESPACE_TO_WATCH) + env: + - name: DBCONFIG_DRIVER + value: mysql + - name: DBCONFIG_DB_NAME + valueFrom: + configMapKeyRef: + key: cacheDb + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_HOST_NAME + valueFrom: + configMapKeyRef: + key: dbHost + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_PORT + valueFrom: + configMapKeyRef: + key: dbPort + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_USER + valueFrom: + secretKeyRef: + key: username + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: mysql-secret-fd5gktm75t + - name: NAMESPACE_TO_WATCH + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: gcr.io/ml-pipeline/cache-server:1.0.4 + imagePullPolicy: Always + name: server + ports: + - containerPort: 8443 + name: webhook-api + volumeMounts: + - mountPath: /etc/webhook/certs + name: webhook-tls-certs + readOnly: true + serviceAccountName: kubeflow-pipelines-cache + volumes: + - name: webhook-tls-certs + secret: + secretName: webhook-server-tls diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_metadata-writer.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_metadata-writer.yaml new file mode 100644 index 0000000000..786c0ae404 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_metadata-writer.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: metadata-writer + namespace: kubeflow +spec: + replicas: 1 + selector: + matchLabels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: metadata-writer + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: ARCHIVE_LOGS + valueFrom: + configMapKeyRef: + key: archive_logs + name: kfp-tekton-config + - name: NAMESPACE_TO_WATCH + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: docker.io/aipipeline/metadata-writer:0.4.0 + name: main + serviceAccountName: kubeflow-pipelines-metadata-writer diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_minio.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_minio.yaml new file mode 100644 index 0000000000..93df16584c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_minio.yaml @@ -0,0 +1,51 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: minio + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: minio + namespace: kubeflow +spec: + selector: + matchLabels: + app: minio + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + strategy: + type: Recreate + template: + metadata: + labels: + app: minio + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - args: + - server + - /data + env: + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + image: gcr.io/ml-pipeline/minio:RELEASE.2019-08-14T20-37-41Z-license-compliance + name: minio + ports: + - containerPort: 9000 + volumeMounts: + - mountPath: /data + name: data + subPath: minio + volumes: + - name: data + persistentVolumeClaim: + claimName: minio-pvc diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml new file mode 100644 index 0000000000..f37eaea8a5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-persistenceagent.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-persistenceagent + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: TTL_SECONDS_AFTER_WORKFLOW_FINISH + value: "86400" + image: docker.io/aipipeline/persistenceagent:0.4.0 + imagePullPolicy: IfNotPresent + name: ml-pipeline-persistenceagent + serviceAccountName: ml-pipeline-persistenceagent diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml new file mode 100644 index 0000000000..228b995fd5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-scheduledworkflow.yaml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-scheduledworkflow + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: docker.io/aipipeline/scheduledworkflow:0.4.0 + imagePullPolicy: IfNotPresent + name: ml-pipeline-scheduledworkflow + serviceAccountName: ml-pipeline-scheduledworkflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..dd5d721ed2 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml @@ -0,0 +1,80 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: VIEWER_TENSORBOARD_POD_TEMPLATE_SPEC_PATH + value: /etc/config/viewer-pod-template.json + - name: MINIO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: MINIO_ACCESS_KEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: MINIO_SECRET_KEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + - name: ALLOW_CUSTOM_VISUALIZATIONS + value: "true" + image: docker.io/aipipeline/frontend:0.4.0 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:3000/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-ui + ports: + - containerPort: 3000 + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:3000/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + volumeMounts: + - mountPath: /etc/config + name: config-volume + readOnly: true + serviceAccountName: ml-pipeline-ui + volumes: + - configMap: + name: ml-pipeline-ui-configmap + name: config-volume diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml new file mode 100644 index 0000000000..c2874009d9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-viewer-crd.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-viewer-crd + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: MAX_NUM_VIEWERS + value: "50" + - name: MINIO_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: gcr.io/ml-pipeline/viewer-crd-controller:1.0.4 + imagePullPolicy: Always + name: ml-pipeline-viewer-crd + serviceAccountName: ml-pipeline-viewer-crd-service-account diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..bf0ef4fb76 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,54 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - image: gcr.io/ml-pipeline/visualization-server:1.0.4 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/ + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-visualizationserver + ports: + - containerPort: 8888 + name: http + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/ + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + serviceAccountName: ml-pipeline-visualizationserver diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline.yaml new file mode 100644 index 0000000000..a60cac492e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_ml-pipeline.yaml @@ -0,0 +1,148 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + selector: + matchLabels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + template: + metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: ARTIFACT_BUCKET + valueFrom: + configMapKeyRef: + key: artifact_bucket + name: kfp-tekton-config + - name: ARTIFACT_ENDPOINT + valueFrom: + configMapKeyRef: + key: artifact_endpoint + name: kfp-tekton-config + - name: ARTIFACT_ENDPOINT_SCHEME + valueFrom: + configMapKeyRef: + key: artifact_endpoint_scheme + name: kfp-tekton-config + - name: ARCHIVE_LOGS + valueFrom: + configMapKeyRef: + key: archive_logs + name: kfp-tekton-config + - name: TRACK_ARTIFACTS + valueFrom: + configMapKeyRef: + key: track_artifacts + name: kfp-tekton-config + - name: STRIP_EOF + valueFrom: + configMapKeyRef: + key: strip_eof + name: kfp-tekton-config + - name: ARTIFACT_SCRIPT + valueFrom: + configMapKeyRef: + key: artifact_script + name: kfp-tekton-config + - name: ARTIFACT_IMAGE + valueFrom: + configMapKeyRef: + key: artifact_image + name: kfp-tekton-config + - name: INJECT_DEFAULT_SCRIPT + valueFrom: + configMapKeyRef: + key: inject_default_script + name: kfp-tekton-config + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: OBJECTSTORECONFIG_SECURE + value: "false" + - name: OBJECTSTORECONFIG_BUCKETNAME + valueFrom: + configMapKeyRef: + key: bucketName + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_USER + valueFrom: + secretKeyRef: + key: username + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: mysql-secret-fd5gktm75t + - name: DBCONFIG_DBNAME + valueFrom: + configMapKeyRef: + key: pipelineDb + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_HOST + valueFrom: + configMapKeyRef: + key: dbHost + name: pipeline-install-config-2829cc67f8 + - name: DBCONFIG_PORT + valueFrom: + configMapKeyRef: + key: dbPort + name: pipeline-install-config-2829cc67f8 + - name: OBJECTSTORECONFIG_ACCESSKEY + valueFrom: + secretKeyRef: + key: accesskey + name: mlpipeline-minio-artifact + - name: OBJECTSTORECONFIG_SECRETACCESSKEY + valueFrom: + secretKeyRef: + key: secretkey + name: mlpipeline-minio-artifact + image: docker.io/aipipeline/api-server:0.4.0 + imagePullPolicy: IfNotPresent + livenessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + name: ml-pipeline-api-server + ports: + - containerPort: 8888 + name: http + - containerPort: 8887 + name: grpc + readinessProbe: + exec: + command: + - wget + - -q + - -S + - -O + - '-' + - http://localhost:8888/apis/v1beta1/healthz + initialDelaySeconds: 3 + periodSeconds: 5 + timeoutSeconds: 2 + serviceAccountName: ml-pipeline diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_mysql.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_mysql.yaml new file mode 100644 index 0000000000..8ec616b644 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/apps_v1_deployment_mysql.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: mysql + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: mysql + namespace: kubeflow +spec: + selector: + matchLabels: + app: mysql + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + strategy: + type: Recreate + template: + metadata: + labels: + app: mysql + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + spec: + containers: + - env: + - name: MYSQL_ALLOW_EMPTY_PASSWORD + value: "true" + image: gcr.io/ml-pipeline/mysql:5.6 + name: mysql + ports: + - containerPort: 3306 + name: mysql + volumeMounts: + - mountPath: /var/lib/mysql + name: mysql-persistent-storage + volumes: + - name: mysql-persistent-storage + persistentVolumeClaim: + claimName: mysql-pv-claim diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..f626864576 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/networking.istio.io_v1alpha3_virtualservice_ml-pipeline-ui.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + gateways: + - kubeflow-gateway + hosts: + - '*' + http: + - match: + - uri: + prefix: /pipeline + rewrite: + uri: /pipeline + route: + - destination: + host: ml-pipeline-ui.kubeflow.svc.cluster.local + port: + number: 80 + timeout: 300s diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml new file mode 100644 index 0000000000..5ba54f3cda --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrole_kubeflow-pipelines-cache-deployer-clusterrole.yaml @@ -0,0 +1,37 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: kubeflow-pipelines-cache-deployer-clusterrole + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-clusterrole +rules: +- apiGroups: + - certificates.k8s.io + resources: + - certificatesigningrequests + - certificatesigningrequests/approval + verbs: + - create + - delete + - get + - update +- apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + verbs: + - create + - delete + - get + - list + - patch +- apiGroups: + - certificates.k8s.io + resourceNames: + - kubernetes.io/* + resources: + - signers + verbs: + - approve diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml new file mode 100644 index 0000000000..459313eff8 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_clusterrolebinding_kubeflow-pipelines-cache-deployer-clusterrolebinding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-clusterrolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubeflow-pipelines-cache-deployer-clusterrole +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml new file mode 100644 index 0000000000..59924196e1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-deployer-role.yaml @@ -0,0 +1,20 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-cache-deployer-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - delete + - get + - patch + - list diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml new file mode 100644 index 0000000000..7c2b27e343 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-cache-role.yaml @@ -0,0 +1,36 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-cache-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-role + namespace: kubeflow +rules: +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml new file mode 100644 index 0000000000..dad84d711b --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_kubeflow-pipelines-metadata-writer-role.yaml @@ -0,0 +1,48 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: kubeflow-pipelines-metadata-writer-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-role + namespace: kubeflow +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml new file mode 100644 index 0000000000..51363258a5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-persistenceagent-role.yaml @@ -0,0 +1,35 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-role + namespace: kubeflow +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - get + - list + - watch diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml new file mode 100644 index 0000000000..70f0efca82 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-scheduledworkflow-role.yaml @@ -0,0 +1,55 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline-scheduledworkflow-role + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-role + namespace: kubeflow +rules: +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..c886c87d76 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-ui.yaml @@ -0,0 +1,56 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - list +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml new file mode 100644 index 0000000000..522897510e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline-viewer-controller-role.yaml @@ -0,0 +1,34 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-controller-role + namespace: kubeflow +rules: +- apiGroups: + - '*' + resources: + - deployments + - services + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - viewers + verbs: + - create + - get + - list + - watch + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml new file mode 100644 index 0000000000..f049311840 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_ml-pipeline.yaml @@ -0,0 +1,56 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - "" + resources: + - pods + - pods/log + verbs: + - get + - list + - delete +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - create + - get + - list + - watch + - update + - patch + - delete +- apiGroups: + - kubeflow.org + resources: + - scheduledworkflows + verbs: + - create + - get + - list + - update + - patch + - delete diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml new file mode 100644 index 0000000000..0023a8baa7 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_role_pipeline-runner.yaml @@ -0,0 +1,96 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner + namespace: kubeflow +rules: +- apiGroups: + - tekton.dev + resources: + - pipelineruns + - taskruns + - conditions + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - secrets + verbs: + - get +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - watch + - list +- apiGroups: + - "" + resources: + - persistentvolumes + - persistentvolumeclaims + verbs: + - '*' +- apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - create + - delete + - get +- apiGroups: + - argoproj.io + resources: + - workflows + verbs: + - get + - list + - watch + - update + - patch +- apiGroups: + - "" + resources: + - pods + - pods/exec + - pods/log + - services + verbs: + - '*' +- apiGroups: + - "" + - apps + - extensions + resources: + - deployments + - replicasets + verbs: + - '*' +- apiGroups: + - kubeflow.org + resources: + - '*' + verbs: + - '*' +- apiGroups: + - batch + resources: + - jobs + verbs: + - '*' +- apiGroups: + - machinelearning.seldon.io + resources: + - seldondeployments + verbs: + - '*' diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml new file mode 100644 index 0000000000..e76122f19f --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-cache-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml new file mode 100644 index 0000000000..7471959ec9 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-cache-deployer-rolebinding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-rolebinding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-cache-deployer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml new file mode 100644 index 0000000000..32755c9be3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_kubeflow-pipelines-metadata-writer-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubeflow-pipelines-metadata-writer-role +subjects: +- kind: ServiceAccount + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml new file mode 100644 index 0000000000..c1033e02db --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-persistenceagent-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-persistenceagent-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml new file mode 100644 index 0000000000..c3ed87368c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-scheduledworkflow-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-scheduledworkflow-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..1d78022b2b --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-ui.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-ui +subjects: +- kind: ServiceAccount + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml new file mode 100644 index 0000000000..96503d4ab4 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline-viewer-crd-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline-viewer-controller-role +subjects: +- kind: ServiceAccount + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml new file mode 100644 index 0000000000..ff6a5433d3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_ml-pipeline.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: ml-pipeline +subjects: +- kind: ServiceAccount + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml new file mode 100644 index 0000000000..9e1352d61a --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/rbac.authorization.k8s.io_v1_rolebinding_pipeline-runner-binding.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner-binding + namespace: kubeflow +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: pipeline-runner +subjects: +- kind: ServiceAccount + name: pipeline-runner + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/tekton.dev_v1alpha1_condition_super-condition.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/tekton.dev_v1alpha1_condition_super-condition.yaml new file mode 100644 index 0000000000..932a873101 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/tekton.dev_v1alpha1_condition_super-condition.yaml @@ -0,0 +1,25 @@ +apiVersion: tekton.dev/v1alpha1 +kind: Condition +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: super-condition + namespace: kubeflow +spec: + check: + image: python:alpine3.6 + script: |- + python -c 'import sys + input1=str.rstrip(sys.argv[1]) + input2=str.rstrip(sys.argv[2]) + try: + input1=int(input1) + input2=int(input2) + except: + input1=str(input1) + sys.exit(0) if (input1 $(params.operator) input2) else sys.exit(1)' '$(params.operand1)' '$(params.operand2)' + params: + - name: operand1 + - name: operand2 + - name: operator diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml new file mode 100644 index 0000000000..f67b5c140c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kfp-tekton-config.yaml @@ -0,0 +1,31 @@ +apiVersion: v1 +data: + archive_logs: "false" + artifact_bucket: mlpipeline + artifact_endpoint: minio-service.kubeflow:9000 + artifact_endpoint_scheme: http:// + artifact_image: minio/mc + artifact_script: |- + #!/usr/bin/env sh + push_artifact() { + tar -cvzf $1.tgz $2 + mc cp $1.tgz storage/$ARTIFACT_BUCKET/artifacts/$PIPELINERUN/$PIPELINETASK/$1.tgz + } + push_log() { + cat /var/log/containers/$PODNAME*$NAMESPACE*step-main*.log > step-main.log + push_artifact main-log step-main.log + } + strip_eof() { + awk 'NF' $2 | head -c -1 > $1_temp_save && cp $1_temp_save $2 + } + mc config host add storage ${ARTIFACT_ENDPOINT_SCHEME}${ARTIFACT_ENDPOINT} $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY + inject_default_script: "true" + strip_eof: "false" + track_artifacts: "true" +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kfp-tekton-config + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml new file mode 100644 index 0000000000..461638d1f8 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_ml-pipeline-ui-configmap.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +data: + viewer-pod-template.json: |- + { + "spec": { + "serviceAccountName": "kubeflow-pipelines-viewer" + } + } +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui-configmap + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml new file mode 100644 index 0000000000..c2b0b0572c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-install-config-2829cc67f8.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +data: + bucketName: mlpipeline + cacheDb: cachedb + dbHost: mysql + dbPort: "3306" + mlmdDb: metadb + pipelineDb: mlpipeline +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-install-config-2829cc67f8 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml new file mode 100644 index 0000000000..3aef75a62e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_configmap_pipeline-upstream-install-config-d7hkh24mdg.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +data: + appName: pipeline + appVersion: 1.0.4 + bucketName: mlpipeline + cacheDb: cachedb + containerRuntimeExecutor: docker + dbHost: mysql + dbPort: "3306" + mlmdDb: metadb + pipelineDb: mlpipeline +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-upstream-install-config-d7hkh24mdg + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml new file mode 100644 index 0000000000..2820e03a28 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_minio-pvc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: minio-pvc + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml new file mode 100644 index 0000000000..9e7ca8b1a1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_persistentvolumeclaim_mysql-pv-claim.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: mysql-pv-claim + namespace: kubeflow +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml new file mode 100644 index 0000000000..8c182135e1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mlpipeline-minio-artifact.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + accesskey: bWluaW8= + secretkey: bWluaW8xMjM= +kind: Secret +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: mlpipeline-minio-artifact + namespace: kubeflow +type: Opaque diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml new file mode 100644 index 0000000000..3490a9d7f1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_secret_mysql-secret-fd5gktm75t.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + password: "" + username: cm9vdA== +kind: Secret +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: mysql-secret-fd5gktm75t + namespace: kubeflow +type: Opaque diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_cache-server.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_cache-server.yaml new file mode 100644 index 0000000000..ab6cf5124e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_cache-server.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: cache-server + namespace: kubeflow +spec: + ports: + - port: 443 + targetPort: webhook-api + selector: + app: cache-server + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_minio-service.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_minio-service.yaml new file mode 100644 index 0000000000..3ab48a4f5f --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_minio-service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: minio-service + namespace: kubeflow +spec: + ports: + - name: http + port: 9000 + protocol: TCP + targetPort: 9000 + selector: + app: minio + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..4b493f3119 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-ui.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow +spec: + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 3000 + selector: + app: ml-pipeline-ui + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..71a24c4ada --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow +spec: + ports: + - name: http + port: 8888 + protocol: TCP + targetPort: 8888 + selector: + app: ml-pipeline-visualizationserver + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline.yaml new file mode 100644 index 0000000000..4d23b20f01 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_ml-pipeline.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow +spec: + ports: + - name: http + port: 8888 + protocol: TCP + targetPort: 8888 + - name: grpc + port: 8887 + protocol: TCP + targetPort: 8887 + selector: + app: ml-pipeline + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_mysql.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_mysql.yaml new file mode 100644 index 0000000000..d9eaa27473 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_service_mysql.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: mysql + namespace: kubeflow +spec: + ports: + - port: 3306 + protocol: TCP + targetPort: 3306 + selector: + app: mysql + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml new file mode 100644 index 0000000000..a985549ba3 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache-deployer-sa.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache-deployer-sa + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml new file mode 100644 index 0000000000..f7555f0f35 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-cache.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-cache + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml new file mode 100644 index 0000000000..b0bbf5da53 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-container-builder.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-container-builder + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml new file mode 100644 index 0000000000..de94276552 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-metadata-writer.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-metadata-writer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml new file mode 100644 index 0000000000..9521f5b74d --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_kubeflow-pipelines-viewer.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: kubeflow-pipelines-viewer + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml new file mode 100644 index 0000000000..5bc5786177 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-persistenceagent.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-persistenceagent + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml new file mode 100644 index 0000000000..4a157173bc --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-scheduledworkflow.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-scheduledworkflow + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml new file mode 100644 index 0000000000..9318d09104 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-ui.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-ui + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml new file mode 100644 index 0000000000..ff0696597e --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-viewer-crd-service-account.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-viewer-crd-service-account + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml new file mode 100644 index 0000000000..5c8e34b2a1 --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline-visualizationserver.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline-visualizationserver + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml new file mode 100644 index 0000000000..b95a37213c --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_ml-pipeline.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: ml-pipeline + namespace: kubeflow diff --git a/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml new file mode 100644 index 0000000000..13fb2a95dd --- /dev/null +++ b/tests/stacks/ibm/application/kfp-tekton/test_data/expected/~g_v1_serviceaccount_pipeline-runner.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: ml-pipeline + app.kubernetes.io/name: kubeflow-pipelines + name: pipeline-runner + namespace: kubeflow diff --git a/tests/stacks/ibm/multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml similarity index 76% rename from tests/stacks/ibm/multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename to tests/stacks/ibm/application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml index ef58bf8b01..a208618c6e 100644 --- a/tests/stacks/ibm/multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ b/tests/stacks/ibm/application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -1,6 +1,8 @@ apiVersion: v1 data: + cluster-name: "" clusterDomain: cluster.local + istio-namespace: istio-system userid-header: kubeflow-userid userid-prefix: "" kind: ConfigMap @@ -9,5 +11,5 @@ metadata: app.kubernetes.io/component: metadata app.kubernetes.io/name: metadata kustomize.component: metadata - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 namespace: kubeflow diff --git a/tests/stacks/ibm/application/notebooks/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml b/tests/stacks/ibm/application/notebooks/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml index f8d39bf87f..591a96acbb 100644 --- a/tests/stacks/ibm/application/notebooks/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml +++ b/tests/stacks/ibm/application/notebooks/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml @@ -42,12 +42,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 image: gcr.io/kubeflow-images-public/jupyter-web-app:vmaster-gd9be4b9e imagePullPolicy: Always name: jupyter-web-app diff --git a/tests/stacks/ibm/application/notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/notebooks/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml deleted file mode 100644 index e37cc3dac4..0000000000 --- a/tests/stacks/ibm/application/pipelines/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -data: - clusterDomain: cluster.local - userid-header: kubeflow-userid - userid-prefix: "" -kind: ConfigMap -metadata: - name: kubeflow-config-d7dttg89h2 - namespace: kubeflow diff --git a/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_centraldashboard.yaml b/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_centraldashboard.yaml index cbbcf862a0..254855baed 100644 --- a/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_centraldashboard.yaml +++ b/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_centraldashboard.yaml @@ -29,12 +29,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 image: gcr.io/kubeflow-images-public/centraldashboard:vmaster-gd601b2d0 imagePullPolicy: IfNotPresent livenessProbe: diff --git a/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_profiles-deployment.yaml b/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_profiles-deployment.yaml index ec398d17f1..90a36d00e2 100644 --- a/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_profiles-deployment.yaml +++ b/tests/stacks/ibm/application/profile-control-plane/test_data/expected/apps_v1_deployment_profiles-deployment.yaml @@ -38,12 +38,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: WORKLOAD_IDENTITY valueFrom: configMapKeyRef: @@ -76,12 +76,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: CLUSTER_ADMIN valueFrom: configMapKeyRef: diff --git a/tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml deleted file mode 100644 index e37cc3dac4..0000000000 --- a/tests/stacks/ibm/application/profile-control-plane/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -data: - clusterDomain: cluster.local - userid-header: kubeflow-userid - userid-prefix: "" -kind: ConfigMap -metadata: - name: kubeflow-config-d7dttg89h2 - namespace: kubeflow diff --git a/tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml deleted file mode 100644 index e37cc3dac4..0000000000 --- a/tests/stacks/ibm/application/pytorch-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -data: - clusterDomain: cluster.local - userid-header: kubeflow-userid - userid-prefix: "" -kind: ConfigMap -metadata: - name: kubeflow-config-d7dttg89h2 - namespace: kubeflow diff --git a/tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml deleted file mode 100644 index e37cc3dac4..0000000000 --- a/tests/stacks/ibm/application/seldon-core-operator/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -data: - clusterDomain: cluster.local - userid-header: kubeflow-userid - userid-prefix: "" -kind: ConfigMap -metadata: - name: kubeflow-config-d7dttg89h2 - namespace: kubeflow diff --git a/tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml b/tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml new file mode 100644 index 0000000000..2c4a11fcc5 --- /dev/null +++ b/tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +data: + cluster-name: "" + clusterDomain: cluster.local + istio-namespace: istio-system + userid-header: kubeflow-userid + userid-prefix: "" +kind: ConfigMap +metadata: + name: kubeflow-config-bk4bc7m928 + namespace: kubeflow diff --git a/tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml deleted file mode 100644 index e37cc3dac4..0000000000 --- a/tests/stacks/ibm/application/tf-job/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -data: - clusterDomain: cluster.local - userid-header: kubeflow-userid - userid-prefix: "" -kind: ConfigMap -metadata: - name: kubeflow-config-d7dttg89h2 - namespace: kubeflow diff --git a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_centraldashboard.yaml b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_centraldashboard.yaml index cbbcf862a0..254855baed 100644 --- a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_centraldashboard.yaml +++ b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_centraldashboard.yaml @@ -29,12 +29,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 image: gcr.io/kubeflow-images-public/centraldashboard:vmaster-gd601b2d0 imagePullPolicy: IfNotPresent livenessProbe: diff --git a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml index f8d39bf87f..591a96acbb 100644 --- a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml +++ b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml @@ -42,12 +42,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 image: gcr.io/kubeflow-images-public/jupyter-web-app:vmaster-gd9be4b9e imagePullPolicy: Always name: jupyter-web-app diff --git a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_minio.yaml b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_minio.yaml index 74b09c5cce..dd97d1e4d3 100644 --- a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_minio.yaml +++ b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_minio.yaml @@ -1,6 +1,8 @@ apiVersion: apps/v1 kind: Deployment metadata: + annotations: + sidecar.istio.io/inject: "false" labels: app: minio app.kubernetes.io/component: minio diff --git a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml index e85e4c9e44..59d87d4e67 100644 --- a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml +++ b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline-ui.yaml @@ -38,12 +38,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: KUBEFLOW_USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: MINIO_NAMESPACE valueFrom: fieldRef: diff --git a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml index ae63f0544d..b82271798a 100644 --- a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml +++ b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_ml-pipeline.yaml @@ -26,12 +26,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: KUBEFLOW_USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: POD_NAMESPACE valueFrom: fieldRef: diff --git a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_profiles-deployment.yaml b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_profiles-deployment.yaml index ec398d17f1..90a36d00e2 100644 --- a/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_profiles-deployment.yaml +++ b/tests/stacks/ibm/multi-user/test_data/expected/apps_v1_deployment_profiles-deployment.yaml @@ -38,12 +38,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: WORKLOAD_IDENTITY valueFrom: configMapKeyRef: @@ -76,12 +76,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: CLUSTER_ADMIN valueFrom: configMapKeyRef: diff --git a/tests/stacks/ibm/application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml similarity index 76% rename from tests/stacks/ibm/application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename to tests/stacks/ibm/multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml index ef58bf8b01..a208618c6e 100644 --- a/tests/stacks/ibm/application/metadata/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ b/tests/stacks/ibm/multi-user/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -1,6 +1,8 @@ apiVersion: v1 data: + cluster-name: "" clusterDomain: cluster.local + istio-namespace: istio-system userid-header: kubeflow-userid userid-prefix: "" kind: ConfigMap @@ -9,5 +11,5 @@ metadata: app.kubernetes.io/component: metadata app.kubernetes.io/name: metadata kustomize.component: metadata - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 namespace: kubeflow diff --git a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_centraldashboard.yaml b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_centraldashboard.yaml index cbbcf862a0..254855baed 100644 --- a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_centraldashboard.yaml +++ b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_centraldashboard.yaml @@ -29,12 +29,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 image: gcr.io/kubeflow-images-public/centraldashboard:vmaster-gd601b2d0 imagePullPolicy: IfNotPresent livenessProbe: diff --git a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml index f8d39bf87f..591a96acbb 100644 --- a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml +++ b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_jupyter-web-app-deployment.yaml @@ -42,12 +42,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 image: gcr.io/kubeflow-images-public/jupyter-web-app:vmaster-gd9be4b9e imagePullPolicy: Always name: jupyter-web-app diff --git a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_minio.yaml b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_minio.yaml index 74b09c5cce..dd97d1e4d3 100644 --- a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_minio.yaml +++ b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_minio.yaml @@ -1,6 +1,8 @@ apiVersion: apps/v1 kind: Deployment metadata: + annotations: + sidecar.istio.io/inject: "false" labels: app: minio app.kubernetes.io/component: minio diff --git a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_profiles-deployment.yaml b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_profiles-deployment.yaml index ec398d17f1..90a36d00e2 100644 --- a/tests/stacks/ibm/test_data/expected/apps_v1_deployment_profiles-deployment.yaml +++ b/tests/stacks/ibm/test_data/expected/apps_v1_deployment_profiles-deployment.yaml @@ -38,12 +38,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: WORKLOAD_IDENTITY valueFrom: configMapKeyRef: @@ -76,12 +76,12 @@ spec: valueFrom: configMapKeyRef: key: userid-header - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: USERID_PREFIX valueFrom: configMapKeyRef: key: userid-prefix - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 - name: CLUSTER_ADMIN valueFrom: configMapKeyRef: diff --git a/tests/stacks/ibm/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml b/tests/stacks/ibm/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml similarity index 76% rename from tests/stacks/ibm/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml rename to tests/stacks/ibm/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml index ef58bf8b01..a208618c6e 100644 --- a/tests/stacks/ibm/test_data/expected/~g_v1_configmap_kubeflow-config-d7dttg89h2.yaml +++ b/tests/stacks/ibm/test_data/expected/~g_v1_configmap_kubeflow-config-bk4bc7m928.yaml @@ -1,6 +1,8 @@ apiVersion: v1 data: + cluster-name: "" clusterDomain: cluster.local + istio-namespace: istio-system userid-header: kubeflow-userid userid-prefix: "" kind: ConfigMap @@ -9,5 +11,5 @@ metadata: app.kubernetes.io/component: metadata app.kubernetes.io/name: metadata kustomize.component: metadata - name: kubeflow-config-d7dttg89h2 + name: kubeflow-config-bk4bc7m928 namespace: kubeflow From caeda3223bc1cd2070410732d7e4c585855c2ece Mon Sep 17 00:00:00 2001 From: Tommy Li Date: Mon, 9 Nov 2020 16:18:06 -0800 Subject: [PATCH 2/2] update owner file --- pipeline/installs/tekton/OWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pipeline/installs/tekton/OWNERS b/pipeline/installs/tekton/OWNERS index 0e5c85d5a2..d72bdeb9cb 100644 --- a/pipeline/installs/tekton/OWNERS +++ b/pipeline/installs/tekton/OWNERS @@ -1,4 +1,4 @@ approvers: -- adrian555 - animeshsingh +- pvaneck - tomcli