blob: 55a65ffce307d23bfdbf8bc71031cf73fb8062a4 [file] [log] [blame] [view]
[TOC](Readme.md) [Prev](templates.md) [Next](packages.md)
# Modules, Packages, and Instances
## Packages
A CUE file is a standalone file by default.
A `package` clause allows a single configuration to be split across multiple
files.
## Instances
All files within a directory hierarchy with the same package identifier belong
to the same package.
Each directory within this hierarchy provides a different "view" of this package
called an _instance_.
An instance of a package for a directory is defined by all CUE files in that
directory and all of its ancestor directories, belonging to the same package.
This allows common configuration to be shared and policies to be enforced
across a collection of related configurations.
See the [Kubernetes Tutorial](../kubernetes/Readme.md) for a concrete example
of instances.
## Modules
A _module_ is the directory hierarchy containing the CUE files of a package.
The root of this directory hierarchy is the _module root_.
It may be explicitly marked with a `cue.mod` file.
<!-- TODO:
The module root may contain a `pkg` directory containing packages that are
importable with import.
The convention is to use the URL from which the package is retrieved.
-->