Skip to content

Commit

Permalink
1609 release standard images (#1689)
Browse files Browse the repository at this point in the history
* Use dev version for provider kairos in Earthly

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* [WIP] Build a matrix for standard (provider) images

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Build provider-kairos image with the right flags

E.g. Invoke it as:

earthly +iso -PROVIDER_KAIROS=true -PROVIDER_KAIROS_VERSION=2.3.0 -K3S_VERSION=1.24.2

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Use latest package for provider-kairos and k3s

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove PROVIDER_KAIROS_VERSION setting

because when we install with luet, the version is defined by the
repository in framework-profile.yaml

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove implemented TODO

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Construct the k8s versions by quering the luet repo for available ones

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* No need to change version strings

They are already in the required format for luet

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove default MODEL that doesn't work

because the top level default always wins (Earthly...)

and downgrade osbuilder because it breaks arm builds. This should fix it:

kairos-io/osbuilder#80

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Don't build standard images for nvidia jetson

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Drop PROVIDER_KAIROS and use VARIANT=standard instead

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIp

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove not used ARGs and simplify targets

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Try out on our branch

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Configure luet before searching it

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Try to fix luet

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix luet

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix signing path

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Bump CI

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Add debug job

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove dummy job and try to remove permissions

to see if they are actually needed anywhere

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Debug, debug, debug

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Switch back to old naming

we will deal with it on another PR

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Simplify jq syntax

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Fix arm image release pipeline (no generic yet)

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Fix luet installation in job

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Fix the release-arm pipeline

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Unshallow the checkout in the pipeline to build a proper VERSION

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Use the action fetch-depth instead of unshallow

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Fix earthly things

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* WIP

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Remove our test branch from the workflow

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove done TODOs and make sure we install tools in all k3s versions

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Rename Earthly command and remove unnecessary copying

because the framework-profile should already be in place

(Fixes based on PR comments)

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Add nohang in base images (wherever it's available)

and remove the Earthly target for that.

Question: We only enable this on systemd:
  https://github.com/kairos-io/kairos/blob/master/overlay/files/system/oem/09_services.yaml#L21-L22
  What about systemd flavors that don't have it? (fedora, rockylinux,
  almalinux)

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Add repository for nohang in jetson dockerfile

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Filter which flavors to build standard image for

and stop running the release pipeline our current branch

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix name of matrix

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
Co-authored-by: Mauro Morales <mauro.morales@spectrocloud.com>
Co-authored-by: Dimitris Karakasilis <dimitris@spectrocloud.com>
  • Loading branch information
3 people authored Aug 8, 2023
1 parent 23becf5 commit 817f4ee
Show file tree
Hide file tree
Showing 20 changed files with 594 additions and 242 deletions.
13 changes: 8 additions & 5 deletions .github/flavors-arm.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
[
{
"flavor": "opensuse-leap-arm-rpi",
"model": "rpi64",
"worker": "ubuntu-latest"
"flavor": "opensuse-leap-arm-rpi",
"model": "rpi64",
"worker": "ubuntu-latest",
"standard": "true"
},
{
"flavor": "opensuse-tumbleweed-arm-rpi",
"model": "rpi64",
"worker": "ubuntu-latest"
"worker": "ubuntu-latest",
"standard": "true"
},
{
"flavor": "alpine-arm-rpi",
"model": "rpi64",
"worker": "ubuntu-latest"
"worker": "ubuntu-latest",
"standard": "true"
},
{
"flavor": "ubuntu-arm-rpi",
Expand Down
30 changes: 20 additions & 10 deletions .github/flavors.json
Original file line number Diff line number Diff line change
@@ -1,37 +1,47 @@
[
{
"flavor": "opensuse-leap"
"flavor": "opensuse-leap",
"standard": "true"
},
{
"flavor": "opensuse-tumbleweed"
"flavor": "opensuse-tumbleweed",
"standard": "true"
},
{
"flavor": "ubuntu"
"flavor": "ubuntu",
"standard": "true"
},
{
"flavor": "ubuntu-20-lts"
"flavor": "ubuntu-20-lts",
"standard": "true"
},
{
"flavor": "fips-systemd",
"frameworkonly": "true"
},
{
"flavor": "ubuntu-22-lts"
"flavor": "ubuntu-22-lts",
"standard": "true"
},
{
"flavor": "alpine-ubuntu"
"flavor": "alpine-ubuntu",
"standard": "true"
},
{
"flavor": "alpine-opensuse-leap"
"flavor": "alpine-opensuse-leap",
"standard": "true"
},
{
"flavor": "fedora"
"flavor": "fedora",
"standard": "true"
},
{
"flavor": "debian"
"flavor": "debian",
"standard": "true"
},
{
"flavor": "rockylinux"
"flavor": "rockylinux",
"standard": "true"
},
{
"flavor": "almalinux"
Expand Down
37 changes: 32 additions & 5 deletions .github/workflows/image-arm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ env:
FORCE_COLOR: 1

jobs:
get-matrix:
get-core-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
Expand All @@ -30,26 +30,53 @@ jobs:
# end of optional handling for multi line json
echo "::set-output name=matrix::{\"include\": $content }"
docker:
# The matrix for standard (provider) images
get-standard-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: |
sudo apt update && sudo apt install -y jq
- id: set-matrix
run: |
docker run --name luet quay.io/luet/base && docker cp luet:/usr/bin/luet ./
chmod +x luet
sudo mv luet /usr/bin/luet
# Construct an array like this from the found versions:
sudo luet --config framework-profile.yaml search -o json k8s/k3s | jq '.packages | map(.version)' > k3s_versions.json
# Create a combination of flavors and k3s versions.
content=$(jq -s '. | [combinations | .[0] + {"k3s_version": .[1]}] | map(select(.frameworkonly != "true")) | map(select(.standard == "true"))' .github/flavors-arm.json k3s_versions.json)
# the following lines are only required for multi line json
content="${content//'%'/'%25'}"
content="${content//$'\n'/'%0A'}"
content="${content//$'\r'/'%0D'}"
# end of optional handling for multi line json
echo "::set-output name=matrix::{\"include\": $content }"
build-arm-core:
uses: ./.github/workflows/reusable-docker-arm-build.yaml
secrets: inherit
with:
flavor: ${{ matrix.flavor }}
model: ${{ matrix.model }}
worker: ${{ matrix.worker }}
needs:
- get-matrix
- get-core-matrix
strategy:
fail-fast: false
matrix: ${{fromJson(needs.get-matrix.outputs.matrix)}}
matrix: ${{fromJson(needs.get-core-matrix.outputs.matrix)}}

image_and_iso_arm64_generic:
uses: ./.github/workflows/reusable-image-and-iso-arm-generic.yaml
secrets: inherit
with:
flavor: ${{ matrix.flavor }}
needs:
- get-matrix
- get-core-matrix
strategy:
fail-fast: false
matrix:
Expand Down
Loading

0 comments on commit 817f4ee

Please sign in to comment.