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.