Documentation
¶
Index ¶
Constants ¶
const ( OLMCatalogDir = scaffold.DeployDir + string(filepath.Separator) + "olm-catalog" CSVYamlFileExt = ".clusterserviceversion.yaml" CSVConfigYamlFile = "csv-config.yaml" )
const PackageManifestFileExt = ".package.yaml"
Variables ¶
var ErrNoCSVVersion = errors.New("no CSV version supplied")
Functions ¶
func NewUpdaterStore ¶
func NewUpdaterStore() *updaterStore
Types ¶
type ALMExamplesUpdate ¶
type ALMExamplesUpdate struct {
// contains filtered or unexported fields
}
func (*ALMExamplesUpdate) Apply ¶
func (u *ALMExamplesUpdate) Apply(csv *olmapiv1alpha1.ClusterServiceVersion) error
type CSV ¶
type CSV struct {
input.Input
// ConfigFilePath is the location of a configuration file path for this
// projects' CSV file.
ConfigFilePath string
// CSVVersion is the CSV current version.
CSVVersion string
// FromVersion is the CSV version from which to build a new CSV. A CSV
// manifest with this version should exist at:
// deploy/olm-catalog/{from_version}/operator-name.v{from_version}.{CSVYamlFileExt}
FromVersion string
// OperatorName is the operator's name, ex. app-operator
OperatorName string
// contains filtered or unexported fields
}
func (*CSV) CustomRender ¶
CustomRender allows a CSV to be written by marshalling olmapiv1alpha1.ClusterServiceVersion instead of writing to a template.
type CSVConfig ¶
type CSVConfig struct {
// The operator manifest file path. Defaults to deploy/operator.yaml.
OperatorPath string `json:"operator-path,omitempty"`
// Role and ClusterRole manifest file paths. Defaults to [deploy/role.yaml].
RolePaths []string `json:"role-paths,omitempty"`
// A list of CRD and CR manifest file paths. Defaults to [deploy/crds].
CRDCRPaths []string `json:"crd-cr-paths,omitempty"`
// OperatorName is the name used to create the CSV and manifest file names.
// Defaults to the project's name.
OperatorName string `json:"operator-name,omitempty"`
}
CSVConfig is a configuration file for CSV composition. Its fields contain file path information. TODO(estroz): define field for path to write CSV bundle. TODO(estroz): make CSVConfig a viper.Config
func GetCSVConfig ¶
TODO: discuss case of no config file at default path: write new file or not.
type CSVUpdater ¶
type CSVUpdater interface {
// Apply applies a data update to a CSV argument.
Apply(*olmapiv1alpha1.ClusterServiceVersion) error
}
CSVUpdater is an interface for any data that can be in a CSV, which will be set to the corresponding field on Apply().
type CustomResourceDefinitionsUpdate ¶
type CustomResourceDefinitionsUpdate struct {
*olmapiv1alpha1.CustomResourceDefinitions
// contains filtered or unexported fields
}
func (*CustomResourceDefinitionsUpdate) Apply ¶
func (u *CustomResourceDefinitionsUpdate) Apply(csv *olmapiv1alpha1.ClusterServiceVersion) error
Apply updates csv's "owned" CRDDescriptions. "required" CRDDescriptions are left as-is, since they are user-defined values. Apply will only make a new spec.customresourcedefinitions.owned element if the CRD key is not in spec.customresourcedefinitions.owned already.
type InstallStrategyUpdate ¶
type InstallStrategyUpdate struct {
*olminstall.StrategyDetailsDeployment
}
func (*InstallStrategyUpdate) Apply ¶
func (u *InstallStrategyUpdate) Apply(csv *olmapiv1alpha1.ClusterServiceVersion) (err error)
type PackageManifest ¶ added in v0.9.0
type PackageManifest struct {
input.Input
// CSVVersion is the version of the CSV being updated.
CSVVersion string
// Channel is CSVVersion's package manifest channel. If a new package
// manifest is generated, this channel will be the manifest default.
Channel string
// If ChannelIsDefault is true, Channel will be the package manifests'
// default channel.
ChannelIsDefault bool
// OperatorName is the operator's name, ex. app-operator
OperatorName string
}
func (*PackageManifest) CustomRender ¶ added in v0.9.0
func (s *PackageManifest) CustomRender() ([]byte, error)
CustomRender either reads an existing package manifest or creates a new manifest and modifies it based on values set in s.
func (*PackageManifest) GetInput ¶ added in v0.9.0
func (s *PackageManifest) GetInput() (input.Input, error)
GetInput gets s' Input.
func (*PackageManifest) SetFS ¶ added in v0.9.0
func (s *PackageManifest) SetFS(_ afero.Fs)
SetFS is a no-op to implement CustomRenderer.