in hack/operatorhub/internal/operatorhub/operatorhub.go [71:131]
func Generate(config GenerateConfig) error {
var imageDigest string
if config.ConfigFile.HasDigestPinning() {
if len(config.RedhatAPIKey) == 0 {
return errors.New("Red Hat API key is required to get image digest")
}
if len(config.RedhatProjectID) == 0 {
return errors.New("Red Hat project ID is required to get image digest")
}
var err error
imageDigest, err = getImageDigest(config.RedhatAPIKey, config.RedhatProjectID, config.ConfigFile.NewVersion)
if err != nil {
log.Println("ⅹ")
return err
}
}
log.Printf("Gathering and extracting data from yaml manifest path %v ", config.ManifestPaths)
manifestStream, close, err := getInstallManifestStream(config.ConfigFile, config.ManifestPaths)
if err != nil {
log.Println("ⅹ")
return err
}
defer close()
extracts, err := extractYAMLParts(manifestStream)
if err != nil {
log.Println("ⅹ")
return err
}
if len(extracts.crds) == 0 {
log.Println("ⅹ")
return errors.New("no crds found")
}
if len(extracts.operatorRBAC) == 0 {
log.Println("ⅹ")
return errors.New("no operator RBAC found")
}
if len(extracts.operatorWebhooks) == 0 {
log.Println("ⅹ")
return errors.New("no operator webhooks found")
}
log.Println("✓")
log.Printf("Rendering final operatorhub data ")
for i := range config.ConfigFile.Packages {
params, err := buildRenderParams(config.ConfigFile, i, extracts, imageDigest)
if err != nil {
log.Println("ⅹ")
return err
}
outDir := config.ConfigFile.Packages[i].OutputPath
if err := render(params, config.TemplatesPath, outDir); err != nil {
log.Println("ⅹ")
return err
}
}
log.Println("✓")
return nil
}