1 Commits

Author SHA1 Message Date
444f185fc5 Add support for versioned building from tasks 2025-03-19 22:43:19 +03:00
98 changed files with 273 additions and 1577 deletions

View File

@@ -1,76 +0,0 @@
#!/usr/bin/env python3
import argparse
import json
import subprocess
vers_path = ".gitea/workflows/k8s_vers.json"
def run(args):
result = subprocess.run(
args,
capture_output = True,
text = True
)
if result.stderr is not None:
print(result.stderr)
return False
print(result.stdout)
return True
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
parser.add_argument(
"--branch",
help="used to pick the appropriate VM template to clone",
choices=["sisyphus", "c10f2", "p10", "p11"],
)
parser.add_argument(
"--other-build-args",
help="other build arg as a string",
)
parser.add_argument(
"--workspace",
help="workspace, path to builing script",
)
return parser.parse_args()
def main() -> None:
args = parse_args()
if args.branch is None or args.branch == "":
raise RuntimeError("Empty branch setting. Check your choise --branch.")
data = {}
with open(f"{args.workspace}/{vers_path}", "r") as f:
data = json.load(f)
i = 0
for br in data.get("branches"):
if br.get("name") == args.branch:
break
i += 1
vers_branch = data.get("branches")[i].get("versions")
if vers_branch == None :
raise RuntimeError(f"Unknown branch: {args.branch!r}. In {vers_path} no k8s-versions list.")
images_to_rebuild="k8s/kube-apiserver k8s/kube-scheduler k8s/kube-controller-manager k8s/kube-proxy k8s/kubelet k8s/coredns k8s/etcd"
for ver in vers_branch:
kube_ver = ver.get("kube-version")
dns_ver = ver.get("coredns")
etcd_ver = ver.get("etcd", kube_ver)
if kube_ver != None and dns_ver != None:
packs_string=f"-b {args.branch} " + "--package-versions '{\"k8s/kube-apiserver\":" + f"\"{kube_ver}\",\"k8s/kube-scheduler\":\"{kube_ver}\",\"k8s/kube-controller-manager\":\"{kube_ver}\",\"k8s/kube-proxy\":\"{kube_ver}\",\"k8s/kubelet\":\"{kube_ver}\",\"k8s/coredns\":\"{dns_ver}\",\"k8s/etcd\":\"{etcd_ver}\"" + "}'"
if ver.get("latest") != None and ver.get("latest"):
packs_string=f"-o k8s --latest {args.branch} "+packs_string
else:
packs_string=f"-i {images_to_rebuild} "+packs_string
print(f'Run build command: {args.workspace}/build.py {args.other_build_args} {packs_string}')
subprocess.run(f"{args.workspace}/build.py {args.other_build_args} {packs_string}", shell=True)
subprocess.run("podman rmi -f --all", shell=True)
if __name__ == "__main__":
main()

View File

@@ -1,74 +0,0 @@
{
"branches": [
{
"name": "p10",
"versions": [
{
"kube-version": "1.27",
"coredns": "0",
"etcd": "3.5.15"
},
{
"kube-version": "1.28",
"coredns": "0",
"etcd": "3.5.16",
"latest": true
}
]
},
{
"name": "p11",
"versions": [
{
"kube-version": "1.31",
"coredns": "1.11.3"
},
{
"kube-version": "1.32",
"coredns": "1.11.3"
},
{
"kube-version": "1.33",
"coredns": "1.33",
"latest": true
}
]
},
{
"name": "c10f2",
"versions": [
{
"kube-version": "1.31",
"coredns": "1.11.3"
},
{
"kube-version": "1.32",
"coredns": "1.11.3"
},
{
"kube-version": "1.33",
"coredns": "1.33",
"latest": true
}
]
},
{
"name": "sisyphus",
"versions": [
{
"kube-version": "1.31",
"coredns": "1.11.3"
},
{
"kube-version": "1.32",
"coredns": "1.11.3"
},
{
"kube-version": "1.33",
"coredns": "1.33",
"latest": true
}
]
}
]
}

View File

@@ -32,38 +32,33 @@ do
if [ -n "$test" ]; then
command="podman run --rm --entrypoint=\"$entrypoint\" $url/$imgpath -c \"$test\""
else
if [ "$IM" = distroless-toybox ]; then
command="podman run -q --rm $url/$imgpath toysh -c true"
if [[ "$IM" == distroless-toybox ]]; then
command="podman run --rm $url/$imgpath toysh -c true"
fi
if [ "$IM" = distroless-true ]; then
command="podman run -q --rm $url/$imgpath \"true\""
command="podman run --rm $url/$imgpath \"true\""
fi
if [ "$IM" = distroless-gotop ]; then
command="podman run -q --rm $url/$imgpath \"--version\""
command="podman run --rm $url/$imgpath \"--version\""
fi
if [ "$IM" = flannel-cni-plugin ]; then
command="podman run -q --rm $url/$imgpath \"/flannel\""
command="podman run --rm $url/$imgpath \"/flannel\""
fi
if [ "$IM" == pause ]; then
command="podman run -q --rm $url/$imgpath \"/pause\" \"-v\""
command="podman run --rm $url/$imgpath \"/pause\" \"-v\""
fi
fi
echo $command
eval $command 2>$IM.log
if [ "$(echo $?)" == "0" ]; then
rm -rf $IM.log ||:
else
haserr=true
fi
eval $command 2>$IM.log || haserr=true
echo "podman rmi --all"
podman rmi --all
if $haserr
if [ "$haserr" ]
then
if [ -f $IM.log ]
then errors="TEST ERROR OF IMAGE $IM: $(cat $IM.log)\n $errors"
#else errors="TEST ERROR OF IMAGE $IM: test returned empty error, but exit status was nozero; $errors"
if [[ -n $(cat $IM.log) ]]
then errors="TEST ERROR OF IMAGE $IM: $(cat $IM.log); $errors"
else errors="TEST ERROR OF IMAGE $IM: test returned empty error, but exit status was nozero; $errors"
fi
fi
haserr=false

View File

