osm
osm copied to clipboard
OSM ARM 64 support
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
Added default label size/needed
. Please consider re-labeling this issue appropriately.
Added default label kind/needed
. Please consider re-labeling this issue appropriately.
Team, I would like to see the enablement of testing on Arm64. If you need any help I am happy to contribute.
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.
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.
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
Also need to update manifest yamls for manual demo: https://raw.githubusercontent.com/openservicemesh/osm-docs/release-v1.2/manifests/apps/bookbuyer.yaml
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.
@nshankar13 Can you please give your suggestion on the above comment.