Compare commits

..

No commits in common. "master" and "0.17.2" have entirely different histories.

7 changed files with 208 additions and 404 deletions

View File

@ -3,42 +3,34 @@ kind: pipeline
type: kubernetes
name: linter
clone:
disable: true
platform:
os: linux
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: markdown lint
commands:
- markdownlint *.md
image: git.cryptic.systems/volker.raschek/markdownlint:0.44.0
image: docker.io/volkerraschek/markdownlint:0.31.1
resources:
limits:
cpu: 150
memory: 150M
cpu: 50
memory: 50M
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources:
limits:
cpu: 150
memory: 150M
cpu: 50
memory: 25M
when:
status:
- changed
@ -54,22 +46,13 @@ kind: pipeline
type: docker
name: dry-run-amd64
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.6
image: plugins/docker
settings:
auto_tag: false
dockerfile: Dockerfile
@ -77,34 +60,40 @@ steps:
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/createrepo
repo: volkerraschek/createrepo
tags: latest-amd64
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: email-notification
- name: notify
image: drillster/drone-email
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
exclude:
@ -120,22 +109,13 @@ kind: pipeline
type: docker
name: dry-run-arm64-v8
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.6
image: plugins/docker
settings:
auto_tag: false
dockerfile: Dockerfile
@ -143,34 +123,40 @@ steps:
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/createrepo
repo: volkerraschek/createrepo
tags: latest-arm64-v8
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
- name: email-notification
- name: notify
image: drillster/drone-email
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
exclude:
@ -186,56 +172,53 @@ kind: pipeline
type: docker
name: latest-amd64
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.6
image: plugins/docker
settings:
auto_tag: false
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/createrepo
repo: volkerraschek/createrepo
tags: latest-amd64
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: email-notification
- name: notify
image: drillster/drone-email
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
- master
@ -250,56 +233,53 @@ kind: pipeline
type: docker
name: latest-arm64-v8
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.6
image: plugins/docker
settings:
auto_tag: false
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/createrepo
repo: volkerraschek/createrepo
tags: latest-arm64-v8
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
- name: email-notification
- name: notify
image: drillster/drone-email
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
depends_on:
- linter
trigger:
branch:
- master
@ -314,114 +294,41 @@ kind: pipeline
type: kubernetes
name: latest-manifest
clone:
disable: true
depends_on:
- latest-amd64
- latest-arm64-v8
# docker.io/plugins/manifest only for amd64 architectures available
node_selector:
kubernetes.io/os: linux
kubernetes.io/arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build-manifest
image: docker.io/plugins/manifest:1.4.0
image: plugins/manifest
settings:
auto_tag: false
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
- name: email-notification
- name: notify
image: docker.io/drillster/drone-email:latest
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
resources:
limits:
cpu: 150
memory: 150M
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/createrepo-docker
---
kind: pipeline
type: kubernetes
name: latest-sync
clone:
disable: true
depends_on:
- latest-manifest
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: latest-sync
commands:
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/createrepo docker.io/volkerraschek
environment:
SRC_CRED_USERNAME:
from_secret: git_cryptic_systems_container_registry_user
SRC_CRED_PASSWORD:
from_secret: git_cryptic_systems_container_registry_password
DEST_CRED_USERNAME:
from_secret: container_image_registry_user
DEST_CRED_PASSWORD:
from_secret: container_image_registry_password
image: quay.io/skopeo/stable:v1.18.0
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
- latest-amd64
- latest-arm64-v8
trigger:
branch:
@ -437,55 +344,52 @@ kind: pipeline
type: docker
name: tagged-amd64
clone:
disable: true
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.6
image: plugins/docker
settings:
auto_tag: true
auto_tag_suffix: amd64
auto_tag: true
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/createrepo
repo: volkerraschek/createrepo
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
build_args:
- CREATEREPO_VERSION=${DRONE_TAG}
- CEATEREPO_VERSION=${DRONE_TAG}
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: email-notification
- name: notify
image: drillster/drone-email
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
trigger:
event:
- tag
@ -497,55 +401,52 @@ kind: pipeline
type: docker
name: tagged-arm64-v8
clone:
disable: true
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.6
image: plugins/docker
settings:
auto_tag: true
auto_tag_suffix: arm64-v8
auto_tag: true
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/createrepo
repo: volkerraschek/createrepo
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
build_args:
- CREATEREPO_VERSION=${DRONE_TAG}
- CEATEREPO_VERSION=${DRONE_TAG}
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: email-notification
- name: notify
image: drillster/drone-email
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
trigger:
event:
- tag
@ -557,111 +458,41 @@ kind: pipeline
type: kubernetes
name: tagged-manifest
clone:
disable: true
depends_on:
- tagged-amd64
- tagged-arm64-v8
# docker.io/plugins/manifest only for amd64 architectures available
node_selector:
kubernetes.io/os: linux
kubernetes.io/arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build-manifest
image: docker.io/plugins/manifest:1.4.0
image: plugins/manifest
settings:
auto_tag: true
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: git_cryptic_systems_container_registry_user
from_secret: container_image_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
from_secret: container_image_registry_password
- name: email-notification
- name: notify
image: docker.io/drillster/drone-email:latest
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
PLUGIN_HOST:
from_secret: smtp_host
SMTP_USERNAME:
PLUGIN_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
PLUGIN_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
PLUGIN_FROM:
from_secret: smtp_mail_address
resources:
limits:
cpu: 150
memory: 150M
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/createrepo-docker
---
kind: pipeline
type: kubernetes
name: tagged-sync
clone:
disable: true
depends_on:
- tagged-manifest
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: tagged-sync
commands:
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/createrepo docker.io/volkerraschek
environment:
SRC_CRED_USERNAME:
from_secret: git_cryptic_systems_container_registry_user
SRC_CRED_PASSWORD:
from_secret: git_cryptic_systems_container_registry_password
DEST_CRED_USERNAME:
from_secret: container_image_registry_user
DEST_CRED_PASSWORD:
from_secret: container_image_registry_password
image: quay.io/skopeo/stable:v1.18.0
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
- tagged-amd64
- tagged-arm64-v8
trigger:
event:

