pavlovic-ivan / ephemeral-github-runner-image Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Ubuntu base image should be kept up-to-date in the image
I think that a daily scheduled workflow could be used to check for updates to Ubuntu base, and create a PR with the new version number set in variables.auto.pkrvars.hcl
when an update is detected. We may also want to have a workflow running on PRs that builds and tests the image, but does not save it.
Here is how I think the check for updates could be done for each component:
Ubuntu base image
Use gcloud to query for the latest image in the ubuntu-2004-lts family
gcloud compute images list --filter family=ubuntu-2004-lts --format "value(NAME)"
Look for a Packer Github Action of the same version. Repo has a workflow .github/workflows/lint.yaml hat validates Packer codebase. Replace the appropriate steps with Packer Github Action.
Action is available here
The following components should be kept up-to-date in the image:
I think that a daily scheduled workflow could be used to check for updates to each of those components, and create a PR with the new version number set in variables.auto.pkrvars.hcl
when an update is detected. We may also want to have a workflow running on PRs that builds and tests the image, but does not save it.
Here is how I think the check for updates could be done for each component:
Use gcloud
to query for the latest image in the ubuntu-2004-lts
family
gcloud compute images list --filter family=ubuntu-2004-lts --format "value(NAME)"
Use the GitHub REST API to query for the latest release (the v
prefix will need to be removed)
gh api /repos/actions/runner/releases/latest | jq -r .tag_name
The decision to go from one major version to another should be done by a human (e.g. by updating the scheduled workflow).
The latest datacenter driver versions can be found on https://docs.nvidia.com/datacenter/tesla/index.html. We should probably parse this HTML file (e.g. with https://pypi.org/project/beautifulsoup4/ or https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString) and figure out the latest version for a given major (e.g. 470
-> 470.103.01
at the time of writing).
We don't need to have all 3 components done before we can roll out this feature. It seems to me that the first 2 are low hanging fruits and we would immediately benefit from having these always up-to-date.
NVIDIA drivers should be kept up-to-date in the image.
I think that a daily scheduled workflow could be used to check for updates of NVIDIA drivers, and create a PR with the new version number set in variables.auto.pkrvars.hcl
when an update is detected. We may also want to have a workflow running on PRs that builds and tests the image, but does not save it.
NVIDIA drivers
The decision to go from one major version to another should be done by a human (e.g. by updating the scheduled workflow).
The latest datacenter driver versions can be found on https://docs.nvidia.com/datacenter/tesla/index.html. We should probably parse this HTML file (e.g. with https://pypi.org/project/beautifulsoup4/ or https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString) and figure out the latest version for a given major (e.g. 470 -> 470.103.01 at the time of writing).
Look for a Packer Github Action of the same version. Repo has a workflow .github/workflows/build.yaml. There is one job with three steps.
Adapt the job and its steps so that Packer Github Action is used, instead of installing it with inline script. Do the same for the build step.
Action is available here
The project should be able to support amd64 images on the AWS platform
The project should be able to support arm64 images on the AWS platform
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.