Skill

ds-project-setup

Install
1
Install the plugin
$
npx claudepluginhub rhecosystemappeng/agentic-collections --plugin rh-ai-engineer

Want just this skill?

Add to a custom plugin, then install with one command.

Description

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).

Tool Access

This skill uses the workspace's default tool permissions.

Skill Content

/ds-project-setup Skill

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.

Prerequisites

Required MCP Server: rhoai (RHOAI MCP Server)

Required MCP Tools (from rhoai):

  • list_data_science_projects - List existing RHOAI projects to check for duplicates
  • create_data_science_project - Create namespace with RHOAI labels and dashboard integration
  • get_project_details - Verify project creation and inspect configuration
  • get_project_status - Get comprehensive project status including components
  • create_s3_data_connection - Create S3-compatible data connection secret
  • list_data_connections - List existing data connections in the project
  • get_pipeline_server - Check pipeline server configuration
  • create_pipeline_server - Configure pipeline server with S3 data connection
  • set_model_serving_mode - Enable single-model or multi-model serving

Required MCP Server: openshift (OpenShift MCP Server)

Required MCP Tools (from openshift):

  • resources_get (from openshift) - Inspect namespace labels, LimitRange, ResourceQuota

Common prerequisites (KUBECONFIG, OpenShift+RHOAI cluster, verification protocol): See skill-conventions.md.

Additional cluster requirements:

  • Cluster admin or namespace creation privileges for the user

When to Use This Skill

Use this skill when you need to:

  • Create a new Data Science Project namespace for an ML team
  • Add S3 data connections to an existing project
  • Configure the pipeline server on a project
  • Enable or change the model serving mode (single vs multi-model)
  • Bootstrap a complete project environment before deploying models or workbenches

Do NOT use this skill when:

  • You want to deploy a model (use /model-deploy)
  • You need to create a notebook workbench (use /workbench-manage)
  • You need to manage pipeline runs (use /pipeline-manage)
  • You need to configure a custom serving runtime (use /serving-runtime-config)

Workflow

Step 1: Gather Requirements

Ask the user for the project name first:

  • Project name: DNS-compatible name for the namespace (lowercase, no spaces, max 63 chars)

Immediately check if the project name already exists:

MCP Tool: list_data_science_projects (from rhoai)

Parameters: none

  • If project exists: Report to user and offer options: "Project [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 project does not exist: Continue gathering remaining requirements below.

Ask the user for remaining settings:

  • Display name: Human-readable project name for the RHOAI dashboard
  • Description: Optional project description
  • Data connections: Whether to configure S3 data connections (yes/no)
  • Pipeline server: Whether to configure the pipeline server (yes/no, requires data connection)
  • Model serving mode: "single" (default, one model per endpoint) or "multi" (multiple models per endpoint)

Present configuration table:

SettingValue
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.

Step 2: Create Data Science Project

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 - REQUIRED
  • description: project description - OPTIONAL

Verify creation:

MCP Tool: get_project_details (from rhoai)

Parameters:

  • name: the created project name - REQUIRED

Confirm the project was created with proper RHOAI labels (opendatahub.io/dashboard: "true").

Error Handling:

  • If name already taken -> Offer alternative name or configure existing project
  • If RBAC error -> Report: "Insufficient permissions to create namespaces. Contact your cluster administrator."
  • If name invalid -> Report DNS naming constraints and suggest a valid name

Output to user: "Data Science Project [name] created successfully."

Step 3: Configure Data Connections (Optional)

Skip this step if user declined data connections in Step 1.