View File

@ -1,9 +1,9 @@
FROM docker.io/library/rockylinux:9.3.20231119
FROM docker.io/library/rockylinux:8.5
ARG CREATEREPO_VERSION
RUN yum update --assumeyes && \
yum install --assumeyes bash bash-completion
yum install --assumeyes bash curl
RUN if [ -z ${CREATEREPO_VERSION+x} ]; then \
yum install --assumeyes createrepo_c; \

View File

@ -1,16 +1,16 @@
# CREATEREPO_VERSION
# Only required to install a specifiy version
CREATEREPO_VERSION?=0.20.1
CREATEREPO_VERSION?=0.17.2
# CONTAINER_RUNTIME
# The CONTAINER_RUNTIME variable will be used to specified the path to a
# container runtime. This is needed to start and run a container image.
CONTAINER_RUNTIME?=$(shell which podman)
CONTAINER_RUNTIME?=$(shell which docker)
# CREATEREPO_IMAGE_REGISTRY_NAME
# Defines the name of the new container to be built using several variables.
CREATEREPO_IMAGE_REGISTRY_NAME?=git.cryptic.systems
CREATEREPO_IMAGE_REGISTRY_USER?=volker.raschek
CREATEREPO_IMAGE_REGISTRY_NAME:=docker.io
CREATEREPO_IMAGE_REGISTRY_USER:=volkerraschek
CREATEREPO_IMAGE_NAMESPACE?=${CREATEREPO_IMAGE_REGISTRY_USER}
CREATEREPO_IMAGE_NAME:=createrepo

View File

