pvx is a fast CLI for generating and applying Kubernetes PersistentVolumeClaims.
make build
./bin/pvx versionmake install
pvx versionThis installs pvx into your GOPATH/bin (usually ~/go/bin).
pvx pvc create app-data --size 20Gi --storage-class standard
pvx pvc create cache --size 5Gi --apply
pvx pvc create logs --file pvc.yaml# Bash (add to ~/.bashrc)
source <(pvx completion bash)
# Zsh (add to ~/.zshrc)
source <(pvx completion zsh)
# Fish
pvx completion fish | sourcepvx doctor
pvx doctor --kubeconfig /path/to/config --context my-context- CI runs GoReleaser config validation, formatting check, vet, tests, and
make buildon pushes/PRs. - Release uses GoReleaser on tags like
v0.1.0: GitHub Release assets, checksums, and optional Homebrew formula generation.
.goreleaser.yaml includes a brews section with skip_upload: true so releases work without a tap repo. To publish updates to a tap:
- Create a GitHub repository named
homebrew-tap(or another tap name) under your user or org. - In
.goreleaser.yaml, sethomepageto your app repo URL, setbrews[].repository.owner/nameto the tap location, and setskip_upload: false. - Add a GitHub Actions secret
HOMEBREW_TAP_GITHUB_TOKENwithreposcope on the tap repository (GoReleaser uses it to push the formula). The workflow already passes it asHOMEBREW_TAP_GITHUB_TOKEN; if your GoReleaser version expects a different env name, align with GoReleaser brew docs. - Tag and push:
git tag v0.1.0 && git push origin v0.1.0
Then users can run:
brew tap YOUR_USER/homebrew-tap
brew install pvx