Project's Logo

stefanprodan/timoni

Timoni, available at timoni.sh, is a next-generation Kubernetes package manager powered by CUE and inspired by Helm. The project aims to enhance the user experience of authoring Kubernetes configurations by relying on CUE’s type safety, code generation, and data validation features. Timoni is under active development and offers a better alternative to mingling Go templates with YAML (like Helm) or layering YAML on top of each other (like Kustomize).

To get started with Timoni, visit the documentation website at timoni.sh. Key concepts include modules (app definitions containing Kubernetes CUE templates and configuration schema, distributed as OCI artifacts), instances (app instantiation referencing the module and workloads deployed on a Kubernetes cluster), bundles (app composition bundling multiple modules and configurations into a deployable unit), and OCI artifacts (packaging format used for distributing modules and bundles to container registries).

Timoni enables software vendors to define complex application deployments as modules, using type-safe Kubernetes templates and rich customization options for end-users. These app configurations are distributed as OCI artifacts, along with the app images, in a container registry. Timoni Modules are semantically versioned and cryptographically signed for secure distribution. Platform engineers can manage the lifecycle of Kubernetes controllers, including the upgrade of CRDs, by importing CRD schemas from YAML files and incorporating Kubernetes custom resources in their app deployments.

With Timoni, users can manage the whole lifecycle of applications deployed on Kubernetes, from customized installation to seamless upgrades, end-to-end testing, safe rollback, and uninstallation. Users can bundle microservices and distributed monoliths into a deployable unit using the Timoni Bundle, which offers a declarative way of managing app delivery across clusters, where secrets and other environment-specific config values are dynamically loaded during installation or upgrades.

Timoni is Apache 2.0 licensed and accepts contributions via GitHub pull requests. For more information, please see the contributing guide.

Project Information

Contribution Opportunities

  • Issues are available for contributions.

License

Apache License 2.0

Topics

cuelang
kubernetes
package-manager

Recent Contributors

stefanprodan's avatar

stefanprodan

636 Contributions

dependabot[bot]'s avatar

dependabot[bot]

47 Contributions

b4nst's avatar

b4nst

23 Contributions

squaremo's avatar

squaremo

9 Contributions

Nalum's avatar

Nalum

9 Contributions

hiddeco's avatar

hiddeco

8 Contributions

applejag's avatar

applejag

8 Contributions

gustavclausen's avatar

gustavclausen

3 Contributions

errordeveloper's avatar

errordeveloper

3 Contributions

trevex's avatar

trevex

2 Contributions

algobot76's avatar

algobot76

2 Contributions

GeorgeMac's avatar

GeorgeMac

2 Contributions

mocdaniel's avatar

mocdaniel

2 Contributions

loktev-d's avatar

loktev-d

1 Contributions

FrenchBen's avatar

FrenchBen

1 Contributions

jmgilman's avatar

jmgilman

1 Contributions

siiimooon's avatar

siiimooon

1 Contributions

uhthomas's avatar

uhthomas

1 Contributions

webwurst's avatar

webwurst

1 Contributions

fcbry's avatar

fcbry

1 Contributions

sdboyer's avatar

sdboyer

1 Contributions

yyvess's avatar

yyvess

1 Contributions