Code Monkey home page Code Monkey logo

talos-boot-assets's Introduction

talos-boot-assets

Overview

This repository contains a GitHub Actions workflow that runs on a cronjob every day to check and see if a new official Talos Linux release has been pushed.

If it detects a newer version is available (compared to the tag(s) in this repo) it will use the Talos Imager to build new Boot Assets used in my home-ops environment.

Release Artifacts

Currently I output three artifacts from this workflow:

Artifact Name Description
metal-rpi_generic-arm64.raw.xz Shows up under Releases, used for Raspberry Pi 4 Raw Disk Image
installer-amd64 Shows up under Packages, used for Hyper-V VM installs / upgrades
installer-arm64 Shows up under Packages, used for Raspberry Pi 4 upgrades

Workflow

flowchart TD

subgraph check-for-new-release
    GetTalosRelease[Get Latest\nTalos\nRelease Version]
    GetBootAssetRelease[Get Latest\nBoot-Assets\nRelease Version]

    GetTalosRelease-->NewVersionAvail
    GetBootAssetRelease-->NewVersionAvail

    NewVersionAvail{Newer Talos\nversion available?}
end

NewVersionAvail -->|Yes| build-boot-assets
NewVersionAvail -->|No| End

subgraph build-boot-assets
    BuildInstallerAmd64[Build Talos\namd64 Installer\nContainer Image]
    BuildInstallerAmd64 --> BuildInstallerArm64[Build Talos\narm64 Installer\nContainer Image]
    BuildInstallerArm64 --> BuildRpi[Build Talos\nmetal-rpi_generic\nRaw Image]
    BuildRpi --> UploadArtifacts[Upload\nArtifacts]
end

UploadArtifacts --> create-release
UploadArtifacts --> push-container-image

subgraph create-release
    DownloadCreateRelease[Download\nArtifacts]
    DownloadCreateRelease --> CreateNewRelease[Create new\nGitHub Tag\nand Release]
end

subgraph push-container-image
    DownloadPushContainer[Download\nArtifacts]
    DownloadPushContainer --> SetupDockerBuildX[Setup Docker\nBuildx]
    SetupDockerBuildX --> LoginToGhcr[Login to\nghcr.io Registry]
    LoginToGhcr --> CranePush[Crane Push\nContainer Image]
end

CreateNewRelease --> End
CranePush --> End

End[End Workflow]

talos-boot-assets's People

Contributors

justingarfield avatar renovate[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar

talos-boot-assets's Issues

Single tag multi-arch Installer

Currently the GitHub Actions Workflow is creating two different image tags for the Talos Installer images (installer-amd64 and installer-arm64).

Ultimately, these two different architecture images should be behind a single tag using a multi-arch Manifest List / Index.

Need to understand how to take the tarball artifacts that are output by the Talos Imager and create the multi-arch Manifest List, using something like the below binaries/tools:

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • Update Talos boot assets (major) (actions/download-artifact, actions/upload-artifact, ghcr.io/siderolabs/intel-ucode, softprops/action-gh-release)

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/talos-boot-assets.yaml
  • actions/upload-artifact v3
  • actions/upload-artifact v3
  • actions/download-artifact v3
  • softprops/action-gh-release v1
  • actions/download-artifact v3
  • docker/setup-buildx-action v3.0.0
  • docker/login-action v3.0.0
  • imjasonh/setup-crane v0.3
regex
.github/workflows/talos-boot-assets.yaml
  • ghcr.io/siderolabs/intel-ucode 20230808

  • Check this box to trigger a request for Renovate to run again on this repository

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.