Skip to content

Commit

Permalink
Build kotsadm-migrations image with apko
Browse files Browse the repository at this point in the history
  • Loading branch information
sgalsaleh committed Dec 12, 2023
1 parent cf17c12 commit 19a18f2
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 14 deletions.
62 changes: 62 additions & 0 deletions .github/actions/build-push-kotsadm-migrations-image/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: 'Build and push kurl-proxy image'
description: 'Composite action for building and pushing kurl-proxy image'
inputs:
image-name:
description: 'Full destination kurl-proxy image name'
required: true

git-tag:
description: 'Git tag'
required: true

registry-username:
description: 'Username to login to registry'
default: ''
required: false

registry-password:
description: 'Password to login to registry'
default: ''
required: false

runs:
using: "composite"
steps:
- name: load environment variables from .image.env
uses: falti/dotenv-action@v1
id: dotenv
with:
path: .image.env

- uses: shrink/actions-docker-extract@v3
with:
image: schemahero/schemahero:${{ steps.dotenv.outputs.SCHEMAHERO_TAG }}
path: /schemahero
destination: .

- name: template melange and apko configs
shell: bash
run: |
export GIT_TAG=${{ inputs.git-tag }}
envsubst '${GIT_TAG}' < migrations/deploy/melange.yaml.tmpl > migrations/deploy/melange.yaml
envsubst '${GIT_TAG}' < migrations/deploy/apko.yaml.tmpl > migrations/deploy/apko.yaml
- id: cache-dir
shell: bash
run: echo "cache_dir=$(go env GOMODCACHE)" >> "$GITHUB_OUTPUT"

- uses: chainguard-dev/actions/melange-build@main
with:
config: migrations/deploy/melange.yaml
archs: x86_64
sign-with-temporary-key: true
cache-dir: ${{ steps.cache-dir.outputs.cache_dir }}

- uses: chainguard-images/actions/apko-publish@main
with:
config: migrations/deploy/apko.yaml
archs: x86_64
tag: ${{ inputs.image-name }}
vcs-url: true
generic-user: ${{ inputs.registry-username }}
generic-pass: ${{ inputs.registry-password }}
18 changes: 4 additions & 14 deletions .github/workflows/build-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ jobs:

build-migrations:
runs-on: ubuntu-20.04
needs: [ can-run-ci ]
needs: [ can-run-ci, generate-tag ]
steps:
- name: setup env
run: |
Expand All @@ -399,20 +399,10 @@ jobs:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}

- name: load environment variables from .image.env
uses: falti/dotenv-action@v1
id: dotenv
- uses: ./.github/actions/build-push-kotsadm-migrations-image
with:
path: .image.env

- name: build and push migrations for e2e
uses: docker/build-push-action@v5
with:
tags: ttl.sh/automated-${{ github.run_id }}/kotsadm-migrations:24h
context: ./migrations
file: ./migrations/deploy/Dockerfile
push: true
build-args: SCHEMAHERO_TAG=${{ steps.dotenv.outputs.schemahero_tag }}
image-name: ttl.sh/automated-${{ github.run_id }}/kotsadm-migrations:24h
git-tag: ${{ needs.generate-tag.outputs.tag }}


push-minio:
Expand Down
36 changes: 36 additions & 0 deletions migrations/deploy/apko.yaml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
contents:
repositories:
- https://packages.wolfi.dev/os
- ./packages/
keyring:
- https://packages.wolfi.dev/os/wolfi-signing.rsa.pub
- ./melange.rsa.pub
packages:
- kotsadm-migrations-head # This is expected to be built locally by `melange`.
- bash
- busybox
- curl
- git
- wolfi-baselayout

accounts:
groups:
- groupname: schemahero
gid: 1001
users:
- username: schemahero
uid: 1001
gid: 1001
run-as: schemahero

environment:
VERSION: ${GIT_TAG}

entrypoint:
command: /schemahero

cmd: apply

archs:
- x86_64
- aarch64
30 changes: 30 additions & 0 deletions migrations/deploy/melange.yaml.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package:
name: kotsadm-migrations-head
version: ${GIT_TAG}
epoch: 0
description: kotsadm-migrations package
copyright:
- license: Apache-2.0

environment:
contents:
repositories:
- https://packages.wolfi.dev/os
keyring:
- https://packages.wolfi.dev/os/wolfi-signing.rsa.pub
packages:
- ca-certificates-bundle
- busybox
- git
- go
environment:
GOMODCACHE: '/var/cache/melange'

pipeline:
- runs: |
set -x
export DESTDIR="${{targets.destdir}}"
mkdir -p "${DESTDIR}"

# expected to have already beeen extracted from the schemahero image
mv schemahero "${DESTDIR}/schemahero"

0 comments on commit 19a18f2

Please sign in to comment.