Getting Started with CIRRUS
Deploy your research application on NCAR's cloud-native Kubernetes platform in four steps.
Four Steps to Deploy Your Application
CIRRUS uses a GitOps workflow where your application is defined as code in a Git repository.
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
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 DocumentationPush 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)
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:
- Review your Helm chart for best practices and security
- Set up Argo CD to automatically sync your app from Git
- Configure monitoring, logging, and alerting
- Provide your application URL and access information
Submit your request:
Webform to create Jira ticket
Link to open request app web form
Open Request App Web FormCreate ticket in Jira
Link to open CIRRUS Jira ticket creation
Open JiraAdditional Resources
Full Documentation
Comprehensive guides on deploying applications, managing secrets, and using platform services.
View DocsExample Applications
Ready-to-use Helm chart templates for common application patterns.
View ExamplesGet Help
Have questions? The CIRRUS team is here to help with deployment and troubleshooting.
Contact Us