diff --git a/README.md b/README.md index af2dd94..0a38e5b 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,50 @@ # Nixlets This repository contains utilities for creating Nixlets and a collection of Nixlets. \ -Nixlets are kinda like Helm Charts but they are defined using Kubenix and the Nix language. \ +Nixlets are kinda like Helm Charts, but they are defined using Kubenix and the Nix language. \ \ -One can import the Flake and use the renderNixlet function to turn values (like in Helm) into Kubernetes manifests in YAML. +One can load Nixlets either via Nix Flakes or by fetching a tarball -## Examples + +## Usage + +### Creating Nixlets +Nixlets need a `default.nix` and a `values.nix` (a `nixlet.nix` containing the metadata is also recommended). \ Check out the existing [nixlets](./nixlets/) to understand how they work. \ -There is also a bare bones [template](./template/). +There is also a bare-bones [template](./template/). + +### Using/rendering Nixlets +To render nixlets you only need to import the nixlets-lib: +```nix +{ + inputs.nixlet-lib.url = "gitlab:TECHNOFAB/nixlets?dir=lib"; +} +``` + +#### Nixlets stored in the Gitlab Package Registry +```nix +(nixlet-lib.fetchNixletFromGitlab { + project = "TECHNOFAB/nixlets"; + name = ""; + version = ""; + sha256 = ""; +}).render { + inherit system; + # values = {}; + # project = ""; + # overrides = ({...}: {}); +} +``` + +#### Nixlets fetchable from arbitrary URLs +```nix +(nixlet-lib.fetchNixlet "" "").render { + # ... +} +``` + +#### Metadata +Metadata of the Nixlets can also easily be accessed if needed: +```nix +().description # version, name, etc. +```