osm icon indicating copy to clipboard operation
osm copied to clipboard

OSM ARM 64 support

Open nshankar13 opened this issue 2 years ago • 7 comments

Please describe the Improvement and/or Feature Request

Ensure that OSM CLI and control plane components work on ARM64 environments. Also tests, demos, and release pipelines need to be configured so that they can run both on AMD and ARM.

OSM install & envoy: https://github.com/openservicemesh/osm/issues/4702 PR to parameterize nodeselector, affinity, tolerations: https://github.com/openservicemesh/osm/pull/4706 Instructions on setting up OSM to run on ARM64: https://github.com/flomesh-io/osm/wiki/How-to-setup-osm-to-run-on-arm64-platform

Scope (please mark with X where applicable)

  • New Functionality [ ]
  • Install [X]
  • SMI Traffic Access Policy [ ]
  • SMI Traffic Specs Policy [ ]
  • SMI Traffic Split Policy [ ]
  • Permissive Traffic Policy [ ]
  • Ingress [ ]
  • Egress [ ]
  • Envoy Control Plane [ ]
  • CLI Tool [ ]
  • Metrics [ ]
  • Certificate Management [ ]
  • Sidecar Injection [ ]
  • Logging [ ]
  • Debugging [ ]
  • Tests [X]
  • CI System [X]
  • Demo [X]
  • Project Release [ ]

Possible use cases

nshankar13 avatar May 03 '22 19:05 nshankar13

Added default label size/needed. Please consider re-labeling this issue appropriately.

github-actions[bot] avatar Jul 13 '22 00:07 github-actions[bot]

Added default label kind/needed. Please consider re-labeling this issue appropriately.

github-actions[bot] avatar Jul 13 '22 00:07 github-actions[bot]

Team, I would like to see the enablement of testing on Arm64. If you need any help I am happy to contribute.

odidev avatar Jul 15 '22 13:07 odidev

Putting this issue on hold until Contour releases support v1.23 of envoy-distroless. Older versions of envoy-distroless do not have an ARM64 image, so sidecar injection will fail on ARM machines. Once contour releases support, we can upgrade the envoy version both for OSM and Contour.

nshankar13 avatar Jul 20 '22 18:07 nshankar13

Update, contour has released support for v1.23 of envoy. https://github.com/openservicemesh/osm/pull/4954. However, the ARM64 image for envoy-distroless v1.23.0 seems to have the amd binary (https://github.com/envoyproxy/envoy/issues/22261), so sidecar injection is still failing when testing with the envoy-distroless v1.23.0 image, will likely need to wait for v1.23.1.

nshankar13 avatar Aug 02 '22 19:08 nshankar13

Looks like we also need to update some of the test images that we use for client and server pods: for instance https://github.com/openservicemesh/osm/blob/main/tests/e2e/e2e_permissive_smi_switching_test.go#L65

nshankar13 avatar Aug 02 '22 20:08 nshankar13

Also need to update manifest yamls for manual demo: https://raw.githubusercontent.com/openservicemesh/osm-docs/release-v1.2/manifests/apps/bookbuyer.yaml

nshankar13 avatar Aug 09 '22 21:08 nshankar13

Looks like we also need to update some of the test images that we use for client and server pods: for instance https://github.com/openservicemesh/osm/blob/main/tests/e2e/e2e_permissive_smi_switching_test.go#L65

@nshankar13 As per your comment here the images which need to be updated are kennethreitz/httpbin and songrgg/alpine-debug. I have looked into it and found that the last update of both the images in dockerhub and GitHub is around 4 and 6 years respectively.

Can we replace them with some other images as they may not respond to release arm64 images?

If you want to continue with those images, I can help in adding the required changes for arm64 and raise the PR in the respective repositories.

odidev avatar Oct 19 '22 11:10 odidev

@nshankar13 Can you please give your suggestion on the above comment.

odidev avatar Dec 19 '22 14:12 odidev