Skip to content

calypr/argo-helm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Calypr GitOps

License Helm Kubernetes Argo Workflows Argo CD

A complete, production-ready Kubernetes GitOps and workflow automation stack with enterprise-grade authorization

πŸš€ Quick Start β€’ Overview β€’ Architecture β€’ Contributing

πŸ§ͺ Experimental Notice

⚠️ This project is experimental and subject to change. Use in production environments at your own discretion.


Use cases

See User Guide

sequenceDiagram
    autonumber

    participant B as Bioinformatician
    participant G as Git Repository
    participant O as Calypr GitOps
    participant S as Workflow Services
    participant P as Portal Application

    rect rgba(200, 220, 255, 0.35)
        Note over O,P: Calypr Platform
    end

    B->>G: Commit new data<br/>and metadata updates
    G-->>O: Trigger GitOps sync

    rect rgba(200, 220, 255, 0.12)
        O->>S: Apply updated configs<br/>and publish new data
        S-->>O: Acknowledge deployment<br/>and updated records
        O-->>G: Updated Git status

        O->>P: Update portal manifests<br/>and reload content
        P-->>B: Portal reflects<br/>latest validated data
    end


    Note over B,P: Git commits become the single source of truth,<br/>and all systems stay in sync automatically.

Loading

🌟 Overview

This repository provides a complete Kubernetes-native GitOps and workflow automation platform that combines:

  • πŸ€– Self-Service Onboarding - Custom CRDs for easy tenant and repository registration
    • βš™οΈ Automated GitHub Integration - Self-service GitHub App onboarding with webhook management
    • πŸͺ£ Data buckets - Per-repository isolated data storage
    • πŸͺ΅ Artifact Management - S3-compatible storage for workflow artifacts (logs, outputs, etc.)
    • πŸ”„ Argo Workflows - Kubernetes-native workflow engine
    • πŸ“¦ Argo CD - Declarative GitOps continuous delivery
  • πŸ” Authorization Adapter - Enterprise-grade RBAC with OIDC integration
  • πŸšͺ NGINX Ingress - Secure external access with per-request authorization
  • πŸ†• Vault Integration - Centralized secret management with HashiCorp Vault and External Secrets Operator

πŸ— Architecture

graph TB
    subgraph "External"
        U[πŸ‘€ Git<br/>Browser & CLI]
        GH[πŸ“¦ Git Repository]
        FENCE[πŸ” Fence OIDC<br/>calypr-dev.ohsu.edu]
    end

    subgraph "Kubernetes Cluster"
        subgraph "Ingress Layer"
            NG[🌐 NGINX Ingress<br/>SSL Termination]
        end
        
        subgraph "Security Namespace"
            AD[πŸ›‘οΈ AuthZ Adapter<br/>Flask Service]
        end
        
        subgraph "ArgoCD Namespace"
            ACD[πŸ“¦ Argo CD Server<br/>GitOps Controller]
        end
        
        subgraph "Argo Namespace"
            AWS[πŸ”„ Argo Workflows<br/>Server & UI]
            AWC[βš™οΈ Workflow Controller<br/>Job Execution]
        end
        
        subgraph "Tenant Namespace (wf-poc)"
            WF[πŸ“‹ Workflows<br/>Running Jobs]
            SA[πŸ‘₯ Service Accounts<br/>RBAC Roles]
        end
        
        subgraph "Storage"
            S3[πŸ—„οΈ S3 Compatible<br/>Artifact Repository]
        end
    end

    %% User flows
    U -->|HTTPS Requests| NG
    NG -->|Auth Check| AD
    AD -->|Validate Token| FENCE
    
    %% Service routing
    NG -->|Authorized Traffic| ACD
    NG -->|Authorized Traffic| AWS
    
    %% Internal workflows
    ACD -->|Deploy Workflows| AWC
    AWS -->|Submit Jobs| AWC
    AWC -->|Execute| WF
    AWC -->|Store Artifacts| S3
    ACD -->|Sync from Git| GH

    %% Styling
    classDef external fill:#e1f5fe
    classDef security fill:#f3e5f5
    classDef argo fill:#e8f5e8
    classDef storage fill:#fff3e0
    
    class U,GH,FENCE external
    class AD,NG security
    class ACD,AWS,AWC,WF,SA argo
    class S3 storage
Loading

Quickstart

  1. Verify your tooling before touching Kubernetes:
    ./scripts/check_tools.sh
  2. Prepare required environment variables and validate them with the Makefile helpers:
    make check-vars
    When you are ready to roll out, use the deploy target to run the full initialization pipeline.
  3. Iterate on the chart and publish your latest changes straight to the cluster with:
    make argo-stack ports

Additional resources


🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

πŸ“‹ Reporting Issues

Please use our issue tracker with:

  • πŸ› Bug reports: Include logs, configuration, and reproduction steps
  • ✨ Feature requests: Describe the use case and expected behavior
  • πŸ“š Documentation: Suggestions for improving this README

πŸ“ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


πŸ™ Acknowledgments

  • Argo Project for the excellent workflow and GitOps tools
  • Gen3 for the Fence OIDC integration patterns
  • OHSU for supporting this open-source initiative

⭐ Star this repo if it helped you!

Report Bug β€’ Request Feature β€’ View Documentation

About

An umbrella chart that installs **Argo Workflows**, **Argo CD**, and fence **authz-adapter**

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •