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:

Webform to create Jira ticket

Link to open request app web form

Open Request App Web Form

Create ticket in Jira

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