What Can CIRRUS Do For Your Science?

CIRRUS enables researchers to deploy scalable, production-ready applications without managing infrastructure, allowing you to focus on science instead of DevOps.

Interactive Data Visualization

Deploy Jupyter notebooks, Panel dashboards, or Bokeh applications that connect directly to NCAR's data and compute resources.

Example: Climate model output visualization with real-time updates

Automated Pipelines

Deploy GitHub Actions runner scale sets on CIRRUS with significantly more resources than GitHub's free runners, including GPU access for ML/AI workflows.

Example: Train models on GPUs or run high-memory data processing in your CI/CD

Collaborative Research Tools

Share web applications, APIs, or analysis platforms with your research team or the wider community.

Example: Custom data access portal for field campaign data

Scalable Computing

Run Dask clusters, distributed processing frameworks, or services that scale based on demand.

Example: Multi-node Dask cluster for parallel data analysis


Why Choose CIRRUS?

1
No Infrastructure Management

Focus on your research. CIRRUS eliminates tedious manual tasks like managing DNS and SSL certificates.

2
Complements Existing HPC

Host long-running services, web applications, and APIs. Read-only Glade access.

3
GitOps Workflows

Version-controlled, reproducible deployments using Argo CD and Helm.

4
Auto-Scaling

Applications scale automatically based on usage and resource needs.

5
Enterprise Features

Monitoring, logging, secret management, and high availability built-in.

6
Free for UCAR

No cloud bills. Available to UCAR employees and authorized collaborators.


Four Steps to Deploy Your Application

CIRRUS uses a GitOps workflow where your application is defined as code in a Git repository.

1

Containerize Your Application

Package your application as a Docker container. This makes it portable and ensures it runs consistently across environments.

Example Dockerfile for a Python Flask app:

FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "app.py"]

Build and push your image to Harbor (CIRRUS container registry):

docker build -t hub.k8s.ucar.edu/your-project/your-app:v1.0 .
docker push hub.k8s.ucar.edu/your-project/your-app:v1.0
Detailed Containerization Guide
2

Create a Helm Chart

Define your application's Kubernetes resources using Helm, a package manager for Kubernetes. Helm charts describe what your app needs: containers, storage, networking, scaling rules, etc.

Basic Helm chart structure:

my-app/
├── Chart.yaml          # Chart metadata
├── values.yaml         # Configuration values
└── templates/
    ├── deployment.yaml # Your application pods
    ├── service.yaml    # Network access
    └── ingress.yaml    # External URL (optional)

CIRRUS provides example templates to get you started:

Helm Chart Documentation
3

Push to Git Repository

Store your Helm chart in a Git repository (GitHub recommended). CIRRUS uses GitOps principles where your Git repository is the source of truth.

Repository structure:

your-repo/
├── src/                # Your application code
├── Dockerfile          # Container definition
├── helm/               # Helm chart
│   ├── Chart.yaml
│   ├── values.yaml
│   └── templates/
└── .github/
    └── workflows/      # CI/CD (optional)
New: CIRRUS now provides organizational GitHub runners for the NCAR GitHub organization. You can use these for CI/CD without providing a Personal Access Token.
GitHub Actions Integration
4

Request Application Onboarding

Submit a request to the CIRRUS team with your application details. We'll review your Helm chart and deploy it to the platform.

Information to include in your request:

  • Git Repository URL: Link to your repository with Helm chart
  • GitHub Branch: Branch to deploy from (e.g., main, production)
  • Helm Chart Folder: Path to Helm chart directory in your repo
  • Application URL: Desired external URL (e.g., myapp.k8s.ucar.edu)

The CIRRUS team will:

  1. Review your Helm chart for best practices and security
  2. Set up Argo CD to automatically sync your app from Git
  3. Configure monitoring, logging, and alerting
  4. Provide your application URL and access information
Submit your request:

Create Jira ticket

Link to open CIRRUS Jira ticket creation

Open Jira

Additional Resources

Full Documentation

Comprehensive guides on deploying applications, managing secrets, and using platform services.

View Docs
Example Applications

Ready-to-use Helm chart templates for common application patterns.

View Examples
Get Help

Have questions? The CIRRUS team is here to help with deployment and troubleshooting.

Contact Us