in controllers/codebaseimagestream/chain/put_cd_stage_deploy.go [49:76]
func (h PutCDStageDeploy) handleCodebaseImageStreamEnvLabels(ctx context.Context, imageStream *codebaseApi.CodebaseImageStream) error {
l := ctrl.LoggerFrom(ctx)
if imageStream.ObjectMeta.Labels == nil || len(imageStream.ObjectMeta.Labels) == 0 {
l.Info("CodebaseImageStream does not contain env labels. Skip CDStageDeploy creating.")
return nil
}
if errs := validateCbis(imageStream); len(errs) != 0 {
return errors.New(strings.Join(errs, "; "))
}
labelValueRegexp := regexp.MustCompile("^[-A-Za-z0-9_.]+/[-A-Za-z0-9_.]+$")
for envLabel := range imageStream.ObjectMeta.Labels {
if !labelValueRegexp.MatchString(envLabel) {
l.Info("Label value does not match the pattern cd-pipeline-name/stage-name. Skip CDStageDeploy creating.")
continue
}
if err := h.putCDStageDeploy(ctx, envLabel, imageStream.Namespace, imageStream.Spec); err != nil {
return err
}
}
return nil
}