You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@yunikorn.apache.org by GitBox <gi...@apache.org> on 2022/08/08 18:44:59 UTC

[GitHub] [yunikorn-site] craigcondit commented on a diff in pull request #170: [YUNIKORN-1240] multi architecture release procedure

craigcondit commented on code in PR #170:
URL: https://github.com/apache/yunikorn-site/pull/170#discussion_r940551124


##########
src/pages/community/release_procedure.md:
##########
@@ -169,19 +169,50 @@ This is needed to allow the start the mirror sync process and allow for the down
 Cleanup of the older release is handled after the website has been updated in the [cleanup](#cleanup).
 
 #### Release Docker images
-The standard build process should be used to build the image.
-Run a `make image` in the `web`, and `k8shim` repositories to generate the four images required (web, scheduler, scheduler-plugin and admission-controller):
+As part of the release convenience images are build and uploaded to the Apache account on DockerHub.
+As we added multi architecture support the release of the images has become a bit more complex and is now tool driven.
+
+The Go compiler builtin in functionality is leveraged to cross-compile the executables for the scheduler and admission controller.
+The web UI is a javascript application which does not require any special handling.
+
+Besides that, the minimum requirement for building the multi architecture images is multi architecture support in Docker.
+Multi architecture support is needed to be able to build both `amd64` and `arm64` images on your local machine.
+Building the images for different architectures requires emulation of the non-native architecture to run the build instructions.
+
+Support for emulating different architectures is provided by [QEMU](https://www.qemu.org).
+The QEMU software is installed as part of Docker Desktop on Mac OSX and Windows.
+For linux based build machines a manual installation of the QEMU package has to be performed.
+The multi architecture build has been tested using Docker on Debian also. On Debian this only requires the `qemu-user-static` package.
+Other distribution might require different docker and or QEMU install instructions.
+
+The expectation is that this tool is run from the same location as the [release tool](#run-the-release-tool) was run from.
+Configuration and code used as the input for this build **must** be the same as that was used for the source release.
+
+Run the image release tool:
 ```shell script
-VERSION=0.8.0; make image
+python3 build-image.py
 ```
+A standard run of the tool will ask for the docker hub credentials.
+The credentials used must have _write_ access to the `apache/yunikorn` docker hub area.
 
-Make can also be used to build and push the image if you have access to the Apache docker hub YuniKorn container.
-Push the latest docker images to the apache docker hub using the release as tag.
-Make sure the docker image is built on the specific SHA.
+The tool will then build the all the images:
+* admission
+* scheduler
+* scheduler-plugin
+* web
+
+Each image will be build twice, once for `amd64` and once for `arm64`.

Review Comment:
   Nit: Change "build" to "built"



##########
src/pages/community/release_procedure.md:
##########
@@ -169,19 +169,50 @@ This is needed to allow the start the mirror sync process and allow for the down
 Cleanup of the older release is handled after the website has been updated in the [cleanup](#cleanup).
 
 #### Release Docker images
-The standard build process should be used to build the image.
-Run a `make image` in the `web`, and `k8shim` repositories to generate the four images required (web, scheduler, scheduler-plugin and admission-controller):
+As part of the release convenience images are build and uploaded to the Apache account on DockerHub.
+As we added multi architecture support the release of the images has become a bit more complex and is now tool driven.
+
+The Go compiler builtin in functionality is leveraged to cross-compile the executables for the scheduler and admission controller.

Review Comment:
   Nit: Change "builtin in" to "built-in".



##########
src/pages/community/release_procedure.md:
##########
@@ -169,19 +169,50 @@ This is needed to allow the start the mirror sync process and allow for the down
 Cleanup of the older release is handled after the website has been updated in the [cleanup](#cleanup).
 
 #### Release Docker images
-The standard build process should be used to build the image.
-Run a `make image` in the `web`, and `k8shim` repositories to generate the four images required (web, scheduler, scheduler-plugin and admission-controller):
+As part of the release convenience images are build and uploaded to the Apache account on DockerHub.
+As we added multi architecture support the release of the images has become a bit more complex and is now tool driven.
+
+The Go compiler builtin in functionality is leveraged to cross-compile the executables for the scheduler and admission controller.
+The web UI is a javascript application which does not require any special handling.
+
+Besides that, the minimum requirement for building the multi architecture images is multi architecture support in Docker.
+Multi architecture support is needed to be able to build both `amd64` and `arm64` images on your local machine.
+Building the images for different architectures requires emulation of the non-native architecture to run the build instructions.
+
+Support for emulating different architectures is provided by [QEMU](https://www.qemu.org).
+The QEMU software is installed as part of Docker Desktop on Mac OSX and Windows.
+For linux based build machines a manual installation of the QEMU package has to be performed.
+The multi architecture build has been tested using Docker on Debian also. On Debian this only requires the `qemu-user-static` package.
+Other distribution might require different docker and or QEMU install instructions.
+
+The expectation is that this tool is run from the same location as the [release tool](#run-the-release-tool) was run from.
+Configuration and code used as the input for this build **must** be the same as that was used for the source release.
+
+Run the image release tool:
 ```shell script
-VERSION=0.8.0; make image
+python3 build-image.py
 ```
+A standard run of the tool will ask for the docker hub credentials.
+The credentials used must have _write_ access to the `apache/yunikorn` docker hub area.
 
-Make can also be used to build and push the image if you have access to the Apache docker hub YuniKorn container.
-Push the latest docker images to the apache docker hub using the release as tag.
-Make sure the docker image is built on the specific SHA.
+The tool will then build the all the images:
+* admission
+* scheduler
+* scheduler-plugin
+* web
+
+Each image will be build twice, once for `amd64` and once for `arm64`.
+All images are pushed to the docker hub.
+When both architectures are build a manifest is created for the multi architecture image.

Review Comment:
   Nit: "build" to "built"



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscribe@yunikorn.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org