pipelines/manifests/gcp_marketplace/schema.yaml

262 lines
9.0 KiB
YAML

x-google-marketplace:
schemaVersion: v2
applicationApiVersion: v1beta1
publishedVersion: 2.0.5
publishedVersionMetadata:
releaseNote: Based on 2.0.5 version.
releaseTypes:
- Feature
recommended: false
managedUpdates:
kalmSupported: false
images:
'':
properties:
imageRepo:
type: REPO_WITH_REGISTRY
imageTag:
type: TAG
mysql:
properties:
images.mysql:
type: FULL
minio:
properties:
images.minio:
type: FULL
argoexecutor:
properties:
images.argoexecutor:
type: FULL
argoworkflowcontroller:
properties:
images.argoworkflowcontroller:
type: FULL
apiserver:
properties:
images.apiserver:
type: FULL
persistenceagent:
properties:
images.persistenceagent:
type: FULL
scheduledworkflow:
properties:
images.scheduledworkflow:
type: FULL
frontend:
properties:
images.frontend:
type: FULL
viewercrd:
properties:
images.viewercrd:
type: FULL
visualizationserver:
properties:
images.visualizationserver:
type: FULL
metadataserver:
properties:
images.metadataserver:
type: FULL
proxyagent:
properties:
images.proxyagent:
type: FULL
cloudsqlproxy:
properties:
images.cloudsqlproxy:
type: FULL
metadataenvoy:
properties:
images.metadataenvoy:
type: FULL
metadatawriter:
properties:
images.metadatawriter:
type: FULL
cacheserver:
properties:
images.cacheserver:
type: FULL
cachedeployer:
properties:
images.cachedeployer:
type: FULL
deployerServiceAccount:
description: Service account used to deploy cluster-wide Kubeflow Pipelines objects
roles:
- type: ClusterRole # This is a cluster-wide ClusterRole
rulesType: CUSTOM # We specify our own custom RBAC roles
rules:
- apiGroups: ['apiextensions.k8s.io', 'rbac.authorization.k8s.io', 'scheduling.k8s.io']
resources: ['customresourcedefinitions', 'clusterroles', 'clusterrolebindings', 'priorityclasses']
verbs: ['*']
# For CRs in the following deployer-applied Roles:
# - kubeflow-pipelines-cache-role
# - kubeflow-pipelines-metadata-writer-role
# - ml-pipeline
# - ml-pipeline-persistenceagent-role
# - ml-pipeline-scheduledworkflow-role
# - ml-pipeline-viewer-controller-role
# - ml-pipeline-ui
# - pipeline-runner
# - proxy-agent-runner
- type: Role
rulesType: CUSTOM
rules:
- apiGroups: ['argoproj.io']
resources:
- 'workflows'
- 'workflows/finalizers'
- 'workflowtemplates'
- 'workflowtemplates/finalizers'
- 'cronworkflows'
- 'cronworkflows/finalizers'
- 'workflowtaskresults'
- 'workflowtasksets'
- 'workflowtasksets/finalizers'
verbs: ['*']
- apiGroups: ['kubeflow.org']
resources: ['*']
verbs: ['*']
- apiGroups: ['pipelines.kubeflow.org']
resources: ['*']
verbs: ['*']
- apiGroups: ['']
resources: ['configmaps', 'events', 'pods/log', 'persistentvolumes', 'persistentvolumeclaims', 'persistentvolumeclaims/finalizers', 'pods', 'pods/exec']
verbs: ['*']
# Needed by argo v3.1.0+
- apiGroups: ['coordination.k8s.io']
resources: ['leases']
verbs: ['create', 'get', 'update']
- apiGroups: ['batch']
resources: ['jobs']
verbs: ['*']
- apiGroups: ['*']
resources: ['deployments', 'services', 'replicasets']
verbs: ['*']
# Not a CR, but an alpha resource so not present in
# all clusters (and their `admin` Role definition)
- apiGroups: ['snapshot.storage.k8s.io']
resources: ['volumesnapshots']
verbs: ['*']
# Marketplace does not provision default
# Role/binding if custom Role is provided
- type: Role
rulesType: CUSTOM
rules:
- apiGroups: ['app.k8s.io']
resources: ['applications']
verbs: ['*']
- type: Role
rulesType: PREDEFINED
rulesFromRoleName: admin
clusterConstraints:
resources:
- replicas: 3
requests:
cpu: 1
memory: 2Gi
affinity:
simpleNodeAffinity:
type: REQUIRE_ONE_NODE_PER_REPLICA
gcp:
nodes:
requiredOauthScopes:
- https://www.googleapis.com/auth/cloud-platform
properties:
name:
type: string
x-google-marketplace:
type: NAME
namespace:
type: string
x-google-marketplace:
type: NAMESPACE
managedstorage.enabled:
type: boolean
title: Use managed storage
description: |-
Select this option to store pipeline artifacts and metadata using
Cloud SQL and Cloud Storage. Otherwise, pipeline artifacts and metadata
are stored on Compute Engine persistent disks.
Cloud SQL and Cloud Storage provides better reliability and performance,
as well as features such as data backup and usage monitoring.
Using Cloud SQL and Cloud Storage is recommended for production
deployments.
To configure your cluster to use managed storage, specify your Cloud
Storage bucket and Cloud SQL connection details below. To preserve your
data while reinstalling Kubeflow Pipelines, you must specify the same
managed storage options as your previous instance.
If upgrading from Kubeflow Pipelines 0.5.1 with managed storage, the
Cloud Storage bucket was auto-generated in the same project. This bucket
should be named like "<cloudsql instance connection name>-<database prefix or instance name>".
default: false
managedstorage.gcsBucketName:
type: string
title: Artifact storage Cloud Storage bucket (Managed storage only)
description: |-
If you are deploying Kubeflow Pipelines with managed storage, specify the
Cloud Storage bucket that you would like Kubeflow Pipelines to store
pipeline artifacts in. Learn more about creating a new bucket,
see https://cloud.google.com/storage/docs/creating-buckets.
Warning, if the provided bucket doesn't exist, the deployer will
automatically create a bucket for you in us-central1, but you won't be
able to customize the bucket's parameters.
default: ""
managedstorage.cloudsqlInstanceConnectionName:
type: string
title: Cloud SQL instance connection name (Managed storage only)
description: |-
If you are deploying Kubeflow Pipelines with managed storage, specify the
instance connection name for your MySQL instance on Cloud SQL.
The instance connection name can be found on the instance detail page in
the Cloud SQL console. The instance connection name uses the format
"<project>:<region>:<instance-name>", for example: myproject:us-central1:myinstance.
Learn more about setting up your Cloud SQL instance, see https://cloud.google.com/sql/docs/mysql/quickstart.
default: ""
managedstorage.dbUsername:
type: string
title: Database username (Managed storage only)
description: |-
If you are deploying Kubeflow Pipelines with managed storage, specify the
database username for Kubeflow Pipelines to use when connecting to your
MySQL instance on Cloud SQL.
Learn more about MySQL users, see https://cloud.google.com/sql/docs/mysql/users.
default: root
managedstorage.dbPassword:
type: string
title: Database password (Managed storage only)
x-google-marketplace:
type: MASKED_FIELD
description: |-
If you are deploying Kubeflow Pipelines with managed storage, specify the
database password for Kubeflow Pipelines to use when connecting to your
MySQL instance on Cloud SQL. If you leave this field empty, Kubeflow
Pipelines connects to your Cloud SQL instance without providing a
password. This will fail if a password is required for the username you
specified.
default: ""
managedstorage.databaseNamePrefix:
type: string
title: Database name prefix (Managed storage only)
description: |-
If you are deploying Kubeflow Pipelines with managed storage, specify the
database name prefix. The prefix value must contain only lowercase
letters, numbers and underscores. Additionally, the prefix must start with a letter.
During the deployment process, Kubeflow Pipelines creates two databases,
"<prefix>_pipeline" and "<prefix>_metadata". If the prefix specified
matches a previous deployment, this deployment will reuse the existing
databases.
default: ""
required:
- name
- namespace