in controllers/codebasebranch/chain/put_codebase_image_stream/put_codebase_image_stream.go [33:84]
func (h PutCodebaseImageStream) ServeRequest(ctx context.Context, cb *codebaseApi.CodebaseBranch) error {
log := ctrl.LoggerFrom(ctx).WithName("put-codebase-image-stream")
log.Info("Start creating CodebaseImageStream")
if err := h.setIntermediateSuccessFields(cb, codebaseApi.PutCodebaseImageStream); err != nil {
return err
}
c := &codebaseApi.Codebase{}
if err := h.Client.Get(ctx, types.NamespacedName{
Namespace: cb.Namespace,
Name: cb.Spec.CodebaseName,
}, c); err != nil {
setFailedFields(cb, codebaseApi.PutCodebaseImageStream, err.Error())
return fmt.Errorf("failed to fetch Codebase resource: %w", err)
}
registryUrl, err := h.getDockerRegistryUrl(ctx, cb.Namespace)
if err != nil {
err = fmt.Errorf("failed to get container registry url: %w", err)
setFailedFields(cb, codebaseApi.PutCodebaseImageStream, err.Error())
return err
}
cisName := fmt.Sprintf("%v-%v", c.Name, ProcessNameToK8sConvention(cb.Spec.BranchName))
imageName := fmt.Sprintf("%v/%v", registryUrl, cb.Spec.CodebaseName)
if err = h.createCodebaseImageStreamIfNotExists(
ctrl.LoggerInto(ctx, log),
cisName,
imageName,
cb.Spec.CodebaseName,
cb.Namespace,
cb,
); err != nil {
setFailedFields(cb, codebaseApi.PutCodebaseImageStream, err.Error())
return err
}
log.Info("End creating CodebaseImageStream")
err = handler.NextServeOrNil(ctx, h.Next, cb)
if err != nil {
return fmt.Errorf("failed to process next handler in chain: %w", err)
}
return nil
}