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:
- Kubernetes
- GitHub Actions
- GitLab CI/CD
- Buildkite Pipelines
- Azure Pipelines
- Argo Workflows
- GoReleaser
- Docker Compose
- npm’s
package.json
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:
- Getting started with Kubernetes + CUE
- Migrating to the Central Registry’s curated Kubernetes Schemas by replacing existing
cue get go
schemas - The Central Registry’s module documentation
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:
- Checking existing GitHub Actions files using CUE
- Getting started with GitHub Actions + CUE
- The Central Registry’s module documentation
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:
- Checking existing GitLab CI/CD files using CUE
- Getting started with GitLab CI/CD + CUE
- The Central Registry’s module documentation
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:
- Checking existing Buildkite Pipelines files using CUE
- Getting started with Buildkite + CUE
- The Central Registry’s module documentation
Azure Pipelines
“Continuously build, test, and deploy to any platform and cloud.” (azure.microsoft.com)
import "test.cue.works/x1/azurepipelines"
Learn more with:
- Checking existing Azure Pipelines files using CUE
- Getting started with Azure Pipelines + CUE
- The Central Registry’s module documentation
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:
- Checking existing Argo Workflows files using CUE
- Getting started with Argo Workflows + CUE
- The Central Registry’s module documentation
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:
- Checking existing GoReleaser files using CUE
- Getting started with GoReleaser + CUE
- The Central Registry’s module documentation
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:
- Checking existing Docker Compose files using CUE
- Getting started with Docker Compose + CUE
- The Central Registry’s module documentation
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!