Documentation
¶
Index ¶
- func GetManifestsDir(dir string) (*PackageManifest, []*Bundle, error)
- func NewBundleLoader(dir string) bundleLoader
- func NewPackageManifestLoader(dir string) packageManifestLoader
- type Annotations
- type AnnotationsFile
- type Bundle
- type DependenciesFile
- type Dependency
- type PackageChannel
- type PackageManifest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetManifestsDir ¶
func GetManifestsDir(dir string) (*PackageManifest, []*Bundle, error)
GetManifestsDir parses all bundles and a package manifest from a directory
func NewBundleLoader ¶
func NewBundleLoader(dir string) bundleLoader
func NewPackageManifestLoader ¶
func NewPackageManifestLoader(dir string) packageManifestLoader
Types ¶
type Annotations ¶
type Annotations struct {
// PackageName is the name of the overall package, ala `etcd`.
PackageName string `json:"operators.operatorframework.io.bundle.package.v1" yaml:"operators.operatorframework.io.bundle.package.v1"`
// Channels are a comma separated list of the declared channels for the bundle, ala `stable` or `alpha`.
Channels string `json:"operators.operatorframework.io.bundle.channels.v1" yaml:"operators.operatorframework.io.bundle.channels.v1"`
// DefaultChannelName is, if specified, the name of the default channel for the package. The
// default channel will be installed if no other channel is explicitly given. If the package
// has a single channel, then that channel is implicitly the default.
DefaultChannelName string `` /* 127-byte string literal not displayed */
}
Annotations is a list of annotations for a given bundle
type AnnotationsFile ¶
type AnnotationsFile struct {
// annotations is a list of annotations for a given bundle
Annotations Annotations `json:"annotations" yaml:"annotations"`
}
AnnotationsFile holds annotation information about a bundle
type Bundle ¶
type Bundle struct {
Name string
Objects []*unstructured.Unstructured
Package string
Channels []string
DefaultChannel string
BundleImage string
CSV *operatorsv1alpha1.ClusterServiceVersion
V1beta1CRDs []*apiextensionsv1beta1.CustomResourceDefinition
V1CRDs []*apiextensionsv1.CustomResourceDefinition
Dependencies []*Dependency
// CompressedSize stores the gzip size of the bundle
CompressedSize int64
// Size stores the size of the bundle
Size int64
}
func GetBundleFromDir ¶
GetBundleFromDir takes a raw directory containg an Operator Bundle and serializes its component files (CSVs, CRDs, other native kube manifests) and returns it as a Bundle
func (*Bundle) ObjectsToValidate ¶
func (b *Bundle) ObjectsToValidate() []interface{}
type DependenciesFile ¶
type DependenciesFile struct {
// Dependencies is a list of dependencies for a given bundle
Dependencies []Dependency `json:"dependencies" yaml:"dependencies"`
}
DependenciesFile holds dependency information about a bundle
type Dependency ¶
type Dependency struct {
// The type of dependency. It can be `olm.package` for operator-version based
// dependency or `olm.gvk` for gvk based dependency. This field is required.
Type string `json:"type" yaml:"type"`
// The value of the dependency (either GVKDependency or PackageDependency)
Value string `json:"value" yaml:"value"`
}
Dependencies is a list of dependencies for a given bundle
type PackageChannel ¶
type PackageChannel struct {
// Name is the name of the channel, e.g. `alpha` or `stable`
Name string `json:"name" yaml:"name"`
// CurrentCSVName defines a reference to the CSV holding the version of this package currently
// for the channel.
CurrentCSVName string `json:"currentCSV" yaml:"currentCSV"`
}
PackageChannel defines a single channel under a package, pointing to a version of that package.
type PackageManifest ¶
type PackageManifest struct {
// PackageName is the name of the overall package, ala `etcd`.
PackageName string `json:"packageName" yaml:"packageName"`
// Channels are the declared channels for the package, ala `stable` or `alpha`.
Channels []PackageChannel `json:"channels" yaml:"channels"`
// DefaultChannelName is, if specified, the name of the default channel for the package. The
// default channel will be installed if no other channel is explicitly given. If the package
// has a single channel, then that channel is implicitly the default.
DefaultChannelName string `json:"defaultChannel" yaml:"defaultChannel"`
}
PackageManifest holds information about a package, which is a reference to one (or more) channels under a single package.
func (*PackageManifest) IsEmpty ¶
func (p *PackageManifest) IsEmpty() bool
IsEmpty returns true if the PackageManifest instance is equal to the zero value