clusters.yaml | Defines all clusters, modules, and per-installation config (replicas, log levels, runner limits, etc.) |
justfile | All operations (deploy, lint, test, setup, kubeconfig) |
mise.toml | Tool versions (tofu, kubectl, helm, crane, ruff, shellcheck, etc.) + env vars |
pyproject.toml | Python dependencies + dev deps, managed by uv |
scripts/cluster-config.py | Reads clusters.yaml for justfile/shell consumption |
scripts/bootstrap-state.sh | Creates S3 bucket + DynamoDB for tofu state |
scripts/destroy-cluster.sh | Operator-facing helper for tearing down a cluster's tofu-managed infrastructure |
scripts/cleanup-git-cache.sh | Transitional operator helper — removes orphaned in-cluster git-cache resources left over from #703 code removal; delete once all clusters are cleaned |
scripts/mise-activate.sh | Sourceable helper — adds mise tools to PATH for shebang recipes |
scripts/deploy-log.sh, scripts/deploy-status.py | Deploy logging + status reporting helpers (called by justfile) |
scripts/helm-upgrade.sh, scripts/kubectl-apply.sh, scripts/yaml-diff.py, scripts/kubeconfig-lock.sh | Wrappers used by module deploy.sh scripts |
scripts/python/configure_harbor_projects.py | Configures Harbor proxy cache projects via API |
scripts/python/ (analysis) | analyze_node_utilization.py, simulate_cluster.py, instance_specs.py (two dicts: INSTANCE_SPECS compute/memory/arch keyed by AWS instance type, ENI_MAX_PODS AWS-stock max-pods from awslabs/amazon-eks-ami eni-max-pods.txt, used by simulators and analyzers), pytorch_workload_data.py, daemonset_overhead.py, collect_instance_memory.py, simulate_cluster_cli.py — capacity / utilization analysis tooling |
scripts/python/cni_constants.py | Single source of truth for the VPC CNI Custom Networking node label key (ENI_CONFIG_LABEL = "ipam.osdc.internal/eni-config"); imported by smoke tests and the nodepool generator, referenced as a string literal by bootstrap and tofu addon config |
scripts/state-config.sh | Sourceable shell helper — exports STATE_REGION (AWS region of the shared tofu state bucket + DynamoDB lock table, independent of each cluster's own region). Sourced by every deploy script and module deploy.sh |
modules/eks/terraform/main.tf | Parameterized infra (VPC, EKS, Harbor) |
modules/eks/terraform/variables.tf | All variables driven from clusters.yaml |
modules/eks/images.yaml | Harbor bootstrap images to mirror to ECR |
base/kubernetes/node-taint-remover/ | Operator that removes startup taints from nodes once their gating DaemonSets are Ready; lib/taint_remover.py generates the ConfigMap registry used by cache-enforcer, registry-mirror-config, and node-performance-tuning |
base/kubernetes/harbor/pdb.yaml.tpl | Harbor PDB template (multi-doc, sed-substituted by _deploy-harbor) |
base/node-compactor/ | Node consolidation controller (taints underutilized Karpenter nodes) |
modules/karpenter/deploy.sh | Karpenter controller + AWS infra (IAM, SQS, Helm install) |
modules/keda/deploy.sh | KEDA operator install (provides ScaledObject CRDs used by buildkit autoscaling) |
modules/nodepools/defs/*.yaml | NodePool definitions (instance type, arch, disk, gpu flag) |
modules/nodepools/deploy.sh | Generate + apply Karpenter NodePools |
modules/arc-runners/defs/*.yaml | Runner definitions (instance type, CPU, memory, GPU, max runners) |
modules/arc-runners/deploy.sh | Generate + install ARC runner scale sets (requires arc module) |
modules/buildkit/deploy.sh | Generate + deploy BuildKit (Deployments, HAProxy, NodePools) |
modules/monitoring/CLAUDE.md | Per-module rules for monitoring (read first when editing this module) |
modules/monitoring/deploy.sh | Deploy kube-prometheus-stack + monitors + conditionally Alloy |
modules/monitoring/helm/values.yaml | kube-prometheus-stack Helm values (node placement, storage, auto-discovery) |
modules/monitoring/helm/alloy-values.yaml | Grafana Alloy Deployment values for metrics (ServiceMonitor/PodMonitor discovery, remote_write to Mimir) |
modules/monitoring/kubernetes/monitors/ | ServiceMonitors + PodMonitors for OSDC components (ARC, Harbor, Karpenter, etc.) |
modules/monitoring/kubernetes/dcgm-exporter/ | DCGM GPU exporter DaemonSet + headless Service (GPU nodes only) |
modules/logging/deploy.sh | Secret-gated Alloy install for log collection -> Grafana Cloud Loki (DaemonSet for journal logs, Deployment for Kubernetes events) |
modules/logging/pipelines/base.alloy | Alloy DaemonSet config — journal source + loki.write (container stdout/stderr intentionally not shipped) |
modules/logging/helm/alloy-logging-values.yaml | Alloy DaemonSet Helm values for journal logs (tolerates all taints, journal mount, positions hostPath) |
modules/logging/helm/alloy-events-values.yaml | Alloy Deployment Helm values for Kubernetes events stream |
modules/logging/scripts/python/assemble_config.py | Wraps base.alloy in a ConfigMap YAML |
integration-tests/, tests/smoke/ | Top-level integration suites and smoke tests (per-module tests/ subdirs cover module-local checks) |