20 Commits

Author SHA1 Message Date
57bcce92b5 remove unused variables 2024-11-06 21:25:14 +03:00
c553e50d53 define ARG only if needed, allow jinja2 control flow in package names 2024-11-06 21:23:24 +03:00
bb085c8498 make PKG_VERSION into a dictionary of PKG_VERSIONS 2024-11-06 20:57:26 +03:00
dd9866702e add info.yaml files for k8s images 2024-11-06 20:57:26 +03:00
6235bdb955 fix installed package for kubernetes images 2024-11-06 20:57:26 +03:00
ad980dbb06 strip whitespace from rendered tag 2024-11-06 19:51:40 +03:00
d4f88412bf add templating for tag and package name in info.yaml 2024-10-23 16:15:16 +03:00
0c09627b12 try automatic package version detection 2024-10-23 13:13:53 +03:00
d095e0832e fix: move LABEL commands to the end of Dockerfile.template
Since all the commands except ENTRYPOINT in cert-manager and kubernetes
Dockerfiles are the same, we can utilize the cached layers when building
images in batch, but LABEL commands prevented it from happening, because
labels are different for each image. Thus the cache is invalidated.

By moving LABELs after the common commands we allow cached layers
to be reused for every image, thus speeding up the build process.
2024-10-23 12:42:59 +03:00
ccea111eff add exlusion for building images
Some checks failed
Full building alt images / build-process (push) Failing after 3h10m15s
Full building alt images / test-process (push) Has been cancelled
2024-10-16 13:58:16 +03:00
7fea91a372 fix command run-test
Some checks failed
Building alt images / build-process (push) Successful in 4m45s
Building alt images / test-process (push) Successful in 1m29s
Full building alt images / test-process (push) Has been cancelled
Full building alt images / build-process (push) Has been cancelled
2024-09-27 16:48:27 +03:00
4f1a12d561 fix: k8s/trivy-node-collector missing package
Some checks failed
Building alt images / build-process (push) Successful in 4m27s
Building alt images / test-process (push) Failing after 1m26s
2024-09-26 17:20:40 +03:00
1e018cfc07 add organization flag to single building
Some checks failed
Building alt images / build-process (push) Successful in 5m45s
Building alt images / test-process (push) Failing after 1m51s
2024-09-26 17:04:25 +03:00
19cc3e9200 add tags flag to single building
Some checks failed
Building alt images / build-process (push) Successful in 5m33s
Building alt images / test-process (push) Failing after 1m52s
2024-09-26 15:22:44 +03:00
0e21a9248a feat: update k8s/trivy-node-collector 2024-09-26 14:12:46 +03:00
8d9a890573 feat: update k8s/trivy-node-collector
All checks were successful
Building alt images / build-process (push) Successful in 4m12s
Building alt images / test-process (push) Has been skipped
2024-09-26 13:09:46 +03:00
b0178e587a add in single wf setting apt repo for c10f2
Some checks failed
Full building alt images / build-process (push) Successful in 2h34m0s
Full building alt images / test-process (push) Successful in 7m24s
Building alt images / build-process (push) Successful in 6m56s
Building alt images / test-process (push) Failing after 1m42s
2024-09-18 12:59:27 +03:00
f7e8ff3059 add skip branch c10 for ansible image
Some checks failed
Building alt images / build-process (push) Successful in 6m4s
Building alt images / test-process (push) Failing after 1m46s
Full building alt images / build-process (push) Failing after 3h10m56s
Full building alt images / test-process (push) Has been cancelled
2024-09-03 15:05:37 +03:00
085e251c81 update tags.toml for cert-manager and flannel
All checks were successful
Full building alt images / build-process (push) Successful in 2h19m33s
Full building alt images / test-process (push) Has been skipped
2024-08-21 14:12:11 +03:00
704f9912e1 add ansible image
All checks were successful
Building alt images / build-process (push) Successful in 3m14s
Building alt images / test-process (push) Has been skipped
2024-08-21 12:57:54 +03:00
35 changed files with 393 additions and 76 deletions

View File

@ -24,10 +24,7 @@ do
then imgpath="$2-$1/$IM:latest"
fi
entrypoint='/usr/bin/sh'
if [[ $1 == 'p10' ]]
then entrypoint='/bin/sh'
fi
entrypoint='/bin/sh'
command="echo empty_command"
if [[ $test != '' ]]; then

