Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/build/env/linux-arm64-bullseye: add GCP builders #53851

Closed
cagedmantis opened this issue Jul 13, 2022 · 13 comments
Closed

x/build/env/linux-arm64-bullseye: add GCP builders #53851

cagedmantis opened this issue Jul 13, 2022 · 13 comments
Assignees
Labels
arch-arm64 Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@cagedmantis
Copy link
Contributor

cagedmantis commented Jul 13, 2022

Arm architecture machines are now available on Google Cloud Platform. We should deploy a set of builders for linux-arm64 and linux-arm.

Update: The arm32 builder work has been broken out into a separate issue. See #56693

@golang/release

@cagedmantis cagedmantis added Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. arch-arm64 labels Jul 13, 2022
@cagedmantis cagedmantis added this to the Backlog milestone Jul 13, 2022
@heschi heschi moved this to Planned in Go Release Sep 27, 2022
@cagedmantis cagedmantis self-assigned this Oct 26, 2022
@cagedmantis cagedmantis moved this from Planned to In Progress in Go Release Nov 1, 2022
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/447258 mentions this issue: cmd/buildlet/stage0: enable GCP linux-arm64 builders

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/447259 mentions this issue: dashboard, buildlet: add support for ARM64 COS images

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/447257 mentions this issue: env/linux-arm64-bullseye: add GCE ARM64 Debian builder

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/447260 mentions this issue: internal/coordinator/pool: add GCP t2a instance quotas

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/447738 mentions this issue: buildlet: use cloud init for ARM64 instances

gopherbot pushed a commit to golang/build that referenced this issue Nov 3, 2022
This adds the configuration details for a Debian ARM64 docker image.
The container will run on a COS machine on GCP.

Updates golang/go#53851

Change-Id: I416c524138573c86f45fdccd505a28666e4b7b09
Reviewed-on: https://go-review.googlesource.com/c/build/+/447257
Reviewed-by: Heschi Kreinick <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Run-TryBot: Carlos Amedee <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
gopherbot pushed a commit to golang/build that referenced this issue Nov 3, 2022
Stage0 has been configured to allow linux arm64 instances that are on
GCP. The makefile that generates the instances was refactored to
follow the model used by a the buildlet makefile refactor in CL
419992.

Updates golang/go#53851

Change-Id: Iffe0829fc1ba1d863adcb3b73cde2c48d5d84c68
Reviewed-on: https://go-review.googlesource.com/c/build/+/447258
Run-TryBot: Carlos Amedee <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Carlos Amedee <[email protected]>
Reviewed-by: Heschi Kreinick <[email protected]>
gopherbot pushed a commit to golang/build that referenced this issue Nov 3, 2022
This adds the ability to query for COS images which are ARM64 based.
The HostConfig has been updated to provide the ability to note that a
host requires an ARM64 COS image.

Updates golang/go#53851

Change-Id: Ib57bf6359ca365078528dbb6912dca2402939df9
Reviewed-on: https://go-review.googlesource.com/c/build/+/447259
TryBot-Result: Gopher Robot <[email protected]>
Run-TryBot: Carlos Amedee <[email protected]>
Reviewed-by: Carlos Amedee <[email protected]>
Reviewed-by: Heschi Kreinick <[email protected]>
gopherbot pushed a commit to golang/build that referenced this issue Nov 3, 2022
This adds the ability to track quota for t2a instances which have an
ARM64 architecture. This is required functionality if the coordinator
makes use of this machine type.

Updates golang/go#53851

Change-Id: I5fd384fee78bd1817fb022e67ecaa3e405977e3b
Reviewed-on: https://go-review.googlesource.com/c/build/+/447260
Run-TryBot: Carlos Amedee <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Reviewed-by: Carlos Amedee <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
gopherbot pushed a commit to golang/build that referenced this issue Nov 3, 2022
GCE ARM64 instances do not support the Konnn on COS images. Cloud init
is used to start containers on GCE ARM64 COS images instead of using the
gce-container-declaration metadata method.

Updates golang/go#53851

Change-Id: I3097ab3fc075829a45c93320023e54d3c16fa7a1
Reviewed-on: https://go-review.googlesource.com/c/build/+/447738
Run-TryBot: Carlos Amedee <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Carlos Amedee <[email protected]>
Reviewed-by: Heschi Kreinick <[email protected]>
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/447835 mentions this issue: dashboard: add linux-arm builder

@cagedmantis
Copy link
Contributor Author

While testing a new configuration, the linux-arm builder defined as:

	addBuilder(BuildConfig{
		Name:     "linux-arm",
		HostType: "host-linux-arm64-bullseye",
		env: []string{
			"GOARCH=arm",
			"GOARM=6",
			"GOHOSTARCH=arm",
			"CGO_CFLAGS=-march=armv6",
			"CGO_LDFLAGS=-march=armv6",
		},
	})

