Skip to content

Repository files navigation

Purdue Analysis Facility

CI codecov Docs deploy Registry GC platform AF image

GitOps source of truth for the Purdue Analysis Facility — a Kubernetes-based interactive analysis platform for high energy physics research at CMS experiment.

Everything the cluster runs is declared here and reconciled by Flux.

User documentation: analysis-facility.physics.purdue.edu Admin documentation: https://purdue-cms-tier2.gitlab.io/documentation

Platform at a glance

Orchestration Kubernetes on the Geddes cluster; Flux CD (roots)
Sessions JupyterHub — JupyterLab and code-server interfaces, CILogon auth
Scale-out Dask Gateway — Kubernetes and Slurm backends
User environment the purdue-af image, pixi environments
Data CVMFS, XRootD, XCache, EOS, Depot NFS; ServiceX for columnar delivery
Inference SuperSONIC
Observability Prometheus, Grafana, Loki, Pyroscope, Alloy + purpose-built exporters
Agents MCP server exposing AF-specific tools to any MCP client

Component status

Whether each component on the cluster is running what is on main (which ref each root deploys; awaiting deployment).

Core — platform

af-users-graph af-x509-secrets database-backup jupyterhub jupyterhub-ssh userlist-sync af-monitoring grafana prometheus storage

Experimental

pixi-global-sync agentic-interface dask-gateway-k8s dask-gateway-k8s-slurm flyte interlink-hammer self-repair af-monitoring alloy loki pyroscope servicex-shared servicex servicex-anvil servicex-eos servicex-s3 servicex-test supersonic supersonic-af supersonic-interlink supersonic-pr model-manager kuberay-operator sonic-ray storage

Images — which tag each one ships on: RELEASING.md.

purdue-af agentic-interface af-pod-monitor af-node-monitor self-repair supersonic-model-manager interlink-slurm-plugin

Reading the badges:

  • deployed — no drift, the cluster has it
  • awaiting release — validated, and only a release stands between it and the cluster
  • validating — CI has not finished on those commits yet
  • failed CI — do not release; the drift is broken
  • the trailing number is how many commits it has moved since it was deployed
  • a leading X.Y.Z is the deployed version, for images on a version stream

Recomputed hourly and after every CI run on main by component-status.yml; the badge data lives on the status branch, so keeping it current never touches main.

How a change reaches the cluster, version rules and rollback: RELEASING.md.

About

Purdue Analysis Facility

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages