Open bsord opened 5 years ago
hi, yes, found another problem in build now, will try to fix it today and publish new arm images.
That's great news! Thanks for quick response.
On Sun, Sep 29, 2019, 10:14 AM Karolis notifications@github.com wrote:
hi, yes, found another problem in build now, will try to fix it today and publish new arm images.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/keel-hq/keel/issues/447?email_source=notifications&email_token=AEKBZBTDQSQ3V7S26XSL343QMDA6HA5CNFSM4I3QTKXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD73XPJY#issuecomment-536311719, or mute the thread https://github.com/notifications/unsubscribe-auth/AEKBZBWIHQV7NDOSVBQIAXTQMDA6HANCNFSM4I3QTKXA .
Hi, could you please try out keelhq/keel-arm:0.15.0
version? I think it should work but it's quite late and I would need to set up my rpi :)
pulled keel-arm:015.0 and now i receive the error below. Looks like it still needs the extra work you mentioned about the sqlite lib references in the other issue?
level=warning msg="sql store connector: can't reach DB, waiting" error="Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 require s cgo to work. This is a stub" uri=/data/keel.db time="2019-09-30T01:27:10Z" level=warning msg="sql store connector: can't reach DB, waiting" error="Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub" uri=/data/keel.db
Any updates on this?
keelhq/keel-arm has 0.15.0
tag.
https://hub.docker.com/r/keelhq/keel-arm/tags
But, this does not work. (go-sqlite3 error)
keel depends on go-sqlite3 for admin UI since 0.15.0.
go-sqlite3 uses cgo, so I need to set CGO_ENABLED=1
at build.
Build succeeded with the following command.
$ sudo apt install gcc-multilib g++-arm-linux-gnueabihf
$ make build-arm
build-arm:
- cd cmd/keel && env GOARCH=arm GOOS=linux go build -ldflags="$(ARMFLAGS)" -o release/keel-linux-arm
+ cd cmd/keel && env CC=arm-linux-gnueabihf-gcc CGO_ENABLED=1 GOARCH=arm GOOS=linux go build -ldflags="$(ARMFLAGS)" -o release/keel-linux-arm
cd cmd/keel && env GOARCH=arm64 GOOS=linux go build -ldflags="$(ARMFLAGS)" -o release/keel-linux-aarc64
that's great :) didn't have time to experiment but we can include this into drone build step and automate arm releases then
I did some additional experiments. I found these problems.
gcc-arm-linux-gnueabihf
on GitHub Actions.I did the following to avoid these issues and make an image that works on raspi(has arm32v7 cpu).
I successfully built the image and ran it on raspi.
See this repository for how to build an image that runs on raspi (arm32v7): reireias/keel-arm I think the addition of admin ui has complicated the dependencies in arm.
Hi @reireias, thanks for the tips :) I have updated files according to your example but I don't have any arm hw at the moment to test it out, could you please try running keelhq/keel-arm:test-1
tag?
Hi @rusenask, thanks for fixing. I tried binary build and image build for raspi. Both of them work!
Build image on Docker container.
$ docker run --rm -it golang:1.13-buster bash
# in docker container
$ apt update
$ apt install -y gcc-arm-linux-gnueabihf
$ go get github.com/keel-hq/keel
$ cd /go/src/github.com/keel-hq/keel
$ make build-arm
# send cmd/keel/release/keel-linux-arm to raspi(raspbian buster)
# run
pi@pikube01:~ $ ./keel-linux-arm
INFO[0000] extension.credentialshelper: helper registered name=aws
INFO[0000] extension.credentialshelper: helper registered name=gcr
INFO[0000] bot: registered name=slack
INFO[0000] keel starting... arch=arm build_date=2020-03-06T220124Z go_version=go1.13.8 os=linux revision=1156d42e version=0.16.0
WARN[0001] sql store connector: can't reach DB, waiting error="unable to open database file" uri=/data/keel.db
WARN[0002] sql store connector: can't reach DB, waiting error="unable to open database file" uri=/data/keel.db
WARN[0003] sql store connector: can't reach DB, waiting error="unable to open database file" uri=/data/keel.db
WARN[0004] sql store connector: can't reach DB, waiting error="unable to open database file" uri=/data/keel.db
Build image on my GitHub Actions with Makefile
and Dockerfile.armhf
in keel-hq/keel.
https://github.com/reireias/keel-arm/pull/4
Push image to my docker hub, deploy my k8s cluster on raspi.
It works!
But, keelhq/keel-arm:test-1
image doesn't work on raspi.
time="2020-03-06T22:38:32Z" level=info msg="extension.credentialshelper: helper registered" name=aws
time="2020-03-06T22:38:32Z" level=info msg="extension.credentialshelper: helper registered" name=gcr
time="2020-03-06T22:38:32Z" level=info msg="bot: registered" name=slack
time="2020-03-06T22:38:32Z" level=info msg="keel starting..." arch=arm build_date=2019-09-29T221913Z go_version=go1.12 os=linux revision=afe0771b version=0.15.0
time="2020-03-06T22:38:33Z" level=warning msg="sql store connector: can't reach DB, waiting" error="Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub" uri=/data/keel.db
time="2020-03-06T22:38:34Z" level=warning msg="sql store connector: can't reach DB, waiting" error="Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub" uri=/data/keel.db
time="2020-03-06T22:38:35Z" level=warning msg="sql store connector: can't reach DB, waiting" error="Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub" uri=/data/keel.db
as I understand your raspi would want 64 bit aarch?
These are a infomation of my Raspberry Pi 4 + Rapbian OS Buster.
pi@pikube01:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@pikube01:~ $ uname -a
Linux pikube01 4.19.93-v7l+ #1290 SMP Fri Jan 10 16:45:11 GMT 2020 armv7l GNU/Linux
pi@pikube01:~ $ uname -m
armv7l
Image build with keel-hq/keel
master branch code works on my raspi, but keelhq/keel-arm:test-1
doesn't work.
I feel that the difference of the build environment is affecting.
My build condition is the follows.
https://github.com/reireias/keel-arm/blob/fix/patch/.github/workflows/image.yml
Is there some now information? I tried using keel but all arm-builds newer than 14.2 are failing with different errors.
Could you share the errors you are seeing?
On 11 Oct 2020, at 13:27, Noah Raven notifications@github.com wrote:
Is there some now information? I tried using keel but all arm-builds newer than 14.2 are failing with different errors.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
Running in Microk8s on Raspberry Pi 4B 4GB:
time="2020-10-11T21:35:55Z"`` level=info msg="extension.credentialshelper: helper registered" name=aws
time="2020-10-11T21:35:55Z" level=info msg="extension.credentialshelper: helper registered" name=gcr
time="2020-10-11T21:35:55Z" level=info msg="bot: registered" name=slack
time="2020-10-11T21:35:55Z" level=info msg="keel starting..." arch=arm build_date=2019-09-29T224119Z go_version=go1.12 os=linux revision=afe0771b version=0.15.0
time="2020-10-11T21:35:56Z" level=warning msg="sql store connector: can't reach DB, waiting" error="Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub" uri=/data/keel.db
Last message seems to repeat infinitively.
time="2020-10-11T21:39:42Z" level=info msg="extension.credentialshelper: helper registered" name=aws
time="2020-10-11T21:39:42Z" level=info msg="bot: registered" name=slack
time="2020-10-11T21:39:42Z" level=info msg="keel starting..." arch=arm build_date=2018-10-07T190104Z go_version=go1.10.3 os=linux revision=f571b82c version=0.11.2
time="2020-10-11T21:39:42Z" level=info msg="provider.kubernetes: using in-cluster configuration"
time="2020-10-11T21:39:42Z" level=info msg="provider.defaultProviders: provider 'kubernetes' registered"
time="2020-10-11T21:39:42Z" level=info msg="extension.credentialshelper: helper registered" name=secrets
time="2020-10-11T21:39:42Z" level=info msg="bot.slack.Configure(): Slack approval bot is not configured"
time="2020-10-11T21:39:42Z" level=error msg="bot.Run(): can not get configuration for bot [slack]"
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x4 pc=0x1156c]
goroutine 59 [running]:
sync/atomic.addUint64(0x137994ac, 0x1, 0x0, 0x13436028, 0x0)
/usr/local/go/src/sync/atomic/64bit_arm.go:31 +0x4c
github.com/keel-hq/keel/approvals.(*DefaultManager).SubscribeApproved(0x137994a0, 0xf446f0, 0x1373a0e0, 0x1373a0e0, 0x136040e0, 0x0)
/home/karolis/go/src/github.com/keel-hq/keel/approvals/approvals.go:171 +0x40
github.com/keel-hq/keel/provider.(*DefaultProviders).subscribeToApproved(0x13547a30)
/home/karolis/go/src/github.com/keel-hq/keel/provider/provider.go:60 +0x70
created by github.com/keel-hq/keel/provider.New
/home/karolis/go/src/github.com/keel-hq/keel/provider/provider.go:45 +0x1d4
The tag 0.14.2 is running perfectly fine.
Maybe this should be moved to a new issue because this issue is just about changing the latest tag.
Could you share the errors you are seeing? … On 11 Oct 2020, at 13:27, "#" @.***> wrote: Is there some now information? I tried using keel but all arm-builds newer than 14.2 are failing with different errors. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
When deploying keelhq/keel-arm:latest it doesn't pull the seemingly latest version (0.14.2) which addresses this bug: https://github.com/keel-hq/keel/issues/388
Can you update latest to be 0.14.2 so a seperate tag definition is not needed upon deployment to work around this issue?