Failed with the following error:

2022/11/04 16:09:01 Pushing 'go' dir...
2022/11/04 16:09:08 Running src/all.bash ...
:: Running /tmp/workdir/go/src/all.bash with args ["/tmp/workdir/go/src/all.bash"] and env ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "HOSTNAME=bb2db2bc93d8" "DEBIAN_FRONTEND=noninteractive" "HOME=/root" "USER=root" "GO_STAGE0_NET_DELAY=1s" "GO_STAGE0_DL_DELAY=200ms" "WORKDIR=/tmp/workdir" "GOROOT_BOOTSTRAP=/tmp/workdir/go1.4" "GO_BUILDER_NAME=linux-arm" "GOARCH=arm" "GOARM=6" "GOHOSTARCH=arm" "CGO_CFLAGS=-march=armv6" "CGO_LDFLAGS=-march=armv6" "TMPDIR=/tmp/w
orkdir/tmp" "GOCACHE=/tmp/workdir/gocache" "PWD=/tmp/workdir/go/src"] in dir /tmp/workdir/go/src

Building Go cmd/dist using /tmp/workdir/go1.4. (go1.17.13 linux/arm64)
Building Go toolchain1 using /tmp/workdir/go1.4.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
go tool dist: FAILED: /tmp/workdir/go/pkg/tool/linux_arm/go_bootstrap install cmd/asm cmd/cgo cmd/compile cmd/link: fork/exec /tmp/workdir/go/pkg/tool/linux_arm/go_bootstrap: exec format error
2022/11/04 16:09:31 remote failure running src/all.bash: exit status 2

A custom host configuration (such as we've done with AWS) may be necessary.

@cagedmantis
Copy link
Contributor Author

The linux-arm64 builder is running in production.

@cagedmantis cagedmantis changed the title x/build/env/linux-arm64: add GCP builders x/build/env/linux-arm64-bullseye: add GCP builders Nov 10, 2022
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/449615 mentions this issue: all: replace linux-arm64-aws with linux-arm64

@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. and removed NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Nov 14, 2022
@dmitshur dmitshur modified the milestones: Backlog, Unreleased Nov 14, 2022
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/452858 mentions this issue: dashboard: add linux-arm64-longtest builder

gopherbot pushed a commit to golang/build that referenced this issue Nov 23, 2022
For golang/go#49649.
Updates golang/go#53851.

Change-Id: Ifbfd2b089b909542d0568d529ba738e4b217cf5c
Reviewed-on: https://go-review.googlesource.com/c/build/+/452858
Reviewed-by: Dmitri Shuralyov <[email protected]>
Run-TryBot: Cherry Mui <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Repository owner moved this from In Progress to Done in Go Release Nov 28, 2022
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/453657 mentions this issue: cmd/xb: add ARM images to valid images lists

gopherbot pushed a commit to golang/build that referenced this issue Nov 28, 2022
This change allows ARM based docker images to be built by xb.

For golang/go#53851

Change-Id: I5a2fd92b4a93957551e1f7cb9f46871de54fbb1d
Reviewed-on: https://go-review.googlesource.com/c/build/+/453657
Run-TryBot: Carlos Amedee <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/453658 mentions this issue: buildenv: remove zone without ARM machine types

gopherbot pushed a commit to golang/build that referenced this issue Nov 28, 2022
ARM machines are not available in the us-central1-c zone. This removes
this zone from the configuration.
https://cloud.google.com/compute/docs/regions-zones

For golang/go#53851

Change-Id: Ic30ef617c239c073fa60554a86c832e34e5a4fe1
Reviewed-on: https://go-review.googlesource.com/c/build/+/453658
TryBot-Result: Gopher Robot <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Run-TryBot: Carlos Amedee <[email protected]>
Reviewed-by: Carlos Amedee <[email protected]>
Auto-Submit: Carlos Amedee <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/456043 mentions this issue: dashboard: enable linux-arm64-longtest builder on 1.20+ release branches

gopherbot pushed a commit to golang/build that referenced this issue Dec 9, 2022
From the dashboard, it seems the linux-arm64-longtest builder has
been working reasonably well for a while. At this point we don't
have known issues for it. So remove known issues.

Enable it for trybot on 1.20+ release branches, per golang/go#37827.
Only for 1.20+ because it is failing on older versions of Go.

Fixes golang/go#49649.
Updates golang/go#53851, golang/go#37827.

Change-Id: I682aa4028b791ecd80360fbe05ef615dad19405d
Reviewed-on: https://go-review.googlesource.com/c/build/+/456043
Reviewed-by: Dmitri Shuralyov <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Run-TryBot: Cherry Mui <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
@golang golang locked and limited conversation to collaborators Dec 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm64 Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Projects
Archived in project
Development

No branches or pull requests

3 participants