forked from wazuh/wazuh-docker
Separate ref for each component
This commit is contained in:
@@ -19,7 +19,7 @@ WAZUH_REGISTRY=docker.io
|
||||
WAZUH_IMAGE_VERSION="5.0.0"
|
||||
WAZUH_TAG_REVISION="1"
|
||||
WAZUH_DEV_STAGE=""
|
||||
WAZUH_TAG_REFERENCE=""
|
||||
WAZUH_COMPONENTS_COMMIT_LIST=""
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
@@ -63,26 +63,49 @@ build() {
|
||||
|
||||
awk -F':' '!/^#/ && NF>1 {name=$1; val=substr($0,length(name)+3); gsub(/[-.]/,"_",name); print name "=" val}' $ARTIFACT_URLS_FILE > artifacts_env.txt
|
||||
|
||||
if [ "${WAZUH_DEV_STAGE}" ];then
|
||||
if [ "${WAZUH_TAG_REFERENCE}" ];then
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}-${WAZUH_DEV_STAGE,,}-${WAZUH_TAG_REFERENCE}"
|
||||
else
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}-${WAZUH_DEV_STAGE,,}"
|
||||
fi
|
||||
else
|
||||
if [ "${WAZUH_TAG_REFERENCE}" ];then
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}-${WAZUH_TAG_REFERENCE}"
|
||||
else
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}"
|
||||
fi
|
||||
# Parse component commit list if provided
|
||||
if [ -n "${WAZUH_COMPONENTS_COMMIT_LIST}" ]; then
|
||||
# Extract individual commits from JSON array format: ["indexer", "manager", "dashboard", "agent"]
|
||||
INDEXER_COMMIT=$(echo "${WAZUH_COMPONENTS_COMMIT_LIST}" | grep -o '"[^"]*"' | sed -n '1p' | tr -d '"')
|
||||
MANAGER_COMMIT=$(echo "${WAZUH_COMPONENTS_COMMIT_LIST}" | grep -o '"[^"]*"' | sed -n '2p' | tr -d '"')
|
||||
DASHBOARD_COMMIT=$(echo "${WAZUH_COMPONENTS_COMMIT_LIST}" | grep -o '"[^"]*"' | sed -n '3p' | tr -d '"')
|
||||
AGENT_COMMIT=$(echo "${WAZUH_COMPONENTS_COMMIT_LIST}" | grep -o '"[^"]*"' | sed -n '4p' | tr -d '"')
|
||||
|
||||
echo "Component commits parsed:"
|
||||
echo " - Indexer: ${INDEXER_COMMIT}"
|
||||
echo " - Manager: ${MANAGER_COMMIT}"
|
||||
echo " - Dashboard: ${DASHBOARD_COMMIT}"
|
||||
echo " - Agent: ${AGENT_COMMIT}"
|
||||
fi
|
||||
|
||||
# Function to get component-specific commit reference
|
||||
get_component_commit() {
|
||||
local component=$1
|
||||
case "${component}" in
|
||||
wazuh-indexer)
|
||||
echo "${INDEXER_COMMIT}"
|
||||
;;
|
||||
wazuh-manager)
|
||||
echo "${MANAGER_COMMIT}"
|
||||
;;
|
||||
wazuh-dashboard)
|
||||
echo "${DASHBOARD_COMMIT}"
|
||||
;;
|
||||
wazuh-agent)
|
||||
echo "${AGENT_COMMIT}"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Global env file (without IMAGE_TAG - will be component-specific)
|
||||
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > ../.env
|
||||
echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> ../.env
|
||||
echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> ../.env
|
||||
echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> ../.env
|
||||
echo WAZUH_REGISTRY=$WAZUH_REGISTRY >> ../.env
|
||||
echo IMAGE_TAG=$IMAGE_TAG >> ../.env
|
||||
|
||||
set -a
|
||||
source ../.env
|
||||
@@ -121,6 +144,27 @@ build() {
|
||||
for component in "${components_to_build[@]}"; do
|
||||
echo "Building ${component} image..."
|
||||
|
||||
# Get component-specific commit reference
|
||||
COMPONENT_COMMIT=$(get_component_commit "${component}")
|
||||
|
||||
# Generate component-specific IMAGE_TAG
|
||||
if [ "${WAZUH_DEV_STAGE}" ]; then
|
||||
if [ -n "${COMPONENT_COMMIT}" ]; then
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}-${WAZUH_DEV_STAGE,,}-${COMPONENT_COMMIT}"
|
||||
else
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}-${WAZUH_DEV_STAGE,,}"
|
||||
fi
|
||||
else
|
||||
if [ -n "${COMPONENT_COMMIT}" ]; then
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}-${COMPONENT_COMMIT}"
|
||||
else
|
||||
IMAGE_TAG="${WAZUH_IMAGE_VERSION}"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Using IMAGE_TAG: ${IMAGE_TAG} for ${component}"
|
||||
export IMAGE_TAG="$IMAGE_TAG"
|
||||
|
||||
# Build common args (used by all components)
|
||||
build_args=(
|
||||
-t "${WAZUH_REGISTRY}/wazuh/${component}:${IMAGE_TAG}"
|
||||
@@ -180,7 +224,7 @@ help() {
|
||||
echo
|
||||
echo " -d, --dev <ref> [Optional] Set the development stage you want to build, example rc2 or beta1, not used by default."
|
||||
echo " -r, --revision <rev> [Optional] Package revision. By default ${WAZUH_TAG_REVISION}"
|
||||
echo " -ref, --reference <ref> [Optional] Set the Wazuh reference to build development images. By default, the latest stable release."
|
||||
echo " -refs, --references <ref> [Optional] Set each Wazuh component reference to be build (indexer, manager, dasboard and agent). By default, using the latest release: ['latest', 'latest', 'latest', 'latest']"
|
||||
echo " -rg, --registry <reg> [Optional] Set the Docker registry to push the images."
|
||||
echo " -c, --component <comp> [Required] Set the Wazuh component to build. Accepted values: 'wazuh-indexer', 'wazuh-manager', 'wazuh-dashboard', 'wazuh-agent'."
|
||||
echo " -v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}."
|
||||
@@ -219,9 +263,9 @@ main() {
|
||||
help 1
|
||||
fi
|
||||
;;
|
||||
"-ref"|"--reference")
|
||||
"-refs"|"--references")
|
||||
if [ -n "${2}" ]; then
|
||||
WAZUH_TAG_REFERENCE="${2}"
|
||||
WAZUH_COMPONENTS_COMMIT_LIST="${2}"
|
||||
shift 2
|
||||
else
|
||||
help 1
|
||||
|
||||
Reference in New Issue
Block a user