hyperledger-bevel / bevel

An automation framework for rapidly and consistently deploying production-ready DLT platforms
https://hyperledger-bevel.readthedocs.io/en/latest/
Apache License 2.0
346 stars 719 forks source link

No bevel-build image tagged for linux/arm64/v8 - gives error when following guide #2602

Closed michaelkhalsa closed 2 months ago

michaelkhalsa commented 4 months ago

Describe the bug When following the online guide for installing HLF on Minikube on a Mac (apple silicon). everything works up to the point of fetching the bevel-build, where I get an error:

1.1.0: Pulling from hyperledger/bevel-build docker: no matching manifest for linux/arm64/v8 in the manifest list entries.

I first tried :latest, then :stable, and finally various versions. Same response.

To Reproduce Steps to reproduce the behavior:

  1. Follow the guide https://blockchain-automation-framework.readthedocs.io/en/latest/tutorials/bevel-minikube-setup/#__tabbed_2_2)
  2. Setup all prerequisites, such as start minikube (using docker driver), HashiCorp vault, etc.
  3. When reached the stage to fetch the package to mount, through script:

docker run -it -v /mnt/bevel:/home/bevel/ --network="host" ghcr.io/hyperledger/bevel-build:latest bash

  1. gives error as per above. Tried using later versions as well (note: that version 1.0.0 is still tagged as latest).

Expected behavior Either mention in the guide if not supported on an apple silicon Mac, or a build tagged with support for it.

Environment (please complete the following information):

Additional context Thanks for all of the work this team is doing!

sownak commented 4 months ago

1.1.0 and stable both are available at https://github.com/hyperledger/bevel/pkgs/container/bevel-build Does your network pull docker images from any other ghcr successfully?

michaelkhalsa commented 4 months ago

Thanks!

I was able to work around it by adding a --platform="linux/amd64" switch to the docker run command, which then simply gave a warning (as on an arm64 Mac), but did grab the image successfully.

Please ignore the following if wrong place to ask, and I can go to discord. In the tutorial, this command is given

docker run -it -v /mnt/bevel:/home/bevel/ --network="host" ghcr.io/hyperledger/bevel-build:latest bash

However, is the source and destination switched?, as there is no mnt directory in local machine, only on the proxy. I replaced source: /mnt/bevel with $(pwd) and left destination: /home/bevel as is (because the run script refers to home/bevel in the path, and not mnt/bevel).

also added the --platform="linux/amd64" tag, which works even though wrong platform for me (on apple silicon).

This worked up to a point running the playbooks, and failed when testing the kubectl installation (main.yaml:59) The connection to the server localhost:8080 was refused

Guessing it is not using the config file specified in build directory (which is there). Maybe I started minikube from wrong directory??? I did specify the ip as a switch when starting minikube. Is there something I missed? I am new to Kubernetes and minikube. minicab ip view --> 192.168.49.2 My local machine is 192.168.68.54 (which is what I specified, also tried 127.0.0.1)

michaelkhalsa commented 4 months ago

Set everything up on an old intel dell XPS with ubuntu 22.04 16gb ram, latest K8s, minikube, helm, vault 1.15, etc. And placed build, bin, config.hcl, ... in home/project/bevel (on the Mac version I placed it in home/bevel)

Everything working up to same point where it was failing on Mac (as per previous comment) when testing KubeCtl (minikube), where 'connection to the server localhost:8080 was refused.'

I bet there is something simple I missed, but not sure where to go with it.

Note: typo in the prequisites, says helm >= 3.6, but the latest version is 3.15

suvajit-sarkar commented 3 months ago

@michaelkhalsa were you able to get pass the issues ?

suvajit-sarkar commented 2 months ago

Closing this issue. Please reopen it if the issue persists