@@ -1,74 +1,56 @@
name: Full building alt images
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch'
required: true
default: 'sisyphus'
type: choice
options:
- sisyphus
- p10
- p11
- c10f2
group:
description: 'Images group'
required: true
type: choice
options:
- base
- alt
- kubevirt
push:
tags:
- '*_*'
jobs:
build-process:
runs-on: alt-sisyphus
outputs:
branch: ${{ env.BRANCH }}
org: ${{ env.ORG }}
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
steps:
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang"
apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch
- name: Check workspace
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
echo "URL=$repourl"
echo $repourl
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo "REPO=$reponame"
echo "GROUP=${{ inputs.group }}"
echo "BRANCH=${{ inputs.branch }}"
echo $reponame
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Check out current repo
uses: actions/checkout@v4
- name: Change vendor label for c10f
if: ${{ contains(inputs.branch, 'c10f') }}
run: |
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/Dockerfile.template ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/Dockerfile.template ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/distroless.toml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/distroless.toml ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/info.yaml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/info.yaml ||:
env:
ORG: ${{ inputs.group }}
- name: Set repo for c10f2 (Temporary)
if: ${{ contains(inputs.branch, 'c10f2') }}
if: ${{ contains(github.ref_name, 'c10f2') }}
run: |
echo "event tag=${{ github.ref_name }}"
echo "10.4.0.3 update.altsp.su" >> /etc/hosts
echo "cat /etc/hosts"
cat /etc/hosts
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch
- name: Check out current repo
uses: actions/checkout@v4
- name: Parse target branch and tag from events context, save to env
env:
EV: ${{ toJson(gitea.event) }}
run: |
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
org=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
echo "ORG=$org" >> ${GITHUB_ENV}
echo "ORG=$org"
- name: Login podman gitea
run: |
echo "podman login ${{ env.URL }}"
@@ -79,36 +61,49 @@ jobs:
- name: Run building script
id: build-script
run: |
#build base with riskv64 for sisyphus if it is
if [[ "$BR" == "sisyphus" && "$ORG" == "base" ]]; then echo "${{ gitea.workspace }}/build.py -i base/base -b $BR --latest $BR --registry $BUILD_URL"; ${{ gitea.workspace }}/build.py -i base/base -b "$BR" --latest "$BR" --registry "$BUILD_URL"; fi
build_args="-b $BR --log-level debug --latest $BR -o $ORG --registry $BUILD_URL"
if [[ "$BR" == "sisyphus" ]]; then arches="--arches amd64 386 arm64 loong64 --skip-images base/base"; else arches="--arches amd64 386 arm64"; fi
echo "${{ gitea.workspace }}/build.py $build_args $arches"
${{ gitea.workspace }}/build.py $build_args $arches
build_args="-b $BR --latest $BR -o $ORG --registry gitea.basealt.ru/alt"
if [[ "$BR" == "sisyphus" ]]; then arches="--arches amd64 386 arm64 loong64"; else arches="--arches amd64 386 arm64"; fi
if [[ "$ORG" == "k8s" ]]; then build_args="$build_args --overwrite-organization $ORG-$BR --package-versions {\"k8s/kube-apiserver\":\"1.31\",\"k8s/kube-scheduler\":\"1.31\",\"k8s/kube-controller-manager\":\"1.31\",\"k8s/kube-proxy\":\"1.31\",\"k8s/coredns\":\"1.11.3\",\"k8s/kubelet\":\"1.31\"}"; fi
echo "build.py $build_args $arches"
${{ gitea.workspace }}/build.py $build_args $arches
env:
ORG: ${{ inputs.group }}
BR: ${{ inputs.branch }}
BUILD_URL: "${{ env.URL }}/${{ env.REPO }}"
ORG: ${{ env.ORG }}
BR: ${{ env.BRANCH }}
continue-on-error: true
- name: Send success notification
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
uses: actions/telegram-channel-action@v5
with:
bot_token: ${{ secrets.TELEGRAM_BOT }}
channel_id: ${{ secrets.TELEGRAM_CHANNEL }}
message: "Building of images org/${{ inputs.group }} for branch ${{ inputs.branch }} is failed"
run: |
issueid=1
body="Building images finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
- name: Delete event tag
run: |
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
echo "tag $tagname is deleted"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
EV: ${{ toJson(gitea.event) }}
test-process:
needs: build-process
if: ${{ needs.build-process.outputs.buildres == 'success' }}
if: ${{ needs.build-process.outputs.buildres == 'success' && needs.build-process.outputs.org != 'k8s' }}
runs-on: alt-sisyphus
steps:
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl golang"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl golang
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
- name: Check out current repo
uses: https://gitea.com/actions/checkout@v4
- name: Test
@@ -117,25 +112,23 @@ jobs:
run: |
$WS/.gitea/workflows/testscript $BR $ORG $URL $REPO $WS
cat haserr.log >> ${GITHUB_ENV}
cat errors.log 2>/dev/null || echo ''
echo "test process finished"
env:
BR: ${{ inputs.branch }}
ORG: ${{ inputs.group }}
BR: ${{ needs.build-process.outputs.branch }}
ORG: ${{ needs.build-process.outputs.org }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
WS: ${{ gitea.workspace }}
- name: Send notification if building was crashed
- name: Send notification if test crashed
if: ${{ env.ERR == 'true' || steps.test-script.outcome == 'failure' }}
uses: actions/telegram-channel-action@v5
with:
bot_token: ${{ secrets.TELEGRAM_BOT }}
channel_id: ${{ secrets.TELEGRAM_CHANNEL }}
message: "Testing of images org/${{ inputs.group }} for branch ${{ inputs.branch }} is failed"
- name: Send notification if building was crashed
if: ${{ env.ERR == 'false' && steps.test-script.outcome != 'failure' }}
uses: actions/telegram-channel-action@v5
with:
bot_token: ${{ secrets.TELEGRAM_BOT }}
channel_id: ${{ secrets.TELEGRAM_CHANNEL }}
message: "Images group org/${{ inputs.group }} for branch ${{ inputs.branch }} are builed and ready to push into registry.altlinux.org"
run: |
issueid=1
errors=$(cat errors.log)
body="Testing images finish with some errors. $errors"
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ gitea.server_url }}
REPO: ${{ needs.build-process.outputs.repo }}

View File

