Skip to content

Hermes v0.1.0

Latest

Choose a tag to compare

@jwcesign jwcesign released this 22 Jun 09:13
f6f1878

Hermes v0.1.0

Hermes v0.1.0 is the first stable release of CloudPilot Hermes, a Kubernetes-native SOCI lazy-loading path that keeps application image references unchanged. Platform teams define HermesPolicy resources, Hermes builds and caches SOCI artifacts in the cluster, and node-side hermes-daemon uses those artifacts before falling back to the original registry path.

Highlights

  • Adds the EKS deployment path used by the CloudPilot benchmark guide: deploy/hermespolicy-crd.yaml, deploy/hermes-controller-eks.yaml, and hack/eks/install-hermes-daemon.sh.
  • Publishes the controller image to public.ecr.aws/cloudpilotai/hermes-controller with the release tag and latest.
  • Publishes the Linux amd64 daemon archive and checksum as GitHub Release assets.
  • Adds startup-local materialization work for faster access to startup-critical files in large images.
  • Updates Hermes documentation around policy-driven lazy loading, EKS usage, and benchmark results.
  • Adds PR build coverage plus focused tests for SOCI index handling, policy matching, controller state, and daemon filesystem paths.

Release Artifacts

  • hermes-daemon-linux-amd64.tar.gz
  • hermes-daemon-linux-amd64.tar.gz.sha256
  • public.ecr.aws/cloudpilotai/hermes-controller:v0.1.0

Basic EKS Usage

Install the CRD and controller:

kubectl apply -f deploy/hermespolicy-crd.yaml
kubectl apply -f deploy/hermes-controller-eks.yaml
kubectl -n hermes-system rollout status deploy/hermes-controller

Install the daemon on Hermes-enabled EKS nodes from this release:

export HERMES_INSTALLER_URL="https://raw.githubusercontent.com/cloudpilot-ai/hermes/v0.1.0/hack/eks/install-hermes-daemon.sh"
export HERMES_DAEMON_URL="https://github.com/cloudpilot-ai/hermes/releases/download/v0.1.0/hermes-daemon-linux-amd64.tar.gz"
export HERMES_DAEMON_SHA256="<contents of hermes-daemon-linux-amd64.tar.gz.sha256>"

curl -fsSL "${HERMES_INSTALLER_URL}" | \
  HERMES_DAEMON_URL="${HERMES_DAEMON_URL}" \
  HERMES_DAEMON_SHA256="${HERMES_DAEMON_SHA256}" \
  bash -s --

Create a policy for images that should be optimized:

apiVersion: hermes.cloudpilot.ai/v1alpha1
kind: HermesPolicy
metadata:
  name: prod-large-images
spec:
  paused: false
  imageSelectors:
    - imageRegex: ".*vllm.*"
  platforms:
    - linux/amd64

HermesPolicy.status.images[].phase: Ready means the SOCI artifact has been built and cached. Later Pods using the same image digest and platform can start through Hermes lazy loading.

See the EKS benchmark guide for the full workflow: https://www.cloudpilot.ai/en/blog/hermes-fast-pod-ready-acceleration/

Changes Since v0.0.1-alpha.1

  • #8 Add EKS deploying YAML.
  • #9 Update the EKS controller manifest.
  • #11 Update containerd security patch dependency.
  • #12 Add PR build workflow.
  • #13 and #15 Refresh README and benchmark documentation.
  • #14 Generalize startup-local image startup acceleration.

Full Changelog: v0.0.1-alpha.1...v0.1.0