cuezel
cuezel copied to clipboard
Cuezel
Cuezel is a CUE-based build system, a la make
or bazel
.
- Build steps are cuelang definitions
- Cuezel plugins handle a particular type of step
- Build steps depend on other steps by referencing their output directly
Status: Prototype
You can play with it, but some critical features are missing.
In the current state it is largely only useful for standing up local development of kubernetes controllers, due to a lack of plugins (plugins are all in-tree at the moment vs. actually plugable):
Current available plugins:
-
runbin
: run a binary -
imgbuild
: build a docker image (no container runtime required) -
provision
: start a kind cluster -
cuebectl
: any objects identified as kube manifests are reconciled with cuebectl
Example
The example in this repo:
- builds an oidc proxy binary that does dynamic client registration (
dyncr
) (manifest) - builds an image with that binary in it (manifest)
- stands up a kind cluster (manifest)
- installs ory hydra as an oidc provider (manifest)
- installs
dyncr
and aflag
to protect with the proxy (manifest)
Quickstart Example
- add
127.0.0.1 dyncr.localhost
to/etc/hosts
- hydra requires non-https urls to end in
.localhost
- hydra requires non-https urls to end in
-
make provision
- have to configure coredns for redirects - can't use hostalias for nginx ingress
- visit
dyncr.localhost