Ask the user for S3 connection details:

  • Connection name: Identifier for this data connection
  • S3 bucket: Target bucket name
  • S3 endpoint: S3-compatible endpoint URL (e.g., https://s3.amazonaws.com, MinIO endpoint)
  • Access key: AWS access key ID or S3-compatible access key
  • Secret key: AWS secret access key or S3-compatible secret key
  • Region: AWS region or empty for non-AWS S3

Display connection configuration (credentials REDACTED):

SettingValue
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 - REQUIRED
  • name: connection name - REQUIRED
  • bucket: S3 bucket name - REQUIRED
  • endpoint: S3 endpoint URL - REQUIRED
  • access_key: access key ID - REQUIRED
  • secret_key: secret access key - REQUIRED
  • region: AWS region - OPTIONAL (omit for non-AWS S3)

Verify creation:

MCP Tool: list_data_connections (from rhoai)

Parameters:

  • namespace: project name - REQUIRED

Confirm the data connection appears in the list.

Error Handling:

  • If connection name already exists -> Ask: "Data connection [name] already exists. Create with a different name?"
  • If RBAC error -> Report insufficient permissions to create Secrets in namespace

Output to user: "Data connection [name] created in project [namespace]."

Repeat this step if user wants to create multiple data connections.

Step 4: Configure Pipeline Server (Optional)

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 - REQUIRED

If pipeline server already exists, report its status and ask if user wants to reconfigure.

Display pipeline server configuration:

SettingValue
Namespace[namespace]
Data connection[data_connection_name]

WAIT for user to confirm pipeline server setup.

MCP Tool: create_pipeline_server (from rhoai)

Parameters:

  • namespace: project name - REQUIRED
  • object_storage_secret: name of the S3 data connection secret - REQUIRED
  • object_storage_bucket: S3 bucket name (from the data connection) - REQUIRED
  • object_storage_endpoint: S3 endpoint URL (from the data connection) - REQUIRED
  • object_storage_region: S3 region - OPTIONAL (default: "us-east-1")

Verify creation:

MCP Tool: get_pipeline_server (from rhoai)

Parameters:

  • namespace: project name - REQUIRED

Confirm the pipeline server is configured and initializing.

Error Handling:

  • If data connection not found -> Report: "Data connection [name] not found in namespace. Create it first."
  • If pipeline server already exists -> Ask user whether to reconfigure or keep existing
  • If RBAC error -> Report insufficient permissions

Output to user: "Pipeline server configured in project [namespace] using data connection [data_connection]."

Step 5: Enable Model Serving and Report

MCP Tool: set_model_serving_mode (from rhoai)

Parameters:

  • namespace: project name - REQUIRED
  • mode: "single" or "multi" - REQUIRED (default: "single")

Final validation:

MCP Tool: get_project_status (from rhoai)

Parameters:

  • namespace: project name - REQUIRED

Report project summary:

ComponentStatus
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 Registry

Common Issues

Issue 1: Project Name Already Exists

Error: 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:

  1. Use list_data_science_projects to check if it is an existing RHOAI project
  2. If it is an RHOAI project, offer to configure additional components on it
  3. If it is a regular namespace (not an RHOAI project), suggest a different name or advise converting it by adding the opendatahub.io/dashboard: "true" label

Issue 2: S3 Endpoint Unreachable

Error: 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:

  1. Verify the endpoint URL format includes the protocol (https://)
  2. For MinIO: use the internal cluster service URL (e.g., http://minio.minio-ns.svc:9000)
  3. For AWS: use the regional endpoint (e.g., https://s3.us-east-1.amazonaws.com)
  4. Check if the cluster has network egress restrictions that block external S3 access

Issue 3: Pipeline Server Fails to Initialize

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:

  1. Verify the data connection credentials are correct (re-create if needed)
  2. Check that the S3 bucket exists and is accessible with the provided credentials
  3. Check namespace ResourceQuota for pod limits
  4. Review pipeline server pod logs via pods_log (from openshift) for specific error messages

Issue 4: Namespace Quota Exceeded

Error: Resource creation fails with quota exceeded error

Cause: The cluster has ResourceQuota or LimitRange policies that restrict resource creation in the namespace.

Solution:

  1. Use resources_get (from openshift) to inspect ResourceQuota in the namespace
  2. Report the quota limits to the user
  3. Suggest contacting the cluster administrator to increase quotas or clean up unused resources

Dependencies

MCP Tools

See Prerequisites for the complete list of required and optional MCP tools.

Related Skills

  • /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 project

Reference Documentation

Example Usage

User: "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.

Critical: Human-in-the-Loop Requirements

See skill-conventions.md for general HITL and security conventions.

Skill-specific checkpoints:

  • After project name existence check (Step 1): if project exists, confirm whether to configure existing or choose new name
  • After gathering all requirements (Step 1): confirm project configuration table before proceeding
  • Before creating data connections (Step 3): display connection config with credentials REDACTED, confirm
  • Before configuring pipeline server (Step 4): confirm data connection selection
  • NEVER create data connections without user confirming credential details
  • NEVER display actual S3 access keys or secret keys in output
Stats
Stars4
Forks6
Last CommitMar 18, 2026
Actions

Similar Skills