The CUE Central Registry provides some carefully selected and curated CUE modules that you can use to create validated configurations across a range of popular projects and services, or to check that your existing configurations are valid.

Here are some common questions that folks have asked about curated modules. Please do join the CUE community and ask us anything you think we’ve missed!

What curated modules are available?

The curated modules currently published cover:

In the future, the search function of the Central Registry will be the easiest way to discover suitable modules to use.

Kubernetes

Kubernetes, also known as K8s, is an open source system for automating deployment, scaling, and management of containerized applications.” (kubernetes.io)

Each package in this module is named after its respective Go source code package. For example, to use the schemas defined in the Go package k8s.io/api/core/v1 use the following:

import "test.cue.works/x1/k8s.io/api/core/v1"

Learn more with:

GitHub Actions

GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD: build, test, and deploy your code right from GitHub.” (github.com)

import "test.cue.works/x1/githubactions"

Learn more with:

GitLab CI/CD

GitLab’s complete CI/CD solution that accelerates delivery with automation.” (gitlab.com)

import "test.cue.works/x1/gitlab/gitlabci"

Learn more with:

Buildkite Pipelines

An advanced, scalable, and composable workflow orchestration engine that enables blazing fast delivery at any scale.” (buildkite.com)

import "test.cue.works/x1/buildkite"

Learn more with:

Azure Pipelines

Continuously build, test, and deploy to any platform and cloud.” (azure.microsoft.com)

import "test.cue.works/x1/azurepipelines"

Learn more with:

Argo Workflows

An open source container-native workflow engine for orchestrating parallel jobs on Kubernetes.” (argo-workflows.readthedocs.io)

We’re aware that this module’s import path is slightly unsuitable. It will be updated soon, but is safe to use as-is:

import argoworkflows "test.cue.works/x1/argocd"

Learn more with:

GoReleaser

GoReleaser does everything you need to create a professional release process for Go, Rust, and Zig projects.” (goreleaser.com)

import "test.cue.works/x1/goreleaser"

Learn more with:

Docker Compose

A specification for developer-centric application definition used in Cloud Native Applications.” (compose-spec.io)

import "test.cue.works/x1/dockercompose"

Learn more with:

npm’s package.json

npm is the standard package manager for Node.js.” (nodejs.org)

import "test.cue.works/x1/npmpackage"

Learn more with:

Why are curated modules published in a temporary namespace?

Well spotted! The import path you currently need to use for a curated module includes a test.cue.works/x1 component. This definitely looks a bit “temporary” - which it is, but only while the proper namespace is being decided.

At some point in the future the curated modules will be published in their proper namespace. But you can rest easy, because one important property of the Central Registry is that, once a schema is published, it will always be available at that location. Your CUE can rely on the “temporary” paths mentioned on this page for as long as you like. When the proper namespace is decided, you can then easily use the cue refactor imports command to update your CUE.

What do I need to use a curated module?

You’ll need to authenticate to the CUE Central Registry. We also suggest that you upgrade to the latest version of CUE so that you can switch to the new evaluator. All curated modules are tested using evalv3, so its use is strongly recommended. Many questions about evalv3 are answered in Upgrading from evalv2 to evalv3 – and if you have an unanswered question, please join the CUE community and ask for help!