@@ -1,91 +0,0 @@
name: Full building alt images
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch'
required: true
default: 'sisyphus'
type: choice
options:
- sisyphus
- p10
- p11
- c10f2
env:
ORG: k8s
jobs:
build-process:
runs-on: alt-sisyphus
outputs:
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
steps:
- name: Check workspace and inputs
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
echo "URL=$repourl"
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo "REPO=$reponame"
echo "BRANCH=${{ inputs.branch }}"
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Set repo for c10f2 (Temporary)
if: ${{ contains(inputs.branch, 'c10f2') }}
run: |
echo "10.4.0.3 update.altsp.su" >> /etc/hosts
echo "cat /etc/hosts"
cat /etc/hosts
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang"
apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch
- name: Check out current repo
uses: actions/checkout@v4
- name: Change vendor label for c10f
if: ${{ contains(inputs.branch, 'c10f') }}
run: |
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/Dockerfile.template ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/Dockerfile.template ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/distroless.toml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/distroless.toml ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/info.yaml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$ORG/*/info.yaml ||:
env:
ORG: ${{ env.ORG }}
- name: Login podman gitea
run: |
echo "podman login ${{ env.URL }}"
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
env:
P_USER: ${{ secrets.PODMAN_USER }}
P_PASS: ${{ secrets.PODMAN_PASS }}
- name: Run building script
id: build-script
run: |
if [[ "$BR" == "sisyphus" ]]; then arches="--arches amd64 386 arm64 loong64"; else arches="--arches amd64 386 arm64"; fi
build_args="--registry $BUILD_URL $arches"
#run build script
${{ gitea.workspace }}/.gitea/workflows/k8s_buildscript.py --branch "$BR" --other-build-args "$build_args" --workspace "${{ gitea.workspace }}"
env:
ORG: ${{ env.ORG }}
BR: ${{ inputs.branch }}
BUILD_URL: "gitea.basealt.ru/alt"
continue-on-error: true
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
uses: actions/telegram-channel-action@v5
with:
bot_token: ${{ secrets.TELEGRAM_BOT }}
channel_id: ${{ secrets.TELEGRAM_CHANNEL }}
message: "Building of images org/k8s for branch ${{ inputs.branch }} is failed"

View File

@@ -1,161 +0,0 @@
name: Dispatch building alt images
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch'
required: true
default: 'sisyphus'
type: choice
options:
- sisyphus
- p10
- p11
- c10f2
images:
description: 'Json containing images with version to build it'
required: true
type: string
jobs:
build-process:
runs-on: alt-sisyphus
outputs:
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
steps:
- name: Check workspace
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
echo $repourl
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo $reponame
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Check inputs
run: |
echo "${{ inputs.images }}"
echo "${{ inputs.branch }}"
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang"
apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch
- name: Get images list to build
env:
BR: ${{ inputs.branch }}
IMS: ${{ inputs.images }}
run: |
images=()
declare -A versions
ims=$(echo $IMS | jq -c -r '.[]')
for im in ${ims[@]}; do
image=$(echo $im | jq -r .name)
version=$(echo $im | jq -r .version)
images+=("$image")
versions["$image"]="$version"
done
image_args="${images[*]}"
package_versions="{"
first=1
for image in "${!versions[@]}"; do
[[ $first -eq 0 ]] && package_versions+=","
package_versions+="\"$image\": \"${versions[$image]}\""
first=0
done
package_versions+="}"
echo "IMAGES=$image_args"
echo "PACKAGE_VERSIONS=$package_versions"
echo "BRANCH=$branch" >> ${GITHUB_ENV}
echo "IMAGES=$image_args" >> $GITHUB_ENV
echo "images=$image_args"
echo "PACKAGE_VERSIONS=$package_versions" >> $GITHUB_ENV
echo "package_versions=$package_versions"
- name: Check out current repo
uses: actions/checkout@v4
- name: Change vendor label for c10f
if: ${{ contains(github.ref_name, 'c10f') }}
run: |
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/*/*/Dockerfile.template ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/*/*/Dockerfile.template ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/*/*/distroless.toml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/*/*/distroless.toml ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/*/*/info.yaml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/*/*/info.yaml ||:
- name: Set repo for c10f2 (Temporary)
if: ${{ contains(github.ref_name, 'c10f2') }}
run: |
echo "event tag=${{ github.ref_name }}"
echo "10.4.0.3 update.altsp.su" >> /etc/hosts
echo "cat /etc/hosts"
cat /etc/hosts
- name: Login podman gitea
run: |
echo "podman login ${{ env.URL }}"
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
env:
P_USER: ${{ secrets.PODMAN_USER }}
P_PASS: ${{ secrets.PODMAN_PASS }}
- name: Run building script
id: build-script
run: |
if [[ "$BRANCH" == "sisyphus" ]]; then arches="--arches amd64 386 arm64 loong64"; else arches="--arches amd64 386 arm64"; fi
echo "${{ gitea.workspace }}/build.py \
--log-level debug \
--skip-stages push \
--branch $BRANCH \
--registry $BUILD_URL \
--arches $arches \
-i $IMAGES \
--package-versions \"$PACKAGE_VERSIONS\""
${{ gitea.workspace }}/build.py \
--log-level debug \
--skip-stages push \
--branch $BRANCH \
--registry $BUILD_URL \
--arches $arches \
-i $IMAGES \
--package-versions "$PACKAGE_VERSIONS"
echo "start update latest tag"
for im in $IMAGES; do \
image=$(echo $im | cut -d '/' -f 2) ; \
latest=$(skopeo list-tags docker://$BUILD_URL/$BRANCH/$image | jq '.Tags.[]' -r 2> /dev/null | sort -V -r | grep -v latest -m 1) ; \
echo "image: $image; latest version-tag: $latest" ; \
echo "skopeo copy -a docker://$BUILD_URL/$BRANCH/$im:$latest docker://BUILD_URL/$BRANCH/$im:latest"; \
skopeo copy -a docker://$BUILD_URL/$BRANCH/$im:$latest docker://BUILD_URL/$BRANCH/$im:latest ; \
done
echo "finish update latest tag"
env:
BRANCH: ${{ inputs.BRANCH }}
IMAGES: ${{ env.IMAGES }}
PACKAGE_VERSIONS: ${{ env.PACKAGE_VERSIONS }}
BUILD_URL: "${{ env.URL }}/${{ env.REPO }}"
continue-on-error: true
- name: Send notification if building was crashed
if: ${{ steps.build-script.outcome != 'success' }}
uses: actions/telegram-channel-action@v5
with:
bot_token: ${{ secrets.TELEGRAM_BOT }}
channel_id: ${{ secrets.TELEGRAM_CHANNEL }}
message: "Building of images ${{ inputs.images }} for branch ${{ inputs.branch }} is failed"
- name: Send success notification
if: ${{ steps.build-script.outcome == 'success' }}
uses: actions/telegram-channel-action@v5
with:
bot_token: ${{ secrets.TELEGRAM_BOT }}
channel_id: ${{ secrets.TELEGRAM_CHANNEL }}
message: "Images ${{ inputs.images }} for branch ${{ inputs.branch }} are builed and ready to push into registry.altlinux.org"

View File

@@ -1,35 +1,21 @@
name: Building alt images
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch'
required: true
default: 'sisyphus'
type: choice
options:
- sisyphus
- p10
- p11
- c10f2
image:
description: 'Image name'
required: true
type: string
version:
description: 'Needed version'
type: string
push:
tags:
- '*_*/*_*'
jobs:
build-process:
runs-on: alt-sisyphus
outputs:
branch: ${{ env.BRANCH }}
image: ${{ env.IMAGE }}
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
test: ${{ env.TEST }}
steps:
- name: Check workspace and inputs
- name: Check workspace
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
@@ -37,15 +23,13 @@ jobs:
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo "REPO=$reponame"
echo "BRANCH=${{ inputs.branch }}"
echo "IMAGE=${{ inputs.image }}"
echo "VERSION=${{ inputs.version }}"
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Set repo for c10f2 (Temporary)
if: ${{ contains(inputs.branch, 'c10f2') }}
if: ${{ contains(github.ref_name, 'c10f2') }}
run: |
echo "event tag=${{ github.ref_name }}"
echo "10.4.0.3 update.altsp.su" >> /etc/hosts
echo "cat /etc/hosts"
cat /etc/hosts
@@ -53,8 +37,8 @@ jobs:
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang"
apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl golang
echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch
- name: Check out current repo
@@ -66,44 +50,68 @@ jobs:
env:
P_USER: ${{ secrets.PODMAN_USER }}
P_PASS: ${{ secrets.PODMAN_PASS }}
- name: Change vendor label for c10f
if: ${{ contains(inputs.branch, 'c10f') }}
- name: Check files in the repository
run: |
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$IM/Dockerfile.template ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$IM/Dockerfile.template ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$IM/distroless.toml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$IM/distroless.toml ||:
echo "sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$IM/info.yaml ||:"
sed -i 's/ALT Linux Team/BaseALT LLC/g' ${{ gitea.workspace }}/org/$IM/info.yaml ||:
ls -a ${{ gitea.workspace }}
- name: Parse target branch and tag from events context, save to env
env:
IM: ${{ inputs.image }}
EV: ${{ toJson(gitea.event) }}
run: |
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
localimage=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
echo "IMAGE=$localimage" >> ${GITHUB_ENV}
echo "IMAGE=$localimage"
org=$(echo "$localimage" | cut -d '/' -f 1)
echo "ORG=$org" >> ${GITHUB_ENV}
echo "ORG=$org"
ver=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 3)
echo "VER=$ver" >> ${GITHUB_ENV}
echo "VER=$ver"
- name: Get test for image
run: |
if test -f ${{ gitea.workspace }}/org/$IM/test; then testscript=$(cat ${{ gitea.workspace }}/org/$IM/test); else testscript=""; fi
echo "TEST=$testscript" >> ${GITHUB_ENV}
env:
IM: ${{ inputs.image }}
BR: ${{ inputs.branch }}
IM: ${{ env.IMAGE }}
BR: ${{ env.BRANCH }}
- name: Run building script
id: build-script
run: |
if [[ "$IM" == *"k8s"* ]]; then k8sarg="--package-versions {\"$IM\":\"$VER\"}"; else k8sarg=""; fi
if [[ "$IM" == *"k8s"* ]]; then k8sarg="--overwrite-organization $ORG-$BR --package-versions {\"$IM\":\"$VER\"}"; else k8sarg=""; fi
if [[ "$BR" == "sisyphus" ]]; then arches="--arches amd64 386 arm64 loong64"; else arches="--arches amd64 386 arm64"; fi
echo "build.py -i $IM -b $BR $arches --latest $BR --log-level debug --registry $BUILD_URL $k8sarg"
${{ gitea.workspace }}/build.py -i $IM -b $BR $arches --latest $BR --log-level debug --registry $BUILD_URL $k8sarg
echo "build.py -i $IM -b $BR $arches $k8sarg"
${{ gitea.workspace }}/build.py -i $IM -b $BR $arches $k8sarg
env:
IM: ${{ inputs.image }}
VER: ${{ inputs.version }}
BR: ${{ inputs.branch }}
BUILD_URL: "${{ env.URL }}/${{ env.REPO }}"
IM: ${{ env.IMAGE }}
VER: ${{ env.VER }}
BR: ${{ env.BRANCH }}
ORG: ${{ env.ORG }}
continue-on-error: true
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
uses: actions/telegram-channel-action@v5
with:
bot_token: ${{ secrets.TELEGRAM_BOT }}
channel_id: ${{ secrets.TELEGRAM_CHANNEL }}
message: "Building of image ${{ inputs.image }} for branch ${{ inputs.branch }} is failed"
run: |
issueid=1
body="Building image $IM finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
IM: ${{ env.IMAGE }}
- name: Delete event tag
run: |
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
echo "tag $tagname is deleted"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
EV: ${{ toJson(gitea.event) }}
test-process:
needs: build-process
if: ${{ needs.build-process.outputs.buildres == 'success' }}
@@ -113,18 +121,17 @@ jobs:
uses: https://gitea.basealt.ru/actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl golang"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl golang
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl
- name: Run test
id: test-script
if: ${{ needs.build-process.outputs.test != '' }}
continue-on-error: true
run: |
imname=$(echo "$IM" | cut -d "/" -f2)
if [[ "$IM" == *"k8s"* ]]; then echo "skip tests for k8s images"; else podman run --rm --entrypoint="/bin/sh" $URL/$REPO/$BR/$imname:latest -c "$TEST"; fi
if [[ "$IM" == *"k8s"* ]]; then echo "skip tests for k8s images"; else podman run --rm --entrypoint="/bin/sh" $URL/$IM:$BR -c "$TEST"; fi
env:
IM: ${{ inputs.image }}
BR: ${{ inputs.branch }}
IM: ${{ needs.build-process.outputs.image }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
TEST: ${{ needs.build-process.outputs.test }}
@@ -133,12 +140,25 @@ jobs:
if: ${{ needs.build-process.outputs.test == '' }}
continue-on-error: true
run: |
imname=$(echo "$IM" | cut -d "/" -f2)
if [[ $IM = 'alt/distroless-true' ]]; then podman run --rm $URL/$REPO/$BR/$imname:latest true; fi
if [[ $IM = 'alt/distroless-gotop' ]]; then podman run --rm $URL/$REPO/$BR/$imname:latest --version; fi
if [[ $IM = 'alt/distroless-true' ]]; then podman run --rm $URL/$IM:$BR true; fi
if [[ $IM = 'alt/distroless-gotop' ]]; then podman run --rm $URL/$IM:$BR --version; fi
env:
IM: ${{ inputs.image }}
BR: ${{ inputs.branch }}
IM: ${{ needs.build-process.outputs.image }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
- name: Send notification if test crashed
if: ${{ steps.test-script.outcome == 'failure' || steps.special-test.outcome == 'failure' }}
run: |
issueid=1
errors=$(cat errors.log)
body="Testing image $IM finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ gitea.server_url }}
REPO: ${{ needs.build-process.outputs.repo }}
IM: ${{ needs.build-process.outputs.image }}

View File

@@ -38,12 +38,10 @@ If you push to the users repository, then organiztion is your username.
If contains jinja2 template syntax, `--package-version`
CLI option must be specified.
- `version_template`: **string** or **list of strings** (OPTIONAL)
- `version_template`: **string** (OPTIONAL)
Template to apply when construction the tag,
`version` string variable is available in the template.
If `version_template` is a list of strings, then the image wiil be tagged
with every string in the list.
template to apply when construction the tag,
`version` string variable is available in the template
### examples
@@ -86,22 +84,6 @@ source_packages:
./build.py -i k8s/pause
```
#### org/k8s/etcd
```yaml
is_versioned: true
version_template:
- "v{{ version }}"
- "{{ version }}"
- "{{ version }}-0"
source_packages:
- etcd-for-kubernetes{{ version }}
```
```bash
./build.py -b sisyphus -i k8s/etcd --package-version '{"k8s/etcd": "1.32"}'
```
## Dependencies
On x86_64 machine using p10 branch you need:
- `python3-module-tomli`

158
build.py
View File

@@ -11,33 +11,25 @@ from datetime import datetime
from dataclasses import dataclass
from graphlib import TopologicalSorter
from pathlib import Path
from typing import Optional, Union
import requests
import tomli
import yaml
from jinja2 import Environment, BaseLoader
from jinja2 import Template
logger = logging.getLogger(__name__)
ORG_DIR = Path("org")
PKG_VERSIONS: Optional[dict] = None
PKG_VERSIONS: dict | None = None
# Jinja2 custom fail filter
def fail(message: str):
raise ValueError(message)
JINJA_ENV = Environment(loader=BaseLoader())
JINJA_ENV.filters['fail'] = fail
@dataclass
class Image:
canonical_name: str
is_versioned: Optional[bool]
version_template: Union[list[str], str, None]
source_packages: Optional[list[str]]
annotations: Optional[dict[str, str]]
is_versioned: bool | None
version_template: str | None
source_packages: list[str] | None
def __init__(self, canonical_name: str):
self.canonical_name = canonical_name
@@ -48,7 +40,6 @@ class Image:
if not info_file.exists():
self.is_versioned = None
self.source_packages = None
self.annotations = None
return
info: dict = yaml.safe_load(info_file.read_text())
@@ -75,10 +66,6 @@ class Image:
if "version_template" in info:
self.version_template = info["version_template"]
self.annotations = None
if "annotations" in info:
self.annotations = info["annotations"]
class Tasks:
def __init__(self, tasks):
@@ -101,19 +88,19 @@ class Tasks:
if image.canonical_name in i or len(i) == 0
]
class AltAPIError(Exception):
pass
def api_get_source_package_version(branch: str, package_name: str) -> str:
api_url = "https://rdb.altlinux.org/api/site/package_versions_from_tasks"
params = {"branch": branch, "name": package_name}
response = requests.get(api_url, params)
if response.status_code != 200:
print(response)
api_url = "https://rdb.altlinux.org/api/site/package_versions"
params = {"arch": "x86_64", "package_type": "source", "name": package_name}
response = requests.get(api_url, params)
if response.status_code != 200:
raise AltAPIError(
print(response)
raise RuntimeError(
f"failed to retrieve source package version: source package {package_name!r}, branch {branch!r} "
)
result = response.json()
@@ -121,7 +108,7 @@ def api_get_source_package_version(branch: str, package_name: str) -> str:
if v["branch"] == branch:
return v["version"]
raise AltAPIError(
raise RuntimeError(
f"failed to retrieve source package version: source package {package_name!r}, branch {branch!r} "
)
@@ -134,8 +121,9 @@ def api_get_source_package_version_from_task(task_id: str, package_name: str):
api_url = f"https://rdb.altlinux.org/api/task/packages/{task_id}"
response = requests.get(api_url)
if response.status_code != 200:
raise AltAPIError(
f"failed to retrieve source package version from task: source package {package_name!r}, task_id {task_id}"
print(response)
raise RuntimeError(
f"failed to retrieve source package version from task: source package {package_name!r}, branch {branch!r}, task_id {task_id}"
)
result = response.json()
@@ -143,20 +131,20 @@ def api_get_source_package_version_from_task(task_id: str, package_name: str):
if subtask["source"]["name"] == package_name:
return subtask["source"]["version"]
raise AltAPIError(
f"failed to retrieve source package version from task: source package {package_name!r}, task_id {task_id}"
raise RuntimeError(
f"failed to retrieve source package version from task: source package {package_name!r}, branch {branch!r}, task_id {task_id}"
)
class Tags:
def __init__(self, tags_file: Optional[str], latest: str):
def __init__(self, tags_file: str | None, latest: str):
if tags_file is None:
self._tags = None
else:
self._tags = tomli.loads(Path(tags_file).read_text())
self._latest = latest
def tags(self, branch: str, image: Image, tasks: Optional[Tasks] = None):
def tags(self, branch: str, image: Image, tasks: Tasks | None = None):
if self._tags is None:
if image.is_versioned is None:
tags = [branch]
@@ -166,7 +154,10 @@ class Tags:
elif image.is_versioned and image.source_packages:
package_name = image.source_packages[0]
context_version = ""
if re.search("{%.*%}", package_name):
package_name = Template(package_name).render(branch=branch).strip()
print(f"{package_name=}")
if re.search("{{.*}}", package_name):
if PKG_VERSIONS is None:
raise RuntimeError(
@@ -183,12 +174,8 @@ class Tags:
f"invalid version for image {image.canonical_name!r}: {PKG_VERSIONS[image.canonical_name]!r}"
)
context_version = PKG_VERSIONS[image.canonical_name]
if re.search("{%.*%}", package_name) or re.search("{{.*}}", package_name):
package_name = JINJA_ENV.from_string(package_name).render(
branch=branch,
version=context_version,
package_name = Template(package_name).render(
version=PKG_VERSIONS[image.canonical_name]
)
if tasks is not None:
@@ -202,22 +189,9 @@ class Tags:
package_name,
task_ids[0],
)
try:
version = api_get_source_package_version_from_task(
task_ids[0], package_name
)
except AltAPIError:
logger.warning(
"failed getting %s package version from task %s",
package_name,
task_ids[0],
)
logger.info(
"getting %s package version from repo %s",
package_name,
branch,
)
version = api_get_source_package_version(branch, package_name)
version = api_get_source_package_version_from_task(
task_ids[0], package_name
)
else:
logger.info(
"getting %s package version from repo %s",
@@ -226,32 +200,18 @@ class Tags:
)
version = api_get_source_package_version(branch, package_name)
tags = []
if image.version_template is not None:
if isinstance(image.version_template, str):
version_tag = (
JINJA_ENV.from_string(image.version_template).render(version=version).strip()
)
tags.append(version_tag)
elif isinstance(image.version_template, list):
for v in image.version_template:
version_tag = (
JINJA_ENV.from_string(v).render(version=version).strip()
)
tags.append(version_tag)
else:
raise RuntimeError(f"expected type for version_template: 'str' or 'list[str]', got '{type(image.version_template)}' for image {image}")
else:
tags.append(version)
version = (
Template(image.version_template).render(version=version).strip()
)
tags = [version]
tags.append("latest")
else:
version = datetime.now().strftime('%Y%m%d')
if image.version_template is not None:
if not isinstance(image.version_template, str):
raise RuntimeError(f"expected type for version_template: 'str', got '{type(image.version_template)}' for image {image}")
version = (
JINJA_ENV.from_string(image.version_template).render(version=version).strip()
Template(image.version_template).render(version=version).strip()
)
tags = [version]
tags.append("latest")
@@ -432,13 +392,12 @@ class DockerBuilder:
else:
registry = ""
alt_image = "alt"
rendered = JINJA_ENV.from_string(template).render(
rendered = Template(template).render(
alt_image=alt_image,
branch=self.branch,
install_packages=install_packages,
organization=organization,
registry=registry,
pkg_versions=PKG_VERSIONS,
**kwargs,
)
@@ -539,13 +498,8 @@ class DockerBuilder:
pre_cmd = ["echo"]
else:
pre_cmd = []
logger.debug("run: %s", pre_cmd + cmd)
subprocess.run(pre_cmd + cmd, *args, **kwargs)
def run_with_result(self, cmd):
return subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode('utf-8')
def distroless_build(self, image: Image, arches):
def distroless_build_arch(arch, manifest):
distroless_builder = self.render_full_tag(
@@ -690,7 +644,7 @@ class DockerBuilder:
build_arches = set(arches) - set(
self.images_info.skip_arches(image.canonical_name)
)
tags = self.tags.tags(self.branch, image, self.tasks)
tags = self.tags.tags(self.branch, image)
manifest = self.render_full_tag(image, tags[0])
msg = "Building image {} for {} arches".format(
@@ -785,28 +739,6 @@ class DockerBuilder:
".",
]
if image.annotations is not None:
build_cmd = [
"podman",
"build",
"--rm",
"--force-rm",
f"--manifest={manifest}",
f"--platform={platforms}"
]
for akey, avalue in image.annotations.items():
build_cmd.append(
f"--annotation={akey}={avalue}")
d = datetime.now()
build_cmd.append(f"--annotation=org.opencontainers.image.created={d.isoformat("T") + "Z"}")
ver = next((tag for tag in tags if tag != 'latest'), '')
if ver != '':
build_cmd.append(f"--annotation=org.opencontainers.image.version={ver}")
build_cmd.append(".")
if PKG_VERSIONS is not None and image.canonical_name in PKG_VERSIONS:
build_cmd.insert(
-1, f"--build-arg=PKG_VERSION={PKG_VERSIONS[image.canonical_name]}"
@@ -819,7 +751,6 @@ class DockerBuilder:
tag_cmd = ["podman", "tag", manifest, other_manifest]
self.run(tag_cmd)
def podman_push(self, image: Image, sign=None):
if self.images_info.skip_branch(image.canonical_name, self.branch):
return
@@ -843,7 +774,6 @@ class DockerBuilder:
self.run(cmd)
class ImagesInfo:
def __init__(self):
info = {}
@@ -990,10 +920,6 @@ def parse_args():
type=json.loads,
help="json string where key is image name, value is the package version",
)
parser.add_argument(
"--clean-images-limit",
help="remove all the images in the container storage when number of images hits the limit",
)
parser.add_argument(
"--log-level",
default="warning",
@@ -1023,8 +949,6 @@ def main():
logger.info("PKG_VERSIONS=%s", PKG_VERSIONS)
clean_images_counter = 0
arches = args.arches
images_info = ImagesInfo()
tags = Tags(args.tags, args.latest)
@@ -1046,7 +970,6 @@ def main():
if "render_dockerfiles" in args.stages:
db.render_dockerfiles()
db.load_distrolesses()
for image in db.get_build_order():
if image.canonical_name not in args.images:
continue
@@ -1060,23 +983,6 @@ def main():
if "push" in args.stages:
db.podman_push(image, args.sign)
if args.clean_images_limit is not None:
if clean_images_counter >= args.clean_images_limit:
cmd = [
"podman",
"rmi",
"--all",
"-f",
]
db.run(cmd,
check=False,
stderr=subprocess.DEVNULL,
stdout=subprocess.DEVNULL,
)
clean_images_counter = 0
else:
clean_images_counter += 1
if __name__ == "__main__":
main()

View File

@@ -1,44 +1,11 @@
["alt/distroless-toybox"]
skip-branches = [ "p10", "c10f2", "c10f1" ]
["base/distroless-toybox"]
skip-branches = [ "p10", "c10f2", "c10f1" ]
["alt/openjdk21"]
skip-arches = [ "386" ]
["alt/zot"]
skip-arches = [ "386" ]
["alt/kafka"]
skip-arches = [ "386" ]
["alt/grafana"]
skip-arches = [ "386" ]
["alt/ansible"]
skip-branches = [ "c10f2", "c10f1", "p10" ]
["alt/buildkit"]
skip-branches = [ "c10f1", "p10" ]
["k8s/metrics-server"]
skip-branches = [ "c10f1", "c10f2", "p11", "p10" ]
["kubevirt/virt-api"]
skip-arches = [ "386", "loong64" ]
["kubevirt/virt-controller"]
skip-arches = [ "386", "loong64" ]
["kubevirt/virt-exportproxy"]
skip-arches = [ "386", "loong64" ]
["kubevirt/virt-exportserver"]
skip-arches = [ "386", "loong64" ]
["kubevirt/virt-handler"]
skip-arches = [ "386", "loong64" ]
["kubevirt/virt-launcher"]
skip-arches = [ "386", "loong64" ]
["kubevirt/virt-operator"]
skip-arches = [ "386", "loong64" ]

View File

@@ -5,13 +5,4 @@ source_packages:
- ansible-core
- ansible-vim
- ansible-lint
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'http://www.ansible.com'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'ansible'
org.opencontainers.image.description: 'A radically simple IT automation system'
org.opencontainers.image.licenses: GPL-3.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- apache2
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'http://httpd.apache.org'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'apache2'
org.opencontainers.image.description: 'The most widely used Web server on the Internet'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1,16 +0,0 @@
FROM {{ registry }}{{ branch }}/base:latest
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="buildkit"
LABEL org.opencontainers.image.description="Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit"
LABEL org.opencontainers.image.source="https://github.com/moby/buildkit"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"ca-certificates",
"buildkit"
) }}
ENTRYPOINT ["/usr/bin/buildkitd"]

View File

@@ -1,15 +0,0 @@
---
is_versioned: true
version_template: "{{ version }}"
source_packages:
- buildkit
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/moby/buildkit'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'buildkit'
org.opencontainers.image.description: 'Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1 +0,0 @@
buildkitd --version

View File

@@ -0,0 +1,17 @@
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="etcd"
LABEL org.opencontainers.image.description="Distributed reliable key-value store for the most critical data of a distributed system"
LABEL org.opencontainers.image.source="https://github.com/etcd-io/etcd"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("etcd") }}
RUN ln -s /usr/sbin/etcd /usr/local/bin/etcd
VOLUME /data
ENTRYPOINT ["/usr/sbin/etcd", "--data-dir", "/data"]

13
org/alt/etcd/README.md Normal file
View File

@@ -0,0 +1,13 @@
dockerfiles-alt-etcd
=========================
ALT dockerfile for etcd.
Copy Dockerfile somewhere and build the image:
`$ docker build --rm -t <username>/etcd.`
And launch the etcd container:
`docker run -d -v <etcd data dir>:/data <username>/etcd`
If etcdclt watnted it could be run via:
`docker run --entrypoint etcdctl <username>/etcd`

6
org/alt/etcd/info.yaml Normal file
View File

@@ -0,0 +1,6 @@
---
is_versioned: true
version_template: "{{ version }}"
source_packages:
- etcd
...

1
org/alt/etcd/test Normal file
View File

@@ -0,0 +1 @@
etcdctl version

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- gitea
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/go-gitea/gitea'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'gitea'
org.opencontainers.image.description: 'Git with a cup of tea, painless self-hosted git service'
org.opencontainers.image.licenses: MIT
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- golang
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/golang/go'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'golang'
org.opencontainers.image.description: 'The Golang environment for development'
org.opencontainers.image.licenses: BSD
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- grafana
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/grafana/grafana'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'grafana'
org.opencontainers.image.description: 'Metrics dashboard and graph editor'
org.opencontainers.image.licenses: 'AGPL-3.0-only AND Apache-2.0'
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1,21 +0,0 @@
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="kafka"
LABEL org.opencontainers.image.description="Apache Kafka is a distributed event store and stream-processing platform"
LABEL org.opencontainers.image.source="https://github.com/apache/kafka"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kafka", "ca-certificates", "gpg") }}
USER kafka:kafka
EXPOSE 9092 2181
WORKDIR /var/lib/kafka
VOLUME ["/var/lib/kafka","/var/log/kafka"]
COPY kafka-entrypoint.sh /kafka-entrypoint.sh
ENTRYPOINT [ "/bin/bash" ]
CMD ["/kafka-entrypoint.sh"]

View File

@@ -1,37 +0,0 @@
# Kafka image
Command for run kafka server:
```
podman run --rm -it -p 9092:9092 <REGISTRY>/<BRANCH>/kafka:latest
```
To lead images running need use kafka-entrypoint.sh or change it. As default login kafka need runnig zookeeper and than kafka's start script.
Commnad for using kafka:
```
podman exec -it -u kafka <CONTAINER ID> /usr/bin/sh
```
```
sh-5.2$ /usr/lib/kafka/bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
```
Created topic quickstart-events.
```
sh-5.2$ /usr/lib/kafka/bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
```
Topic: quickstart-events TopicId: kPjhCFFAS-Sg5J3Hpgr-PA PartitionCount: 1 ReplicationFactor: 1 Configs:
Topic: quickstart-events Partition: 0 Leader: 0 Replicas: 0 Isr: 0 Elr: N/A LastKnownElr: N/A
```
sh-5.2$ /usr/lib/kafka/bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
```
>hello 1
>hello 2
>hello 3
```
sh-5.2$ /usr/lib/kafka/bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
```
hello 1
hello 2
hello 3
^CProcessed a total of 3 messages

View File

@@ -1,15 +0,0 @@
---
is_versioned: true
version_template: "{{ version }}"
source_packages:
- kafka
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/apache/kafka'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'kafka'
org.opencontainers.image.description: 'Apache Kafka is a distributed event store and stream-processing platform'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1,4 +0,0 @@
#!/bin/sh -eux
nohup /usr/lib/kafka/bin/zookeeper-server-start.sh /etc/kafka/zookeeper.properties &
/usr/lib/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties

View File

@@ -1 +0,0 @@
ls -a /usr/lib/kafka/bin/ | grep kafka && /usr/lib/kafka/bin/kafka-topics.sh --version

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- loki
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/grafana/loki'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'loki'
org.opencontainers.image.description: 'Like Prometheus, but for logs'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -15,7 +15,7 @@ RUN cd /etc/nginx/sites-enabled.d && ln -s ../sites-available.d/default.conf .
RUN ln -sf /dev/stdout /var/log/nginx/access.log
RUN ln -sf /dev/stderr /var/log/nginx/error.log
RUN sed -Ei 's/^([[:space:]]*listen[[:space:]]+)(localhost|127.0.0.1)(:80)/\10.0.0.0\3/' \
RUN sed -Ei 's/^([[:space:]]*listen[[:space:]]+)localhost(:80)/\10.0.0.0\2/' \
/etc/nginx/sites-available.d/default.conf
EXPOSE 80

View File

@@ -5,13 +5,4 @@ source_packages:
- nginx
- apache2
- tzdata
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://nginx.org/'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'nginx'
org.opencontainers.image.description: 'Fast HTTP server, extremely useful as an Apache frontend'
org.opencontainers.image.licenses: BSD
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -4,13 +4,4 @@ version_template: "{{ version }}"
source_packages:
- node
- yarn
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/nodejs/node'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'node'
org.opencontainers.image.description: 'Evented I/O for V8 Javascript'
org.opencontainers.image.licenses: MIT
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- java-21-openjdk
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://openjdk-sources.osci.io'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'openjdk21'
org.opencontainers.image.description: 'OpenJDK 21 Runtime Environment'
org.opencontainers.image.licenses: 'Apache-1.1 and Apache-2.0 and BSD and BSD with advertising and GPL-2.0 and GPL-2.0 with exceptions and IJG and LGPL-2.0+ and MIT and MPL-2.0 and ALT-Public-Domain and W3C and Zlib and ISC and FTL and RSA-MD'
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -13,14 +13,9 @@ LABEL org.opencontainers.image.vendor="ALT Linux Team"
"php8.2",
"php8.2-xdebug",
) }}
{% elif branch == 'c10f2' %}
{{ install_packages(
"php8.3",
"php8.3-xdebug",
) }}
{% else %}
{{ install_packages(
"php8.4",
"php8.4-xdebug",
"php8.3",
"php8.3-xdebug",
) }}
{% endif %}

View File

@@ -3,20 +3,9 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- >
{%- if branch in ["p10", "c10f1"] -%}
php8.2
{%- elif branch in ["c10f2"] -%}
{% if branch in [ "p10", "c10f1", "c10f2"] %}
{% raw %}php8.2{% endraw %}
{% else %}
php8.3
{%- else -%}
php8.4
{%- endif -%}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/php/php-src'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'php'
org.opencontainers.image.description: 'The PHP language environment for development'
org.opencontainers.image.licenses: PHP-3.01
org.opencontainers.image.vendor: 'ALT Linux Team'
{% endif %}
...

View File

@@ -7,12 +7,8 @@ LABEL org.opencontainers.image.description="PostgreSQL rograms and libraries"
LABEL org.opencontainers.image.source="https://github.com/postgres/postgres"
LABEL org.opencontainers.image.licenses="PostgreSQL"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{% if branch == 'c10f2' %}
{{ install_packages("postgresql16","postgresql16-server") }}
{% else %}
{{ install_packages("postgresql17","postgresql17-server") }}
{% endif %}
RUN usermod -a -G postgres postgres
RUN chown -R postgres:postgres /var/lib/pgsql

View File

@@ -2,19 +2,5 @@
is_versioned: true
version_template: "{{ version }}"
source_packages:
- >
{%- if branch in ["c10f2"] -%}
postgresql16
{%- else -%}
postgresql17
{%- endif -%}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/postgres/postgres'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'postgresql16'
org.opencontainers.image.description: 'PostgreSQL rograms and libraries'
org.opencontainers.image.licenses: PostgreSQL
org.opencontainers.image.vendor: 'ALT Linux Team'
- postgresql16
...

View File

@@ -2,7 +2,7 @@ FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="prometheus-alertmanager"
LABEL org.opencontainers.image.title="alertmanager"
LABEL org.opencontainers.image.description="The Alertmanager handles alerts sent by client applications"
LABEL org.opencontainers.image.source="https://github.com/prometheus/alertmanager"
LABEL org.opencontainers.image.licenses="Apache-2.0"

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- prometheus-alertmanager
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/prometheus/alertmanager'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'prometheus-alertmanager'
org.opencontainers.image.description: 'The Alertmanager handles alerts sent by client applications'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- prometheus-node_exporter
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/prometheus/node_exporter'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'prometheus-node_exporter'
org.opencontainers.image.description: 'Prometheus exporter for hardware and OS metrics exposed by *NIX kernels'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- prometheus
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/prometheus/prometheus'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'prometheus'
org.opencontainers.image.description: 'Prometheus monitoring system and time series database'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -6,13 +6,4 @@ source_packages:
- python3-module-setuptools
- python3-module-pip
- gcc-defaults
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/python/cpython'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'python'
org.opencontainers.image.description: 'Python 3 and tools needed for development'
org.opencontainers.image.licenses: Python
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -5,13 +5,4 @@ source_packages:
- python
- python-module-setuptools
- gcc-defaults
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://www.python.org/downloads/source'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'python'
org.opencontainers.image.description: 'Python 2 and tools needed for development'
org.opencontainers.image.licenses: Python-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- rabbitmq-server
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/rabbitmq/rabbitmq-server'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'rabbitmq'
org.opencontainers.image.description: 'The RabbitMQ server'
org.opencontainers.image.licenses: MPL-1.1
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1,19 +0,0 @@
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="redis"
LABEL org.opencontainers.image.description="Redis is an advanced key-value store"
LABEL org.opencontainers.image.source="http://redis.io"
LABEL org.opencontainers.image.licenses="BSD-3-Clause AND BSD-2-Clause AND MIT AND BSL-1.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("ca-certificates","redis","redis-cli") }}
USER _redis:_redis
EXPOSE 6379
VOLUME ["/var/lib/redis","/var/log/redis"]
WORKDIR /var/lib/redis
ENTRYPOINT [ "/usr/sbin/redis-server" ]
CMD [ "/etc/redis/redis.conf" ]

View File

@@ -1,8 +0,0 @@
# Redis image
Command for run redis-db server:
```
podman run --rm -it -v ./redis.conf:/etc/redis/redis.conf -p 6379:6379 <REGISTRY>/<BRANCH>/redis:latest
```
For testing running server you can run redis.py, if it's working you will see version redis

View File

@@ -1,15 +0,0 @@
---
is_versioned: true
version_template: "{{ version }}"
source_packages:
- redis
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'http://redis.io/'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'redis'
org.opencontainers.image.description: 'Redis is an advanced key-value store'
org.opencontainers.image.licenses: 'BSD-3-Clause AND BSD-2-Clause AND MIT AND BSL-1.0'
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1,22 +0,0 @@
#!/usr/bin/python3
import redis
def main():
r = redis.Redis(host='127.0.0.1', port=6379, db=0, username='test', password='test')
try:
info = r.info()
print(info['redis_version'])
response = r.ping()
if response:
print("Подключение успешно!")
else:
print("Не удалось подключиться к Redis.")
except redis.exceptions.RedisError as e:
print(f"Ошибка: {e}")
if __name__ == "__main__":
main()

View File

@@ -1 +0,0 @@
redis-cli --version && redis-server --version

View File

@@ -1,5 +0,0 @@
bind 0.0.0.0
requirepass test
appendonly yes
appendfsync everysec
user test on -DEBUG +@all ~* >test

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- docker-registry
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/docker/distribution'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'registry'
org.opencontainers.image.description: 'The Docker toolset to pack, ship, store, and deliver content'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,18 +3,9 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- >
{%- if branch in ["p10", "c10f2", "c10f1"] -%}
ruby
{%- else -%}
{% if branch in ["p10", "c10f2", "c10f1"] %}
{% raw %}ruby{% endraw %}
{% else %}
gem-irb
{%- endif -%}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/ruby/ruby'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'ruby'
org.opencontainers.image.description: 'Interactive Ruby Shell'
org.opencontainers.image.licenses: 'BSD-2-Clause or Ruby'
org.opencontainers.image.vendor: 'ALT Linux Team'
{% endif %}
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- systemd
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/systemd/systemd'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'systemd'
org.opencontainers.image.description: 'System and Session Manager'
org.opencontainers.image.licenses: LGPLv2.1+
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- trivy
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://aquasecurity.github.io/trivy'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'trivy'
org.opencontainers.image.description: 'A Fast Vulnerability Scanner for Containers'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -5,13 +5,4 @@ source_packages:
- unit
- curl
- tzdata
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/nginx/unit'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'unit'
org.opencontainers.image.description: 'NGINX Unit is a lightweight and versatile web-server'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- zot
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/project-zot/zot'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'zot'
org.opencontainers.image.description: 'A production-ready vendor-neutral OCI-native container image registry (purely based on OCI Distribution Specification)'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -4,13 +4,4 @@ version_template: "{{ version }}"
source_packages:
- glibc
- tzdata
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: base
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
org.opencontainers.image.description: 'Base image with localization and timezone packages'
...

View File

@@ -6,13 +6,4 @@ source_packages:
- curl
- gnupg
- wget
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'buildpack-deps-curl'
org.opencontainers.image.description: 'Transfer data environment'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -7,13 +7,4 @@ source_packages:
- openssh
- procps
- subversion
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'buildpack-deps-scm'
org.opencontainers.image.description: 'Software configuration management environment'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: false
version_template: "{{ version }}"
source_packages:
- gcc-defaults
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'buildpack-deps'
org.opencontainers.image.description: 'Projects building environment'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -14,13 +14,4 @@ source_packages:
- ripgrep
- zsh
- make
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'devel'
org.opencontainers.image.description: 'This image is only for devel or testing purposes'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -6,13 +6,4 @@ source_packages:
- tzdata
- zlib
- libselinux
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'distroless-base'
org.opencontainers.image.description: 'Base image for running dynamically linked programs'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -4,13 +4,4 @@ version_template: "{{ version }}"
source_packages:
- glibc
- apt-repo
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'distroless-builder'
org.opencontainers.image.description: 'This image is used to build tarballs for distroless images'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -7,13 +7,4 @@ source_packages:
- glibc
- iproute2
- vim
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'distroless-devel'
org.opencontainers.image.description: 'Base image for creating and debugging distroless images'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: false
version_template: "{{ version }}"
source_packages:
- gotop
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'distroless-gotop'
org.opencontainers.image.description: 'Gotop image'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: false
version_template: "{{ version }}"
source_packages:
- distroless-static
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'distroless-static'
org.opencontainers.image.description: 'Base image for running statically linked programs'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: false
version_template: "{{ version }}"
source_packages:
- toybox
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'distroless-toybox'
org.opencontainers.image.description: 'Base image with toybox environment'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: false
version_template: "{{ version }}"
source_packages:
- distroless-true
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'distroless-true'
org.opencontainers.image.description: 'True-command image for zero status returning'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/cert-manager/cert-manager'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'cert-manager-acmesolver'
org.opencontainers.image.description: 'HTTP server used to solve ACME challenges'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/cert-manager/cert-manager'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'cert-manager-cainjector'
org.opencontainers.image.description: 'cert-manager CA injector is a Kubernetes addon to automate the injection of CA data into webhooks and APIServices from cert-manager certificates'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/cert-manager/cert-manager'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'cert-manager-controller'
org.opencontainers.image.description: 'Automatically provision and manage TLS certificates in Kubernetes'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/cert-manager/cert-manager'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'cert-manager-startupapicheck'
org.opencontainers.image.description: 'Check that cert-manager started successfully'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/cert-manager/cert-manager'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'cert-manager-webhook'
org.opencontainers.image.description: 'The webhook component provides API validation, mutation and conversion functionality for cert-manager'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -8,17 +8,7 @@ LABEL org.opencontainers.image.source="https://github.com/coredns/coredns"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{% if pkg_versions and "k8s/coredns" in pkg_versions %}
{% set num_version_parts = (pkg_versions["k8s/coredns"].split('.') | length) %}
{% else %}
{% set num_version_parts = 0 %}
{% endif %}
{% if num_version_parts == 2 %}
ARG PKG_VERSION
{{ install_packages("coredns-for-kubernetes${PKG_VERSION}") }}
{% elif num_version_parts == 3 %}
{% if branch in ["sisyphus", "p11", "c10f2"] %}
ARG PKG_VERSION
{{ install_packages("coredns${PKG_VERSION}") }}

View File

@@ -3,21 +3,9 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- >
{%- set num_version_parts = (version.split('.') | length) -%}
{%- if num_version_parts == 2 -%}
coredns-for-kubernetes{{ version }}
{%- elif num_version_parts == 3 -%}
coredns{{ version }}
{%- else -%}
{% if branch in ["sisyphus", "p11", "c10f2"] %}
{% raw %}coredns{{ version }}{% endraw %}
{% else %}
coredns
{%- endif -%}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/coredns/coredns'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'coredns'
org.opencontainers.image.description: 'CoreDNS is a DNS server that chains plugins'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
{% endif %}
...

View File

@@ -8,17 +8,9 @@ LABEL org.opencontainers.image.source="https://github.com/etcd-io/etcd"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
ARG PKG_VERSION
{{ install_packages("etcd") }}
{% if branch == 'p10' %}
{{ install_packages("etcd${PKG_VERSION}") }}
{% else %}
{{ install_packages("etcd-for-kubernetes${PKG_VERSION}") }}
{% endif %}
RUN ln -s /usr/sbin/etcd /usr/local/bin/etcd && ln -s /usr/bin/etcdctl /usr/local/bin/etcdctl
EXPOSE 2379 2380
RUN ln -s /usr/sbin/etcd /usr/local/bin/etcd
VOLUME /data

View File

@@ -1,19 +0,0 @@
dockerfiles-alt-etcd
=========================
ALT dockerfile for etcd.
Copy Dockerfile somewhere and build the image:
```console
$ podman build --rm -t <username>/etcd.
```
And launch the etcd container:
```console
$ podman run -d -v <etcd data dir>:/data <username>/etcd
```
If etcdclt is wanted, it could be run via:
```console
$ podman run --entrypoint etcdctl <username>/etcd
```

View File

@@ -1,23 +1,12 @@
---
is_versioned: true
version_template:
- "v{{ version }}"
- "{{ version }}"
- "{{ version }}-0"
source_packages:
- >
{%- if branch in ["p10"] -%}
etcd{{ version }}
{%- else -%}
etcd-for-kubernetes{{ version }}
{%- endif -%}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/etcd-io/etcd'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'etcd'
org.opencontainers.image.description: 'Distributed reliable key-value store for the most critical data of a distributed system'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
version_template: >
{% set version_patch = version.split(".")[2] | int %}
{% if version_patch < 16 %}
{{ version }}-0
{% else %}
v{{ version }}
{% endif %}
source_packages:
- etcd
...

View File

@@ -1 +1 @@
etcd --version && etcdctl --version
etcd --version

View File

@@ -1,27 +1,6 @@
---
is_versioned: true
version_template: >-
{%- set version_parts = version.split('.') -%}
{%- if version_parts | length == 3 -%}
{%- if version == "1.4.0" -%}
v{{ version }}-flannel1
{%- else -%}
v{{ version }}
{%- endif %}
{%- elif version_parts | length == 4 -%}
v{{ version.rsplit('.', 1) | first }}-flannel{{ version.rsplit('.', 1) | last }}
{%- else -%}
{{ "Invalid version format: must have 3 or 4 parts" | fail }}
{%- endif %}
version_template: v{{ version.rsplit('.', 1) | first }}-flannel{{ version.rsplit('.', 1) | last }}
source_packages:
- cni-plugin-flannel
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/flannel-io/cni-plugin'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'flannel-cni-plugin'
org.opencontainers.image.description: 'CNI network plugin that is powered by flannel'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -2,13 +2,3 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- flannel
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/flannel-io/flannel'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'flannel'
org.opencontainers.image.description: 'Network fabric for containers'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- kubernetes{{ version }}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubernetes/kubernetes'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'kube-apiserver'
org.opencontainers.image.description: 'The Kubernetes API server validates and configures data for the api objects which include pods, services, replicationcontrollers, and others'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- kubernetes{{ version }}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubernetes/kubernetes'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'kube-controller-manager'
org.opencontainers.image.description: 'The Kubernetes controller manager is a daemon that embeds the core control loops shipped with Kubernetes'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- kubernetes{{ version }}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubernetes/kubernetes'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'kube-proxy'
org.opencontainers.image.description: 'The Kubernetes network proxy runs on each node'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- kubernetes{{ version }}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubernetes/kubernetes'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'kube-scheduler'
org.opencontainers.image.description: 'The Kubernetes scheduler is a control plane process which assigns Pods to Nodes'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: v{{ version }}
source_packages:
- kubernetes{{ version }}
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubernetes/kubernetes'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'kubelet'
org.opencontainers.image.description: 'An agent that runs on each node in the cluster. It makes sure that containers are running in a Pod'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1,13 +0,0 @@
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
{{ install_packages("metrics-server") }}
USER 65534
ENTRYPOINT ["/usr/bin/metrics-server"]
LABEL org.opencontainers.image.title="metrics-server"
LABEL org.opencontainers.image.description="Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines."
LABEL org.opencontainers.image.source="https://github.com/kubernetes-sigs/metrics-server"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"

View File

@@ -1,15 +0,0 @@
---
is_versioned: true
version_template: v{{ version }}
source_packages:
- metrics-server
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'metrics-server'
org.opencontainers.image.description: 'Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.'
org.opencontainers.image.licenses: 'Apache-2.0'
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -1 +0,0 @@
metrics-server --version

View File

@@ -2,13 +2,4 @@
is_versioned: true
source_packages:
- kubernetes-pause
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: ''
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'pause'
org.opencontainers.image.description: 'Simple pause image'
org.opencontainers.image.licenses: GPLv2
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -2,13 +2,4 @@
is_versioned: true
source_packages:
- k8s-trivy-node-collector
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/aquasecurity/k8s-node-collector'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'trivy-node-collector'
org.opencontainers.image.description: 'Open source collector who collect Node information (fs and process data) and output in a table/json format'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- kubevirt
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubevirt/kubevirt'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'virt-api'
org.opencontainers.image.description: 'Kubevirt API server'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- kubevirt
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubevirt/kubevirt'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'virt-controller'
org.opencontainers.image.description: 'Controller for kubevirt'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- kubevirt
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubevirt/kubevirt'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'virt-exportproxy'
org.opencontainers.image.description: 'Export proxy for kubevirt'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- kubevirt
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubevirt/kubevirt'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'virt-exportserver'
org.opencontainers.image.description: 'Export server for kubevirt'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -16,6 +16,6 @@ RUN useradd -g qemu -m -d /home/qemu -s /bin/bash -c "qemu user" -u 107 qemu > /
"kubevirt-container-disk"
) }}
RUN cp -f /usr/share/kube-virt/virt-handler/nsswitch.conf /etc/
RUN cp -f /usr/share/kube-virt/virt-handler/nsswitch.conf /etc/ && cp -f /usr/share/kube-virt/virt-handler/virt_launcher.cil /
ENTRYPOINT ["/usr/bin/virt-handle"]

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- kubevirt
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubevirt/kubevirt'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'virt-handler'
org.opencontainers.image.description: 'Handler component for kubevirt'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- kubevirt
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubevirt/kubevirt'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'virt-launcher'
org.opencontainers.image.description: 'Launcher component for kubevirt'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...

View File

@@ -3,13 +3,4 @@ is_versioned: true
version_template: "{{ version }}"
source_packages:
- kubevirt
annotations:
org.opencontainers.image.revision: ''
org.opencontainers.image.source: 'https://github.com/kubevirt/kubevirt'
org.opencontainers.image.url: ''
org.opencontainers.image.version: ''
org.opencontainers.image.title: 'virt-operator'
org.opencontainers.image.description: 'Operator component for kubevirt'
org.opencontainers.image.licenses: Apache-2.0
org.opencontainers.image.vendor: 'ALT Linux Team'
...