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 support for ARM with a multi platform workflow #355

Open
Revolyssup opened this issue Sep 12, 2022 · 9 comments
Open

Add support for ARM with a multi platform workflow #355

Revolyssup opened this issue Sep 12, 2022 · 9 comments
Assignees
Labels
area/ci Continuous integration good first issue Good for newcomers issue/willfix This issue will be worked on kind/enhancement Improvement in current feature

Comments

@Revolyssup
Copy link
Contributor

Current Behavior

Meshery operator is only built for x86 architecture currently.

Desired Behavior

Remove any platform hardcoding from Dockerfile and add a multiplatform workflow.
Refer to other Meshery repositories.

Implementation

Acceptance Tests

Mockups


Contributor Guides and Resources

@Revolyssup Revolyssup added kind/enhancement Improvement in current feature good first issue Good for newcomers area/ci Continuous integration labels Sep 12, 2022
@XDRAGON2002
Copy link
Member

@Revolyssup I would like to work on this, but could you guide me a bit as to what all changes need to be done?

@stale
Copy link

stale bot commented Nov 11, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the issue/stale Issue has not had any activity for an extended period of time label Nov 11, 2022
@stale
Copy link

stale bot commented Nov 22, 2022

This issue is being automatically closed due to inactivity. However, you may choose to reopen this issue.

@stale stale bot closed this as completed Nov 22, 2022
@leecalcote leecalcote reopened this Nov 22, 2022
@stale stale bot removed the issue/stale Issue has not had any activity for an extended period of time label Nov 22, 2022
@leecalcote
Copy link
Member

@Revolyssup has this been a topic in the Meshery Build and Release meeting?

@stale
Copy link

stale bot commented Jan 6, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the issue/stale Issue has not had any activity for an extended period of time label Jan 6, 2023
@Aisuko Aisuko added the issue/willfix This issue will be worked on label Jan 13, 2023
@stale stale bot removed the issue/stale Issue has not had any activity for an extended period of time label Jan 13, 2023
@Aisuko Aisuko self-assigned this Mar 14, 2023
@Aisuko
Copy link
Member

Aisuko commented Mar 23, 2023

It looks like we have a cross-platform script already but we do not use it.

meshery-operator/Makefile

Lines 155 to 164 in 08983a6

PLATFORMS ?= linux/arm64,linux/amd64
.PHONY: docker-buildx
docker-buildx: test ## Build and push docker image for the manager for cross-platform support
# copy existing Dockerfile and insert --platform=${BUILDPLATFORM} into Dockerfile.cross, and preserve the original Dockerfile
sed -e '1 s/\(^FROM\)/FROM --platform=\$$\{BUILDPLATFORM\}/; t' -e ' 1,// s//FROM --platform=\$$\{BUILDPLATFORM\}/' Dockerfile > Dockerfile.cross
- docker buildx create --name project-v3-builder
docker buildx use project-v3-builder
- docker buildx build --push --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile.cross .
- docker buildx rm project-v3-builder
rm Dockerfile.cross

- name: Docker edge build & tag
if: startsWith(github.ref, 'refs/tags/') != true && success()
run: |
DOCKER_BUILDKIT=1 docker build --no-cache -t ${{ secrets.IMAGE_NAME }}:edge-latest .
docker tag ${{ secrets.IMAGE_NAME }}:edge-latest ${{ secrets.IMAGE_NAME }}:edge-${GITHUB_SHA::7}
- name: Docker edge push
if: startsWith(github.ref, 'refs/tags/') != true && success()
run: |
docker push ${{ secrets.IMAGE_NAME }}:edge-latest
docker push ${{ secrets.IMAGE_NAME }}:edge-${GITHUB_SHA::7}
- name: Docker stable build & tag
if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') && success()
run: |
DOCKER_BUILDKIT=1 docker build --no-cache -t ${{ secrets.IMAGE_NAME }}:stable-latest .
docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_REF/refs\/tags\//}
docker tag ${{ secrets.IMAGE_NAME }}:stable-latest ${{ secrets.IMAGE_NAME }}:stable-${GITHUB_SHA::7}

@sandramsc
Copy link
Member

This issue has been open for some time with no recent activity, unassigning to open it up for new contributors to give it a go.

@dongrep
Copy link

dongrep commented Jul 28, 2024

Can i give it a go?

@lekaf974
Copy link

@leecalcote, @Revolyssup is this something still required ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ci Continuous integration good first issue Good for newcomers issue/willfix This issue will be worked on kind/enhancement Improvement in current feature
Projects
None yet
Development

No branches or pull requests

7 participants