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

Update AL2 ci images with unofficial nodejs build before EOL deprecation #5178

Open
peterzhuamazon opened this issue Nov 11, 2024 · 11 comments

Comments

@peterzhuamazon
Copy link
Member

peterzhuamazon commented Nov 11, 2024

A lot of the github actions are failing now due to AL2 with older glibc does not support node 18 and 20 and above. (Ex: opensearch-project/job-scheduler#700) (Ex2: opensearch-project/neural-search#975)

Since AL2 will be deprecated on 2025/06 we opt to use the unofficial build to unblock us from this situation without doing too much changes to everyone's checks.

Thanks.

New Approach:

  1. The image will have the unofficial build on disk, so it wont be blocked if nodejs mirror is down.
  2. The workflow will do two volume mount, and force the hardcoded path of github runner binary pointing to the unofficial build on disk.

Therefore the actions of v4s will then use our binary to run, which support glibc2.17.


Plugin Owners, please follow this Sample PR to mitigate the issues:

Thanks!


Fix Mechanism PRs:

Infra/Plugin PRs:

@peterzhuamazon
Copy link
Member Author

Apparently we can get over it with one more params, apart from ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION:

+        env:
+            ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
+            ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

@peterzhuamazon
Copy link
Member Author

Apparently checkout@v4 up to node20 but upload/download artifacts only up to 18/12 respectively.

@peterzhuamazon
Copy link
Member Author

Seems like github prevent you from even using your own nodejs binaries to run actions:

mv: cannot move '/__e/node20/bin/node' to '/__e/node20/bin/node_bak': Read-only file system

@peterzhuamazon
Copy link
Member Author

peterzhuamazon commented Nov 13, 2024

Even if you install nodejs 18 or 20 that is custom build and compatible with AL2 on docker images, github will enforce on using their host version of node binaries during action runs.

I am not seeing a good method to override that at the moment.

@peterzhuamazon
Copy link
Member Author

Seems we can force with setup-node actions to some degree:
actions/setup-node#922

@peterzhuamazon
Copy link
Member Author

@peterzhuamazon
Copy link
Member Author

peterzhuamazon commented Nov 13, 2024

More deep dive and seems like happening since this where all node16 has been updated to node20.

This pretty much means these params are not taking effect anymore:

+        env:
+            ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
+            ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

@peterzhuamazon
Copy link
Member Author

@peterzhuamazon
Copy link
Member Author

@peterzhuamazon
Copy link
Member Author

See descriptions for all the fix PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🏗 In progress
Status: In Progress
Development

No branches or pull requests

1 participant