diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ee59c8d..adc7a55 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -59,6 +59,7 @@ sync-images: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_MERGE_REQUEST_ID when: manual + allow_failure: true tags: - libvirt script: @@ -67,4 +68,3 @@ sync-images: - ./virter image pull $name $url - ./virter image push $name ${LINBIT_DOCKER_REGISTRY}/vm/${name}:latest - done < <(./virter image ls --available | tail -n +2) - - ./virter image pull diff --git a/cmd/image.go b/cmd/image.go index 21295d3..25a47f8 100644 --- a/cmd/image.go +++ b/cmd/image.go @@ -114,8 +114,10 @@ func GetLocalImage(ctx context.Context, imageName string, source string, v *virt return nil, fmt.Errorf("unknown pull policy %s", policy) } + isHttpUrl := strings.HasPrefix(source, "http://") || strings.HasPrefix(source, "https://") + parsedRef, err := name.ParseReference(source, name.WithDefaultRegistry("")) - if err != nil || parsedRef.Context().Registry.Name() == "" { + if isHttpUrl || err != nil || parsedRef.Context().Registry.Name() == "" { log.Tracef("Source %s failed to parse or has no registry location, trying non-registry pull", source) return pullNonContainerRegistry(ctx, v, localName, source, p) }