Added extention subcatalog for ALTLinux
This commit is contained in:
parent
4cd9d18e9c
commit
521dee7074
48
extentions/extentions/.conform.yaml
Normal file
48
extentions/extentions/.conform.yaml
Normal file
@ -0,0 +1,48 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2024-08-01T17:25:51Z by kres faf91e3.
|
||||
|
||||
policies:
|
||||
- type: commit
|
||||
spec:
|
||||
dco: true
|
||||
gpg:
|
||||
required: true
|
||||
identity:
|
||||
gitHubOrganization: siderolabs
|
||||
spellcheck:
|
||||
locale: US
|
||||
maximumOfOneCommit: true
|
||||
header:
|
||||
length: 89
|
||||
imperative: true
|
||||
case: lower
|
||||
invalidLastCharacters: .
|
||||
body:
|
||||
required: true
|
||||
conventional:
|
||||
types:
|
||||
- chore
|
||||
- docs
|
||||
- perf
|
||||
- refactor
|
||||
- style
|
||||
- test
|
||||
- release
|
||||
scopes:
|
||||
- .*
|
||||
- type: license
|
||||
spec:
|
||||
root: .
|
||||
skipPaths:
|
||||
- .git/
|
||||
- testdata/
|
||||
includeSuffixes:
|
||||
- .go
|
||||
excludeSuffixes:
|
||||
- .pb.go
|
||||
- .pb.gw.go
|
||||
header: |
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
9
extentions/extentions/.dockerignore
Normal file
9
extentions/extentions/.dockerignore
Normal file
@ -0,0 +1,9 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2024-08-29T14:13:04Z by kres b5ca957.
|
||||
|
||||
*
|
||||
!CHANGELOG.md
|
||||
!MAINTAINERS.md
|
||||
!README.md
|
||||
!pkg.yaml
|
122
extentions/extentions/.github/renovate.json
vendored
Normal file
122
extentions/extentions/.github/renovate.json
vendored
Normal file
@ -0,0 +1,122 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
":semanticCommitScopeDisabled",
|
||||
"schedule:earlyMondays"
|
||||
],
|
||||
"regexManagers": [
|
||||
{
|
||||
"fileMatch": [
|
||||
"vars.yaml"
|
||||
],
|
||||
"matchStrings": [
|
||||
"# renovate: datasource=(?<datasource>.*?)(?:\\s+extractVersion=(?<extractVersion>.+?))?(?:\\s+versioning=(?<versioning>.+?))?\\s+depName=(?<depName>.+?)?\\s(?:.*_(?:version|VERSION):\\s+(?<currentValue>.*))?(?:(\\s)?.*_(?:ref|REF):\\s+(?<currentDigest>.*))?"
|
||||
],
|
||||
"versioningTemplate": "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"Pkgfile"
|
||||
],
|
||||
"matchStrings": [
|
||||
"# renovate: datasource=(?<datasource>.*?)(?:\\s+extractVersion=(?<extractVersion>.+?))?(?:\\s+versioning=(?<versioning>.+?))?\\s+depName=(?<depName>.+?)?\\s(?:\\s+.*_(?:version|VERSION):\\s+(?<currentValue>.*))?(?:\\s.*_(?:ref|REF):\\s+(?<currentDigest>.*))?"
|
||||
],
|
||||
"versioningTemplate": "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"Pkgfile"
|
||||
],
|
||||
"matchStrings": [
|
||||
"ghcr.io\\/siderolabs\\/bldr:(?<currentValue>v.*)"
|
||||
],
|
||||
"depNameTemplate": "siderolabs/bldr",
|
||||
"datasourceTemplate": "github-tags",
|
||||
"versioningTemplate": "semver"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"Makefile"
|
||||
],
|
||||
"matchStrings": [
|
||||
"BLDR_RELEASE\\s+\\?=\\s+(?<currentValue>.*)\\n"
|
||||
],
|
||||
"depNameTemplate": "siderolabs/bldr",
|
||||
"datasourceTemplate": "github-tags",
|
||||
"versioningTemplate": "semver"
|
||||
}
|
||||
],
|
||||
"packageRules": [
|
||||
{
|
||||
"matchPackageNames": [
|
||||
"nvidia/open-gpu-kernel-modules",
|
||||
"open-iscsi/open-isns",
|
||||
"containers/crun",
|
||||
"git://git.kernel.org/pub/scm/libs/libcap/libcap.git",
|
||||
"git://sourceware.org/git/elfutils.git",
|
||||
"git://git.kernel.org/pub/scm/utils/mdadm/mdadm.git"
|
||||
],
|
||||
"versioning": "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.?(?<patch>\\d+)?$"
|
||||
},
|
||||
{
|
||||
"matchPackageNames": [
|
||||
"https://sourceware.org/git/glibc.git"
|
||||
],
|
||||
"versioning": "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.?(?<patch>[0-9]{1,3})?$"
|
||||
},
|
||||
{
|
||||
"matchPackageNames": [
|
||||
"google/gvisor",
|
||||
"intel/Intel-Linux-Processor-Microcode-Data-Files"
|
||||
],
|
||||
"versioning": "regex:^(?<major>\\d{4})(?<minor>\\d{2})(?<patch>\\d{2})\\.?(?<build>\\d+)?$"
|
||||
},
|
||||
{
|
||||
"matchPackageNames": [
|
||||
"git://linux-nfs.org/~steved/libtirpc"
|
||||
],
|
||||
"versioning": "regex:^(?<major>\\d+)-(?<minor>\\d+)-?(?<patch>\\d+)?$"
|
||||
},
|
||||
{
|
||||
"matchPackagePatterns": [
|
||||
"*"
|
||||
],
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"groupName": "container images"
|
||||
},
|
||||
{
|
||||
"matchPackagePatterns": [
|
||||
"*"
|
||||
],
|
||||
"matchDatasources": [
|
||||
"go",
|
||||
"golang-version"
|
||||
],
|
||||
"groupName": "go packages"
|
||||
},
|
||||
{
|
||||
"matchPackagePatterns": [
|
||||
"*"
|
||||
],
|
||||
"matchDatasources": [
|
||||
"npm"
|
||||
],
|
||||
"groupName": "node packages"
|
||||
},
|
||||
{
|
||||
"matchPackagePatterns": [
|
||||
"*"
|
||||
],
|
||||
"matchDatasources": [
|
||||
"git-refs",
|
||||
"git-tags",
|
||||
"github-tags",
|
||||
"github-releases"
|
||||
],
|
||||
"groupName": "releases"
|
||||
}
|
||||
],
|
||||
"dependencyDashboard": true
|
||||
}
|
195
extentions/extentions/.github/workflows/ci.yaml
vendored
Normal file
195
extentions/extentions/.github/workflows/ci.yaml
vendored
Normal file
@ -0,0 +1,195 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2024-11-06T23:11:48Z by kres 1fc767a.
|
||||
|
||||
name: default
|
||||
concurrency:
|
||||
group: ${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
"on":
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release-*
|
||||
tags:
|
||||
- v*
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release-*
|
||||
jobs:
|
||||
default:
|
||||
permissions:
|
||||
actions: read
|
||||
contents: write
|
||||
issues: read
|
||||
packages: write
|
||||
pull-requests: read
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- pkgs
|
||||
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/'))
|
||||
outputs:
|
||||
labels: ${{ steps.retrieve-pr-labels.outputs.result }}
|
||||
services:
|
||||
buildkitd:
|
||||
image: moby/buildkit:v0.17.0
|
||||
options: --privileged
|
||||
ports:
|
||||
- 1234:1234
|
||||
volumes:
|
||||
- /var/lib/buildkit/${{ github.repository }}:/var/lib/buildkit
|
||||
- /usr/etc/buildkit/buildkitd.toml:/etc/buildkit/buildkitd.toml
|
||||
steps:
|
||||
- name: gather-system-info
|
||||
id: system-info
|
||||
uses: kenchan0130/actions-system-info@v1.3.0
|
||||
continue-on-error: true
|
||||
- name: print-system-info
|
||||
run: |
|
||||
MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024))
|
||||
|
||||
OUTPUTS=(
|
||||
"CPU Core: ${{ steps.system-info.outputs.cpu-core }}"
|
||||
"CPU Model: ${{ steps.system-info.outputs.cpu-model }}"
|
||||
"Hostname: ${{ steps.system-info.outputs.hostname }}"
|
||||
"NodeName: ${NODE_NAME}"
|
||||
"Kernel release: ${{ steps.system-info.outputs.kernel-release }}"
|
||||
"Kernel version: ${{ steps.system-info.outputs.kernel-version }}"
|
||||
"Name: ${{ steps.system-info.outputs.name }}"
|
||||
"Platform: ${{ steps.system-info.outputs.platform }}"
|
||||
"Release: ${{ steps.system-info.outputs.release }}"
|
||||
"Total memory: ${MEMORY_GB} GB"
|
||||
)
|
||||
|
||||
for OUTPUT in "${OUTPUTS[@]}";do
|
||||
echo "${OUTPUT}"
|
||||
done
|
||||
continue-on-error: true
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Unshallow
|
||||
run: |
|
||||
git fetch --prune --unshallow
|
||||
- name: Set up Docker Buildx
|
||||
id: setup-buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
append: |
|
||||
- endpoint: tcp://buildkit-arm64.ci.svc.cluster.local:1234
|
||||
platforms: linux/arm64
|
||||
driver: remote
|
||||
endpoint: tcp://127.0.0.1:1234
|
||||
- name: Build
|
||||
if: github.event_name == 'pull_request'
|
||||
run: |
|
||||
make
|
||||
- name: Build nonfree
|
||||
if: github.event_name == 'pull_request'
|
||||
run: |
|
||||
make nonfree
|
||||
- name: Login to registry
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
- name: Push to registry
|
||||
if: github.event_name != 'pull_request'
|
||||
run: |
|
||||
make PUSH=true
|
||||
- name: Push nonfree
|
||||
if: github.event_name != 'pull_request'
|
||||
run: |
|
||||
make nonfree PUSH=true
|
||||
- name: Retrieve PR labels
|
||||
id: retrieve-pr-labels
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
retries: "3"
|
||||
script: |
|
||||
if (context.eventName != "pull_request") { return "[]" }
|
||||
|
||||
const resp = await github.rest.issues.get({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
})
|
||||
|
||||
return resp.data.labels.map(label => label.name)
|
||||
- name: extensions
|
||||
if: github.event_name != 'pull_request'
|
||||
env:
|
||||
PUSH: "true"
|
||||
run: |
|
||||
make extensions
|
||||
- name: release-notes
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
run: |
|
||||
make release-notes
|
||||
- name: Release
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
uses: crazy-max/ghaction-github-release@v2
|
||||
with:
|
||||
body_path: _out/RELEASE_NOTES.md
|
||||
draft: "true"
|
||||
reproducibility:
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- pkgs
|
||||
if: contains(fromJSON(needs.default.outputs.labels), 'integration/reproducibility')
|
||||
needs:
|
||||
- default
|
||||
services:
|
||||
buildkitd:
|
||||
image: moby/buildkit:v0.17.0
|
||||
options: --privileged
|
||||
ports:
|
||||
- 1234:1234
|
||||
volumes:
|
||||
- /var/lib/buildkit/${{ github.repository }}:/var/lib/buildkit
|
||||
- /usr/etc/buildkit/buildkitd.toml:/etc/buildkit/buildkitd.toml
|
||||
steps:
|
||||
- name: gather-system-info
|
||||
id: system-info
|
||||
uses: kenchan0130/actions-system-info@v1.3.0
|
||||
continue-on-error: true
|
||||
- name: print-system-info
|
||||
run: |
|
||||
MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024))
|
||||
|
||||
OUTPUTS=(
|
||||
"CPU Core: ${{ steps.system-info.outputs.cpu-core }}"
|
||||
"CPU Model: ${{ steps.system-info.outputs.cpu-model }}"
|
||||
"Hostname: ${{ steps.system-info.outputs.hostname }}"
|
||||
"NodeName: ${NODE_NAME}"
|
||||
"Kernel release: ${{ steps.system-info.outputs.kernel-release }}"
|
||||
"Kernel version: ${{ steps.system-info.outputs.kernel-version }}"
|
||||
"Name: ${{ steps.system-info.outputs.name }}"
|
||||
"Platform: ${{ steps.system-info.outputs.platform }}"
|
||||
"Release: ${{ steps.system-info.outputs.release }}"
|
||||
"Total memory: ${MEMORY_GB} GB"
|
||||
)
|
||||
|
||||
for OUTPUT in "${OUTPUTS[@]}";do
|
||||
echo "${OUTPUT}"
|
||||
done
|
||||
continue-on-error: true
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Unshallow
|
||||
run: |
|
||||
git fetch --prune --unshallow
|
||||
- name: Set up Docker Buildx
|
||||
id: setup-buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
append: |
|
||||
- endpoint: tcp://buildkit-arm64.ci.svc.cluster.local:1234
|
||||
platforms: linux/arm64
|
||||
driver: remote
|
||||
endpoint: tcp://127.0.0.1:1234
|
||||
- name: reproducibility-test
|
||||
run: |
|
||||
make reproducibility-test
|
93
extentions/extentions/.github/workflows/slack-notify.yaml
vendored
Normal file
93
extentions/extentions/.github/workflows/slack-notify.yaml
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2023-11-13T17:09:48Z by kres latest.
|
||||
|
||||
name: slack-notify
|
||||
"on":
|
||||
workflow_run:
|
||||
workflows:
|
||||
- default
|
||||
- weekly
|
||||
types:
|
||||
- completed
|
||||
jobs:
|
||||
slack-notify:
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- generic
|
||||
if: github.event.workflow_run.conclusion != 'skipped'
|
||||
steps:
|
||||
- name: Get PR number
|
||||
id: get-pr-number
|
||||
if: github.event.workflow_run.event == 'pull_request'
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
echo pull_request_number=$(gh pr view -R ${{ github.repository }} ${{ github.event.workflow_run.head_repository.owner.login }}:${{ github.event.workflow_run.head_branch }} --json number --jq .number) >> $GITHUB_OUTPUT
|
||||
- name: Slack Notify
|
||||
uses: slackapi/slack-github-action@v1
|
||||
with:
|
||||
channel-id: proj-talos-maintainers
|
||||
payload: |
|
||||
{
|
||||
"attachments": [
|
||||
{
|
||||
"color": "${{ github.event.workflow_run.conclusion == 'success' && '#2EB886' || github.event.workflow_run.conclusion == 'failure' && '#A30002' || '#FFCC00' }}",
|
||||
"fallback": "test",
|
||||
"blocks": [
|
||||
{
|
||||
"type": "section",
|
||||
"fields": [
|
||||
{
|
||||
"type": "mrkdwn",
|
||||
"text": "${{ github.event.workflow_run.event == 'pull_request' && format('*Pull Request:* {0} (`{1}`)\n<{2}/pull/{3}|{4}>', github.repository, github.ref_name, github.event.repository.html_url, steps.get-pr-number.outputs.pull_request_number, github.event.workflow_run.display_title) || format('*Build:* {0} (`{1}`)\n<{2}/commit/{3}|{4}>', github.repository, github.ref_name, github.event.repository.html_url, github.sha, github.event.workflow_run.display_title) }}"
|
||||
},
|
||||
{
|
||||
"type": "mrkdwn",
|
||||
"text": "*Status:*\n`${{ github.event.workflow_run.conclusion }}`"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "section",
|
||||
"fields": [
|
||||
{
|
||||
"type": "mrkdwn",
|
||||
"text": "*Author:*\n`${{ github.actor }}`"
|
||||
},
|
||||
{
|
||||
"type": "mrkdwn",
|
||||
"text": "*Event:*\n`${{ github.event.workflow_run.event }}`"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "divider"
|
||||
},
|
||||
{
|
||||
"type": "actions",
|
||||
"elements": [
|
||||
{
|
||||
"type": "button",
|
||||
"text": {
|
||||
"type": "plain_text",
|
||||
"text": "Logs"
|
||||
},
|
||||
"url": "${{ github.event.workflow_run.html_url }}"
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": {
|
||||
"type": "plain_text",
|
||||
"text": "Commit"
|
||||
},
|
||||
"url": "${{ github.event.repository.html_url }}/commit/${{ github.sha }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
env:
|
||||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
|
68
extentions/extentions/.github/workflows/weekly.yaml
vendored
Normal file
68
extentions/extentions/.github/workflows/weekly.yaml
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2024-11-06T23:11:48Z by kres 1fc767a.
|
||||
|
||||
name: weekly
|
||||
concurrency:
|
||||
group: ${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
"on":
|
||||
schedule:
|
||||
- cron: 30 1 * * 1
|
||||
jobs:
|
||||
reproducibility:
|
||||
runs-on:
|
||||
- self-hosted
|
||||
- pkgs
|
||||
services:
|
||||
buildkitd:
|
||||
image: moby/buildkit:v0.17.0
|
||||
options: --privileged
|
||||
ports:
|
||||
- 1234:1234
|
||||
volumes:
|
||||
- /var/lib/buildkit/${{ github.repository }}:/var/lib/buildkit
|
||||
- /usr/etc/buildkit/buildkitd.toml:/etc/buildkit/buildkitd.toml
|
||||
steps:
|
||||
- name: gather-system-info
|
||||
id: system-info
|
||||
uses: kenchan0130/actions-system-info@v1.3.0
|
||||
continue-on-error: true
|
||||
- name: print-system-info
|
||||
run: |
|
||||
MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024))
|
||||
|
||||
OUTPUTS=(
|
||||
"CPU Core: ${{ steps.system-info.outputs.cpu-core }}"
|
||||
"CPU Model: ${{ steps.system-info.outputs.cpu-model }}"
|
||||
"Hostname: ${{ steps.system-info.outputs.hostname }}"
|
||||
"NodeName: ${NODE_NAME}"
|
||||
"Kernel release: ${{ steps.system-info.outputs.kernel-release }}"
|
||||
"Kernel version: ${{ steps.system-info.outputs.kernel-version }}"
|
||||
"Name: ${{ steps.system-info.outputs.name }}"
|
||||
"Platform: ${{ steps.system-info.outputs.platform }}"
|
||||
"Release: ${{ steps.system-info.outputs.release }}"
|
||||
"Total memory: ${MEMORY_GB} GB"
|
||||
)
|
||||
|
||||
for OUTPUT in "${OUTPUTS[@]}";do
|
||||
echo "${OUTPUT}"
|
||||
done
|
||||
continue-on-error: true
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Unshallow
|
||||
run: |
|
||||
git fetch --prune --unshallow
|
||||
- name: Set up Docker Buildx
|
||||
id: setup-buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
append: |
|
||||
- endpoint: tcp://buildkit-arm64.ci.svc.cluster.local:1234
|
||||
platforms: linux/arm64
|
||||
driver: remote
|
||||
endpoint: tcp://127.0.0.1:1234
|
||||
- name: reproducibility-test
|
||||
run: |
|
||||
make reproducibility-test
|
7
extentions/extentions/.gitignore
vendored
Normal file
7
extentions/extentions/.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2023-12-25T17:44:28Z by kres latest.
|
||||
|
||||
_out
|
||||
internal/extensions/image-digests
|
||||
internal/extensions/descriptions.yaml
|
167
extentions/extentions/.kres.yaml
Normal file
167
extentions/extentions/.kres.yaml
Normal file
@ -0,0 +1,167 @@
|
||||
---
|
||||
kind: pkgfile.Build
|
||||
spec:
|
||||
targets:
|
||||
- amdgpu-firmware
|
||||
- amd-ucode
|
||||
- binfmt-misc
|
||||
- bnx2-bnx2x
|
||||
- btrfs
|
||||
- chelsio-drivers
|
||||
- chelsio-firmware
|
||||
- crun
|
||||
- drbd
|
||||
- ecr-credential-provider
|
||||
- fuse3
|
||||
- gasket-driver
|
||||
- glibc
|
||||
- gvisor
|
||||
- gvisor-debug
|
||||
- hello-world-service
|
||||
- i915-ucode
|
||||
- intel-ice-firmware
|
||||
- intel-ucode
|
||||
- iscsi-tools
|
||||
- kata-containers
|
||||
- lldpd
|
||||
- mdadm
|
||||
- mei
|
||||
- metal-agent
|
||||
- nut-client
|
||||
- nvidia-container-toolkit-lts
|
||||
- nvidia-container-toolkit-production
|
||||
- nvidia-fabricmanager-lts
|
||||
- nvidia-fabricmanager-production
|
||||
- nvidia-open-gpu-kernel-modules-lts
|
||||
- nvidia-open-gpu-kernel-modules-production
|
||||
- qemu-guest-agent
|
||||
- qlogic-firmware
|
||||
- realtek-firmware
|
||||
- spin
|
||||
- stargz-snapshotter
|
||||
- tailscale
|
||||
- thunderbolt
|
||||
- uinput
|
||||
- usb-modem-drivers
|
||||
- util-linux-tools
|
||||
- v4l-uvc-drivers
|
||||
- vmtoolsd-guest-agent
|
||||
- wasmedge
|
||||
- xen-guest-agent
|
||||
- zfs
|
||||
additionalTargets:
|
||||
nonfree:
|
||||
- nonfree-kmod-nvidia-lts
|
||||
- nonfree-kmod-nvidia-production
|
||||
reproducibleTargetName: reproducibility
|
||||
extraBuildArgs:
|
||||
- TAG
|
||||
- PKGS
|
||||
- PKGS_PREFIX
|
||||
makefile:
|
||||
extraVariables:
|
||||
- name: EXTENSIONS_IMAGE_REF
|
||||
defaultValue: $(REGISTRY_AND_USERNAME)/extensions:$(TAG)
|
||||
- name: PKGS
|
||||
defaultValue: v1.9.0-alpha.0-37-g4699763
|
||||
- name: PKGS_PREFIX
|
||||
defaultValue: ghcr.io/siderolabs
|
||||
useBldrPkgTagResolver: true
|
||||
---
|
||||
kind: common.Build
|
||||
spec:
|
||||
ignoredPaths:
|
||||
- "internal/extensions/image-digests"
|
||||
- "internal/extensions/descriptions.yaml"
|
||||
---
|
||||
kind: auto.CustomSteps
|
||||
spec:
|
||||
steps:
|
||||
- name: check-dirty
|
||||
toplevel: true
|
||||
- name: extensions
|
||||
toplevel: true
|
||||
- name: extensions-metadata
|
||||
toplevel: true
|
||||
- name: internal/extensions/image-digests
|
||||
toplevel: true
|
||||
- name: internal/extensions/descriptions.yaml
|
||||
toplevel: true
|
||||
- name: sign-images
|
||||
toplevel: true
|
||||
- name: extensions-info
|
||||
toplevel: true
|
||||
---
|
||||
kind: custom.Step
|
||||
name: extensions
|
||||
spec:
|
||||
makefile:
|
||||
enabled: true
|
||||
phony: true
|
||||
depends:
|
||||
- internal/extensions/descriptions.yaml
|
||||
script:
|
||||
- |
|
||||
@$(MAKE) docker-$@ TARGET_ARGS="--tag=$(EXTENSIONS_IMAGE_REF) --push=$(PUSH)"
|
||||
ghaction:
|
||||
enabled: true
|
||||
condition: except-pull-request
|
||||
environment:
|
||||
PUSH: true
|
||||
---
|
||||
kind: custom.Step
|
||||
name: extensions-metadata
|
||||
spec:
|
||||
makefile:
|
||||
enabled: true
|
||||
phony: true
|
||||
depends:
|
||||
- $(ARTIFACTS)/bldr
|
||||
script:
|
||||
- |
|
||||
@rm -f _out/extensions-metadata
|
||||
@$(foreach target,$(TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;)
|
||||
@$(foreach target,$(NONFREE_TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;)
|
||||
---
|
||||
kind: custom.Step
|
||||
name: internal/extensions/image-digests
|
||||
spec:
|
||||
makefile:
|
||||
enabled: true
|
||||
phony: true
|
||||
depends:
|
||||
- extensions-metadata
|
||||
script:
|
||||
- |
|
||||
@echo "Generating image digests..."
|
||||
@cat _out/extensions-metadata | xargs -I{} sh -c 'echo {}@$$(crane digest {})' > internal/extensions/image-digests
|
||||
---
|
||||
kind: custom.Step
|
||||
name: internal/extensions/descriptions.yaml
|
||||
spec:
|
||||
makefile:
|
||||
enabled: true
|
||||
phony: true
|
||||
depends:
|
||||
- internal/extensions/image-digests
|
||||
script:
|
||||
- |
|
||||
@echo "Generating image descriptions..."
|
||||
@echo -n "" > internal/extensions/descriptions.yaml
|
||||
@for image in $(shell cat internal/extensions/image-digests); do \
|
||||
crane export $$image - | tar x -O --occurrence=1 manifest.yaml | yq -r ". += {\"$$image\": {\"author\": .metadata.author, \"description\": .metadata.description}} | del(.metadata, .version)" - >> internal/extensions/descriptions.yaml; \
|
||||
done
|
||||
---
|
||||
kind: custom.Step
|
||||
name: sign-images
|
||||
spec:
|
||||
makefile:
|
||||
enabled: true
|
||||
phony: true
|
||||
script:
|
||||
- |
|
||||
@for image in $(shell crane export $(EXTENSIONS_IMAGE_REF) | tar x --to-stdout image-digests) $(EXTENSIONS_IMAGE_REF)@$$(crane digest $(EXTENSIONS_IMAGE_REF)); do \
|
||||
echo '==>' $$image; \
|
||||
cosign verify $$image --certificate-identity-regexp '@siderolabs\.com$$' --certificate-oidc-issuer https://accounts.google.com || \
|
||||
cosign sign --yes $$image; \
|
||||
done
|
1909
extentions/extentions/CHANGELOG.md
Normal file
1909
extentions/extentions/CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
373
extentions/extentions/LICENSE
Normal file
373
extentions/extentions/LICENSE
Normal file
@ -0,0 +1,373 @@
|
||||
Mozilla Public License Version 2.0
|
||||
==================================
|
||||
|
||||
1. Definitions
|
||||
--------------
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
--------------------------------
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
-------------------
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
---------------------------------------------------
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
--------------
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 6. Disclaimer of Warranty *
|
||||
* ------------------------- *
|
||||
* *
|
||||
* Covered Software is provided under this License on an "as is" *
|
||||
* basis, without warranty of any kind, either expressed, implied, or *
|
||||
* statutory, including, without limitation, warranties that the *
|
||||
* Covered Software is free of defects, merchantable, fit for a *
|
||||
* particular purpose or non-infringing. The entire risk as to the *
|
||||
* quality and performance of the Covered Software is with You. *
|
||||
* Should any Covered Software prove defective in any respect, You *
|
||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||
* essential part of this License. No use of any Covered Software is *
|
||||
* authorized under this License except under this disclaimer. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 7. Limitation of Liability *
|
||||
* -------------------------- *
|
||||
* *
|
||||
* Under no circumstances and under no legal theory, whether tort *
|
||||
* (including negligence), contract, or otherwise, shall any *
|
||||
* Contributor, or anyone who distributes Covered Software as *
|
||||
* permitted above, be liable to You for any direct, indirect, *
|
||||
* special, incidental, or consequential damages of any character *
|
||||
* including, without limitation, damages for lost profits, loss of *
|
||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||
* and all other commercial damages or losses, even if such party *
|
||||
* shall have been informed of the possibility of such damages. This *
|
||||
* limitation of liability shall not apply to liability for death or *
|
||||
* personal injury resulting from such party's negligence to the *
|
||||
* extent applicable law prohibits such limitation. Some *
|
||||
* jurisdictions do not allow the exclusion or limitation of *
|
||||
* incidental or consequential damages, so this exclusion and *
|
||||
* limitation may not apply to You. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
8. Litigation
|
||||
-------------
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
----------------
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
---------------------------
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
-------------------------------------------
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
---------------------------------------------------------
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
60
extentions/extentions/MAINTAINERS.md
Normal file
60
extentions/extentions/MAINTAINERS.md
Normal file
@ -0,0 +1,60 @@
|
||||
# Overview
|
||||
|
||||
This document contains a list of maintainers in this repo. Any questions related to an extension should be directed to the maintainers.
|
||||
|
||||
If you are interested in becoming a maintainer, please reach out to the current maintainers/create a GitHub issue.
|
||||
|
||||
If the field is marked as `Needs Maintainer`, it means that the package is currently unmaintained. If you are interested in maintaining the package, please reach out to the current maintainers/create a GitHub issue.
|
||||
|
||||
# Maintainers
|
||||
|
||||
| Name | Maintainer | Github ID |
|
||||
| ----------------------------------------- | -------------------- | -------------------------------------------------------------------- |
|
||||
| amdgpu-firmware | Sidero Labs | NA |
|
||||
| amd-ucode | Sidero Labs | NA |
|
||||
| binfmt-misc | Serge Logvinov | [sergelogvinov](https://github.com/sergelogvinov) |
|
||||
| bnx2-bnx2x | Sidero Labs | NA |
|
||||
| btrfs | Enno Boland | [Gottox](https://github.com/Gottox) |
|
||||
| chelsio-drivers | Sidero Labs | NA |
|
||||
| chelsio-firmware | Sidero Labs | NA |
|
||||
| crun | Henrik Gerdes | [hegerdes](https://github.com/hegerdes) |
|
||||
| drbd | Needs Maintainer | NA |
|
||||
| ecr-credential-provider | Florian Ströger | [Preisschild](https://github.com/Preisschild) |
|
||||
| fuse3 | Sidero Labs | NA |
|
||||
| gasket-driver | Sidero Labs | NA |
|
||||
| gvisor | Sidero Labs | NA |
|
||||
| gvisor-debug | Sidero Labs | NA |
|
||||
| hello-world-service | Sidero Labs | NA |
|
||||
| i915-ucode | Sidero Labs | NA |
|
||||
| intel-ice-firmware | Sidero Labs | NA |
|
||||
| intel-ucode | Sidero Labs | NA |
|
||||
| iscsi-tools | Sidero Labs | NA |
|
||||
| kata-containers | Fabiano Fidêncio | [fidencio](https://github.com/fidencio) |
|
||||
| lldpd | Nokia (Niklas Wik) | [salkin](https://github.com/salkin) |
|
||||
| mdadm | Serge Logvinov | [sergelogvinov](https://github.com/sergelogvinov) |
|
||||
| mei | Nick Meyer | [e3b0c442](https://github.com/e3b0c442) |
|
||||
| metal-agent | Sidero Labs | NA |
|
||||
| nut-client | Sidero Labs | NA |
|
||||
| nvidia-container-toolkit-lts | Sidero Labs | NA |
|
||||
| nivida-container-toolkit-production | Sidero Labs | NA |
|
||||
| nvidia-fabricmanager-lts | Sidero Labs | NA |
|
||||
| nvidia-fabricmanager-production | Sidero Labs | NA |
|
||||
| nvidia-open-gpu-kernel-modules-lts | Sidero Labs | NA |
|
||||
| nvidia-open-gpu-kernel-modules-production | Sidero Labs | NA |
|
||||
| nonfree-kmod-nvidia-lts | Sidero Labs | NA |
|
||||
| nonfree-kmod-nvidia-production | Sidero Labs | NA |
|
||||
| qemu-guest-agent | Markus Reiter | [reitermarkus](https://github.com/reitermarkus) |
|
||||
| qlogic-firmware | Sidero Labs | NA |
|
||||
| realtek-firmware | Sidero Labs | NA |
|
||||
| spin | Sven Pfennig | [0xE282B0](https://github.com/0xE282B0) |
|
||||
| stargz-snapshotter | Sidero Labs | NA |
|
||||
| tailscale | Beau Trepp | [btrepp](https://github.com/btrepp) |
|
||||
| thunderbolt | Igor Rzegocki | [ajgon](https://github.com/ajgon) |
|
||||
| uinput | Judah Rand | [judahrand](https://github.com/judahrand) |
|
||||
| usb-modem-drivers | Sidero Labs | NA |
|
||||
| util-linux-tools | Sidero Labs | NA |
|
||||
| v4l-uvc-drivers | Jacob McSwain | [USA-RedDragon](https://github.com/USA-RedDragon) |
|
||||
| vmtoolsd-guest-agent | Robin Elfrink | [robinelfrink](https://github.com/robinelfrink) |
|
||||
| wasmedge | Sidero Labs | NA |
|
||||
| xen-guest-agent | Jerwin NJ | [j3rwin](https://github.com/j3rwin) |
|
||||
| zfs | Andrei Kvapil, Aenix | [kvaps](https://github.com/kvaps), [donch](https://github.com/donch) |
|
213
extentions/extentions/Makefile
Normal file
213
extentions/extentions/Makefile
Normal file
@ -0,0 +1,213 @@
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2024-11-07T11:26:53Z by kres 1fc767a.
|
||||
|
||||
# common variables
|
||||
|
||||
SHA := $(shell git describe --match=none --always --abbrev=8 --dirty)
|
||||
TAG := $(shell git describe --tag --always --dirty --match v[0-9]\*)
|
||||
ABBREV_TAG := $(shell git describe --tags >/dev/null 2>/dev/null && git describe --tag --always --match v[0-9]\* --abbrev=0 || echo 'undefined')
|
||||
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
||||
ARTIFACTS := _out
|
||||
IMAGE_TAG ?= $(TAG)
|
||||
OPERATING_SYSTEM := $(shell uname -s | tr '[:upper:]' '[:lower:]')
|
||||
GOARCH := $(shell uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
|
||||
REGISTRY ?= registry.altlinux.org
|
||||
USERNAME ?= kaf
|
||||
REGISTRY_AND_USERNAME ?= $(REGISTRY)/$(USERNAME)
|
||||
KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest
|
||||
CONFORMANCE_IMAGE ?= ghcr.io/siderolabs/conform:latest
|
||||
|
||||
# source date epoch of first commit
|
||||
|
||||
INITIAL_COMMIT_SHA := $(shell git rev-list --max-parents=0 HEAD)
|
||||
SOURCE_DATE_EPOCH := $(shell git log $(INITIAL_COMMIT_SHA) --pretty=%ct)
|
||||
|
||||
# sync bldr image with pkgfile
|
||||
|
||||
BLDR_RELEASE := v0.3.2
|
||||
BLDR_IMAGE := ghcr.io/siderolabs/bldr:$(BLDR_RELEASE)
|
||||
BLDR := docker run --rm --user $(shell id -u):$(shell id -g) --volume $(PWD):/src --entrypoint=/bldr $(BLDR_IMAGE) --root=/src
|
||||
|
||||
# docker build settings
|
||||
|
||||
BUILD := docker buildx build
|
||||
PLATFORM ?= linux/amd64,linux/arm64
|
||||
PROGRESS ?= auto
|
||||
PUSH ?= false
|
||||
CI_ARGS ?=
|
||||
COMMON_ARGS = --file=Pkgfile
|
||||
COMMON_ARGS += --provenance=false
|
||||
COMMON_ARGS += --progress=$(PROGRESS)
|
||||
COMMON_ARGS += --platform=$(PLATFORM)
|
||||
COMMON_ARGS += --build-arg=SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH)
|
||||
COMMON_ARGS += --build-arg=BUILDKIT_MULTI_PLATFORM=1
|
||||
COMMON_ARGS += --build-arg=TAG="$(TAG)"
|
||||
COMMON_ARGS += --build-arg=PKGS="$(PKGS)"
|
||||
COMMON_ARGS += --build-arg=PKGS_PREFIX="$(PKGS_PREFIX)"
|
||||
|
||||
# extra variables
|
||||
|
||||
EXTENSIONS_IMAGE_REF ?= $(REGISTRY_AND_USERNAME)/extensions:$(TAG)
|
||||
PKGS ?= v1.9.0-alpha.0-37-g4699763
|
||||
PKGS_PREFIX ?= ghcr.io/siderolabs
|
||||
|
||||
# targets defines all the available targets
|
||||
|
||||
|
||||
TARGETS += crun
|
||||
|
||||
NONFREE_TARGETS =
|
||||
|
||||
# help menu
|
||||
|
||||
export define HELP_MENU_HEADER
|
||||
# Getting Started
|
||||
|
||||
To build this project, you must have the following installed:
|
||||
|
||||
- git
|
||||
- make
|
||||
- docker (19.03 or higher)
|
||||
|
||||
## Creating a Builder Instance
|
||||
|
||||
The build process makes use of experimental Docker features (buildx).
|
||||
To enable experimental features, add 'experimental: "true"' to '/etc/docker/daemon.json' on
|
||||
Linux or enable experimental features in Docker GUI for Windows or Mac.
|
||||
|
||||
To create a builder instance, run:
|
||||
|
||||
docker buildx create --name local --use
|
||||
|
||||
If running builds that needs to be cached aggresively create a builder instance with the following:
|
||||
|
||||
docker buildx create --name local --use --config=config.toml
|
||||
|
||||
config.toml contents:
|
||||
|
||||
[worker.oci]
|
||||
gc = true
|
||||
gckeepstorage = 50000
|
||||
|
||||
[[worker.oci.gcpolicy]]
|
||||
keepBytes = 10737418240
|
||||
keepDuration = 604800
|
||||
filters = [ "type==source.local", "type==exec.cachemount", "type==source.git.checkout"]
|
||||
[[worker.oci.gcpolicy]]
|
||||
all = true
|
||||
keepBytes = 53687091200
|
||||
|
||||
If you already have a compatible builder instance, you may use that instead.
|
||||
|
||||
## Artifacts
|
||||
|
||||
All artifacts will be output to ./$(ARTIFACTS). Images will be tagged with the
|
||||
registry "$(REGISTRY)", username "$(USERNAME)", and a dynamic tag (e.g. $(IMAGE):$(IMAGE_TAG)).
|
||||
The registry and username can be overridden by exporting REGISTRY, and USERNAME
|
||||
respectively.
|
||||
|
||||
endef
|
||||
|
||||
all: $(TARGETS) ## Builds all targets defined.
|
||||
|
||||
$(ARTIFACTS): ## Creates artifacts directory.
|
||||
@mkdir -p $(ARTIFACTS)
|
||||
|
||||
.PHONY: clean
|
||||
clean: ## Cleans up all artifacts.
|
||||
@rm -rf $(ARTIFACTS)
|
||||
|
||||
target-%: ## Builds the specified target defined in the Pkgfile. The build result will only remain in the build cache.
|
||||
@$(BUILD) --target=$* $(COMMON_ARGS) $(TARGET_ARGS) $(CI_ARGS) .
|
||||
|
||||
local-%: ## Builds the specified target defined in the Pkgfile using the local output type. The build result will be output to the specified local destination.
|
||||
@$(MAKE) target-$* TARGET_ARGS="--output=type=local,dest=$(DEST) $(TARGET_ARGS)"
|
||||
@PLATFORM=$(PLATFORM) ARTIFACTS=$(ARTIFACTS) bash -c '\
|
||||
for platform in $$(tr "," "\n" <<< "$$PLATFORM"); do \
|
||||
echo $$platform; \
|
||||
directory="$${platform//\//_}"; \
|
||||
if [[ -d "$$ARTIFACTS/$$directory" ]]; then \
|
||||
mv "$$ARTIFACTS/$$directory/"* $$ARTIFACTS; \
|
||||
rmdir "$$ARTIFACTS/$$directory/"; \
|
||||
fi; \
|
||||
done'
|
||||
|
||||
docker-%: ## Builds the specified target defined in the Pkgfile using the docker output type. The build result will be loaded into Docker.
|
||||
@$(MAKE) target-$* TARGET_ARGS="$(TARGET_ARGS)"
|
||||
|
||||
reproducibility-test: ## Builds the reproducibility test target
|
||||
@$(MAKE) reproducibility-test-local-reproducibility
|
||||
|
||||
reproducibility-test-local-%: ## Builds the specified target defined in the Pkgfile using the local output type with and without cahce. The build result will be output to the specified local destination
|
||||
@rm -rf $(ARTIFACTS)/build-a $(ARTIFACTS)/build-b
|
||||
@$(MAKE) local-$* DEST=$(ARTIFACTS)/build-a
|
||||
@$(MAKE) local-$* DEST=$(ARTIFACTS)/build-b TARGET_ARGS="--no-cache"
|
||||
@touch -ch -t $$(date -d @$(SOURCE_DATE_EPOCH) +%Y%m%d0000) $(ARTIFACTS)/build-a $(ARTIFACTS)/build-b
|
||||
@diffoscope $(ARTIFACTS)/build-a $(ARTIFACTS)/build-b
|
||||
@rm -rf $(ARTIFACTS)/build-a $(ARTIFACTS)/build-b
|
||||
|
||||
nonfree: $(NONFREE_TARGETS) ## Builds all nonfree targets defined.
|
||||
|
||||
.PHONY: $(TARGETS) $(NONFREE_TARGETS)
|
||||
$(TARGETS) $(NONFREE_TARGETS): $(ARTIFACTS)/bldr
|
||||
@$(MAKE) docker-$@ TARGET_ARGS="--tag=$(REGISTRY)/$(USERNAME)/$@:$(shell $(ARTIFACTS)/bldr eval --target $@ --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) --push=$(PUSH)"
|
||||
|
||||
$(ARTIFACTS)/bldr: $(ARTIFACTS) ## Downloads bldr binary.
|
||||
@curl -sSL https://github.com/siderolabs/bldr/releases/download/$(BLDR_RELEASE)/bldr-$(OPERATING_SYSTEM)-$(GOARCH) -o $(ARTIFACTS)/bldr
|
||||
@chmod +x $(ARTIFACTS)/bldr
|
||||
|
||||
.PHONY: deps.png
|
||||
deps.png: ## Generates a dependency graph of the Pkgfile.
|
||||
@$(BLDR) graph | dot -Tpng -o deps.png
|
||||
|
||||
.PHONY: extensions
|
||||
extensions: internal/extensions/descriptions.yaml
|
||||
@$(MAKE) docker-$@ TARGET_ARGS="--tag=$(EXTENSIONS_IMAGE_REF) --push=$(PUSH)"
|
||||
|
||||
.PHONY: extensions-metadata
|
||||
extensions-metadata: $(ARTIFACTS)/bldr
|
||||
@rm -f _out/extensions-metadata
|
||||
@$(foreach target,$(TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;)
|
||||
@$(foreach target,$(NONFREE_TARGETS),echo $(REGISTRY)/$(USERNAME)/$(target):$(shell $(ARTIFACTS)/bldr eval --target $(target) --build-arg TAG=$(TAG) '{{.VERSION}}' 2>/dev/null) >> _out/extensions-metadata;)
|
||||
|
||||
.PHONY: internal/extensions/image-digests
|
||||
internal/extensions/image-digests: extensions-metadata
|
||||
@echo "Generating image digests..."
|
||||
@cat _out/extensions-metadata | xargs -I{} sh -c 'echo {}@$$(crane digest {})' > internal/extensions/image-digests
|
||||
|
||||
.PHONY: internal/extensions/descriptions.yaml
|
||||
internal/extensions/descriptions.yaml: internal/extensions/image-digests
|
||||
@echo "Generating image descriptions..."
|
||||
@echo -n "" > internal/extensions/descriptions.yaml
|
||||
@for image in $(shell cat internal/extensions/image-digests); do \
|
||||
crane export $$image - | tar x -O --occurrence=1 manifest.yaml | yq -r ". += {\"$$image\": {\"author\": .metadata.author, \"description\": .metadata.description}} | del(.metadata, .version)" - >> internal/extensions/descriptions.yaml; \
|
||||
done
|
||||
|
||||
.PHONY: sign-images
|
||||
sign-images:
|
||||
@for image in $(shell crane export $(EXTENSIONS_IMAGE_REF) | tar x --to-stdout image-digests) $(EXTENSIONS_IMAGE_REF)@$$(crane digest $(EXTENSIONS_IMAGE_REF)); do \
|
||||
echo '==>' $$image; \
|
||||
cosign verify $$image --certificate-identity-regexp '@siderolabs\.com$$' --certificate-oidc-issuer https://accounts.google.com || \
|
||||
cosign sign --yes $$image; \
|
||||
done
|
||||
|
||||
.PHONY: rekres
|
||||
rekres:
|
||||
@docker pull $(KRES_IMAGE)
|
||||
@docker run --rm --net=host --user $(shell id -u):$(shell id -g) -v $(PWD):/src -w /src -e GITHUB_TOKEN $(KRES_IMAGE)
|
||||
|
||||
.PHONY: help
|
||||
help: ## This help menu.
|
||||
@echo "$$HELP_MENU_HEADER"
|
||||
@grep -E '^[a-zA-Z%_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
.PHONY: release-notes
|
||||
release-notes: $(ARTIFACTS)
|
||||
@ARTIFACTS=$(ARTIFACTS) ./hack/release.sh $@ $(ARTIFACTS)/RELEASE_NOTES.md $(TAG)
|
||||
|
||||
.PHONY: conformance
|
||||
conformance:
|
||||
@docker pull $(CONFORMANCE_IMAGE)
|
||||
@docker run --rm -it -v $(PWD):/src -w /src $(CONFORMANCE_IMAGE) enforce
|
||||
|
17
extentions/extentions/Pkgfile
Normal file
17
extentions/extentions/Pkgfile
Normal file
@ -0,0 +1,17 @@
|
||||
# syntax = ghcr.io/siderolabs/bldr:v0.3.2
|
||||
|
||||
format: v1alpha2
|
||||
|
||||
vars:
|
||||
LINUX_FIRMWARE_VERSION: "20241017" # update this when updating PKGS_VERSION in Makefile
|
||||
DRBD_DRIVER_VERSION: 9.2.11 # update this when updating PKGS_VERSION in Makefile
|
||||
ZFS_DRIVER_VERSION: 2.2.6 # update this when updating PKGS_VERSION in Makefile
|
||||
UTIL_LINUX_VERSION: 2.39.2 # 2.40.2 # update this when updating PKGS_VERSION in Makefile
|
||||
|
||||
# renovate: datasource=git-tags extractVersion=^libtiprc-(?<version>.*)$ depName=git://linux-nfs.org/~steved/libtirpc
|
||||
LIBTIRPC_VERSION: 1-3-3
|
||||
# renovate: datasource=github-tags extractVersion=^v(?<version>.*)$ depName=madler/zlib
|
||||
ZLIB_VERSION: 1.3.1
|
||||
|
||||
labels:
|
||||
org.opencontainers.image.source: https://github.com/siderolabs/extensions
|
209
extentions/extentions/README.md
Normal file
209
extentions/extentions/README.md
Normal file
@ -0,0 +1,209 @@
|
||||
# Talos Linux System Extensions
|
||||
|
||||
This repo serves as a central place for publishing supported extensions to Talos Linux.
|
||||
Extensions allow for additional functionality on top of the default Talos Linux capabilities.
|
||||
Things like gVisor, GPU support, etc. are good candidates for extensions.
|
||||
|
||||
## Using Extensions
|
||||
|
||||
Extensions in this repo are published as container images.
|
||||
These images can be added to the the Talos Linux [boot asset](https://www.talos.dev/latest/talos-guides/install/boot-assets/) to produce a final boot asset containing a base Talos `initramfs` and
|
||||
a set of [system extensions](https://www.talos.dev/latest/talos-guides/configuration/system-extensions/) appended to it.
|
||||
|
||||
The extension image is composed of a `manifest.yaml` file that provides information and compatibility information, as well as a `rootfs` that contains things like compiled binaries that are bind mounted into the system.
|
||||
|
||||
## Installing Extensions
|
||||
|
||||
In order to find a container reference for a system extension compatible with your Talos Linux version, you can use the following command:
|
||||
|
||||
```bash
|
||||
crane export ghcr.io/siderolabs/extensions:v<talos-version> | tar x -O image-digests | grep <extension-name>
|
||||
```
|
||||
|
||||
For example, to find a compatible version of the `gasket-driver` extension for Talos v1.5.3, you can run:
|
||||
|
||||
```bash
|
||||
$ crane export ghcr.io/siderolabs/extensions:v1.5.3 | tar x -O image-digests | grep gasket-driver
|
||||
ghcr.io/siderolabs/gasket-driver:97aeba58-v1.5.3@sha256:c786edb356edae3b451cb82d5322f94e54ea0710195181b93ae37ccc8e7ba908
|
||||
```
|
||||
|
||||
Please always use the pinned digest when referencing an extension image.
|
||||
|
||||
All extensions are signed with Google Accounts OIDC issuer matching `@siderolabs.com` domain, so the image signatures can be verified, for example:
|
||||
|
||||
```bash
|
||||
cosign verify --certificate-identity-regexp '@siderolabs\.com$' --certificate-oidc-issuer https://accounts.google.com ghcr.io/siderolabs/extensions:v1.5.3
|
||||
cosign verify --certificate-identity-regexp '@siderolabs\.com$' --certificate-oidc-issuer https://accounts.google.com ghcr.io/siderolabs/gasket-driver:97aeba58-v1.5.3@sha256:c786edb356edae3b451cb82d5322f94e54ea0710195181b93ae37ccc8e7ba908
|
||||
```
|
||||
|
||||
## Extension Catalog
|
||||
|
||||
### Container Runtimes
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
|
||||
| [crun](container-runtime/crun/) | [ghcr.io/siderolabs/crun](https://github.com/siderolabs/extensions/pkgs/container/crun) | [crun](https://github.com/containers/crun) container runtime | `upstream version` |
|
||||
| [gvisor](container-runtime/gvisor/) | [ghcr.io/siderolabs/gvisor](https://github.com/siderolabs/extensions/pkgs/container/gvisor) | [gVisor](https://gvisor.dev/) container runtime | `upstream version` |
|
||||
| [stargz-snapshotter](container-runtime/stargz-snapshotter/) | [ghcr.io/siderolabs/stargz-snapshotter](https://github.com/siderolabs/extensions/pkgs/container/stargz-snapshotter) | [Stargz Snapshotter](https://github.com/containerd/stargz-snapshotter) container runtime | `upstream version` |
|
||||
| [ecr-credential-provider](container-runtime/ecr-credential-provider) | [ghcr.io/siderolabs/ecr-credential-provider](https://github.com/siderolabs/extensions/pkgs/container/ecr-credential-provider) | [ECR Credential Provider](https://github.com/kubernetes/cloud-provider-aws/tree/master/cmd/ecr-credential-provider) kubelet plugin | `upstream version` |
|
||||
| [wasmedge](container-runtime/wasmedge) | [ghcr.io/siderolabs/wasmedge](https://github.com/siderolabs/extensions/pkgs/container/wasmedge) | [WasmEdge](https://github.com/containerd/runwasi) container runtime | `upstream_version` |
|
||||
| [spin](container-runtime/spin) | [ghcr.io/siderolabs/spin](https://github.com/siderolabs/extensions/pkgs/container/spin) | [Spin](https://github.com/spinkube/containerd-shim-spin) container runtime | `upstream_version` |
|
||||
| [kata-containers](container-runtime/kata-containers) | [ghcr.io/siderolabs/kata-containers](https://github.com/siderolabs/extensions/pkgs/container/kata-containers) | [Kata Containers](https://github.com/kata-containers/kata-containers) container runtime | `upstream version` |
|
||||
|
||||
### Firmware
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------ |
|
||||
| [amd-ucode](firmware/amd-ucode/) | [ghcr.io/siderolabs/amd-ucode](https://github.com/siderolabs/extensions/pkgs/container/amd-ucode) | AMD CPU microcode updates | `linux firmware version` |
|
||||
| [amdgpu-firmware](firmware/amdgpu-firmware/) | [ghcr.io/siderolabs/amdgpu-firmware](https://github.com/siderolabs/extensions/pkgs/container/amdgpu-firmware) | AMD GPU firmware | `linux firmware version` |
|
||||
| [bnx2-bnx2x](firmware/bnx2-bnx2x/) | [ghcr.io/siderolabs/bnx2-bnx2x](https://github.com/siderolabs/extensions/pkgs/container/bnx2-bnx2x) | Broadcom NetXtreme firmware | `linux firmware version` |
|
||||
| [chelsio-firmware](firmware/chelsio-firmware/) | [ghcr.io/siderolabs/chelsio-firmware](https://github.com/siderolabs/extensions/pkgs/container/chelsio-firmware) | Chelsio NIC firmware | `linux firmware version` |
|
||||
| [i915-ucode](firmware/i915-ucode/) | [ghcr.io/siderolabs/i915-ucode](https://github.com/siderolabs/extensions/pkgs/container/i915-ucode) | Intel GPU firmware | `linux firmware version` |
|
||||
| [intel-ice-firmware](firmware/intel-ice-firmware/) | [ghcr.io/siderolabs/intel-ice-firmware](https://github.com/siderolabs/extensions/pkgs/container/intel-ice-firmware) | Intel ICE NIC firmware | `linux firmware version` |
|
||||
| [intel-ucode](firmware/intel-ucode/) | [ghcr.io/siderolabs/intel-ucode](https://github.com/siderolabs/extensions/pkgs/container/intel-ucode) | Intel CPU microcode updates | `upstream version` |
|
||||
| [qlogic-firmware](firmware/qlogic-firmware/) | [ghcr.io/siderolabs/qlogic-firmware](https://github.com/siderolabs/extensions/pkgs/container/qlogic-firmware) | Qlogic firmware | `linux firmware version` |
|
||||
| [realtek-firmware](firmware/realtek-firmware/) | [ghcr.io/siderolabs/realtek-firmware](https://github.com/siderolabs/extensions/pkgs/container/realtek-firmware) | Realtek firmware | `linux firmware version` |
|
||||
|
||||
### Drivers
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ----------------------------------------------------- |
|
||||
| [chelsio](drivers/chelsio/) | [ghcr.io/siderolabs/chelsio-drivers](https://github.com/siderolabs/extensions/pkgs/container/chelsio-drivers) | Chelsio NIC drivers | `talos version` |
|
||||
| [gasket](drivers/gasket/) | [ghcr.io/siderolabs/gasket-driver](https://github.com/siderolabs/extensions/pkgs/container/gasket-driver) | Driver for Google Coral PCIe devices | `gasket driver upstream short commit`-`talos version` |
|
||||
| [mei](drivers/mei/) | [ghcr.io/siderolabs/mei](https://github.com/siderolabs/extensions/pkgs/container/mei) | Driver for Intel Management Engine | `talos version` |
|
||||
| [nvidia](nvidia-gpu/nvidia-modules/) | [ghcr.io/siderolabs/nvidia-open-gpu-kernel-modules](https://github.com/siderolabs/extensions/pkgs/container/nvidia-open-gpu-kernel-modules) | NVIDIA OSS Driver | `nvidia driver upstream version`-`talos version` |
|
||||
| [thunderbolt](drivers/thunderbolt/) | [ghcr.io/siderolabs/thunderbolt](https://github.com/siderolabs/extensions/pkgs/container/thunderbolt) | Thunderbolt drivers | `talos version` |
|
||||
| [uinput](drivers/uinput/) | [ghcr.io/siderolabs/uinput](https://github.com/siderolabs/extensions/pkgs/container/uinput) | uinput drivers | `talos version` |
|
||||
| [usb-modem](drivers/usb-modem/) | [ghcr.io/siderolabs/usb-modem-drivers](https://github.com/siderolabs/extensions/pkgs/container/usb-modem-drivers) | USB Modem drivers | `talos version` |
|
||||
| [v4l-uvc](drivers/v4l-uvc/) | [ghcr.io/siderolabs/v4l-uvc-drivers](https://github.com/siderolabs/extensions/pkgs/container/v4l-uvc-drivers) | USB Video Class (Webcam) drivers | `talos version` |
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
| ------------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------- | ------------------ |
|
||||
| [binfmt-misc](misc/binfmt-misc) | [ghcr.io/siderolabs/binfmt-misc](https://github.com/siderolabs/extensions/pkgs/container/binfmt-misc) | Miscellaneous Binary Format | `talos version` |
|
||||
| [glibc](misc/glibc) | [ghcr.io/siderolabs/glibc](https://github.com/siderolabs/extensions/pkgs/container/glibc) | glibc | `upstream version` |
|
||||
|
||||
### Network
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
| ------------------------------- | ------------------------------------------------------------------------------------------------- | -------------------------------------- | ------------------ |
|
||||
| [tailscale](network/tailscale/) | [ghcr.io/siderolabs/tailscale](https://github.com/siderolabs/extensions/pkgs/container/tailscale) | [Tailscale](https://tailscale.com) | `upstream version` |
|
||||
| [lldpd](network/lldpd/) | [ghcr.io/siderolabs/lldpd](https://github.com/siderolabs/extensions/pkgs/container/lldpd) | [LLDP](https://github.com/lldpd/lldpd) | `upstream version` |
|
||||
|
||||
### Storage
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
| ----------------------------------- | ----------------------------------------------------------------------------------------------------- | ---------------------- | ---------------------------------- |
|
||||
| [iscsi-tools](storage/iscsi-tools/) | [ghcr.io/siderolabs/iscsi-tools](https://github.com/siderolabs/extensions/pkgs/container/iscsi-tools) | Open iSCSI tools | `v0.1.0` |
|
||||
| [mdadm](storage/mdadm/) | [ghcr.io/siderolabs/mdadm](https://github.com/siderolabs/extensions/pkgs/container/mdadm) | manage MD devices tool | `upstream version` |
|
||||
| [drbd](storage/drbd/) | [ghcr.io/siderolabs/drbd](https://github.com/siderolabs/extensions/pkgs/container/drbd) | DRBD driver module | `upstream version`-`talos version` |
|
||||
| [zfs](storage/zfs/) | [ghcr.io/siderolabs/zfs](https://github.com/siderolabs/extensions/pkgs/container/zfs) | ZFS driver module | `upstream version`-`talos version` |
|
||||
| [btrfs](storage/btrfs/) | [ghcr.io/siderolabs/btrfs](https://github.com/siderolabs/extensions/pkgs/container/btrfs) | BTRFS driver module | `talos version` |
|
||||
|
||||
### Power
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
| ------------------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | ------------------ |
|
||||
| [nut-client](power/nut-client/) | [ghcr.io/siderolabs/nut-client](https://github.com/siderolabs/extensions/pkgs/container/nut-client) | [Network UPS Tools](https://networkupstools.org) upsmon client | `upstream version` |
|
||||
|
||||
### Guest Agents
|
||||
|
||||
| Name | Image | Description | Version Format |
|
||||
|------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|--------------------|
|
||||
| [metal-agent](guest-agents/metal-agent/) | [ghcr.io/siderolabs/metal-agent](https://github.com/siderolabs/extensions/pkgs/container/metal-agent) | [Talos Metal Agent](https://github.com/siderolabs/talos-metal-agent) | `upstream version` |
|
||||
| [qemu-guest-agent](guest-agents/qemu-guest-agent/) | [ghcr.io/siderolabs/qemu-guest-agent](https://github.com/siderolabs/extensions/pkgs/container/qemu-guest-agent) | [QEMU Guest Agent](https://wiki.qemu.org/Features/GuestAgent) | `upstream version` |
|
||||
| [xe-guest-utilities](guest-agents/xe-guest-utilities/) | [ghcr.io/siderolabs/xe-guest-utilities](https://github.com/siderolabs/extensions/pkgs/container/xe-guest-utilities) | [xe-guest-utilities](https://github.com/xenserver/xe-guest-utilitiest) | `upstream version` |
|
||||
| [vmtoolsd-guest-agent](guest-agents/vmtoolsd-guest-agent/) | [ghcr.io/siderolabs/vmtoolsd-guest-agent](https://github.com/siderolabs/extensions/pkgs/container/vmtoolsd-guest-agent) | [talos-vmtoolsd](https://github.com/siderolabs/talos-vmtoolsd) | `upstream version` |
|
||||
|
||||
### NVIDIA GPU
|
||||
|
||||
| Name | Description | Version Format |
|
||||
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
|
||||
| [nvidia-container-toolkit](nvidia-gpu/nvidia-container-toolkit/) | Tools to run [NVIDIA GPU workloads](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html) in containers | `driver version`-`toolkit version` |
|
||||
| [nvidia-fabricmanager](nvidia-gpu/nvidia-fabricmanager/) | [NVIDIA fabric manager](https://docs.nvidia.com/datacenter/tesla/pdf/fabric-manager-user-guide.pdf) support for GPU workloads | `driver version` |
|
||||
| [nvidia-open-gpu-kernel-modules](nvidia-gpu/nvidia-modules/) | NVIDIA driver kernel modules | `driver version`-`talos version` |
|
||||
|
||||
#### Tools
|
||||
|
||||
| Name | Description | Version Format |
|
||||
| ------------------------------------- | ----------------------------------------- | ------------------ |
|
||||
| [util-linux-tools](tools/util-linux/) | Util Linux tools (`fstrim` and `nsenter`) | `upstream version` |
|
||||
|
||||
## Building Extensions
|
||||
|
||||
In the current form, building extensions requires the use of our [bldr](https://github.com/siderolabs/bldr) tool.
|
||||
It is highly recommended to take a look at an existing extensions as a template for building your own.
|
||||
The rough flow should look like the following:
|
||||
|
||||
- Create a `manifest.yaml` file that contains information about your system extension. See instructions below for this file.
|
||||
- Create a `pkg.yaml` file that details the full flow of downloading, building, installing your application.
|
||||
- Once you have these, add your extension to the `TARGETS` list in the `Makefile`.
|
||||
- You can now build your extension using make like `make <extension-name> PLATFORM=linux/amd64`
|
||||
- If you wish to output the contents of the image and validate your install, you can issue `make local-<extension-name> PLATFORM=linux/amd64 DEST=_out`. The contents will then be present in the `_out` directory.
|
||||
|
||||
### Creating `manifest.yaml`
|
||||
|
||||
The `manifest.yaml` file should match the following format:
|
||||
|
||||
```yaml
|
||||
version: v1alpha1
|
||||
metadata:
|
||||
name: <extension name>
|
||||
version: <version of the package the extension installs>-<version of the extensions repo (tracks with talos version)>
|
||||
author: Andrew Rynhard
|
||||
description: |
|
||||
<detailed description of the extension/package>
|
||||
## The compatibility section is "optional" but highly recommended to specify a Talos version that
|
||||
## has been tested and known working for this extension.
|
||||
compatibility:
|
||||
talos:
|
||||
version: ">= v1.0.0"
|
||||
```
|
||||
|
||||
### Creating `pkg.yaml`
|
||||
|
||||
Creating a `pkg.yaml` file is the normal process from bldr.
|
||||
See instructions [here](https://github.com/siderolabs/bldr#pkgyaml) for details and examples on this format.
|
||||
Using other existing extensions in this repo for tips is also highly recommended.
|
||||
One important note is that the final directory tree of the generated package should look like this example from the `gvisor` package:
|
||||
|
||||
```bash
|
||||
├── manifest.yaml
|
||||
└── rootfs
|
||||
├── etc
|
||||
│ └── cri
|
||||
│ └── conf.d
|
||||
│ └── gvisor.part
|
||||
└── usr
|
||||
└── local
|
||||
└── bin
|
||||
├── containerd-shim-runsc-v1
|
||||
└── runsc
|
||||
|
||||
```
|
||||
|
||||
Note that the `manifest.yaml` file lives at the root, while all installed files live under `/rootfs` with the full tree of where they should live on the eventual Talos Linux install.
|
||||
|
||||
### `rootfs` Restrictions
|
||||
|
||||
The following restrictions are applied to the contents of the `rootfs` of the system extension:
|
||||
|
||||
- no special files (FIFOs, devices, etc.)
|
||||
- no world-writeable files or directories
|
||||
|
||||
Any paths in the `rootfs` should be contained within the following hierarchies:
|
||||
|
||||
- `/etc/cri/conf.d/`
|
||||
- `/lib/firmware/`
|
||||
- `/lib/modules/`
|
||||
- `/lib64/ld-linux-x86-64.so.2`
|
||||
- `/usr/lib/udev/rules.d/`
|
||||
- `/usr/local/`
|
||||
- `/usr/share/glvnd/`
|
||||
- `/usr/share/egl/`
|
||||
- `/etc/vulkan/`
|
||||
|
||||
## Dependency Diagram
|
||||
|
||||
![Dependency Diagram](/deps.png)
|
43
extentions/extentions/container-runtime/crun/README.md
Normal file
43
extentions/extentions/container-runtime/crun/README.md
Normal file
@ -0,0 +1,43 @@
|
||||
# crun extension
|
||||
|
||||
## Installation
|
||||
|
||||
See [Installing Extensions](https://github.com/siderolabs/extensions#installing-extensions).
|
||||
|
||||
## Usage
|
||||
|
||||
In order to create the Wasm workload, a runtimeclass needs to be created.
|
||||
|
||||
```yaml
|
||||
apiVersion: node.k8s.io/v1
|
||||
kind: RuntimeClass
|
||||
metadata:
|
||||
name: crun
|
||||
handler: crun
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
Apply the following manifest to run nginx pod via crun:
|
||||
|
||||
```yaml
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: nginx-crun
|
||||
spec:
|
||||
runtimeClassName: crun
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx
|
||||
```
|
||||
|
||||
The pod should be up and running:
|
||||
|
||||
```bash
|
||||
$ kubectl get pods
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
nginx-crun 1/1 Running 0 40s
|
||||
```
|
5
extentions/extentions/container-runtime/crun/crun.part
Normal file
5
extentions/extentions/container-runtime/crun/crun.part
Normal file
@ -0,0 +1,5 @@
|
||||
[plugins."io.containerd.cri.v1.runtime".containerd.runtimes.crun]
|
||||
runtime_type = "io.containerd.runc.v2"
|
||||
|
||||
[plugins."io.containerd.cri.v1.runtime".containerd.runtimes.crun.options]
|
||||
BinaryName = "/usr/local/bin/crun"
|
10
extentions/extentions/container-runtime/crun/manifest.yaml
Normal file
10
extentions/extentions/container-runtime/crun/manifest.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
version: v1alpha1
|
||||
metadata:
|
||||
name: crun
|
||||
version: "$VERSION"
|
||||
author: Henrik Gerdes
|
||||
description: |
|
||||
This system extension provides crun using containerd's runtime handler.
|
||||
compatibility:
|
||||
talos:
|
||||
version: ">= v1.8.0"
|
29
extentions/extentions/container-runtime/crun/pkg.yaml
Normal file
29
extentions/extentions/container-runtime/crun/pkg.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
name: crun
|
||||
variant: scratch
|
||||
shell: /toolchain/bin/bash
|
||||
dependencies:
|
||||
- stage: base
|
||||
- image: registry.altlinux.org/alt/alt:sisyphus
|
||||
steps:
|
||||
- prepare:
|
||||
- |
|
||||
sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml
|
||||
install:
|
||||
- |
|
||||
apt-get update
|
||||
apt-get install -y crun
|
||||
|
||||
- |
|
||||
mkdir -p /rootfs/usr/local/bin
|
||||
cp -av /usr/bin/crun /rootfs/usr/local/bin/crun
|
||||
chmod +x /rootfs/usr/local/bin/crun
|
||||
|
||||
- |
|
||||
mkdir -p /rootfs/etc/cri/conf.d
|
||||
cp /pkg/crun.part /rootfs/etc/cri/conf.d/crun.part
|
||||
|
||||
finalize:
|
||||
- from: /rootfs
|
||||
to: /rootfs
|
||||
- from: /pkg/manifest.yaml
|
||||
to: /
|
1
extentions/extentions/container-runtime/crun/vars.yaml
Normal file
1
extentions/extentions/container-runtime/crun/vars.yaml
Normal file
@ -0,0 +1 @@
|
||||
VERSION: "{{ .CRUN_VERSION }}"
|
14
extentions/extentions/container-runtime/vars.yaml
Normal file
14
extentions/extentions/container-runtime/vars.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
# renovate: datasource=github-tags extractVersion=^release-(?<version>.*)$ depName=google/gvisor
|
||||
GVISOR_VERSION: 20241007.0
|
||||
# renovate: datasource=github-releases depName=containerd/stargz-snapshotter
|
||||
STARGZ_SNAPSHOTTER_VERSION: v0.15.1
|
||||
# renovate: datasource=github-releases depName=kubernetes/cloud-provider-aws
|
||||
CLOUD_PROVIDER_AWS_VERSION: v1.31.1
|
||||
# renovate: datasource=git-tags extractVersion=^containerd-shim-wasmedge\/(?<version>.*)$ depName=https://github.com/containerd/runwasi.git
|
||||
WASMEDGE_VERSION: v0.4.0
|
||||
# renovate: datasource=git-tags depName=https://github.com/spinkube/containerd-shim-spin.git
|
||||
SPIN_VERSION: v0.16.0
|
||||
# renovate: datasource=github-releases depName=kata-containers/kata-containers
|
||||
KATA_CONTAINERS_VERSION: 3.3.0
|
||||
# renovate: datasource=github-releases depName=containers/crun
|
||||
CRUN_VERSION: 1.17
|
BIN
extentions/extentions/deps.png
Normal file
BIN
extentions/extentions/deps.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
8
extentions/extentions/go.work
Normal file
8
extentions/extentions/go.work
Normal file
@ -0,0 +1,8 @@
|
||||
go 1.22
|
||||
|
||||
use (
|
||||
./examples/hello-world-service/src
|
||||
./nvidia-gpu/nvidia-container-toolkit/nvidia-container-runtime-wrapper
|
||||
./nvidia-gpu/nvidia-container-toolkit/nvidia-persistenced-wrapper
|
||||
./storage/iscsi-tools/iscsid-wrapper
|
||||
)
|
8
extentions/extentions/go.work.sum
Normal file
8
extentions/extentions/go.work.sum
Normal file
@ -0,0 +1,8 @@
|
||||
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
|
||||
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
149
extentions/extentions/hack/release.sh
Executable file
149
extentions/extentions/hack/release.sh
Executable file
@ -0,0 +1,149 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
|
||||
#
|
||||
# Generated on 2024-08-29T14:13:04Z by kres b5ca957.
|
||||
|
||||
set -e
|
||||
|
||||
RELEASE_TOOL_IMAGE="ghcr.io/siderolabs/release-tool:latest"
|
||||
|
||||
function release-tool {
|
||||
docker pull "${RELEASE_TOOL_IMAGE}" >/dev/null
|
||||
docker run --rm -w /src -v "${PWD}":/src:ro "${RELEASE_TOOL_IMAGE}" -l -d -n -t "${1}" ./hack/release.toml
|
||||
}
|
||||
|
||||
function changelog {
|
||||
if [ "$#" -eq 1 ]; then
|
||||
(release-tool ${1}; echo; cat CHANGELOG.md) > CHANGELOG.md- && mv CHANGELOG.md- CHANGELOG.md
|
||||
else
|
||||
echo 1>&2 "Usage: $0 changelog [tag]"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function release-notes {
|
||||
release-tool "${2}" > "${1}"
|
||||
}
|
||||
|
||||
function cherry-pick {
|
||||
if [ $# -ne 2 ]; then
|
||||
echo 1>&2 "Usage: $0 cherry-pick <commit> <branch>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git checkout $2
|
||||
git fetch
|
||||
git rebase upstream/$2
|
||||
git cherry-pick -x $1
|
||||
}
|
||||
|
||||
function commit {
|
||||
if [ $# -ne 1 ]; then
|
||||
echo 1>&2 "Usage: $0 commit <tag>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if is_on_main_branch; then
|
||||
update_license_files
|
||||
fi
|
||||
|
||||
git commit -s -m "release($1): prepare release" -m "This is the official $1 release."
|
||||
}
|
||||
|
||||
function is_on_main_branch {
|
||||
main_remotes=("upstream" "origin")
|
||||
branch_names=("main" "master")
|
||||
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
echo "Check current branch: $current_branch"
|
||||
|
||||
for remote in "${main_remotes[@]}"; do
|
||||
echo "Fetch remote $remote..."
|
||||
|
||||
if ! git fetch --quiet "$remote" &>/dev/null; then
|
||||
echo "Failed to fetch $remote, skip..."
|
||||
|
||||
continue
|
||||
fi
|
||||
|
||||
for branch_name in "${branch_names[@]}"; do
|
||||
if ! git rev-parse --verify "$branch_name" &>/dev/null; then
|
||||
echo "Branch $branch_name does not exist, skip..."
|
||||
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Branch $remote/$branch_name exists, comparing..."
|
||||
|
||||
merge_base=$(git merge-base "$current_branch" "$remote/$branch_name")
|
||||
latest_main=$(git rev-parse "$remote/$branch_name")
|
||||
|
||||
if [ "$merge_base" = "$latest_main" ]; then
|
||||
echo "Current branch is up-to-date with $remote/$branch_name"
|
||||
|
||||
return 0
|
||||
else
|
||||
echo "Current branch is not on $remote/$branch_name"
|
||||
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
echo "No main or master branch found on any remote"
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
function update_license_files {
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
parent_dir="$(dirname "$script_dir")"
|
||||
current_year=$(date +"%Y")
|
||||
change_date=$(date -v+4y +"%Y-%m-%d" 2>/dev/null || date -d "+4 years" +"%Y-%m-%d" 2>/dev/null || date --date="+4 years" +"%Y-%m-%d")
|
||||
|
||||
# Find LICENSE and .kres.yaml files recursively in the parent directory (project root)
|
||||
find "$parent_dir" \( -name "LICENSE" -o -name ".kres.yaml" \) -type f | while read -r file; do
|
||||
temp_file="${file}.tmp"
|
||||
|
||||
if [[ $file == *"LICENSE" ]]; then
|
||||
if grep -q "^Business Source License" "$file"; then
|
||||
sed -e "s/The Licensed Work is (c) [0-9]\{4\}/The Licensed Work is (c) $current_year/" \
|
||||
-e "s/Change Date: [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/Change Date: $change_date/" \
|
||||
"$file" >"$temp_file"
|
||||
else
|
||||
continue # Not a Business Source License file
|
||||
fi
|
||||
elif [[ $file == *".kres.yaml" ]]; then
|
||||
sed -E 's/^([[:space:]]*)ChangeDate:.*$/\1ChangeDate: "'"$change_date"'"/' "$file" >"$temp_file"
|
||||
fi
|
||||
|
||||
# Check if the file has changed
|
||||
if ! cmp -s "$file" "$temp_file"; then
|
||||
mv "$temp_file" "$file"
|
||||
echo "Updated: $file"
|
||||
git add "$file"
|
||||
else
|
||||
echo "No changes: $file"
|
||||
rm "$temp_file"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if declare -f "$1" > /dev/null
|
||||
then
|
||||
cmd="$1"
|
||||
shift
|
||||
$cmd "$@"
|
||||
else
|
||||
cat <<EOF
|
||||
Usage:
|
||||
commit: Create the official release commit message (updates BUSL license dates if there is any).
|
||||
cherry-pick: Cherry-pick a commit into a release branch.
|
||||
changelog: Update the specified CHANGELOG.
|
||||
release-notes: Create release notes for GitHub release.
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
38
extentions/extentions/hack/release.toml
Normal file
38
extentions/extentions/hack/release.toml
Normal file
@ -0,0 +1,38 @@
|
||||
# commit to be tagged for new release
|
||||
commit = "HEAD"
|
||||
|
||||
project_name = "Talos System Extensions"
|
||||
github_repo = "siderolabs/extensions"
|
||||
match_deps = "^github.com/((talos-systems|siderolabs)/[a-zA-Z0-9-]+)$"
|
||||
|
||||
# previous release
|
||||
previous = "v1.8.0"
|
||||
|
||||
pre_release = true
|
||||
|
||||
preface = """\
|
||||
See [Talos Linux documentation](https://www.talos.dev/v1.9/talos-guides/configuration/system-extensions/) for information on using system extensions.
|
||||
"""
|
||||
|
||||
[notes]
|
||||
[notes.lldpd]
|
||||
title = "LLDP"
|
||||
description = """\
|
||||
lldpd is now available as a system extension.
|
||||
"""
|
||||
|
||||
[notes.updates]
|
||||
title = "Component Updates"
|
||||
description = """\
|
||||
Linux Firmware: 20241017
|
||||
Tailscale: 1.76.0
|
||||
crun: 1.17
|
||||
gvisor: 20241007.0
|
||||
spin: 0.16.0
|
||||
ecr-credential-provider: 1.31.1
|
||||
Intel microcode: 20241029
|
||||
NVIDIA LTS: 535.216.01
|
||||
NVIDIA Production: 550.127.05
|
||||
"""
|
||||
|
||||
[make_deps]
|
10
extentions/extentions/internal/base/pkg.yaml
Normal file
10
extentions/extentions/internal/base/pkg.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
name: base
|
||||
variant: scratch
|
||||
shell: /toolchain/bin/bash
|
||||
dependencies:
|
||||
- image: "{{ .BUILD_ARG_PKGS_PREFIX }}/base:{{ .BUILD_ARG_PKGS }}"
|
||||
- image: "{{ .BUILD_ARG_PKGS_PREFIX }}/ca-certificates:{{ .BUILD_ARG_PKGS }}"
|
||||
- image: ghcr.io/siderolabs/extensions-validator:399d8f0
|
||||
finalize:
|
||||
- from: /
|
||||
to: /
|
6
extentions/extentions/make.sh
Executable file
6
extentions/extentions/make.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
export MAKE='make --environment-overrides SHELL='sh -x' --debug=bvijm'
|
||||
export ARTIFACTS="_out"
|
||||
export DEST="_out//build"
|
||||
make --environment-overrides SHELL='sh -x' --debug=bvijm $1
|
||||
|
2
extentions/extentions/make_crun.sh
Executable file
2
extentions/extentions/make_crun.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
sh -x make.sh local-crun
|
2
extentions/extentions/make_util-linux.sh
Executable file
2
extentions/extentions/make_util-linux.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
sh -x make.sh local-util-linux-tools
|
10
extentions/extentions/tools/util-linux/manifest.yaml
Normal file
10
extentions/extentions/tools/util-linux/manifest.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
version: v1alpha1
|
||||
metadata:
|
||||
name: util-linux-tools
|
||||
version: "$VERSION"
|
||||
author: Sidero Labs
|
||||
description: |
|
||||
This system extension provides a minimal util-linux package.
|
||||
compatibility:
|
||||
talos:
|
||||
version: ">= v1.0.0"
|
32
extentions/extentions/tools/util-linux/pkg.yaml
Normal file
32
extentions/extentions/tools/util-linux/pkg.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
name: util-linux-tools
|
||||
variant: scratch
|
||||
shell: /toolchain/bin/bash
|
||||
dependencies:
|
||||
- stage: base
|
||||
- image: registry.altlinux.org/alt/alt:sisyphus
|
||||
steps:
|
||||
-
|
||||
install:
|
||||
- |
|
||||
apt-get update
|
||||
apt-get install -y util-linux
|
||||
|
||||
- |
|
||||
mkdir -p /rootfs/usr/local/bin /rootfs/usr/local/sbin
|
||||
cp /usr/bin/nsenter /rootfs/usr/local/bin
|
||||
chmod a+x /rootfs/usr/local/bin/nsenter
|
||||
cp /sbin/fstrim /rootfs/usr/local/sbin/
|
||||
chmod a+x /rootfs/usr/local/sbin/fstrim
|
||||
|
||||
# test:
|
||||
# - |
|
||||
# mkdir -p /extensions-validator-rootfs
|
||||
# cp -r /rootfs/ /extensions-validator-rootfs/rootfs
|
||||
# cp /pkg/manifest.yaml /extensions-validator-rootfs/manifest.yaml
|
||||
# /extensions-validator validate --rootfs=/extensions-validator-rootfs --pkg-name="${PKG_NAME}"
|
||||
|
||||
finalize:
|
||||
- from: /rootfs
|
||||
to: /rootfs
|
||||
- from: /pkg/manifest.yaml
|
||||
to: /
|
1
extentions/extentions/tools/util-linux/vars.yaml
Normal file
1
extentions/extentions/tools/util-linux/vars.yaml
Normal file
@ -0,0 +1 @@
|
||||
VERSION: "{{ .UTIL_LINUX_VERSION }}"
|
Loading…
Reference in New Issue
Block a user