mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-02 19:11:20 +02:00
Merge pull request #1484 from flatcar-linux/tormath1/mirror
.github/wf: add mirror-calico action
This commit is contained in:
commit
46f9a0bdda
22
sdk_container/src/third_party/coreos-overlay/.github/workflows/mirror-calico.sh
vendored
Executable file
22
sdk_container/src/third_party/coreos-overlay/.github/workflows/mirror-calico.sh
vendored
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script will mirror the list of Calico images
|
||||||
|
# from Docker Hub to GHCR.
|
||||||
|
|
||||||
|
# tag will hold the version of calico images we
|
||||||
|
# previously fetched
|
||||||
|
tag=$1
|
||||||
|
|
||||||
|
# list of images to mirror from Docker Hub
|
||||||
|
images=(
|
||||||
|
calico/typha
|
||||||
|
calico/pod2daemon-flexvol
|
||||||
|
calico/cni
|
||||||
|
calico/node
|
||||||
|
calico/kube-controllers
|
||||||
|
)
|
||||||
|
|
||||||
|
# we iterate over the images we want to mirror
|
||||||
|
for image in "${images[@]}"; do
|
||||||
|
./mirror-to-ghcr.sh $image $tag
|
||||||
|
done
|
26
sdk_container/src/third_party/coreos-overlay/.github/workflows/mirror-calico.yml
vendored
Normal file
26
sdk_container/src/third_party/coreos-overlay/.github/workflows/mirror-calico.yml
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
name: Sync GHCR Calico images with Docker Hub
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
# run every 12h
|
||||||
|
- cron: '0 */12 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
get-docker-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Login to GitHub Container Registry (ghcr)
|
||||||
|
run: echo ${{ secrets.GHCR_PASSWORD }} | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin
|
||||||
|
- name: Fetch latest Calico release
|
||||||
|
id: fetch-latest-release
|
||||||
|
run: |
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
git clone https://github.com/projectcalico/calico calico
|
||||||
|
# get latest version
|
||||||
|
version=$(git -C "$_" tag | sort -V | tail -1)
|
||||||
|
|
||||||
|
pushd .github/workflows/
|
||||||
|
./mirror-calico.sh $version
|
||||||
|
popd
|
30
sdk_container/src/third_party/coreos-overlay/.github/workflows/mirror-to-ghcr.sh
vendored
Executable file
30
sdk_container/src/third_party/coreos-overlay/.github/workflows/mirror-to-ghcr.sh
vendored
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This generic script aims to mirror an image from Docker hub to another registry.
|
||||||
|
# Authentication to the registry must be done before.
|
||||||
|
|
||||||
|
image=$1
|
||||||
|
imagetag=$2
|
||||||
|
registry=${3:-kinvolk}
|
||||||
|
|
||||||
|
# we want both arch for running tests
|
||||||
|
platforms=( amd64 arm64 )
|
||||||
|
|
||||||
|
# tags will hold the mirrored images
|
||||||
|
tags=()
|
||||||
|
|
||||||
|
for platform in "${platforms[@]}"; do
|
||||||
|
# we first fetch the image from Docker Hub
|
||||||
|
var=$(docker pull $image:$imagetag --platform=linux/$platform -q)
|
||||||
|
# we prepare the image to be pushed into another registry
|
||||||
|
tag=ghcr.io/$registry/$image:$imagetag-$platform
|
||||||
|
# we tag the image to create the mirrored image
|
||||||
|
docker tag $var $tag
|
||||||
|
docker push $tag
|
||||||
|
tags+=( $tag )
|
||||||
|
done
|
||||||
|
|
||||||
|
docker manifest create ghcr.io/$registry/$image:$imagetag "${tags[@]}"
|
||||||
|
# some images have bad arch specs in the individual image manifests :(
|
||||||
|
docker manifest annotate ghcr.io/$registry/$image:$imagetag ghcr.io/$registry/$image:$imagetag-arm64 --arch arm64
|
||||||
|
docker manifest push --purge ghcr.io/$registry/$image:$imagetag
|
Loading…
x
Reference in New Issue
Block a user