Skip to main content

YAML Configuration Reference

Overview​

YAML is used throughout the repo for build configuration, CI/CD pipelines, linting rules, and Kubernetes manifests. This page catalogs the key files and their purposes so contributors know where to look when modifying tooling or deployment configuration.

Configuration Files​

FilePurpose
.pre-commit-config.yamlPre-commit hook definitions — ruff lint, ruff format, prettier
go/.golangci.ymlGo linting rules for golangci-lint: enabled linters, per-linter settings, excluded paths
.github/codecov.ymlCodecov settings for test coverage reporting
.github/workflows/GitHub Actions CI/CD pipelines — build, test, lint, docs
.bazelversionPins the Bazel version for the repo (currently 8.8.0)

Go Linting (golangci-lint)​

Go linting is configured in go/.golangci.yml. All linters are disabled except godox, which enforces that every TODO/FIXME comment references a GitHub issue number (TODO(#123): description). TODOs without an issue reference fail CI.

To run golangci-lint locally:

cd go
golangci-lint run ./...

Requires golangci-lint to be installed. See the golangci-lint installation docs for options.

Pre-commit​

.pre-commit-config.yaml runs automatically on git commit if pre-commit is installed. Three hooks are defined: ruff-lint (Python linting), ruff-format (Python formatting), and prettier (formatter for JS/TS/JSON/CSS/YAML/Markdown).

To install and activate (assumes poetry install -E dev has been run — see Python Utilities):

cd python && poetry run pre-commit install

For manual runs without committing:

cd python && poetry run pre-commit run --all-files

See Python Utilities for more on the Python tooling setup.

Kubernetes Manifests​

Kubernetes resource definitions (Deployments, Services, ConfigMaps) for local sandbox setup live in python/michelangelo/cli/sandbox/resources/. These are applied by sandbox.py via kubectl apply during ma sandbox create. Modifying these files changes what gets deployed when a contributor creates a local sandbox.

Helm Chart Values​

Michelangelo's Helm charts live in helm/michelangelo/ for the control plane and helm/michelangelo-llm-gateway/ for the independently released LiteLLM data plane. Key files:

FilePurpose
helm/michelangelo/values.yamlProduction defaults
helm/michelangelo/values-k3d.yamlLocal k3d overrides for development
helm/michelangelo-llm-gateway/values.yamlLLM gateway wrapper defaults and pinned upstream values
helm/michelangelo-llm-gateway/examples/values-gcp.yamlLLM gateway GCP example
helm/michelangelo-llm-gateway/examples/values-gcp-standard.yamlStandard GKE Workload Identity placement overlay
helm/michelangelo-llm-gateway/README.mdLLM gateway installation, security, and release guide

See the Platform Setup guide for Helm configuration details.