Documentation
¶
Overview ¶
Package module defines the Module type, mirroring the #Module definition in the OPM core schema. A Module represents the parsed module definition before it is built into a release.
Debug overlays. The CUE schema includes a `debugValues` field on every `#Module` for author-supplied example values used by build/validation tooling. `debugValues` is a Module field — NOT a separate kernel artifact — and it is read off Module.Package via schema.DebugValues. Whether a frontend layers debugValues into the values stack is a policy decision that lives in the helper layer; the kernel itself never observes the distinction.
Index ¶
- type CueContextOwner
- type Module
- type ModuleMetadata
- type Release
- func (r *Release) Annotations() map[string]string
- func (r *Release) ConfigSchema() cue.Value
- func (r *Release) Labels() map[string]string
- func (r *Release) MatchComponents() cue.Value
- func (r *Release) ModuleFQN() string
- func (r *Release) ModuleVersion() string
- func (r *Release) Namespace() string
- func (r *Release) ReleaseName() string
- func (r *Release) ReleaseUUID() string
- type ReleaseMetadata
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CueContextOwner ¶
CueContextOwner is the minimal context-owner interface accepted by the constructor helpers. *kernel.Kernel satisfies it; tests may pass any value exposing a *cue.Context. The interface lives in opm/module to keep the constructor's import surface free of opm/kernel.
type Module ¶
type Module struct {
// Metadata is the decoded module-level metadata cache. Authoritative data
// lives in Package; Metadata exists for hot-path access (logging, name
// lookups). May be nil when the metadata could not be decoded.
Metadata *ModuleMetadata `json:"metadata"`
// Package is the loaded CUE value for the module artifact. Source of
// truth for every field reachable via opm/schema's path vars.
Package cue.Value `json:"-"`
}
Module represents an OPM #Module artifact in the unified artifact shape.
Package is the source of truth: it is the loaded CUE value for the module and every kernel-internal read (the #config schema, components subtree) goes through Package.LookupPath with paths from opm/schema.
Metadata is an ergonomic decoded projection of the module-level metadata stamped at construction. It is a cache, not a parallel source of truth — when Metadata and the corresponding subtree of Package disagree, Package wins.
func NewModuleFromValue ¶
func NewModuleFromValue(_ CueContextOwner, v cue.Value) (*Module, error)
NewModuleFromValue builds a *Module from a raw CUE artifact value. The supplied k is currently unused but preserved in the signature so future kernel-scoped state (logger, tracer, clock) can be threaded without an API break.
The function decodes ModuleMetadata via schema.DecodeModuleMetadata and stores the input cue.Value unmodified in Package. Errors return a nil *Module — partial values are never returned.
func (*Module) ConfigSchema ¶
ConfigSchema returns the module's #config schema reachable via schema.Config on m.Package.
All failure modes return the zero cue.Value (not an error): a nil receiver or a missing #config definition on the module package. Callers detect failure via the returned value's Exists() method.
type ModuleMetadata ¶
type ModuleMetadata = schema.ModuleMetadata
ModuleMetadata is the decoded module-level identity record. It is a re-export of schema.ModuleMetadata so callers can keep working with `module.ModuleMetadata` without taking a transitive dependency on opm/schema at every reference site.
type Release ¶
type Release struct {
// Metadata is the decoded release-level metadata cache. May be nil when
// the metadata could not be decoded.
Metadata *ReleaseMetadata
// Package is the loaded, concrete CUE value for the release artifact.
// Source of truth for every field reachable via opm/schema, including
// the embedded #module reference at schema.Module.
Package cue.Value
}
Release is an OPM #ModuleRelease artifact in the unified artifact shape.
Package is the source of truth: it is the concrete, values-filled CUE value for the release and every kernel-internal read (components subtree, source module, transformer match data) goes through Package.LookupPath with paths from opm/schema.
Metadata is an ergonomic decoded projection of the release-level metadata stamped at construction. It is a cache, not a parallel source of truth — when Metadata and the corresponding subtree of Package disagree, Package wins.
func NewReleaseFromValue ¶
func NewReleaseFromValue(_ CueContextOwner, v cue.Value) (*Release, error)
NewReleaseFromValue builds a *Release from a raw CUE artifact value. The supplied k is currently unused but preserved in the signature so future kernel-scoped state can be threaded without an API break.
The function decodes ReleaseMetadata via schema.DecodeReleaseMetadata and stores the input cue.Value unmodified in Package. Errors return a nil *Release.
func (*Release) Annotations ¶
Annotations returns the release-level annotations.
func (*Release) ConfigSchema ¶
ConfigSchema returns the embedded source module's #config schema reachable via schema.Module followed by schema.Config on r.Package.
All failure modes return the zero cue.Value (not an error): a nil receiver, a missing #module reference, or a missing #config definition on the embedded module.
func (*Release) Labels ¶
Labels returns the release-level labels (already merged with module labels at CUE evaluation time).
func (*Release) MatchComponents ¶
MatchComponents returns the schema-preserving components value used for matching. The returned value keeps definition fields such as #resources, #traits, and #blueprints.
func (*Release) ModuleFQN ¶
ModuleFQN returns the source module's fully qualified name. The value is read from Package.LookupPath(schema.ModuleMetadataPath).fqn so that Package remains the source of truth for module identity.
func (*Release) ModuleVersion ¶
ModuleVersion returns the source module's version, read from Package via the ModuleMetadataPath path.
func (*Release) ReleaseName ¶
ReleaseName returns the release's metadata.name.
func (*Release) ReleaseUUID ¶
ReleaseUUID returns the release's metadata.uuid.
type ReleaseMetadata ¶
type ReleaseMetadata = schema.ReleaseMetadata
ReleaseMetadata is a re-export of schema.ReleaseMetadata so callers can keep working with `module.ReleaseMetadata`.