Skip to content

Overview

This system template enables the deployment of Jupyter Notebooks on a Kubernetes cluster, providing tailored environments for data scientists and machine learning engineers to support diverse workloads.

The template provisions a Jupyter Notebook environment optimized for specific use cases, allowing users to select from multiple preconfigured options such as minimal environments, data science platforms, distributed processing with Spark, and GPU-accelerated environments using TensorFlow or PyTorch. Each environment includes the necessary libraries and dependencies, enabling users to focus on their work without setup complexity.

As part of the output, users receive a ready-to-use Jupyter Notebook environment that can be accessed through the configured endpoint, supporting streamlined development and experimentation.

For detailed steps to get started, refer to the Jupyter Notebook System Template Get Started Guide.

Initial Setup

The platform team is responsible for performing the initial configuration and setup of the Jupyter Notebook template. The sequence diagram below outlines the high-level steps. In this process, the platform team will configure and share the template from the system catalog to the project they manage and then share the template downstream with the end user.

sequenceDiagram
    participant Admin as Platform Admin
    participant Catalog as System Catalog
    participant Project as End User Project

    Admin->>Catalog: Selects Jupyter Notebook Template from System Catalog
    Admin->>Project: Shares Template with Predefined Controls
    Project-->>Admin: Template Available in End User's Project

End User Flow

The end user launches a shared template, provides required input values, and deploys the Jupyter Notebook environment.

sequenceDiagram
    participant User as End User
    participant Project as Rafay Project
    participant Cluster as Host Kubernetes Cluster

    User->>Project: Launches Shared Template for Jupyter Notebook
    User->>Project: Provides Required Input Values (API Key, REST Endpoint, Configuration Values)
    User->>Project: Clicks "Deploy"
    Project->>Cluster: Provisions a Jupyter Notebook Environment on the Cluster
    Cluster-->>User: Jupyter Notebook Environment Deployed Successfully

The templates are designed to support both:

  • Day 0 operations: Initial setup
  • Day 2 operations: Ongoing management

Resources

A Jupyter Notebook environment provisioned on a Kubernetes cluster, optimized for various data science and machine learning workloads.

Pre-Requisites

  • Host Cluster: Ensure that a Kubernetes host cluster is available and ready for Jupyter Notebook environment deployment.
  • Rafay Configuration: At template launch, supply the following configuration values:
    • API Key
    • REST Endpoint
  • Agent Configuration: A configured agent must be available in the project where the template will be used, and it should be in a healthy state. Follow these instructions to deploy a new agent. Existing agents within the project can be reused if available.

Configuration

At template launch, provide the required configuration values as exposed by the Platform Admin. This may include:

  • Credentials:

    • API_KEY: Rafay controller API key
  • Jupyter Notebook Configuration:

    • Host Cluster Name: Select the host Kubernetes cluster for deploying the Jupyter Notebook environment
    • Agent: Select the configured agent in the project
    • Template Parameters: Provide additional parameters as required (for example, environment type selection such as Minimal, Data Science, Spark, TensorFlow, etc.)

After entering the required information, click Deploy to initiate the Jupyter Notebook environment provisioning.


Input Variables for Jupyter Notebook System Template

Cluster Connection Details

Name Value Type Description
Host Server Text Address of the host server for the Jupyter Notebook
Client Certificate Data Text Client certificate data used for authentication
Client Key Data Text Client key data used for authentication
Certificate Authority Data Text Certificate authority data for verifying the server
Kubeconfig Text Kubernetes configuration data for accessing the cluster

Project and Deployment Details

Name Value Type Description
Cluster Name Text Name of the Kubernetes cluster
Host Cluster Name Text Name of the host Kubernetes cluster
Project Text Project where the Jupyter Notebook is managed
Namespace Text Namespace where the Jupyter Notebook is deployed

Ingress and Networking Details

Name Value Type Description
Ingress Domain Text Type of ingress domain used
Ingress IP Text IP address for the ingress endpoint
Ingress Namespace Text Namespace used for ingress resources
Sub Domain Text Subdomain used for notebook access
Custom Domain Text Custom domain name for accessing the notebook
Custom Secret Text Secret containing custom TLS certificates

Notebook and Resource Configuration

Name Value Type Description
Notebook Name Text Name of the Jupyter Notebook instance
Notebook Profile Text Profile specifying resource configuration for the notebook
CPU Request Text Requested amount of CPU resources
Memory Request Text Requested amount of memory resources
CPU Limit Text Maximum amount of CPU resources
Memory Limit Text Maximum amount of memory resources
GPU Limit Text Maximum number of GPUs requested
PVC Storage Text Persistent volume claim storage size
Notebook Profiles Text Additional notebook profiles for resource configurations

Launch Time

The estimated time to deploy a Jupyter Notebook environment using this template is approximately 4 minutes.