View File

@ -26,6 +26,13 @@ jobs:
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- 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: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
@ -54,7 +61,10 @@ jobs:
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"
echo "IMAGE=$localimage"
org=$(echo "$localimage" | cut -d '/' -f 1)
echo "ORG=$org" >> ${GITHUB_ENV}
echo "ORG=$org"
- 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
@ -65,11 +75,13 @@ jobs:
- name: Run building script
id: build-script
run: |
if [[ "$IM" == *"k8s"* ]]; then k8sarg="--tags=tags.toml --overwrite-organization $ORG-$BR"; else k8sarg=""; fi
echo "build.py -i $IM -b $BR"
${{ gitea.workspace }}/build.py -i $IM -b $BR
${{ gitea.workspace }}/build.py -i $IM -b $BR $k8sarg
env:
IM: ${{ env.IMAGE }}
BR: ${{ env.BRANCH }}
ORG: ${{ env.ORG }}
continue-on-error: true
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
@ -111,7 +123,7 @@ jobs:
if: ${{ needs.build-process.outputs.test != '' }}
continue-on-error: true
run: |
if [[ $BR = 'p10' ]]; then podman run --rm --entrypoint="/bin/sh" $URL/$IM:$BR -c "$TEST"; else podman run --rm --entrypoint="/usr/bin/sh" $URL/$IM:$BR -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: ${{ needs.build-process.outputs.image }}
BR: ${{ needs.build-process.outputs.branch }}

View File

