Documentation ¶
Index ¶
- func ConvertToModel(cfg DeclarativeConfig) (model.Model, error)
- func WalkFS(root fs.FS, walkFn WalkFunc) error
- func WriteJSON(cfg DeclarativeConfig, w io.Writer) error
- func WriteYAML(cfg DeclarativeConfig, w io.Writer) error
- type Bundle
- type Channel
- type ChannelEntry
- type DeclarativeConfig
- type DiffGenerator
- type DiffIncludeChannel
- type DiffIncludePackage
- type DiffIncluder
- type Icon
- type Meta
- type Package
- type RelatedImage
- type WalkFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertToModel ¶
func ConvertToModel(cfg DeclarativeConfig) (model.Model, error)
func WalkFS ¶
WalkFS walks root using a gitignore-style filename matcher to skip files that match patterns found in .indexignore files found throughout the filesystem. It calls walkFn for each declarative config file it finds. If WalkFS encounters an error loading or parsing any file, the error will be immediately returned.
Types ¶
type Bundle ¶
type Bundle struct { Schema string `json:"schema"` Name string `json:"name"` Package string `json:"package"` Image string `json:"image"` Properties []property.Property `json:"properties,omitempty" hash:"set"` RelatedImages []RelatedImage `json:"relatedImages,omitempty" hash:"set"` // These fields are present so that we can continue serving // the GRPC API the way packageserver expects us to in a // backwards-compatible way. These are populated from // any `olm.bundle.object` properties. // // These fields will never be persisted in the bundle blob as // first class fields. CsvJSON string `json:"-"` Objects []string `json:"-"` }
Bundle specifies all metadata and data of a bundle object. Top-level fields are the source of truth, i.e. not CSV values.
Notes:
- Any field slice type field or type containing a slice somewhere where two types/fields are equal if their contents are equal regardless of order must have a `hash:"set"` field tag for bundle comparison.
- Any fields that have a `json:"-"` tag must be included in the equality evaluation in bundlesEqual().
type Channel ¶
type Channel struct { Schema string `json:"schema"` Name string `json:"name"` Package string `json:"package"` Entries []ChannelEntry `json:"entries"` }
type ChannelEntry ¶
type DeclarativeConfig ¶
type DeclarativeConfig struct { Packages []Package Channels []Channel Bundles []Bundle Others []Meta }
func ConvertFromModel ¶
func ConvertFromModel(mpkgs model.Model) DeclarativeConfig
func LoadFS ¶
func LoadFS(root fs.FS) (*DeclarativeConfig, error)
LoadFS loads a declarative config from the provided root FS. LoadFS walks the filesystem from root and uses a gitignore-style filename matcher to skip files that match patterns found in .indexignore files found throughout the filesystem. If LoadFS encounters an error loading or parsing any file, the error will be immediately returned.
type DiffGenerator ¶ added in v1.18.1
type DiffGenerator struct { Logger *logrus.Entry // SkipDependencies directs Run() to not include dependencies // of bundles included in the diff if true. SkipDependencies bool // Includer for adding catalog objects to Run() output. Includer DiffIncluder // contains filtered or unexported fields }
DiffGenerator configures how diffs are created via Run().
func (*DiffGenerator) Run ¶ added in v1.18.1
Run returns a Model containing everything in newModel not in oldModel, and all bundles that exist in oldModel but are different in newModel. If oldModel is empty, only channel heads in newModel's packages are added to the output Model. All dependencies not in oldModel are also added.
type DiffIncludeChannel ¶ added in v1.18.1
type DiffIncludeChannel struct { // Name of channel. Name string // Versions of bundles. Versions []semver.Version // Bundles are bundle names to include. // Set this field only if the named bundle has no semantic version metadata. Bundles []string }
DiffIncludeChannel specifies a channel, and optionally bundles and bundle versions to include.
type DiffIncludePackage ¶ added in v1.18.1
type DiffIncludePackage struct { // Name of package. Name string // Channels in package. Channels []DiffIncludeChannel // AllChannels contains bundle versions in package. // Upgrade graphs from all channels in the named package containing a version // from this field are included. AllChannels DiffIncludeChannel }
DiffIncludePackage specifies a package, and optionally channels or a set of bundles from all channels (wrapped by a DiffIncludeChannel), to include.
type DiffIncluder ¶ added in v1.18.1
type DiffIncluder struct { // Packages to add. Packages []DiffIncludePackage Logger *logrus.Entry }
DiffIncluder knows how to add packages, channels, and bundles from a source to a destination model.Model.
type Meta ¶
type Meta struct { Schema string Package string Blob json.RawMessage }