This directory contains detailed guides for developers contributing to Crane.
- Architecture — Pipeline design, package structure, and data flow
- Development Setup — Setting up your development environment
- Testing — Unit tests, table-driven patterns, and E2E testing
- Plugin Development — Writing custom transformation plugins
# Build
go build -o crane main.go
# Test
go test ./...
# Lint
gofmt -l .crane/
├── cmd/ # CLI command implementations
│ ├── apply/ # crane apply
│ ├── export/ # crane export
│ ├── transform/ # crane transform
│ ├── validate/ # crane validate
│ ├── transfer-pvc/ # crane transfer-pvc
│ └── ...
├── internal/ # Internal packages
│ ├── apply/ # Kustomize apply logic
│ ├── kustomize/ # Embedded kustomize runner (krusty API)
│ ├── transform/ # Orchestrator, stages, writer
│ ├── validate/ # Scanner, matcher, report
│ ├── file/ # File helper utilities
│ ├── flags/ # Global CLI flags
│ └── plugin/ # Plugin loading and execution
├── e2e-tests/ # End-to-end tests
│ ├── framework/ # Test framework utilities
│ ├── tests/ # Test cases
│ ├── golden-manifests/ # Expected output fixtures
│ └── utils/ # Test helper utilities
└── docs/ # Documentation
- konveyor/crane-lib — Transformation logic library
- konveyor/crane-plugins — Community plugins
- konveyor/crane-plugin-openshift — OpenShift plugin
- migtools/pvc-transfer — PV migration library