Guidance for autonomous coding agents working in this repository.
vjailbreak is a multi-component system for migrating VMs from VMware to OpenStack-compatible clouds.
Main parts of the repository:
ui/: React + Vite frontend.k8s/migration/: Kubernetes controller and migration orchestration logic (Go).v2v-helper/: Go helper binary used during migration operations.pkg/common/*: Shared Go modules (openstack,utils,validation).pkg/vpwned/: Additional Go component with its own module and image build.image_builder/,deploy/,templates/: deployment/image assets.
- Go 1.20+ (multiple Go modules are used).
- Node.js 18 + Yarn (UI work).
- Docker (image builds).
- Optional for controller workflows:
kubectl,kustomize, envtest dependencies (installed bymaketargets as needed).
- Keep changes scoped to the task; avoid broad refactors unless required.
- Do not commit secrets, kubeconfigs, credentials, or generated artifacts unless explicitly required.
- Follow existing code style and naming in each component.
- Prefer minimal, targeted edits with corresponding validation.
From repository root:
make setup-hooks
make lint
make test-v2v-helperUI (ui/):
yarn
yarn lint
yarn buildController (k8s/migration/):
make lint
make test
make buildv2v-helper (v2v-helper/):
make test
make buildShared Go modules (run from module directory when touched):
go test ./...- UI-only changes: run
yarn lintandyarn buildinui/. k8s/migrationchanges: runmake lintand at least targetedmake testink8s/migration/.v2v-helperchanges: runmake testinv2v-helper/.pkg/common/*orpkg/vpwnedchanges: rungo test ./...in each touched module.- Cross-cutting changes: run the relevant checks for every impacted component.
make setup-hooksconfigurescore.hooksPathto.githooks.v2v-helperbuilds/tests use CGO and depend onlibnbdtoolchain availability.k8s/migration make testmay download envtest binaries on first run.- UI local development uses
yarn dev(default Vite flow; seeui/README.mdfor env variables).
- Use clear, descriptive commit messages.
- Include docs/tests updates whenever behavior changes.
- Before finishing, ensure changed components build/test successfully with the smallest meaningful command set.