@ -4,33 +4,6 @@
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/createrepo)](https://hub.docker.com/r/volkerraschek/createrepo)
This project contains all sources to build the container image
`docker.io/volkerraschek/createrepo` and the shell script `createrepo.sh`.
The primary goal of this project is to package the binary `createrepo` as
container image to provide the functionally for CI/CD workflows or for systems
which does contains the binary.
## createrepo.sh
The shell script `createrepo.sh` is a wrapper for the binary `createrepo`, which
is not available depending on the distribution. It starts the container image
`docker.io/volkerraschek/createrepo` in the background to call the binary. For
this reason, a container runtime like `docker` or `podman` is necessary.
### Installation
The script can be installed via the following command:
```bash
curl https://git.cryptic.systems/volker.raschek/createrepo-docker/raw/branch/master/createrepo.sh --output - | sudo tee /usr/local/bin/createrepo.sh && sudo chmod +x /usr/local/bin/createrepo.sh
```
### Usage
The script forwards all arguments directly to the binary running inside the
container. For this reason, all arguments from the original binary can be used.
```bash
createrepo.sh --update . # Update local repository
createrepo.sh --update /var/www/my-repo # Update repository based on specific path
```
`docker.io/volkerraschek/createrepo`. The primary goal of this project is to package
the binary `createrepo` as container image to provide the functionally for CI/CD
workflows or for systems which does not provide or based on RHEL.

View File

@ -1,20 +0,0 @@
#!/bin/bash
set -e
CONTAINER_RUNTIME=$(which docker)
CREATEREPO_IMAGE_FULLY_QUALIFIED="docker.io/volkerraschek/createrepo:0.17.2" # renovate: datasource=docker registryUrl=https://docker.io depName=volkerraschek/createrepo
CUSTOM_UID="${CUSTOM_UID:-"$(getent passwd "${USER}" | cut -d ':' -f 3)"}"
CUSTOM_GID="${CUSTOM_GID:-"$(getent passwd "${USER}" | cut -d ':' -f 4)"}"
# Extract last element of passed arguments
REPO_DIR="${*: -1}"
${CONTAINER_RUNTIME} run \
--rm \
--volume "${REPO_DIR}:${REPO_DIR}" \
--workdir "${REPO_DIR}" \
--user "${CUSTOM_UID}:${CUSTOM_GID}" \
"${CREATEREPO_IMAGE_FULLY_QUALIFIED}" "${@}"

View File

@ -1,4 +1,4 @@
image: git.cryptic.systems/volker.raschek/createrepo:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
image: volkerraschek/createrepo:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
@ -7,11 +7,13 @@ tags:
- "latest"
{{/if}}
manifests:
- image: git.cryptic.systems/volker.raschek/createrepo:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64
-
image: volkerraschek/createrepo:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64
platform:
architecture: amd64
os: linux
- image: git.cryptic.systems/volker.raschek/createrepo:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8
-
image: volkerraschek/createrepo:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8
platform:
architecture: arm64
os: linux

View File

@ -1,16 +1,34 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>volker.raschek/renovate-config:default#master",
"local>volker.raschek/renovate-config:container#master",
"local>volker.raschek/renovate-config:actions#master",
"local>volker.raschek/renovate-config:regexp#master"
],
"assignees": [ "volker.raschek" ],
"automergeStrategy": "merge-commit",
"automergeType": "pr",
"labels": [ "renovate" ],
"packageRules": [
{
"addLabels": [ "renovate/droneci", "renovate/automerge" ],
"automerge": true,
"matchManagers": "droneci",
"matchUpdateTypes": [ "minor", "patch"]
},
{
"addLabels": [ "renovate/createrepo", "renovate/automerge" ],
"automerge": false,
"matchPackageNames": [ "docker-compose" ],
"matchPackageNames": [ "createrepo" ],
"matchManagers": [ "regex" ]
}
],
"rebaseLabel": "renovate/rebase",
"rebaseWhen": "behind-base-branch",
"regexManagers": [
{
"description": "Update version",
"fileMatch": [
"^Makefile$"
],
"matchStrings": [
"CREATE_REPO_VERSION\\?=(?<currentValue>.*) # renovate: datasource=(?<datasource>.*) depName=(?<depName>.*)( lookupName=(?<lookupName>.*))?( versioning=(?<versioning>.*))?"
]
}
]
}