Giter Site home page Giter Site logo

ephemeral-github-runner-image's Introduction

Hi there ๐Ÿ‘‹

ephemeral-github-runner-image's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar jgiannuzzi avatar ljubon avatar obasekiosa avatar pavlovic-ivan avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ephemeral-github-runner-image's Issues

Keep image up-to-date with its components [Ubuntu base image]

Describe the improvement request

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)"

Keep image up-to-date with its components

Describe the improvement request

The following components should be kept up-to-date in the image:

  • Ubuntu base image
  • GitHub Actions Runner
  • NVIDIA drivers

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:

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)"
GitHub Actions Runner

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
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).

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.

Keep image up-to-date with its components [NVIDIA drivers]

Describe the improvement request

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).

Update Packer GitHub action in build workflow

Describe the improvement request

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

ORA ticket OSS45

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.