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 7.4.1)

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

The Michelangelo Helm chart lives in helm/michelangelo/. Key files:

FilePurpose
helm/michelangelo/values.yamlProduction defaults
helm/michelangelo/values-k3d.yamlLocal k3d overrides for development

See the Platform Setup guide for Helm configuration details.