Skip to content
Snippets Groups Projects
Commit a6e41f10 authored by Corné Lukken's avatar Corné Lukken
Browse files

Merge branch 'diverge-and-convert-to-gitlab' into 'main'

Diverge and convert to gitlab

See merge request !2
parents 8cb3fded dd270d00
No related branches found
No related tags found
1 merge request!2Diverge and convert to gitlab
Pipeline #97152 passed
name: Docker-in-Docker
on:
workflow_dispatch:
inputs:
version:
description: 'The version to tag the DIND image with e.g. v1.0.0'
required: true
type: string
permissions:
packages: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: dind
platforms: linux/amd64,linux/arm64
push: true
tags: ghcr.io/jumppad-labs/dind:${{inputs.version}}
name: Kubernetes
on:
push:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
inputs:
version:
description: 'The version of Kubernetes to build an image for e.g. v1.28.3'
required: true
type: string
permissions:
packages: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get Kubernetes version
id: collect
run: |-
# Get latest Kubernetes version
KUBERNETES_VERSION=${{inputs.version}}
if [ -z "$KUBERNETES_VERSION" ]; then
KUBERNETES_VERSION=$(curl -s https://registry.hub.docker.com/v2/repositories/rancher/k3s/tags\?name\=k3s1\&page_size\=50 | \
jq -r '.results[].name | select(contains("-rc") | not) | select(endswith("k3s1")) | sub("(?<version>[0-9]+\\.[0-9]+\\.[0-9]+).*";.version)' | \
sort -r | \
head -n 1)
CURRENT_VERSION=$(curl --silent --fail -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/jumppad-labs/packages/container/kubernetes/versions" | \
jq -r '.[].metadata.container.tags[] | select( . != null )' | \
sort -r | \
head -n 1)
fi
echo "version=$KUBERNETES_VERSION" >> "$GITHUB_OUTPUT"
echo "current=$CURRENT_VERSION" >> "$GITHUB_OUTPUT"
echo $KUBERNETES_VERSION
echo $CURRENT_VERSION
- name: Login to GitHub Container Registry
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/setup-buildx-action@v2
- name: Build and push Docker image
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: kubernetes
platforms: linux/amd64,linux/arm64
build-args: |
KUBERNETES_VERSION=${{steps.collect.outputs.version}}
push: true
tags: ghcr.io/jumppad-labs/kubernetes:${{steps.collect.outputs.version}}
- name: Test built image
if: steps.collect.outputs.version != steps.collect.outputs.current
run: |-
# Install Jumppad
curl https://jumppad.dev/install | bash
# Test the image
jumppad test --tags @Single --var version=${{steps.collect.outputs.version}} ./kubernetes/tests
\ No newline at end of file
name: Nomad
on:
push:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
inputs:
version:
description: 'The version of Nomad to build an image for e.g. v1.6.3'
required: true
type: string
permissions:
packages: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get Nomad version
id: collect
run: |-
# Get latest Nomad version
NOMAD_VERSION=${{inputs.version}}
if [ -z "$NOMAD_VERSION" ]; then
NOMAD_VERSION=$(curl --silent "https://api.github.com/repos/hashicorp/nomad/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
CURRENT_VERSION=$(curl --silent --fail -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/jumppad-labs/packages/container/nomad/versions" | \
jq -r '.[].metadata.container.tags[] | select( . != null )' | \
sort -V -r | \
head -n 1)
fi
echo "version=$NOMAD_VERSION" >> "$GITHUB_OUTPUT"
echo "current=$CURRENT_VERSION" >> "$GITHUB_OUTPUT"
echo $NOMAD_VERSION
echo $CURRENT_VERSION
- name: Remove v in Tag
id: version
uses: ashley-taylor/regex-property-action@v1.0
with:
value: ${{steps.collect.outputs.version}}
regex: "v"
replacement: ""
- name: Login to GitHub Container Registry
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/setup-buildx-action@v2
- name: Build and push Docker image
if: steps.collect.outputs.version != steps.collect.outputs.current
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: nomad
platforms: linux/amd64,linux/arm64
build-args: |
NOMAD_VERSION=${{steps.version.outputs.value}}
push: true
tags: ghcr.io/jumppad-labs/nomad:${{steps.collect.outputs.version}}
- name: Test built image
if: steps.collect.outputs.version != steps.collect.outputs.current
run: |-
# Install Jumppad
curl https://jumppad.dev/install | bash
# Test the image
jumppad test --tags @Single --var version=${{steps.collect.outputs.version}} ./nomad/tests
\ No newline at end of file
stages:
- build
- tag-latest
- trigger
variables:
IMAGE_TAG: $CI_COMMIT_REF_SLUG-$CI_PIPELINE_ID
NOMAD_VERSION: 1.9.1
CONSUL_VERSION: 1.20.1
TARGETARCH: amd64
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
.default_rules:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
build:
stage: build
tags:
- dind
parallel:
matrix:
- IMAGE_TYPE:
- dind
- kubernetes
- nomad
- pind
script:
- cd ${IMAGE_TYPE}
- docker pull {$CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:latest || true
- docker build --build-arg NOMAD_VERSION=${NOMAD_VERSION} --build-arg CONSUL_VERSION=${CONSUL_VERSION} --build-arg TARGETARCH=${TARGETARCH} --cache-from ${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:latest --tag ${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:${IMAGE_TAG} .
- docker push ${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:${IMAGE_TAG}
tag-latest:
stage: tag-latest
tags:
- dind
parallel:
matrix:
- IMAGE_TYPE:
- dind
- kubernetes
- nomad
- pind
script:
- docker pull ${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:${IMAGE_TAG}
- docker tag ${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:${IMAGE_TAG} ${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:latest
- docker push ${CI_REGISTRY_IMAGE}/${IMAGE_TYPE}:latest
rules:
- !reference [.default_rules, rules]
trigger-tango:
stage: trigger
trigger: lofar2.0/tango
rules:
- !reference [.default_rules, rules]
FROM ghcr.io/jumppad-labs/dind:v1.1.2
FROM git.astron.nl:5000/lofar2.0/jumppad-docker-files/dind:latest
ARG NOMAD_VERSION
ARG CONSUL_VERSION
ARG TARGETARCH
ENV CNI_PLUGINS=1.5.1
......@@ -16,6 +17,12 @@ RUN curl -L https://releases.hashicorp.com/nomad/${NOMAD_VERSION}/nomad_${NOMAD_
chmod +x /usr/bin/nomad && \
rm /tmp/nomad.zip
RUN curl -L https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_${TARGETARCH}.zip -o /tmp/consul.zip && \
cd /tmp && \
unzip consul.zip consul -d /usr/bin && \
chmod +x /usr/bin/consul && \
rm /tmp/consul.zip
# Install the CNI Plugins
RUN curl -L https://github.com/containernetworking/plugins/releases/download/v${CNI_PLUGINS}/cni-plugins-linux-${TARGETARCH}-v${CNI_PLUGINS}.tgz -o /tmp/cni.tgz && \
mkdir -p /opt/cni/bin && \
......
......@@ -13,6 +13,9 @@ fi
# Start the docker daemon
/usr/local/bin/dockerd.sh &
# Start the consul agent
/usr/bin/consul agent -config-file /etc/consul.d/config/user_config.hcl -log-level=DEBUG &
# Start the nomad agent
/usr/bin/nomad agent -config /etc/nomad.d -log-level=DEBUG &
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment