Skip to content

docs(kroxylicious): additions for virtual cluster support in UI (#2404) #1310

docs(kroxylicious): additions for virtual cluster support in UI (#2404)

docs(kroxylicious): additions for virtual cluster support in UI (#2404) #1310

Workflow file for this run

name: Publish Snapshot
on:
push:
branches:
- 'main'
- '[0-9]+.[0-9]+.x'
paths-ignore:
- '.github/project.yml'
jobs:
release:
runs-on: ubuntu-latest
name: snapshot
env:
PLATFORMS: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x
IMAGE_EXPIRATION: "72h"
QUAY_EXPIRES_AFTER_LABEL: "quay.expires-after=72h"
steps:
# ==================== Setup ====================
- name: Checkout
uses: actions/checkout@v6
- name: Retrieve Project Metadata
uses: radcortez/project-metadata-action@874c89bea2ee8282008328c3418eec4d219013f3
id: metadata
with:
github-token: ${{secrets.GITHUB_TOKEN}}
metadata-file-path: '.github/project.yml'
local-file: 'true'
- name: Set Image Tag Env
run: echo "NEXT_VERSION=$(echo ${{steps.metadata.outputs.next-version}} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
- name: Fetch Operator Framework Utilities
run: ./operator/bin/fetch-operator-utilities.sh
- name: Setup JDK
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'temurin'
- name: Cache Maven Packages
uses: actions/cache@v5
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Login to Quay
uses: docker/login-action@v4
with:
registry: "${{ secrets.IMAGE_REPO_HOSTNAME }}"
username: "${{ secrets.IMAGE_REPO_USERNAME }}"
password: "${{ secrets.IMAGE_REPO_PASSWORD }}"
# ==================== UI ====================
- name: Build UI
working-directory: ui
run: |
npm ci --omit=dev
npm run build
- name: Build and Push UI Image
uses: docker/build-push-action@v7
with:
context: ui/
platforms: ${{ env.PLATFORMS }}
provenance: false
push: true
tags: |
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-ui:${{ env.NEXT_VERSION }}
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-ui:snapshot-${{github.ref_name}}
labels: |
${{ env.QUAY_EXPIRES_AFTER_LABEL }}
# ==================== API & Operator ====================
- name: Build and Push API and Operator Image
run: |
export QUARKUS_CONTAINER_IMAGE_REGISTRY="${{ secrets.IMAGE_REPO_HOSTNAME }}"
export QUARKUS_CONTAINER_IMAGE_GROUP="${{ secrets.IMAGE_REPO_NAMESPACE }}"
export QUARKUS_CONTAINER_IMAGE_USERNAME="${{ secrets.IMAGE_REPO_USERNAME }}"
export QUARKUS_CONTAINER_IMAGE_PASSWORD="${{ secrets.IMAGE_REPO_PASSWORD }}"
export QUARKUS_CONTAINER_IMAGE_PUSH="true"
export QUARKUS_CONTAINER_IMAGE_TAG="${{ env.NEXT_VERSION }}"
export QUARKUS_CONTAINER_IMAGE_ADDITIONAL_TAGS=snapshot-${{github.ref_name}}
export QUARKUS_KUBERNETES_VERSION="${{ env.NEXT_VERSION }}"
# Build and push the snapshot images
mvn -B -P container-image verify --no-transfer-progress -DskipTests \
-Dquarkus.kubernetes.namespace='$${NAMESPACE}' \
'-Dquarkus.container-image.labels."quay.expires-after"=${{ env.IMAGE_EXPIRATION }}' \
-Dquarkus.docker.buildx.platform=${{ env.PLATFORMS }}
# ==================== Operator-Bundle ====================
- name: Modify Bundle CSV Metadata
run: ./operator/bin/modify-bundle-metadata.sh "VERSION=${{ env.NEXT_VERSION }}" "PLATFORMS=${{ env.PLATFORMS }}"
- name: Build and Push Operator Bundle Image
uses: docker/build-push-action@v7
with:
context: operator/target/bundle/streamshub-console-operator/
platforms: ${{ env.PLATFORMS }}
provenance: false
push: true
file: operator/target/bundle/streamshub-console-operator/bundle.Dockerfile
tags: |
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-bundle:${{ env.NEXT_VERSION }}
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-bundle:snapshot-${{github.ref_name}}
labels: |
${{ env.QUAY_EXPIRES_AFTER_LABEL }}
# ==================== Operator-Catalog ====================
- name: Generate Operator Catalog Config
run: |
operator/bin/generate-catalog.sh \
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-bundle
- name: Build and Push Operator Catalog Image
uses: docker/build-push-action@v7
with:
context: operator/
platforms: ${{ env.PLATFORMS }}
network: none
provenance: false
push: true
file: operator/src/main/docker/catalog.Dockerfile
tags: |
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-catalog:${{ env.NEXT_VERSION }}
${{ secrets.IMAGE_REPO_HOSTNAME }}/${{ secrets.IMAGE_REPO_NAMESPACE }}/console-operator-catalog:snapshot-${{github.ref_name}}
labels: |
${{ env.QUAY_EXPIRES_AFTER_LABEL }}
# ==================== Archive artifacts ====================
- name: Attach Kubernetes Resources
uses: actions/upload-artifact@v7
with:
name: k8s-resources
path: |
operator/target/bundle/
operator/target/catalog/
operator/target/kubernetes/*.yml