Create and configure Data Science Projects on OpenShift AI with namespace setup, S3 data connections, pipeline server, and model serving enablement. Use when: - "Create a data science project" - "Set up a new namespace for ML work" - "Add an S3 data connection to my project" - "Configure the pipeline server" - "Enable model serving on my project" Bootstraps an RHOAI Data Science Project with proper labels, data connections, pipeline infrastructure, and model serving configuration. NOT for deploying models (use /model-deploy). NOT for creating workbenches (use /workbench-manage). NOT for managing pipelines after setup (use /pipeline-manage).
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Bootstrap a Red Hat OpenShift AI Data Science Project from scratch. Creates a namespace with RHOAI dashboard labels, configures S3-compatible data connections, sets up the pipeline server with external storage, and enables model serving on the project.
Required MCP Server: openshift (OpenShift MCP Server)
Required MCP Tools (from openshift):
resources_get - Inspect namespace labels, LimitRange, ResourceQuota, DSPA statusresources_list - List namespaces, Secrets, PVCs (OpenShift fallback for RHOAI tools)resources_create_or_update - Create namespaces, Secrets, DSPA CRs (OpenShift fallback and primary for pipeline server)Preferred MCP Server: rhoai (RHOAI MCP Server) — used when available, automatic OpenShift fallback on failure
Preferred MCP Tools (from rhoai):
list_data_science_projects - List existing RHOAI projects to check for duplicatescreate_data_science_project - Create namespace with RHOAI labels and dashboard integrationget_project_details - Verify project creation and inspect configuration. Note: use name parameter, not namespace.get_project_status - Get comprehensive project status including componentscreate_s3_data_connection - Create S3-compatible data connection secretlist_data_connections - List existing data connections in the projectget_pipeline_server - Check pipeline server configurationset_model_serving_mode - Enable single-model or multi-model servingNote: create_pipeline_server is intentionally excluded — it constructs invalid DSPA manifests. Pipeline server creation always uses OpenShift direct.
Common prerequisites (KUBECONFIG, OpenShift+RHOAI cluster, verification protocol): See skill-conventions.md.
Fallback templates: See openshift-fallback-templates.md for OpenShift YAML templates used when RHOAI tools are unavailable.
Additional cluster requirements:
Use this skill when you need to:
Do NOT use this skill when:
/model-deploy)/workbench-manage)/pipeline-manage)/serving-runtime-config)Ask the user for the project name first:
Immediately check if the project name already exists:
MCP Tool: list_data_science_projects (from rhoai)
Parameters: none
[name] already exists. Would you like to: (a) configure additional components on it, or (b) choose a different name?" WAIT for user decision. If user chooses (a), skip Step 2 and proceed to optional configuration steps (Steps 3-5). If user chooses (b), repeat the name check.If rhoai unavailable or returns error: Use resources_list (from openshift) with apiVersion: v1, kind: Namespace, labelSelector: opendatahub.io/dashboard=true.
Ask the user for remaining settings:
Present configuration table:
| Setting | Value |
|---|---|
| Project name | [name] |
| Display name | [display_name] |
| Description | [description] |
| Data connections | [yes/no] |
| Pipeline server | [yes/no] |
| Model serving mode | [single/multi] |
WAIT for user to confirm or modify the configuration.
MCP Tool: create_data_science_project (from rhoai)
Parameters:
name: project name from Step 1 - REQUIRED (DNS-compatible: lowercase alphanumeric and hyphens, max 63 chars)display_name: human-readable display name - REQUIREDdescription: project description - OPTIONALIf rhoai unavailable or returns error: Use resources_create_or_update (from openshift) to create the Namespace with RHOAI labels. See openshift-fallback-templates.md for the YAML template.
Verify creation:
MCP Tool: get_project_details (from rhoai)
Parameters:
name: the created project name - REQUIREDConfirm the project was created with proper RHOAI labels (opendatahub.io/dashboard: "true").
If rhoai unavailable or returns error: Use resources_get (from openshift) with apiVersion: v1, kind: Namespace, name: [project-name]. Check for label opendatahub.io/dashboard: "true".
Note: The get_project_details tool requires a name parameter (not namespace). If the tool returns a parameter error, fall back to OpenShift.
Error Handling:
Output to user: "Data Science Project [name] created successfully."
Skip this step if user declined data connections in Step 1.
Ask the user for S3 connection details:
https://s3.amazonaws.com, MinIO endpoint)Display connection configuration (credentials REDACTED):
| Setting | Value |
|---|---|
| Connection name | [name] |
| Bucket | [bucket] |
| Endpoint | [endpoint] |
| Access key | [first-4-chars]**** |
| Secret key | ******** |
| Region | [region] |
WAIT for user to confirm the connection details are correct.
MCP Tool: create_s3_data_connection (from rhoai)
Parameters:
namespace: project name from Step 2 - REQUIREDname: connection name - REQUIREDbucket: S3 bucket name - REQUIREDendpoint: S3 endpoint URL - REQUIREDaccess_key: access key ID - REQUIREDsecret_key: secret access key - REQUIREDregion: AWS region - OPTIONAL (omit for non-AWS S3)If rhoai unavailable or returns error: Use resources_create_or_update (from openshift) to create the Secret with S3 annotations. See openshift-fallback-templates.md for the YAML template.
Verify creation:
MCP Tool: list_data_connections (from rhoai)
Parameters:
namespace: project name - REQUIREDConfirm the data connection appears in the list.
If rhoai unavailable or returns error: Use resources_list (from openshift) with apiVersion: v1, kind: Secret, namespace: [namespace], labelSelector: opendatahub.io/dashboard=true. Filter results by annotation opendatahub.io/connection-type: s3.
Error Handling:
[name] already exists. Create with a different name?"Output to user: "Data connection [name] created in project [namespace]."
Repeat this step if user wants to create multiple data connections.
Skip this step if user declined pipeline server in Step 1.
Prerequisite check: A data connection must exist in the project (from Step 3 or pre-existing). If no data connections exist, inform user: "Pipeline server requires an S3 data connection for artifact storage. Would you like to create one now?" and return to Step 3.
MCP Tool: get_pipeline_server (from rhoai)
Parameters:
namespace: project name - REQUIREDIf pipeline server already exists, report its status and ask if user wants to reconfigure.
Display pipeline server configuration:
| Setting | Value |
|---|---|
| Namespace | [namespace] |
| Data connection | [data_connection_name] |
WAIT for user to confirm pipeline server setup.
Pipeline Server Creation (OpenShift direct — the create_pipeline_server RHOAI tool is not used because it constructs invalid DSPA manifests):
MCP Tool: resources_create_or_update (from openshift)
Create a DataSciencePipelinesApplication CR using the template from openshift-fallback-templates.md.
Parameters to fill in the template:
namespace: target namespacebucket: S3 bucket name from the data connectionhost: S3 endpoint without protocol prefix (e.g., minio.namespace.svc:9000)scheme: http or httpssecretName: name of the S3 data connection secret created in Step 3region: AWS region or empty string for MinIOVerify DSPA is ready:
MCP Tool: resources_get (from openshift)
apiVersion: datasciencepipelinesapplications.opendatahub.io/v1alpha1, kind: DataSciencePipelinesApplication, name: dspa, namespace: [namespace]Check .status.conditions for Ready=True. Poll every 15 seconds until ready or timeout (5 minutes).
Verify creation:
MCP Tool: get_pipeline_server (from rhoai)
Parameters:
namespace: project name - REQUIREDConfirm the pipeline server is configured and initializing.
If rhoai unavailable or returns error: Use resources_get (from openshift) for the DSPA CR as described above.
Error Handling:
[name] not found in namespace. Create it first."Output to user: "Pipeline server configured in project [namespace] using data connection [data_connection]."
MCP Tool: set_model_serving_mode (from rhoai)
Parameters:
namespace: project name - REQUIREDmode: "single" or "multi" - REQUIRED (default: "single")If rhoai unavailable or returns error: Patch the namespace annotation via resources_create_or_update (from openshift). Set annotation opendatahub.io/model-serving-mode to single or multi on the Namespace.
Final validation:
MCP Tool: get_project_status (from rhoai)
Parameters:
namespace: project name - REQUIREDReport project summary:
| Component | Status |
|---|---|
| Project | [name] (created / existing) |
| Data connections | [count] configured |
| Pipeline server | [configured / not configured] |
| Model serving | [single / multi] mode enabled |
Suggest next steps:
/workbench-manage - Create a notebook workbench in this project/model-deploy - Deploy a model to this project/pipeline-manage - Create and run data science pipelines/model-registry - Register and manage models in the Model RegistryError: create_data_science_project returns conflict error
Cause: A namespace with the same name already exists in the cluster, either as an RHOAI project or a regular OpenShift project.
Solution:
list_data_science_projects to check if it is an existing RHOAI projectopendatahub.io/dashboard: "true" labelError: Data connection created but pipeline server or model serving cannot access storage
Cause: The S3 endpoint URL is malformed, unreachable from the cluster, or requires TLS configuration.
Solution:
https://)http://minio.minio-ns.svc:9000)https://s3.us-east-1.amazonaws.com)Error: Pipeline server status remains unhealthy or pods crash
Cause: Usually caused by an invalid data connection (wrong credentials or unreachable bucket), or insufficient cluster resources.
Solution:
pods_log (from openshift) for specific error messagesError: Resource creation fails with quota exceeded error
Cause: The cluster has ResourceQuota or LimitRange policies that restrict resource creation in the namespace.
Solution:
resources_get (from openshift) to inspect ResourceQuota in the namespaceSee Prerequisites for the complete list of required and optional MCP tools.
/workbench-manage - Create notebook workbenches in the project/model-deploy - Deploy models to the project/pipeline-manage - Create and manage pipeline runs/serving-runtime-config - Configure custom serving runtimes in the projectUser: "Create a data science project called fraud-detection with an S3 connection and pipeline server"
Skill response: Gathers requirements, presents configuration table, creates project fraud-detection, configures S3 data connection (credentials redacted in display), sets up pipeline server, enables single-model serving, and reports final project status with next steps.
See skill-conventions.md for general HITL and security conventions.
Skill-specific checkpoints:
e46c4fa
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.