knative/func

func deploy returing MANIFEST_BLOB_UNKNOWN

anselmobattisti opened this issue · 5 comments

Setup a fresh environment using ubuntu 20.04 with the latest Docker version

Client: Docker Engine - Community
 Version:           25.0.3
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        4debf41
 Built:             Tue Feb  6 21:14:17 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.3
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       f417435
  Built:            Tue Feb  6 21:14:17 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Install the lattest knative serving and func cli

func version
v0.39.0-1-g4b6247d0

Using docker registry registry:2 and tested in registry:2.8 with the same error

The k8s cluster is executed using kind

kind v0.22.0 go1.20.13 linux/amd64

Create a new function

func create -l go hello
func deploy

I`m getting the error:

Error: PUT http://localhost:5001/v2/hello/manifests/latest: multiple errors returned: MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:a66dac22eed7af0fa06ec3cbc25bc7c68707d4836222b8f528095e4bd2c0b2a4; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:9857075d1263e0a6df7a69461e869459fb0da683e5f34dced9ddb042dc1467b9; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:1f9125dd581556e7753523c8e3653c87eb7b3d04468697f6077745db66c2b1c1; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:106c7aca6e211bd9da83fe9e8d7e642d74a20243d37ee06ab337e561c8590e5f; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:a72e1b20fd0800feb55b3cd4c4460b4b5fd433746f90548438f18f5dc3e0d119; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:1eb1e5d341b99f2bfa8f9f9324b03f3518ee259df6c162c0378f6a7f7bb6373b; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:6ab16bbb5573e8d715efe9c69d1e0c483439272db1c17b992a385e135f6ef0a7; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:88163189c0ff784a9553560ce5638318596441fa84c9dd6be4f6096728aef80a; MANIFEST_BLOB_UNKNOWN: blob unknown to registry; sha256:83d85471d9f8a3834b4e27cf701e3f0aef220cc816d9c173c7d32cd73909a590

Any idea how to solve it?

We have seen this already. It will be fixed by updating go-containerregistry library.
You can test it by updating the lib go get github.com/google/go-containerregistry@v0.19.0 and building the func with it.

Thanks @matejvasek for your help.

Previously I was using the "Executable Binary" version.

Following your advice I downloaded the code from

git clone https://github.com/knative/func.git func

inside the folder func I executed

go get  github.com/google/go-containerregistry@v0.19.0

and got the result

go: downloading github.com/google/go-containerregistry v0.19.0
go: upgraded github.com/google/go-containerregistry v0.18.0 => v0.19.0

and after that execute the make

make

and It WORKED!

Sir, thanks a lot for your help!

+1, same error occurs when deploying to local registry from minukube.

+1, same error occurs when deploying to local registry from minukube.

With the suggestion of @matejvasek it worked!

The problem is in the go-containerregistry v0.18.0

@drriguz Follow the steps i posted before and it will probably works.

The fix should be already in the main branch.