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

add document to build on arm #46

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions docs/development_guides/build_arm_image.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
id: build_arm_image
title: Build ARM Image
sidebar_label: Build ARM Image
---

This document will talk about how to build an ARM image on a x86 host. With the help of docker, it won't be too difficult :)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This document will talk about how to build an ARM image on a x86 host. With the help of docker, it won't be too difficult :)
This document walks you through how to build an ARM image on an x86 host.


## Prerequisites

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Before building, make sure the following items are installed or configured:

* `qemu` has been installed on ths host to emulate arm program.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Version, link?

* `docker` > 19.03 with `buildx` installed. You can follow the [instruction](https://github.com/docker/buildx#installing) to install `buildx` toolkit for `docker`
* Linux Kernel >= 4.8
* Arm executables could be run with `binfmt_misc`. You can check it through `cat /proc/sys/fs/binfmt_misc/qemu-aarch64`. If not enabled, `docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64` can register qemu for running arm executables.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Arm executables could be run with `binfmt_misc`. You can check it through `cat /proc/sys/fs/binfmt_misc/qemu-aarch64`. If not enabled, `docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64` can register qemu for running arm executables.
* ARM executables could be run with `binfmt_misc`.
You can check by running `cat /proc/sys/fs/binfmt_misc/qemu-aarch64`. If it is not enabled, try `docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64` to register QEMU for running ARM executables.


## Build

Run `TARGET_PLATFORM=arm64 UI=1 SWAGGER=1 DOCKER_REGISTRY="" make image` will build all arm image (`pingcap/chaos-mesh`, `pingcap/chaos-daemon`, `pingcap/chaos-dashboard`...). After building, you can check the architecture of them through `docker image inspect`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Run `TARGET_PLATFORM=arm64 UI=1 SWAGGER=1 DOCKER_REGISTRY="" make image` will build all arm image (`pingcap/chaos-mesh`, `pingcap/chaos-daemon`, `pingcap/chaos-dashboard`...). After building, you can check the architecture of them through `docker image inspect`
Run `TARGET_PLATFORM=arm64 UI=1 SWAGGER=1 DOCKER_REGISTRY="" make image` to build all ARM images, including`pingcap/chaos-mesh`, `pingcap/chaos-daemon`, `pingcap/chaos-dashboard`, etc.
You can check the building result by running `docker image inspect`.


## Note
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Note
## Limitations and bug report


All functions haven't been well tested on arm, and the `IO/TimeChaos` will not work. If you have any other problem while running Chaos Mesh on an arm cluster, please file an issue on [github](https://github.com/chaos-mesh/chaos-mesh).
Comment on lines +20 to +22
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Note
All functions haven't been well tested on arm, and the `IO/TimeChaos` will not work. If you have any other problem while running Chaos Mesh on an arm cluster, please file an issue on [github](https://github.com/chaos-mesh/chaos-mesh).
> **Note**:
>
> - All functions haven't been well tested on arm, and the `IO/TimeChaos` will not work. If you have any other problem while running Chaos Mesh on an arm cluster, please file an issue on [github](https://github.com/chaos-mesh/chaos-mesh).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
All functions haven't been well tested on arm, and the `IO/TimeChaos` will not work. If you have any other problem while running Chaos Mesh on an arm cluster, please file an issue on [github](https://github.com/chaos-mesh/chaos-mesh).
Chaos Mesh components and functions haven't been well tested on ARM. So far `IO/TimeChaos` is known not to work. If you have any other problem running Chaos Mesh on an ARM cluster, please file an issue on [github](https://github.com/chaos-mesh/chaos-mesh).