mirror of
https://github.com/openshift/installer.git
synced 2026-02-05 06:46:36 +01:00
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
package releaseimage
|
|
|
|
import (
|
|
"os"
|
|
|
|
dockerref "github.com/containers/image/v5/docker/reference"
|
|
"github.com/pkg/errors"
|
|
"github.com/sirupsen/logrus"
|
|
|
|
"github.com/openshift/installer/pkg/asset"
|
|
)
|
|
|
|
// Image asset generates the release-image pullspec for the cluster
|
|
type Image struct {
|
|
PullSpec string
|
|
Repository string
|
|
}
|
|
|
|
var _ asset.Asset = (*Image)(nil)
|
|
|
|
// Dependencies is the list of assets required to generate ReleaseImage.
|
|
func (a *Image) Dependencies() []asset.Asset {
|
|
return []asset.Asset{}
|
|
}
|
|
|
|
// Generate creates the asset using the dependencies.
|
|
func (a *Image) Generate(dependencies asset.Parents) error {
|
|
var pullSpec string
|
|
if ri, ok := os.LookupEnv("OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE"); ok && ri != "" {
|
|
logrus.Warnf("Found override for release image (%s). Please be warned, this is not advised", ri)
|
|
pullSpec = ri
|
|
} else {
|
|
var err error
|
|
pullSpec, err = Default()
|
|
if err != nil {
|
|
return errors.Wrap(err, "failed to load default release image")
|
|
}
|
|
logrus.Debugf("Using internal constant for release image %s", pullSpec)
|
|
}
|
|
a.PullSpec = pullSpec
|
|
|
|
ref, err := dockerref.ParseNamed(pullSpec)
|
|
if err != nil {
|
|
return errors.Wrap(err, "failed to parse release-image pull spec")
|
|
}
|
|
a.Repository = ref.Name()
|
|
|
|
return nil
|
|
}
|
|
|
|
// Name is the human friendly name for the asset.
|
|
func (a *Image) Name() string {
|
|
return "Release Image Pull Spec"
|
|
}
|