build-system

Regenerates and syncs make build artifacts across a Kubernetes operator monorepo.

4|Updated Dec 1, 2025
One-click install
npx skills add https://github.com/simplyblock/simplyblock-operator --skill build-system-simplyblock
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: build-system
Source: https://github.com/simplyblock/simplyblock-operator/tree/main/.claude/skills/build-system
Command: npx skills add https://github.com/simplyblock/simplyblock-operator --skill build-system-simplyblock

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Generated artifacts in this monorepo (CRDs, RBAC, Helm chart files, the installer, the OLM bundle, generated Go clients) drift out of sync with their sources, causing CI drift-check failures and stale committed files that are hard to diagnose. ## Core Features & Use Cases - Artifact regeneration: Force regeneration of kubebuilder manifests, the consolidated installer, the Helm chart sync, the OpenShift/OLM bundle, operator and CSI binaries, and the atlas generated client. - Drift diagnosis: Map symptoms (missing CRD fields, RBAC denials, webhooks not firing) to the exact stale artifact and the command that fixes it, verified the same way CI does with git diff --exit-code. - Trap avoidance: Warns about side effects like kustomization.yaml mutations, unpinned kustomize in the bundle target, and file-target staleness in atlas-lib. - Use Case: A CI drift check fails after editing a kubebuilder marker; use this Skill to identify the stale artifact, regenerate it, verify with git diff, and commit the result. ## Quick Start Regenerate the operator manifests and Helm chart, then verify there is no remaining diff the way CI checks it.

Frequently Asked Questions about build-system

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I regenerate CRDs and RBAC manifests in a kubebuilder operator?

Run make -C operator manifests generate, which invokes controller-gen for CRDs, RBAC, webhooks, and deepcopy code. These targets are phony and always re-run; verify the result with git diff --exit-code exactly as CI does.

How do I sync a Helm chart from operator manifests?

Run make helm-sync from the repository root. It regenerates operator manifests first, then a script copies CRDs, RBAC roles, and the kustomize-built webhook into the chart, rewriting names and labels to Helm conventions.

Why does make bundle fail with 'could not fetch digest'?

The bundle target curls quay.io for image digests to pin relatedImages, so the operator, cluster, SPDK, and rebalancer images must already be pushed. It also requires operator-sdk and kustomize on PATH, outside the pinned .bin tools.

Why does my generated Go code look stale after running make generate?

atlas-lib uses real file targets, so make skips regeneration when outputs look current. Delete the .gen.go or .pb.go files, or touch a prerequisite like shared/openapi.json, then run make -C atlas-lib generate.

Does running make build or test modify tracked files?

Yes. The operator build and test targets depend on manifests, generate, fmt, and vet, so they can rewrite tracked files. build-installer, deploy, and bundle also mutate config/manager/kustomization.yaml via kustomize edit set image.