Giter VIP home page Giter VIP logo

timoni's Introduction

timoni

Sponsor this release platforms build license SLSA 3

Timoni is a package manager for Kubernetes, powered by CUE and inspired by Helm.

The Timoni project strives to improve the UX of authoring Kubernetes configs. Instead of mingling Go templates with YAML like Helm, or layering YAML on top of each-other like Kustomize, Timoni relies on cuelang's type safety, code generation and data validation features to offer a better experience of creating, packaging and delivering apps to Kubernetes.

Important

Note that Timoni in under active development and is still in its infancy. The APIs and command-line interface may change in a backwards incompatible manner.

Get Started

To get started with Timoni please visit the documentation website at timoni.sh.

Concepts

  • Module - App definition containing Kubernetes CUE templates and configuration schema, distributed as OCI artifacts.
  • Instance - App instantiation referencing the module and workloads deployed on a Kubernetes cluster.
  • Bundle - App composition bundling multiple modules and configurations into a deployable unit.
  • OCI Artifact - Packaging format used for distributing modules and bundles to container registries.

Tip

If you are familiar with Helm, a Timoni module is the equivalent of a chart, a Timoni bundle is the equivalent of an umbrella chart, and a Timoni instance is the equivalent of a Helm release.

Features

App Packaging and Distribution

Timoni enables software vendors to define complex application deployments, packaged as Modules, using type-safe Kubernetes templates and rich customisation options for end-users.

The app configuration packaged in a Module is distributed as an Open Container Initiative (OCI) artifact, next to the app images, in a container registry. Timoni Modules are semantically versioned and cryptographically signed.

With Timoni, platform engineers can manage the lifecycle of Kubernetes controllers, including the upgrade of CRDs. Module authors can import CRD schemas from YAML files and incorporate Kubernetes custom resources in their app deployments.

App Lifecycle Management

With Timoni, users can manage the whole lifecycle of applications deployed on Kubernetes. From highly customised installation to seamless upgrades, end-to-end testing, safe rollback and uninstallation.

With Timoni, users can bundle microservices and distributed monoliths into a deployable unit. The Timoni Bundle offers a declarative way of managing the app delivery across clusters, where secrets and other environment-specific config values are dynamically loaded during installation or upgrades.

License

Timoni is Apache 2.0 licensed and accepts contributions via GitHub pull requests. Please see the contributing guide for more information.

timoni's People

Contributors

stefanprodan avatar dependabot[bot] avatar b4nst avatar squaremo avatar nalum avatar hiddeco avatar applejag avatar gustavclausen avatar errordeveloper avatar trevex avatar algobot76 avatar georgemac avatar mocdaniel avatar loktev-d avatar frenchben avatar jmgilman avatar siiimooon avatar uhthomas avatar webwurst avatar fcbry avatar sdboyer avatar yyvess avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.