1.5 KiB
1.5 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
A Kubernetes controller that automatically creates LimitRange resources (named extreme-request-defaults) in all non-excluded namespaces to set default memory requests for containers. Runs as a loop checking every 10 seconds.
Build Commands
# Run tests
go test -race -coverprofile=coverage.txt ./...
# Check for vulnerabilities
go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck ./...
# Build binary
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o release/default-request-adder -ldflags '-w -s'
# Build Docker image (uses build-tools, not buildx)
docker build -t default-request-adder .
Architecture
Single-file Go application (main.go) that:
- Uses in-cluster Kubernetes client configuration (
rest.InClusterConfig()) - Loops through all namespaces every 10 seconds
- Creates
LimitRangenamedextreme-request-defaultsin non-excluded namespaces - Deletes the
LimitRangefrom excluded namespaces if present
CLI Flags
-excluded-ns: Comma-separated list of namespaces to exclude (default:kube-system). Use*to exclude all.-memory: Default memory request value (default:1Ti)
CI/CD
- Gitea Actions:
.gitea/workflows/ci.yaml- runs tests and vulnerability checks - GitLab CI:
.gitlab-ci.yml- usesbuildtool/build-toolsfor builds - Releases: Uses git-cliff for changelog generation (see
cliff.toml)