Ad

yoke: Kubernetes Package Management as Code

Yoke enables defining and deploying Kubernetes packages using code, providing a powerful and programmatic alternative to traditional YAML-based approaches.
Screenshot of yokecd/yoke homepage

Yoke facilitates Kubernetes package deployment by allowing developers to define packages using general-purpose programming languages instead of static YAML templates. It deploys 'flights,' which are Wasm executables that generate Kubernetes resources (JSON or YAML), to a Kubernetes cluster. This approach leverages existing programming tools for control flow, testing, and versioning to build robust deployment contracts.

Yoke distinguishes itself by using code to define Kubernetes packages, enabling powerful programmatic control and leveraging existing developer workflows. The project uses a Wasm runtime for portability, supports revisions and rollbacks, and offers a distinct aviation-themed command structure. Its design prioritizes safety and flexibility compared to purely declarative deployment methods.

  • Code-Based Packages: Define packages using programming languages, offering control flow and versioning advantages.
  • Wasm Runtime: Utilizes a pure-Go Wasm runtime (wazero) for efficient and portable deployment.
  • Revisions & Rollbacks: Supports tracking revisions and performing rollbacks for reliable deployments.
  • JSON/YAML Output: Flights output Kubernetes resources as JSON or YAML via stdout.
  • Semantic Versioning: Follows semantic versioning principles for predictable updates.
  • Developer Experience: Provides cross-platform installation via Go and Homebrew.
  • Inspection: Offers capabilities for inspecting deployed resources.

Yoke is currently in a pre-1.0.0 state, indicating ongoing development and potential for breaking changes. The project has a growing community, tracked via Discord, and actively welcomes contributions. Documentation is available, but further refinement is expected as the project matures.

Yoke benefits developers seeking a more powerful and programmatic approach to Kubernetes package management. It's suitable for teams requiring version control, testing, and code-driven deployment workflows. By enabling code-based package definition, Yoke addresses the limitations of traditional YAML-based deployments, potentially simplifying complex deployments and improving reliability.

Summarize:
Share:
Stars
757
Forks
33
Issues
26
Created
2 years ago
Commit
29 days ago
License
MIT
Archived
No
Updated 15 hours ago

Similar Repositories