#!/usr/bin/env bash set -euo pipefail if [[ $# -ne 1 ]]; then printf 'usage: %s OUTPUT_DIRECTORY\n' "$0" >&2 exit 2 fi root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)" output_directory="$(realpath -m "$1")" temporary_directory="$(mktemp -d)" trap 'rm -rf "$temporary_directory"' EXIT vlagent_version=1.51.0 vlagent_archive="vlutils-linux-arm64-v${vlagent_version}.tar.gz" vlagent_archive_sha256=6618825d0632bf0a145107a5c6a26e07513164d82157d03896507cb72a7be19c mkdir -p "$output_directory" GOCACHE="$temporary_directory/guest-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \ go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \ -o "$output_directory/oci-l4-relay-guest" . GOCACHE="$temporary_directory/admission-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \ go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \ -o "$output_directory/oci-l4-relay-admission" ./cmd/admission GOCACHE="$temporary_directory/smtp-deny-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \ go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \ -o "$output_directory/oci-l4-relay-smtp-deny" ./cmd/smtp-deny GOCACHE="$temporary_directory/smtp-evidence-cache" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \ go build -C "$root/services/oci-l4-relay-guest" -trimpath -ldflags='-s -w -buildid=' \ -o "$output_directory/oci-l4-relay-smtp-evidence" ./cmd/smtp-evidence curl -fsSL \ -o "$temporary_directory/$vlagent_archive" \ "https://github.com/VictoriaMetrics/VictoriaLogs/releases/download/v${vlagent_version}/${vlagent_archive}" printf '%s %s\n' "$vlagent_archive_sha256" "$temporary_directory/$vlagent_archive" | sha256sum -c - tar -xzf "$temporary_directory/$vlagent_archive" -C "$temporary_directory" vlagent-prod install -m 0755 "$temporary_directory/vlagent-prod" "$output_directory/vlagent" guest_sha256="$(sha256sum "$output_directory/oci-l4-relay-guest" | awk '{print $1}')" admission_sha256="$(sha256sum "$output_directory/oci-l4-relay-admission" | awk '{print $1}')" smtp_deny_sha256="$(sha256sum "$output_directory/oci-l4-relay-smtp-deny" | awk '{print $1}')" smtp_evidence_sha256="$(sha256sum "$output_directory/oci-l4-relay-smtp-evidence" | awk '{print $1}')" vlagent_sha256="$(sha256sum "$output_directory/vlagent" | awk '{print $1}')" jq -n \ --arg admission_sha256 "$admission_sha256" \ --arg guest_sha256 "$guest_sha256" \ --arg smtp_deny_sha256 "$smtp_deny_sha256" \ --arg smtp_evidence_sha256 "$smtp_evidence_sha256" \ --arg vlagent_sha256 "$vlagent_sha256" \ --arg vlagent_version "$vlagent_version" \ '{admission_sha256:$admission_sha256,guest_sha256:$guest_sha256,smtp_deny_sha256:$smtp_deny_sha256,smtp_evidence_sha256:$smtp_evidence_sha256,vlagent_sha256:$vlagent_sha256,vlagent_version:$vlagent_version}' \ >"$output_directory/artifact-manifest.json"