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 ¶
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 ¶
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 ¶
func (s *PackageManifest) GetInput() (input.Input, error)
GetInput gets s' Input.
func (*PackageManifest) SetFS ¶
func (s *PackageManifest) SetFS(_ afero.Fs)
SetFS is a no-op to implement CustomRenderer.