Concourse CI Machine Charm

A Juju machine charm for deploying Concourse CI - a modern, scalable continuous integration and delivery system

GitHub CI Status Charmhub

Deploy Concourse CI with Confidence Work in Progress

The Concourse CI Machine Charm provides a production-ready deployment solution for Concourse CI using Juju. With flexible deployment modes, automated key management, GPU support for ML/AI workloads, and comprehensive monitoring, you can deploy and scale Concourse CI across bare metal, VMs, and LXD environments.

Key Features

🚀 Flexible Deployment

Deploy in auto mode or web+worker mode. Scale seamlessly with automatic role assignment.

🔐 Automated Security

Fully automated TSA key distribution via peer relations. Zero manual key management required.

🎮 GPU Support

Native NVIDIA (CUDA) and AMD (ROCm) GPU support for ML/AI workloads with automatic device injection.

📊 Monitoring Ready

Built-in Prometheus metrics endpoint. Integrate with your existing monitoring stack.

💾 Shared Storage

Efficient binary sharing with LXC shared storage mode. Reduce disk usage and deployment time.

🔄 Auto Upgrades

Workers automatically upgrade to match web server version. Seamless version management.

📁 Folder Mounting

Automatic discovery and mounting of datasets, models, and any folder from host /srv directory.

🐧 Ubuntu 24.04 LTS

Optimized for Ubuntu 24.04 LTS with containerd runtime and full systemd integration.

Quick Start

# Bootstrap Juju controller
juju bootstrap localhost test-controller

# Deploy PostgreSQL
juju deploy postgresql --channel 16/stable --base ubuntu@24.04

# Deploy Concourse CI (3 units: 1 web + 2 workers)
juju deploy concourse-ci-machine concourse-ci -n 3 --config mode=auto --channel edge

# Integrate with database
juju integrate concourse-ci:postgresql postgresql:database

# Expose web interface
juju expose concourse-ci

# Get admin credentials
juju run concourse-ci/leader get-admin-password

# Access web UI at http://<unit-ip>:8080