@ -26,6 +26,64 @@ the organization `<ORGANIZATION>`, run:
```
If you push to the users repository, then organiztion is your username.
## info.yaml format
- `is_versioned`: **bool** (REQUIRED)
Whether to use package version as a tag for this image
- `source_packages`: **list of strings** (REQUIRED)
List of source packages (src.rpm) this image depends on.
If contains jinja2 template syntax, `--package-version`
CLI option must be specified.
- `version_template`: **string** (OPTIONAL)
template to apply when construction the tag,
`version` string variable is available in the template
### examples
#### org/k8s/flannel-cni-plugin
```yaml
is_versioned: true
version_template: v{{ version.rsplit('.', 1) | first }}-flannel{{ version.rsplit('.', 1) | last }}
source_packages:
- cni-plugin-flannel
```
```bash
./build.py -i k8s/flannel-cni-plugin
```
#### org/k8s/kube-apiserver
```yaml
is_versioned: true
version_template: v{{ version }}
source_packages:
- kubernetes{{ version }}
```
```bash
./build.py -b sisyphus -i k8s/kube-apiserver --package-version '{"k8s/kube-apiserver": "1.31"}'
```
#### org/k8s/pause
```yaml
is_versioned: true
source_packages:
- kubernetes-pause
```
```bash
./build.py -i k8s/pause
```
## Dependencies
On x86_64 machine using p10 branch you need:
- `python3-module-tomli`

119
build.py
View File

@ -6,25 +6,61 @@ import json
import re
import subprocess
import textwrap
from dataclasses import dataclass
from graphlib import TopologicalSorter
from pathlib import Path
import requests
import tomli
import yaml
from jinja2 import Template
ORG_DIR = Path("org")
PKG_VERSIONS: dict | None = None
@dataclass
class Image:
def __init__(self, canonical_name):
canonical_name: str
is_versioned: bool | None
verion_template: str | None
source_packages: list[str] | None
def __init__(self, canonical_name: str):
self.canonical_name = canonical_name
self.path = ORG_DIR / canonical_name
self.base_name = re.sub("^[^/]+/", "", canonical_name)
def __str__(self):
return (f'Image(canonical_name="{self.canonical_name}", '
f'path="{self.path}", base_name="{self.base_name}")')
info_file = self.path / "info.yaml"
if not info_file.exists():
self.is_versioned = None
self.source_packages = None
return
info: dict = yaml.safe_load(info_file.read_text())
if "is_versioned" not in info:
raise RuntimeError(
f"info.yaml for {self.canonical_name} doesn't contain 'is_versioned' key"
)
if "source_packages" not in info:
raise RuntimeError(
f"info.yaml for {self.canonical_name} doesn't contain 'source_packages' key"
)
self.is_versioned = info["is_versioned"]
self.source_packages = info["source_packages"]
if self.is_versioned and not self.source_packages:
raise RuntimeError(
f"source_packages for {self.canonical_name} doesn't contain any values"
)
self.version_template = None
if "version_template" in info:
self.version_template = info["version_template"]
class Tasks:
@ -49,18 +85,67 @@ class Tasks:
]
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)
raise RuntimeError(
f"failed to retrieve source package version: source package {package_name!r}, branch {branch!r} "
)
result = response.json()
return result["versions"][0]["version"]
class Tags:
def __init__(self, tags_file, latest):
def __init__(self, tags_file: str | None, latest: str):
if tags_file is None:
self._tags = None
else:
tags_file = Path(tags_file)
self._tags = tomli.loads(tags_file.read_text())
self._tags = tomli.loads(Path(tags_file).read_text())
self._latest = latest
def tags(self, branch, image: Image):
def tags(self, branch: str, image: Image):
if self._tags is None:
tags = [branch]
if image.is_versioned and image.source_packages:
package_name = image.source_packages[0]
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(
f"--package-versions option is not specified, required for {image.canonical_name!r}"
)
if image.canonical_name not in PKG_VERSIONS:
raise RuntimeError(
f"--package-versions option does not contain version for image {image.canonical_name!r}"
)
if not PKG_VERSIONS[image.canonical_name]:
raise RuntimeError(
f"invalid version for image {image.canonical_name!r}: {PKG_VERSIONS[image.canonical_name]!r}"
)
package_name = Template(package_name).render(
version=PKG_VERSIONS[image.canonical_name]
)
version = api_get_source_package_version(branch, package_name)
if image.version_template is not None:
version = (
Template(image.version_template).render(version=version).strip()
)
tags = [version]
else:
tags = [branch]
else:
tags = self._tags[image.canonical_name][branch].copy()
if branch == self._latest:
@ -580,6 +665,12 @@ class DockerBuilder:
f"--platform={platforms}",
".",
]
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]}"
)
self.run(build_cmd, cwd=image.path)
for tag in tags[1:]:
@ -749,6 +840,11 @@ def parse_args():
choices=stages,
help="list of stages to skip",
)
parser.add_argument(
"--package-versions",
type=json.loads,
help="json string where key is image name, value is the package version",
)
args = parser.parse_args()
args.stages = set(args.stages) - set(args.skip_stages)
@ -760,7 +856,10 @@ def parse_args():
def main():
global PKG_VERSIONS
args = parse_args()
PKG_VERSIONS = args.package_versions
arches = args.arches
images_info = ImagesInfo()
tags = Tags(args.tags, args.latest)

View File

@ -3,3 +3,6 @@ skip-branches = [ "p9" ]
["alt/openjdk21"]
skip-arches = [ "386" ]
["alt/ansible"]
skip-branches = [ "c10f2", "c10f1", "p10" ]

View File

@ -0,0 +1,17 @@
FROM {{ registry }}{{ organization }}/node:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="ansible"
LABEL org.opencontainers.image.description="A radically simple IT automation system"
LABEL org.opencontainers.image.source="http://www.ansible.com"
LABEL org.opencontainers.image.licenses="GPL-3.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"ansible-vim",
"ansible-core",
"ansible-lint"
) }}
WORKDIR /etc/ansible/playbooks

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

@ -0,0 +1 @@
ansible --version

View File

@ -2,12 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="cert-manager-acmesolver"
LABEL org.opencontainers.image.description="HTTP server used to solve ACME challenges."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger
@ -15,3 +9,9 @@ RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-
USER 1000
ENTRYPOINT ["/usr/bin/acmesolver"]
LABEL org.opencontainers.image.title="cert-manager-acmesolver"
LABEL org.opencontainers.image.description="HTTP server used to solve ACME challenges."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"

View File

@ -0,0 +1,6 @@
---
is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
...

View File

@ -2,12 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="cert-manager-cainjector"
LABEL 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."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger
@ -15,3 +9,9 @@ RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-
USER 1000
ENTRYPOINT ["/usr/bin/cainjector"]
LABEL org.opencontainers.image.title="cert-manager-cainjector"
LABEL 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."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"

View File

@ -0,0 +1,6 @@
---
is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
...

View File

@ -2,12 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="cert-manager-controller"
LABEL org.opencontainers.image.description="Automatically provision and manage TLS certificates in Kubernetes."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger
@ -15,3 +9,9 @@ RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-
USER 1000
ENTRYPOINT ["/usr/bin/controller"]
LABEL org.opencontainers.image.title="cert-manager-controller"
LABEL org.opencontainers.image.description="Automatically provision and manage TLS certificates in Kubernetes."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"

View File

@ -0,0 +1,6 @@
---
is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
...

View File

@ -2,12 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="cert-manager-startupapicheck"
LABEL org.opencontainers.image.description="Check that cert-manager started successfully."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger
@ -15,3 +9,9 @@ RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-
USER 1000
ENTRYPOINT ["/usr/bin/startupapicheck"]
LABEL org.opencontainers.image.title="cert-manager-startupapicheck"
LABEL org.opencontainers.image.description="Check that cert-manager started successfully."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"

View File

@ -0,0 +1,6 @@
---
is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
...

View File

@ -2,12 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="cert-manager-webhook"
LABEL org.opencontainers.image.description="The webhook component provides API validation, mutation and conversion functionality for cert-manager."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger
@ -15,3 +9,9 @@ RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-
USER 1000
ENTRYPOINT ["/usr/bin/webhook"]
LABEL org.opencontainers.image.title="cert-manager-webhook"
LABEL org.opencontainers.image.description="The webhook component provides API validation, mutation and conversion functionality for cert-manager."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"

View File

@ -0,0 +1,6 @@
---
is_versioned: true
version_template: v{{ version }}
source_packages:
- cert-manager
...

View File

@ -8,6 +8,13 @@ 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 branch in ["sisyphus", "p11", "c10f2"] %}
ARG PKG_VERSION
{{ install_packages("coredns${PKG_VERSION}") }}
{% else %}
{{ install_packages("coredns") }}
{% endif %}
ENTRYPOINT ["/usr/bin/coredns"]

11
org/k8s/coredns/info.yaml Normal file
View File

@ -0,0 +1,11 @@
---
is_versioned: true
version_template: v{{ version }}
source_packages:
- >
{% if branch in ["sisyphus", "p11", "c10f2"] %}
{% raw %}coredns{{ version }}{% endraw %}
{% else %}
coredns
{% endif %}
...

12
org/k8s/etcd/info.yaml Normal file
View File

@ -0,0 +1,12 @@
---
is_versioned: true
version_template: >
{% set version_patch = version.split(".")[2] | int %}
{% if version_patch < 16 %}
{{ version }}-0
{% else %}
v{{ version }}
{% endif %}
source_packages:
- etcd
...

View File

@ -0,0 +1,6 @@
---
is_versioned: true
version_template: v{{ version.rsplit('.', 1) | first }}-flannel{{ version.rsplit('.', 1) | last }}
source_packages:
- cni-plugin-flannel
...

View File

@ -0,0 +1,4 @@
is_versioned: true
version_template: v{{ version }}
source_packages:
- flannel

View File

@ -2,12 +2,14 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
ARG PKG_VERSION
{{ install_packages("kubernetes${PKG_VERSION}-master") }}
ENTRYPOINT ["/usr/bin/kube-apiserver"]
LABEL org.opencontainers.image.title="kube-apiserver"
LABEL org.opencontainers.image.description="The Kubernetes API server validates and configures data for the api objects which include pods, services, replicationcontrollers, and others."
LABEL org.opencontainers.image.source="https://github.com/kubernetes/kubernetes"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kubernetes-master") }}
ENTRYPOINT ["/usr/bin/kube-apiserver"]

View File

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

View File

@ -2,12 +2,14 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
ARG PKG_VERSION
{{ install_packages("kubernetes${PKG_VERSION}-master") }}
ENTRYPOINT ["/usr/bin/kube-controller-manager"]
LABEL org.opencontainers.image.title="kube-controller-manager"
LABEL org.opencontainers.image.description="The Kubernetes controller manager is a daemon that embeds the core control loops shipped with Kubernetes."
LABEL org.opencontainers.image.source="https://github.com/kubernetes/kubernetes"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kubernetes-master") }}
ENTRYPOINT ["/usr/bin/kube-controller-manager"]

View File

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

View File

@ -2,14 +2,16 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
ARG PKG_VERSION
{{ install_packages("kubernetes${PKG_VERSION}-node") }}
RUN ln -s /usr/bin/kube-proxy /usr/local/bin/kube-proxy
ENTRYPOINT ["/usr/bin/kube-proxy"]
LABEL org.opencontainers.image.title="kube-proxy"
LABEL org.opencontainers.image.description="The Kubernetes network proxy runs on each node."
LABEL org.opencontainers.image.source="https://github.com/kubernetes/kubernetes"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kubernetes-node") }}
RUN ln -s /usr/bin/kube-proxy /usr/local/bin/kube-proxy
ENTRYPOINT ["/usr/bin/kube-proxy"]

View File

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

View File

@ -2,12 +2,14 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
ARG PKG_VERSION
{{ install_packages("kubernetes${PKG_VERSION}-master") }}
ENTRYPOINT ["/usr/bin/kube-scheduler"]
LABEL org.opencontainers.image.title="kube-scheduler"
LABEL org.opencontainers.image.description="The Kubernetes scheduler is a control plane process which assigns Pods to Nodes."
LABEL org.opencontainers.image.source="https://github.com/kubernetes/kubernetes"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kubernetes-master") }}
ENTRYPOINT ["/usr/bin/kube-scheduler"]

View File

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

View File

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

5
org/k8s/pause/info.yaml Normal file
View File

@ -0,0 +1,5 @@
---
is_versioned: true
source_packages:
- kubernetes-pause
...

View File

@ -9,7 +9,8 @@ LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"k8s-trivy-node-collector"
"k8s-trivy-node-collector",
"procps"
) }}
RUN ln -s /usr/bin/k8s-trivy-node-collector /usr/bin/node-collector

View File

@ -0,0 +1,5 @@
---
is_versioned: true
source_packages:
- k8s-trivy-node-collector
...

View File

@ -38,26 +38,36 @@ c10f2 = [ "3.5.9-0" ]
p10 = [ "v1.10.1" ]
sisyphus = [ "v1.10.1" ]
c10f1 = [ "v1.9.3" ]
c10f2 = [ "v1.9.3" ]
c10f2 = [ "v1.9.3" ]
["k8s/cert-manager-cainjector"]
p10 = [ "v1.9.1" ]
sisyphus = [ "v1.11.0" ]
p10 = [ "v1.14.5" ]
sisyphus = [ "v1.14.5" ]
c10f1 = [ "v1.9.1" ]
c10f2 = [ "v1.9.1" ]
["k8s/cert-manager-controller"]
p10 = [ "v1.9.1" ]
sisyphus = [ "v1.11.0" ]
p10 = [ "v1.14.5" ]
sisyphus = [ "v1.14.5" ]
c10f1 = [ "v1.9.1" ]
c10f2 = [ "v1.9.1" ]
["k8s/cert-manager-webhook"]
p10 = [ "v1.9.1" ]
sisyphus = [ "v1.11.0" ]
p10 = [ "v1.14.5" ]
sisyphus = [ "v1.14.5" ]
c10f1 = [ "v1.9.1" ]
c10f2 = [ "v1.9.1" ]
["k8s/cert-manager-acmesolver"]
p10 = [ "v1.14.5" ]
sisyphus = [ "v1.14.5" ]
c10f1 = [ "v1.9.1" ]
c10f2 = [ "v1.9.1" ]
["k8s/cert-manager-startupapicheck"]
p10 = [ "v1.14.5" ]
sisyphus = [ "v1.14.5" ]
["k8s/flannel"]
p10 = [ "v0.21.4" ]
sisyphus = [ "v0.24.2" ]
@ -66,12 +76,13 @@ c10f2 = [ "v0.21.4" ]
["k8s/flannel-cni-plugin"]
p10 = [ "v1.1.2" ]
sisyphus = [ "v1.2.0" ]
sisyphus = [ "v1.5.1-flannel1" ]
c10f1 = [ "v1.1.2" ]
c10f2 = [ "v1.1.2" ]
["k8s/trivy-node-collector"]
p10 = [ "0.0.9" ]
sisyphus = [ "0.0.9" ]
p11 = [ "0.3.1" ]
sisyphus = [ "0.3.1" ]
c10f1 = [ "0.0.9" ]
c10f2 = [ "0.0.9" ]
c10f2 = [ "0.3.1" ]