diff --git a/release/internal/pinnedversion/pinnedversion.go b/release/internal/pinnedversion/pinnedversion.go index f22b5a43a09..7a2bd18842d 100644 --- a/release/internal/pinnedversion/pinnedversion.go +++ b/release/internal/pinnedversion/pinnedversion.go @@ -49,7 +49,7 @@ var noImageComponents = []string{ } type PinnedVersions interface { - GenerateFile() (version.Data, error) + GenerateFile() (version.Versions, error) ManagerOptions() ([]calico.Option, error) } @@ -125,7 +125,7 @@ type CalicoPinnedVersions struct { } // GenerateFile generates the pinned version file. -func (p *CalicoPinnedVersions) GenerateFile() (version.Data, error) { +func (p *CalicoPinnedVersions) GenerateFile() (version.Versions, error) { pinnedVersionPath := pinnedVersionFilePath(p.Dir) productBranch, err := utils.GitBranch(p.RootDir) @@ -147,7 +147,7 @@ func (p *CalicoPinnedVersions) GenerateFile() (version.Data, error) { if err != nil { return nil, err } - versionData := version.NewVersionData(version.New(productVer), operatorVer) + versionData := version.NewHashreleaseVersions(version.New(productVer), operatorVer) tmpl, err := template.New("pinnedversion").Parse(calicoTemplate) if err != nil { return nil, err @@ -303,11 +303,11 @@ func RetrieveImageComponents(outputDir string) (map[string]registry.Component, e return components, nil } -func RetrieveVersions(outputDir string) (version.Data, error) { +func RetrieveVersions(outputDir string) (version.Versions, error) { pinnedVersion, err := retrievePinnedVersion(outputDir) if err != nil { return nil, err } - return version.NewVersionData(version.New(pinnedVersion.Title), pinnedVersion.TigeraOperator.Version), nil + return version.NewHashreleaseVersions(version.New(pinnedVersion.Title), pinnedVersion.TigeraOperator.Version), nil } diff --git a/release/internal/version/version.go b/release/internal/version/version.go index 10515804e95..c641cb86b9a 100644 --- a/release/internal/version/version.go +++ b/release/internal/version/version.go @@ -27,8 +27,8 @@ import ( "github.com/projectcalico/calico/release/internal/utils" ) -// Data is the interface that provides version data for a release. -type Data interface { +// Versions is the interface that provides version data for a hashrelease or release. +type Versions interface { Hash() string ProductVersion() string OperatorVersion() string @@ -36,36 +36,36 @@ type Data interface { ReleaseBranch(releaseBranchPrefix string) string } -func NewVersionData(calico Version, operator string) Data { - return &CalicoVersionData{ +func NewHashreleaseVersions(calico Version, operator string) Versions { + return &HashreleaseVersions{ calico: calico, operator: operator, } } -// CalicoVersionData provides version data for a Calico release. -type CalicoVersionData struct { +// HashreleaseVersions implements the Versions interface for a hashrelease. +type HashreleaseVersions struct { calico Version operator string } -func (v *CalicoVersionData) ProductVersion() string { +func (v *HashreleaseVersions) ProductVersion() string { return v.calico.FormattedString() } -func (v *CalicoVersionData) OperatorVersion() string { - return v.operator +func (v *HashreleaseVersions) OperatorVersion() string { + return fmt.Sprintf("%s-%s", v.operator, v.ProductVersion()) } -func (v *CalicoVersionData) HelmChartVersion() string { +func (v *HashreleaseVersions) HelmChartVersion() string { return v.calico.FormattedString() } -func (v *CalicoVersionData) Hash() string { +func (v *HashreleaseVersions) Hash() string { return fmt.Sprintf("%s-%s", v.calico.FormattedString(), v.operator) } -func (v *CalicoVersionData) ReleaseBranch(releaseBranchPrefix string) string { +func (v *HashreleaseVersions) ReleaseBranch(releaseBranchPrefix string) string { return fmt.Sprintf("%s-%s", releaseBranchPrefix, v.calico.Stream()) }