Deployment - stefanprodan/timoni

Timoni is a package manager for Kubernetes, powered by CUE and inspired by Helm. In this guide, we will walk you through the process of deploying and installing Timoni on your Kubernetes cluster. We will cover the necessary commands, concepts, and structures involved in working with Timoni.

Prerequisites

Before we begin, ensure you have the following prerequisites in place:

  1. A running Kubernetes cluster.
  2. kubectl installed and configured to access your cluster.
  3. Familiarity with the basics of Kubernetes and its components.

Commands

Timoni provides several commands to manage modules, instances, and bundles. Here’s a brief overview of the most commonly used commands:

Building and Installing Modules

To build and install a Timoni module, use the following command:

timoni build <name> <path/to/module> -n <namespace>

Replace <name> with the desired name for your module, <path/to/module> with the path to your module directory, and <namespace> with the namespace where you want to install the module.

Applying Values and Configurations

To apply values and configurations to a module, use the following command:

timoni apply <name> <path/to/module> -f <path/to/values.cue> --dry-run --diff

Replace <name> with the name of your module, <path/to/module> with the path to your module directory, and <path/to/values.cue> with the path to your values file. The --dry-run and --diff flags allow you to preview the changes before applying them.

Vendoring Kubernetes APIs and CRDs

To vendor Kubernetes APIs and CRDs, use the following commands:

timoni mod vendor k8s --version latest
timoni mod vendor crds -f <path/to/crds.yaml>

The first command vendors the latest version of the Kubernetes APIs, while the second command vendors the CRDs specified in the provided YAML file.

Timoni Instances and Bundles

A Timoni instance represents a module instantiation on a Kubernetes cluster. A module can be installed multiple times on a cluster by giving its instances unique names per namespace.

A Timoni bundle is a CUE file for defining a group of instances together with their values and module references. In the bundle files, you can use arithmetic operations, string interpolation, and everything else that CUE std lib supports.

Conclusion

In this guide, we have covered the basics of deploying and installing Timoni on your Kubernetes cluster. We have discussed the necessary commands, concepts, and structures involved in working with Timoni. For more detailed information, please refer to the Timoni documentation.

Happy deploying!