Brewlet runs Java applications packaged as OCI artifacts with a node-resident JDK. This repository contains the core CLI, OCI artifact implementation, containerd Runtime v2 shim, and node provisioner.
- Brewlet specification
- User documentation
- Kubernetes platform components
- Cross-repository integration tests
| Path | Purpose |
|---|---|
cmd/brewlet/ |
CLI for pushing, inspecting, running, and bundling Brewlet artifacts |
internal/artifact/ |
OCI artifact formats and local OCI-layout storage |
internal/inventory/ |
Node JDK inventory parsing and rendering |
internal/runtime/ |
JVM launch configuration and OCI bundle assembly |
shim/ |
containerd Runtime v2 shim and portable bundle preparation |
provisioner/ |
Linux node-provisioner image and host installation entrypoint |
The Kubernetes operator, deployment manifests, and Helm chart live in
brewlet/kubernetes. Fixture applications
and end-to-end suites live in
brewlet/integration-tests.
- Go 1.26 or newer
- A JDK 17 or newer for the optional AppCDS integration test
- Docker with Buildx to build or publish the node-provisioner image
Linux-specific shim services retain their linux build constraints. On other
platforms, the portable bundle-assembly implementation is built instead.
make build
make test
make checkmake check runs the same formatting, vet, build, and race-test checks as CI.
The AppCDS integration test automatically skips when a suitable JDK is not
available.
Build binaries into bin/:
make binariesBuild or publish the Linux node-provisioner image:
make provisioner-image
make provisioner-image-pushOverride REGISTRY, TAG, or PROVISIONER_IMAGE to publish elsewhere.
This project is licensed under the terms in LICENSE.