From b3fde321bfcdacd88b0227566eada01cc3e19ccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Tue, 16 Dec 2025 15:45:25 -0300 Subject: [PATCH 01/20] Agent group parameter added --- build-docker-images/wazuh-agent/Dockerfile | 3 ++- .../config/etc/cont-init.d/0-wazuh-init | 4 +++- docs/ref/configuration/environment-variables.md | 14 +++++++++----- wazuh-agent/config/wazuh-agent-conf | 3 ++- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/build-docker-images/wazuh-agent/Dockerfile b/build-docker-images/wazuh-agent/Dockerfile index 8a237787..242ca8a3 100644 --- a/build-docker-images/wazuh-agent/Dockerfile +++ b/build-docker-images/wazuh-agent/Dockerfile @@ -10,7 +10,8 @@ ARG WAZUH_MANAGER='CHANGE_MANAGER_IP' ARG WAZUH_MANAGER_PORT='CHANGE_MANAGER_PORT' ARG WAZUH_REGISTRATION_SERVER='CHANGE_ENROLL_IP' ARG WAZUH_REGISTRATION_PORT='CHANGE_ENROLL_PORT' -ARG WAZUH_AGENT_NAME='CHANGEE_AGENT_NAME' +ARG WAZUH_AGENT_NAME='CHANGE_AGENT_NAME' +ARG WAZUH_AGENT_GROUPS='CHANGE_AGENT_GROUPS' COPY config/check_repository.sh / diff --git a/build-docker-images/wazuh-agent/config/etc/cont-init.d/0-wazuh-init b/build-docker-images/wazuh-agent/config/etc/cont-init.d/0-wazuh-init index 2fcf4a88..a50b4662 100644 --- a/build-docker-images/wazuh-agent/config/etc/cont-init.d/0-wazuh-init +++ b/build-docker-images/wazuh-agent/config/etc/cont-init.d/0-wazuh-init @@ -9,6 +9,7 @@ WAZUH_REGISTRATION_SERVER=${WAZUH_REGISTRATION_SERVER:-$WAZUH_MANAGER_SERVER} WAZUH_REGISTRATION_PORT=${WAZUH_REGISTRATION_PORT:-"1515"} WAZUH_REGISTRATION_PASSWORD=$WAZUH_REGISTRATION_PASSWORD WAZUH_AGENT_NAME=${WAZUH_AGENT_NAME:-"wazuh-agent-$HOSTNAME"} +WAZUH_AGENT_GROUPS=${WAZUH_AGENT_GROUPS:-"default"} ############################################################################## # Aux functions @@ -66,7 +67,8 @@ set_manager_conn() { sed -i "s#CHANGE_MANAGER_PORT#$WAZUH_MANAGER_PORT#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf sed -i "s#CHANGE_ENROLL_IP#$WAZUH_REGISTRATION_SERVER#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf sed -i "s#CHANGE_ENROLL_PORT#$WAZUH_REGISTRATION_PORT#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf - sed -i "s#CHANGEE_AGENT_NAME#$WAZUH_AGENT_NAME#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf + sed -i "s#CHANGE_AGENT_NAME#$WAZUH_AGENT_NAME#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf + sed -i "s#CHANGE_AGENT_GROUPS#$WAZUH_AGENT_GROUPS#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf [ -n "$WAZUH_REGISTRATION_PASSWORD" ] && \ echo "$WAZUH_REGISTRATION_PASSWORD" > ${WAZUH_INSTALL_PATH}/etc/authd.pass && \ chown root:wazuh ${WAZUH_INSTALL_PATH}/etc/authd.pass && \ diff --git a/docs/ref/configuration/environment-variables.md b/docs/ref/configuration/environment-variables.md index 003ad165..eac90d9e 100644 --- a/docs/ref/configuration/environment-variables.md +++ b/docs/ref/configuration/environment-variables.md @@ -4,11 +4,14 @@ This document outlines the environment variables applicable to the Wazuh Docker ## Table of Contents -- [Wazuh Manager](#wazuh-manager) -- [Wazuh Indexer](#wazuh-indexer) -- [Wazuh Dashboard](#wazuh-dashboard) -- [Wazuh Agent](#wazuh-agent) -- [Overriding Configuration Files with Environment Variables](#overriding-configuration-files-with-environment-variables) +- [Environment Variables in Wazuh Docker Deployment](#environment-variables-in-wazuh-docker-deployment) + - [Table of Contents](#table-of-contents) + - [Wazuh Manager](#wazuh-manager) + - [Wazuh Indexer](#wazuh-indexer) + - [Wazuh Dashboard](#wazuh-dashboard) + - [Wazuh Agent](#wazuh-agent) + - [Overriding Configuration Files with Environment Variables](#overriding-configuration-files-with-environment-variables) + - [Examples:](#examples) --- @@ -88,6 +91,7 @@ environment: - WAZUH_REGISTRATION_SERVER=wazuh.manager - WAZUH_REGISTRATION_PORT=1515 - WAZUH_AGENT_NAME=my-agent + - WAZUH_AGENT_GROUPS=default - WAZUH_REGISTRATION_PASSWORD=StrongPassword ``` diff --git a/wazuh-agent/config/wazuh-agent-conf b/wazuh-agent/config/wazuh-agent-conf index 51fd9b0f..ad0d8ece 100644 --- a/wazuh-agent/config/wazuh-agent-conf +++ b/wazuh-agent/config/wazuh-agent-conf @@ -20,8 +20,9 @@ yes CHANGE_ENROLL_IP CHANGE_ENROLL_PORT - CHANGEE_AGENT_NAME + CHANGE_AGENT_NAME etc/authd.pass + CHANGE_AGENT_GROUPS From 0fe3103940a988b48b174e4b12dee6e60ce4072c Mon Sep 17 00:00:00 2001 From: Victor Carlos Erenu Date: Tue, 28 Oct 2025 01:09:49 +0700 Subject: [PATCH 02/20] Bring changes from PR #2054 --- .../Procedure_push_docker_images.yml | 81 +++++++++---------- build-docker-images/build-images.sh | 57 ++++++++++--- build-docker-images/build-images.yml | 8 +- 3 files changed, 87 insertions(+), 59 deletions(-) diff --git a/.github/workflows/Procedure_push_docker_images.yml b/.github/workflows/Procedure_push_docker_images.yml index 28fcf085..bf45b917 100644 --- a/.github/workflows/Procedure_push_docker_images.yml +++ b/.github/workflows/Procedure_push_docker_images.yml @@ -11,10 +11,6 @@ on: docker_reference: description: 'wazuh-docker reference' required: true - products: - description: 'Comma-separated list of the image names to build and push' - default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent' - required: true filebeat_module_version: description: 'Filebeat module version' default: '0.4' @@ -23,11 +19,6 @@ on: description: 'Package revision' default: '1' required: true - push_images: - description: 'Push images' - type: boolean - default: true - required: true id: description: "ID used to identify the workflow uniquely." type: string @@ -48,11 +39,6 @@ on: description: 'wazuh-docker reference' required: false type: string - products: - description: 'Comma-separated list of the image names to build and push' - default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent' - required: true - type: string filebeat_module_version: description: 'Filebeat module version' default: '0.4' @@ -63,11 +49,6 @@ on: default: '1' required: true type: string - push_images: - description: 'Push images' - type: boolean - default: true - required: true id: description: "ID used to identify the workflow uniquely." type: string @@ -82,6 +63,16 @@ jobs: build-and-push: runs-on: ubuntu-22.04 + permissions: + id-token: write + contents: read + + env: + IMAGE_REGISTRY: ${{ inputs.dev && vars.IMAGE_REGISTRY_DEV || vars.IMAGE_REGISTRY_PROD }} + IMAGE_TAG: ${{ inputs.image_tag }} + FILEBEAT_MODULE_VERSION: ${{ inputs.filebeat_module_version }} + REVISION: ${{ inputs.revision }} + steps: - name: Print inputs run: | @@ -96,10 +87,8 @@ jobs: echo "* id: ${{ inputs.id }}" echo "* image_tag: ${{ inputs.image_tag }}" echo "* docker_reference: ${{ inputs.docker_reference }}" - echo "* products: ${{ inputs.products }}" echo "* filebeat_module_version: ${{ inputs.filebeat_module_version }}" echo "* revision: ${{ inputs.revision }}" - echo "* push_images: ${{ inputs.push_images }}" echo "* dev: ${{ inputs.dev }}" echo "---------------------------------------------" @@ -108,7 +97,28 @@ jobs: with: ref: ${{ inputs.docker_reference }} + - name: free disk space + uses: ./.github/free-disk-space + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Configure aws credentials + if: ${{ inputs.dev == true }} + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_IAM_DOCKER_ROLE }} + aws-region: "${{ secrets.AWS_REGION }}" + + - name: Log in to Amazon ECR + if: ${{ inputs.dev == true }} + uses: aws-actions/amazon-ecr-login@v2 + - name: Log in to Docker Hub + if: ${{ inputs.dev == false }} uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} @@ -116,7 +126,7 @@ jobs: - name: Build Wazuh images run: | - IMAGE_TAG=${{ inputs.image_tag }} + IMAGE_TAG="${{ inputs.image_tag }}" FILEBEAT_MODULE_VERSION=${{ inputs.filebeat_module_version }} REVISION=${{ inputs.revision }} @@ -128,13 +138,13 @@ jobs: fi DEV_STAGE=${tokens[1]} WAZUH_VER=${tokens[0]} - ./build-docker-images/build-images.sh -v $WAZUH_VER -r $REVISION -d $DEV_STAGE -f $FILEBEAT_MODULE_VERSION + ./build-images.sh -v $WAZUH_VER -r $REVISION -d $DEV_STAGE -f $FILEBEAT_MODULE_VERSION -rg $IMAGE_REGISTRY -m else - ./build-docker-images/build-images.sh -v $IMAGE_TAG -r $REVISION -f $FILEBEAT_MODULE_VERSION + ./build-images.sh -v $IMAGE_TAG -r $REVISION -f $FILEBEAT_MODULE_VERSION -rg $IMAGE_REGISTRY -m fi # Save .env file (generated by build-images.sh) contents to $GITHUB_ENV - ENV_FILE_PATH=".env" + ENV_FILE_PATH="../.env" if [ -f $ENV_FILE_PATH ]; then while IFS= read -r line || [ -n "$line" ]; do @@ -144,18 +154,18 @@ jobs: echo "The environment file $ENV_FILE_PATH does not exist!" exit 1 fi + working-directory: ./build-docker-images - name: Image exists validation - if: ${{ inputs.push_images }} id: validation run: | IMAGE_TAG=${{ inputs.image_tag }} PURPOSE="" if [[ "$IMAGE_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - if docker manifest inspect wazuh/wazuh-manager:$IMAGE_TAG > /dev/null 2>&1; then + if docker manifest inspect $IMAGE_REGISTRY/wazuh/wazuh-manager:$IMAGE_TAG > /dev/null 2>&1; then PURPOSE="regeneration" - echo "Image wazuh/wazuh-manager:$IMAGE_TAG exists. Setting PURPOSE to 'regeneration'" + echo "Image wazuh/wazuh-manager:$IMAGE_TAG exists. Setting PURPOSE to 'regeneration'" else PURPOSE="new release" echo "Image wazuh/wazuh-manager:$IMAGE_TAG does NOT exist. Setting PURPOSE to 'new release'" @@ -170,21 +180,8 @@ jobs: echo "purpose=$PURPOSE" >> $GITHUB_OUTPUT - - name: Tag and Push Wazuh images - if: ${{ inputs.push_images }} - run: | - IMAGE_TAG="${{ inputs.image_tag }}$( [ "${{ inputs.dev }}" == "true" ] && echo '-dev' || true )" - IMAGE_NAMES=${{ inputs.products }} - IFS=',' read -r -a images <<< "$IMAGE_NAMES" - for image in "${images[@]}"; do - echo "Tagging and pushing wazuh/$image:${WAZUH_VERSION} to wazuh/$image:$IMAGE_TAG" - docker tag wazuh/$image:${WAZUH_VERSION} wazuh/$image:$IMAGE_TAG - echo "Pushing wazuh/$image:$IMAGE_TAG ..." - docker push wazuh/$image:$IMAGE_TAG - done - - name: GH issue notification - if: ${{ inputs.push_images && steps.validation.outputs.purpose != '' }} + if: ${{ steps.validation.outputs.purpose != '' }} run: | IMAGE_TAG=${{ inputs.image_tag }} GH_TITLE="" diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index 2cec68c8..f57d4878 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -1,8 +1,6 @@ -WAZUH_IMAGE_VERSION=4.14.3 -WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g') -WAZUH_TAG_REVISION=1 +IMAGE_TAG=4.14.3 WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g') -IMAGE_VERSION=${WAZUH_IMAGE_VERSION} +WAZUH_REGISTRY=docker.io # Wazuh package generator # Copyright (C) 2023, Wazuh Inc. @@ -44,7 +42,7 @@ build() { if [ "${WAZUH_DEV_STAGE}" ];then FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}-${WAZUH_DEV_STAGE,,}" if ! curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then - echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}" + echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}" clean 1 fi else @@ -58,15 +56,25 @@ build() { fi fi - echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env - echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> .env - echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env - echo FILEBEAT_TEMPLATE_BRANCH=$FILEBEAT_TEMPLATE_BRANCH >> .env - echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> .env - echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> .env - docker compose -f build-docker-images/build-images.yml --env-file .env build --no-cache || clean 1 + echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > ../.env + echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> ../.env + echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> ../.env + echo FILEBEAT_TEMPLATE_BRANCH=$FILEBEAT_TEMPLATE_BRANCH >> ../.env + echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> ../.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 + set +a + + if [ "${MULTIARCH}" ];then + docker buildx bake --file build-images.yml --push --set *.platform=linux/amd64,linux/arm64 --no-cache || clean 1 + else + docker buildx bake --file build-images.yml --no-cache|| clean 1 + fi return 0 } @@ -79,7 +87,10 @@ help() { echo " -d, --dev [Optional] Set the development stage you want to build, example alpha0 or beta1, not used by default." echo " -f, --filebeat-module [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}." echo " -r, --revision [Optional] Package revision. By default ${WAZUH_TAG_REVISION}" + echo " -ref, --reference [Optional] Set the Wazuh reference to build development images. By default, the latest stable release." + echo " -rg, --registry [Optional] Set the Docker registry to push the images." echo " -v, --version [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}." + echo " -m, --multiarch [Optional] Enable multi-architecture builds." echo " -h, --help Show this help." echo exit $1 @@ -110,6 +121,10 @@ main() { help 1 fi ;; + "-m"|"--multiarch") + MULTIARCH="true" + shift + ;; "-r"|"--revision") if [ -n "${2}" ]; then WAZUH_TAG_REVISION="${2}" @@ -118,6 +133,22 @@ main() { help 1 fi ;; + "-ref"|"--reference") + if [ -n "${2}" ]; then + WAZUH_TAG_REFERENCE="${2}" + shift 2 + else + help 1 + fi + ;; + "-rg"|"--registry") + if [ -n "${2}" ]; then + WAZUH_REGISTRY="${2}" + shift 2 + else + help 1 + fi + ;; "-v"|"--version") if [ -n "$2" ]; then WAZUH_IMAGE_VERSION="$2" @@ -136,4 +167,4 @@ main() { clean 0 } -main "$@" +main "$@" \ No newline at end of file diff --git a/build-docker-images/build-images.yml b/build-docker-images/build-images.yml index ed784cec..b77669ca 100644 --- a/build-docker-images/build-images.yml +++ b/build-docker-images/build-images.yml @@ -8,7 +8,7 @@ services: WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} FILEBEAT_TEMPLATE_BRANCH: ${FILEBEAT_TEMPLATE_BRANCH} WAZUH_FILEBEAT_MODULE: ${WAZUH_FILEBEAT_MODULE} - image: wazuh/wazuh-manager:${WAZUH_IMAGE_VERSION} + image: ${WAZUH_REGISTRY}/wazuh/wazuh-manager:${IMAGE_TAG} hostname: wazuh.manager restart: always ports: @@ -40,7 +40,7 @@ services: args: WAZUH_VERSION: ${WAZUH_VERSION} WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} - image: wazuh/wazuh-agent:${WAZUH_IMAGE_VERSION} + image: ${WAZUH_REGISTRY}/wazuh/wazuh-agent:${IMAGE_TAG} hostname: wazuh.agent restart: always @@ -50,7 +50,7 @@ services: args: WAZUH_VERSION: ${WAZUH_VERSION} WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} - image: wazuh/wazuh-indexer:${WAZUH_IMAGE_VERSION} + image: ${WAZUH_REGISTRY}/wazuh/wazuh-indexer:${IMAGE_TAG} hostname: wazuh.indexer restart: always ports: @@ -72,7 +72,7 @@ services: WAZUH_VERSION: ${WAZUH_VERSION} WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} WAZUH_UI_REVISION: ${WAZUH_UI_REVISION} - image: wazuh/wazuh-dashboard:${WAZUH_IMAGE_VERSION} + image: ${WAZUH_REGISTRY}/wazuh/wazuh-dashboard:${IMAGE_TAG} hostname: wazuh.dashboard restart: always ports: From 08c7cbda5330e27b3ae5c5a139da9d3400dcba59 Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Fri, 5 Dec 2025 13:59:53 -0500 Subject: [PATCH 03/20] Modify to build certs gen image --- indexer-certs-creator/build-image.sh | 100 ++++++++++++++++++++++++++ indexer-certs-creator/build-image.yml | 8 +++ 2 files changed, 108 insertions(+) create mode 100755 indexer-certs-creator/build-image.sh create mode 100644 indexer-certs-creator/build-image.yml diff --git a/indexer-certs-creator/build-image.sh b/indexer-certs-creator/build-image.sh new file mode 100755 index 00000000..3fd4c386 --- /dev/null +++ b/indexer-certs-creator/build-image.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +# Wazuh package generator +# Copyright (C) 2023, Wazuh Inc. +# +# This program is a free software; you can redistribute it +# and/or modify it under the terms of the GNU General Public +# License (version 2) as published by the FSF - Free Software +# Foundation. + +WAZUH_CERTS_IMAGE_VERSION="0.0.4" +WAZUH_REGISTRY="docker.io" + +# ----------------------------------------------------------------------------- + +trap ctrl_c INT + +clean() { + exit_code=$1 + exit ${exit_code} +} + +ctrl_c() { + clean 1 +} + +# ----------------------------------------------------------------------------- + +build() { + IMAGE_TAG="${WAZUH_CERTS_IMAGE_VERSION}" + + echo WAZUH_REGISTRY=$WAZUH_REGISTRY > .env + echo IMAGE_TAG=$IMAGE_TAG >> .env + + set -a + source .env + set +a + + if [ "${MULTIARCH}" ]; then + docker buildx bake --file build-image.yml --push --set *.platform=linux/amd64,linux/arm64 --no-cache || clean 1 + else + docker buildx bake --file build-image.yml --no-cache || clean 1 + fi + return 0 +} + +# ----------------------------------------------------------------------------- + +help() { + echo + echo "Usage: $0 [OPTIONS]" + echo + echo " -v, --version [Optional] Set the image version. By default ${WAZUH_CERTS_IMAGE_VERSION}." + echo " -rg, --registry [Optional] Set the Docker registry to push the images." + echo " -m, --multiarch [Optional] Enable multi-architecture builds." + echo " -h, --help Show this help." + echo + exit $1 +} + +# ----------------------------------------------------------------------------- + +main() { + while [ -n "${1}" ] + do + case "${1}" in + "-h"|"--help") + help 0 + ;; + "-m"|"--multiarch") + MULTIARCH="true" + shift + ;; + "-rg"|"--registry") + if [ -n "${2}" ]; then + WAZUH_REGISTRY="${2}" + shift 2 + else + help 1 + fi + ;; + "-v"|"--version") + if [ -n "$2" ]; then + WAZUH_CERTS_IMAGE_VERSION="$2" + shift 2 + else + help 1 + fi + ;; + *) + help 1 + esac + done + + build || clean 1 + + clean 0 +} + +main "$@" \ No newline at end of file diff --git a/indexer-certs-creator/build-image.yml b/indexer-certs-creator/build-image.yml new file mode 100644 index 00000000..58bb13cf --- /dev/null +++ b/indexer-certs-creator/build-image.yml @@ -0,0 +1,8 @@ +# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) +services: + wazuh.certs.generator: + build: + context: . + dockerfile: Dockerfile + image: ${WAZUH_REGISTRY}/wazuh/wazuh-certs-generator:${IMAGE_TAG} + hostname: wazuh-certs-generator From 6675465180e551dbf14dd0f043c51b750a48d9f6 Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Thu, 4 Dec 2025 10:39:15 -0500 Subject: [PATCH 04/20] Adapt manager Dockerfile for multi-architecture builds --- build-docker-images/wazuh-manager/Dockerfile | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/build-docker-images/wazuh-manager/Dockerfile b/build-docker-images/wazuh-manager/Dockerfile index 73c86396..7591cc3c 100644 --- a/build-docker-images/wazuh-manager/Dockerfile +++ b/build-docker-images/wazuh-manager/Dockerfile @@ -11,6 +11,7 @@ ARG FILEBEAT_VERSION=7.10.2 ARG FILEBEAT_REVISION=2 ARG WAZUH_FILEBEAT_MODULE ARG S6_VERSION="v2.2.0.3" +ARG TARGETARCH RUN yum install curl-minimal xz gnupg tar gzip openssl findutils procps -y &&\ yum clean all @@ -27,11 +28,13 @@ RUN yum install wazuh-manager-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \ chmod 775 /filebeat_module.sh && \ source /filebeat_module.sh && \ rm /filebeat_module.sh && \ - curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-amd64.tar.gz \ - -o /tmp/s6-overlay-amd64.tar.gz && \ - tar xzf /tmp/s6-overlay-amd64.tar.gz -C / --exclude="./bin" && \ - tar xzf /tmp/s6-overlay-amd64.tar.gz -C /usr ./bin && \ - rm /tmp/s6-overlay-amd64.tar.gz && \ + S6_ARCH="amd64" && \ + if [ "${TARGETARCH}" = "arm64" ]; then S6_ARCH="aarch64"; fi && \ + curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.gz \ + -o /tmp/s6-overlay-${S6_ARCH}.tar.gz && \ + tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C / --exclude="./bin" && \ + tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C /usr ./bin && \ + rm /tmp/s6-overlay-${S6_ARCH}.tar.gz && \ rm -f /var/ossec/etc/sslmanager.key && \ rm -f /var/ossec/etc/sslmanager.cert From c6a427af707cfbb4eb1761a4c70bc17d529c924d Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Fri, 12 Dec 2025 12:44:21 -0500 Subject: [PATCH 05/20] Update documentation of certs-gen procedure --- indexer-certs-creator/README.md | 28 +++++++++++++++++++++++----- indexer-certs-creator/build-image.sh | 4 +++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/indexer-certs-creator/README.md b/indexer-certs-creator/README.md index 8ddccdf5..04808a5d 100644 --- a/indexer-certs-creator/README.md +++ b/indexer-certs-creator/README.md @@ -1,9 +1,27 @@ -# Certificate creation image build +# Certificate Creation Image Build -The dockerfile hosted in this directory is used to build the image used to boot Wazuh's single node and multi node stacks. +The dockerfile hosted in this directory is used to build the image required for generating Wazuh Docker single-node and multi-node certificate files -To create the image, the following command must be executed: +## Pre-requisites +### QEMU + +Set up QEMU to enable building multi-architecture Docker images + +Useful documentation: + +- https://www.qemu.org/download/ +- https://docs.docker.com/build/building/multi-platform/#qemu + +## Procedure + +Run the following script to build the wazuh-certs-generator docker image + +```console +./build-image.sh -v [-m] [-rg ] ``` -$ docker build -t wazuh/wazuh-certs-generator:0.0.3 . -``` + +Replace with the new image desired tag. +Use the `-m` flag to build a multi-architecture image (supports both `amd64` and `arm64`) +Use the `-rg ` parameter to specify a custom Docker registry (default is Docker Hub) + By default, the script will attempt to push the image to the registry and will only work if credentials are properly configured. diff --git a/indexer-certs-creator/build-image.sh b/indexer-certs-creator/build-image.sh index 3fd4c386..925d15a6 100755 --- a/indexer-certs-creator/build-image.sh +++ b/indexer-certs-creator/build-image.sh @@ -37,7 +37,9 @@ build() { set +a if [ "${MULTIARCH}" ]; then - docker buildx bake --file build-image.yml --push --set *.platform=linux/amd64,linux/arm64 --no-cache || clean 1 + docker buildx bake --file build-image.yml \ + --set *.platform=linux/amd64,linux/arm64 \ + --no-cache || clean 1 else docker buildx bake --file build-image.yml --no-cache || clean 1 fi From a509f0f8ea18f1d158de24669fb6c20bffee2348 Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Fri, 5 Dec 2025 08:51:05 -0500 Subject: [PATCH 06/20] Add changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b393f0f..e4b8a6b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ All notable changes to this project will be documented in this file. ### Changed -- None +- Adapt to multi architecture build ([#2120](https://github.com/wazuh/wazuh-docker/pull/2120)) ### Fixed From 089ce24ffc85bf154932cbf222c1715ee6065847 Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Mon, 15 Dec 2025 13:45:38 -0500 Subject: [PATCH 07/20] Enhance script execution of build and improve docs clarity --- build-docker-images/build-images.sh | 15 +++++++++++---- indexer-certs-creator/README.md | 8 ++++---- indexer-certs-creator/build-image.sh | 11 ++++++++--- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index f57d4878..00eb853f 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -42,7 +42,7 @@ build() { if [ "${WAZUH_DEV_STAGE}" ];then FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}-${WAZUH_DEV_STAGE,,}" if ! curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then - echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}" + echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}" clean 1 fi else @@ -71,9 +71,16 @@ build() { set +a if [ "${MULTIARCH}" ];then - docker buildx bake --file build-images.yml --push --set *.platform=linux/amd64,linux/arm64 --no-cache || clean 1 + docker buildx bake \ + --file build-images.yml \ + --push \ + --set *.platform=linux/amd64,linux/arm64 \ + --no-cache || clean 1 else - docker buildx bake --file build-images.yml --no-cache|| clean 1 + docker buildx bake \ + --file build-images.yml \ + --load \ + --no-cache || clean 1 fi return 0 } @@ -167,4 +174,4 @@ main() { clean 0 } -main "$@" \ No newline at end of file +main "$@" diff --git a/indexer-certs-creator/README.md b/indexer-certs-creator/README.md index 04808a5d..d9b20bf7 100644 --- a/indexer-certs-creator/README.md +++ b/indexer-certs-creator/README.md @@ -21,7 +21,7 @@ Run the following script to build the wazuh-certs-generator docker image ./build-image.sh -v [-m] [-rg ] ``` -Replace with the new image desired tag. -Use the `-m` flag to build a multi-architecture image (supports both `amd64` and `arm64`) -Use the `-rg ` parameter to specify a custom Docker registry (default is Docker Hub) - By default, the script will attempt to push the image to the registry and will only work if credentials are properly configured. +- Replace with the new image desired tag. +- Use the `-m` flag to build a multi-architecture image (supports both `amd64` and `arm64`) + - If multiarch build is enabled, the script will attempt to push the image to the specified registry. This image upload will only work if credentials are properly configured. +- Use the `-rg ` parameter to specify a custom Docker registry (default is Docker Hub) diff --git a/indexer-certs-creator/build-image.sh b/indexer-certs-creator/build-image.sh index 925d15a6..afa0eea2 100755 --- a/indexer-certs-creator/build-image.sh +++ b/indexer-certs-creator/build-image.sh @@ -37,11 +37,16 @@ build() { set +a if [ "${MULTIARCH}" ]; then - docker buildx bake --file build-image.yml \ + docker buildx bake \ + --file build-image.yml \ --set *.platform=linux/amd64,linux/arm64 \ + --push \ --no-cache || clean 1 else - docker buildx bake --file build-image.yml --no-cache || clean 1 + docker buildx bake \ + --file build-image.yml \ + --load \ + --no-cache || clean 1 fi return 0 } @@ -99,4 +104,4 @@ main() { clean 0 } -main "$@" \ No newline at end of file +main "$@" From f51fc2e4ae7f76c4256e7b32cce3025cd94d2d4a Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Wed, 17 Dec 2025 12:10:46 -0500 Subject: [PATCH 08/20] Add check (input.dev must be false) for image validation and GH issue notification in push workflow --- .github/workflows/Procedure_push_docker_images.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Procedure_push_docker_images.yml b/.github/workflows/Procedure_push_docker_images.yml index bf45b917..57871a29 100644 --- a/.github/workflows/Procedure_push_docker_images.yml +++ b/.github/workflows/Procedure_push_docker_images.yml @@ -157,6 +157,7 @@ jobs: working-directory: ./build-docker-images - name: Image exists validation + if: ${{ inputs.dev == false }} id: validation run: | IMAGE_TAG=${{ inputs.image_tag }} @@ -181,7 +182,7 @@ jobs: echo "purpose=$PURPOSE" >> $GITHUB_OUTPUT - name: GH issue notification - if: ${{ steps.validation.outputs.purpose != '' }} + if: ${{ inputs.dev == false && steps.validation.outputs.purpose != '' }} run: | IMAGE_TAG=${{ inputs.image_tag }} GH_TITLE="" From f7927bf2381ce156c7ad0898a333ea37e419bd43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Acu=C3=B1a?= Date: Wed, 17 Dec 2025 16:13:13 -0300 Subject: [PATCH 09/20] Changelog update --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d3ab948..d002c91d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ All notable changes to this project will be documented in this file. ### Changed -- None +- Agent group parameter added ([#2127](https://github.com/wazuh/wazuh-docker/pull/2127)) ### Fixed From d86827a3699920d385b03842051d5d64bba45533 Mon Sep 17 00:00:00 2001 From: Victor Carlos Erenu Date: Thu, 18 Dec 2025 02:30:34 +0700 Subject: [PATCH 10/20] Delete etc/lists references --- .github/.goss.yaml | 7 ------- .../wazuh-manager/config/etc/cont-init.d/0-wazuh-init | 1 - 2 files changed, 8 deletions(-) diff --git a/.github/.goss.yaml b/.github/.goss.yaml index 54fb61fa..4e083406 100644 --- a/.github/.goss.yaml +++ b/.github/.goss.yaml @@ -6,13 +6,6 @@ file: group: root filetype: file contains: [] - /var/ossec/etc/lists/audit-keys: - exists: true - mode: "0660" - owner: wazuh - group: wazuh - filetype: file - contains: [] /var/ossec/etc/ossec.conf: exists: true mode: "0660" diff --git a/build-docker-images/wazuh-manager/config/etc/cont-init.d/0-wazuh-init b/build-docker-images/wazuh-manager/config/etc/cont-init.d/0-wazuh-init index 32eba0a0..4e06e49e 100644 --- a/build-docker-images/wazuh-manager/config/etc/cont-init.d/0-wazuh-init +++ b/build-docker-images/wazuh-manager/config/etc/cont-init.d/0-wazuh-init @@ -245,7 +245,6 @@ echo "Wazuh manager config modified successfully." configure_permissions() { chown -R wazuh:wazuh /var/ossec/queue/rids - chown -R wazuh:wazuh /var/ossec/etc/lists } ############################################################################## From fbed17f773a5016962d467d0cbc39c3375a4d4a3 Mon Sep 17 00:00:00 2001 From: Victor Carlos Erenu Date: Thu, 18 Dec 2025 02:37:19 +0700 Subject: [PATCH 11/20] Add and fix changelog references --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74b1b78e..4b30b5fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,15 +9,15 @@ All notable changes to this project will be documented in this file. ### Changed -- Configure deployment with environment variables ([#2081](https://github.com/wazuh/wazuh-puppet/issues/2081)) -- Modify Wazuh components install method ([#2058](https://github.com/wazuh/wazuh-puppet/issues/2058)) -- Image builder Workflow Rebuild ([#2054](https://github.com/wazuh/wazuh-puppet/issues/2054)) -- Wazuh server clean-up ([#2030](https://github.com/wazuh/wazuh-puppet/issues/2030)) -- Fix OpenSearch deprecated settings ([#1366](https://github.com/wazuh/wazuh-puppet/issues/1366)) +- Configure deployment with environment variables ([#2081](https://github.com/wazuh/wazuh-docker/pull/2081)) +- Modify Wazuh components install method ([#2058](https://github.com/wazuh/wazuh-docker/pull/2058)) +- Image builder Workflow Rebuild ([#2054](https://github.com/wazuh/wazuh-docker/pull/2054)) +- Wazuh server clean-up ([#2030](https://github.com/wazuh/wazuh-docker/pull/2030)) +- Fix OpenSearch deprecated settings ([#1899](https://github.com/wazuh/wazuh-docker/pull/1899)) ### Fixed -- None + Delete etc/lists references ([#2129](https://github.com/wazuh/wazuh-docker/pull/2129)) ### Deleted From 9138f7a9f56c6d4cbc118087e8928d46546bd3d1 Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Wed, 17 Dec 2025 15:27:21 -0500 Subject: [PATCH 12/20] Update certs generator image version to 0.0.4 in multi-node and single-node configurations --- multi-node/generate-indexer-certs.yml | 2 +- single-node/generate-indexer-certs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/multi-node/generate-indexer-certs.yml b/multi-node/generate-indexer-certs.yml index 88927593..c719d22e 100644 --- a/multi-node/generate-indexer-certs.yml +++ b/multi-node/generate-indexer-certs.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: generator: - image: wazuh/wazuh-certs-generator:0.0.3 + image: wazuh/wazuh-certs-generator:0.0.4 hostname: wazuh-certs-generator environment: - CERT_TOOL_VERSION=4.14 diff --git a/single-node/generate-indexer-certs.yml b/single-node/generate-indexer-certs.yml index a941280f..dfcdca57 100644 --- a/single-node/generate-indexer-certs.yml +++ b/single-node/generate-indexer-certs.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: generator: - image: wazuh/wazuh-certs-generator:0.0.3 + image: wazuh/wazuh-certs-generator:0.0.4 hostname: wazuh-certs-generator environment: - CERT_TOOL_VERSION=4.14 From dd165bf3ec6e1cd49c7b102876c309e8956313fd Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Thu, 18 Dec 2025 10:13:47 -0500 Subject: [PATCH 13/20] Update indexer-certs-gen README.md for clarity on procedure --- indexer-certs-creator/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/indexer-certs-creator/README.md b/indexer-certs-creator/README.md index d9b20bf7..3f979e6f 100644 --- a/indexer-certs-creator/README.md +++ b/indexer-certs-creator/README.md @@ -4,14 +4,15 @@ The dockerfile hosted in this directory is used to build the image required for ## Pre-requisites -### QEMU - -Set up QEMU to enable building multi-architecture Docker images +1. Verify the Docker Buildx plugin is properly set up +2. For multi-architecture image builds: + - Ensure QEMU is installed + - Check permissions to push images to a Docker registry Useful documentation: +- https://docs.docker.com/build/building/multi-platform/ - https://www.qemu.org/download/ -- https://docs.docker.com/build/building/multi-platform/#qemu ## Procedure From 3a5e30b8882c51e83e6d744c17d3b1871824e7e7 Mon Sep 17 00:00:00 2001 From: wazuhci <22834044+wazuhci@users.noreply.github.com> Date: Fri, 19 Dec 2025 09:56:23 +0000 Subject: [PATCH 14/20] feat: bump 4.14.2 --- VERSION.json | 2 +- build-docker-images/build-images.sh | 2 +- docs/dev/build-image.md | 2 +- multi-node/docker-compose.yml | 12 ++++++------ single-node/docker-compose.yml | 6 +++--- wazuh-agent/docker-compose.yml | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/VERSION.json b/VERSION.json index c0140fe7..1a7f8ca1 100644 --- a/VERSION.json +++ b/VERSION.json @@ -1,4 +1,4 @@ { "version": "4.14.2", - "stage": "rc1" + "stage": "rc2" } diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index f4086e42..f1f65ccb 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -76,7 +76,7 @@ help() { echo echo "Usage: $0 [OPTIONS]" echo - echo " -d, --dev [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default." + echo " -d, --dev [Optional] Set the development stage you want to build, example rc2 or beta1, not used by default." echo " -f, --filebeat-module [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}." echo " -r, --revision [Optional] Package revision. By default ${WAZUH_TAG_REVISION}" echo " -v, --version [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}." diff --git a/docs/dev/build-image.md b/docs/dev/build-image.md index 041ad1a5..1103f502 100644 --- a/docs/dev/build-image.md +++ b/docs/dev/build-image.md @@ -23,7 +23,7 @@ $ build-docker-images/build-images.sh -h Usage: build-docker-images/build-images.sh [OPTIONS] - -d, --dev [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default. + -d, --dev [Optional] Set the development stage you want to build, example rc2 or beta1, not used by default. -f, --filebeat-module [Optional] Set Filebeat module version. By default 0.5. -r, --revision [Optional] Package revision. By default 1 -v, --version [Optional] Set the Wazuh version should be builded. By default, 4.14.2. diff --git a/multi-node/docker-compose.yml b/multi-node/docker-compose.yml index d0091d51..aa167337 100644 --- a/multi-node/docker-compose.yml +++ b/multi-node/docker-compose.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: wazuh.master: - image: wazuh/wazuh-manager:4.14.2 + image: wazuh/wazuh-manager:4.14.2-rc2 hostname: wazuh.master restart: always ulimits: @@ -43,7 +43,7 @@ services: - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf wazuh.worker: - image: wazuh/wazuh-manager:4.14.2 + image: wazuh/wazuh-manager:4.14.2-rc2 hostname: wazuh.worker restart: always ulimits: @@ -79,7 +79,7 @@ services: - ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf wazuh1.indexer: - image: wazuh/wazuh-indexer:4.14.2 + image: wazuh/wazuh-indexer:4.14.2-rc2 hostname: wazuh1.indexer restart: always ports: @@ -105,7 +105,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh2.indexer: - image: wazuh/wazuh-indexer:4.14.2 + image: wazuh/wazuh-indexer:4.14.2-rc2 hostname: wazuh2.indexer restart: always environment: @@ -127,7 +127,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh3.indexer: - image: wazuh/wazuh-indexer:4.14.2 + image: wazuh/wazuh-indexer:4.14.2-rc2 hostname: wazuh3.indexer restart: always environment: @@ -149,7 +149,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh.dashboard: - image: wazuh/wazuh-dashboard:4.14.2 + image: wazuh/wazuh-dashboard:4.14.2-rc2 hostname: wazuh.dashboard restart: always ports: diff --git a/single-node/docker-compose.yml b/single-node/docker-compose.yml index 9dd70a6b..600a7284 100644 --- a/single-node/docker-compose.yml +++ b/single-node/docker-compose.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: wazuh.manager: - image: wazuh/wazuh-manager:4.14.2 + image: wazuh/wazuh-manager:4.14.2-rc2 hostname: wazuh.manager restart: always ulimits: @@ -44,7 +44,7 @@ services: - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf wazuh.indexer: - image: wazuh/wazuh-indexer:4.14.2 + image: wazuh/wazuh-indexer:4.14.2-rc2 hostname: wazuh.indexer restart: always ports: @@ -69,7 +69,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh.dashboard: - image: wazuh/wazuh-dashboard:4.14.2 + image: wazuh/wazuh-dashboard:4.14.2-rc2 hostname: wazuh.dashboard restart: always ports: diff --git a/wazuh-agent/docker-compose.yml b/wazuh-agent/docker-compose.yml index 67142ad1..91fdb29f 100644 --- a/wazuh-agent/docker-compose.yml +++ b/wazuh-agent/docker-compose.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: wazuh.agent: - image: wazuh/wazuh-agent:4.14.2 + image: wazuh/wazuh-agent:4.14.2-rc2 restart: always environment: - WAZUH_MANAGER_SERVER= From a95ec0dac9befb769b18a176a66955f91d8cda64 Mon Sep 17 00:00:00 2001 From: Victor Carlos Erenu Date: Fri, 19 Dec 2025 17:58:18 +0700 Subject: [PATCH 15/20] Revert image tag --- multi-node/docker-compose.yml | 12 ++++++------ single-node/docker-compose.yml | 6 +++--- wazuh-agent/docker-compose.yml | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/multi-node/docker-compose.yml b/multi-node/docker-compose.yml index aa167337..d0091d51 100644 --- a/multi-node/docker-compose.yml +++ b/multi-node/docker-compose.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: wazuh.master: - image: wazuh/wazuh-manager:4.14.2-rc2 + image: wazuh/wazuh-manager:4.14.2 hostname: wazuh.master restart: always ulimits: @@ -43,7 +43,7 @@ services: - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf wazuh.worker: - image: wazuh/wazuh-manager:4.14.2-rc2 + image: wazuh/wazuh-manager:4.14.2 hostname: wazuh.worker restart: always ulimits: @@ -79,7 +79,7 @@ services: - ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf wazuh1.indexer: - image: wazuh/wazuh-indexer:4.14.2-rc2 + image: wazuh/wazuh-indexer:4.14.2 hostname: wazuh1.indexer restart: always ports: @@ -105,7 +105,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh2.indexer: - image: wazuh/wazuh-indexer:4.14.2-rc2 + image: wazuh/wazuh-indexer:4.14.2 hostname: wazuh2.indexer restart: always environment: @@ -127,7 +127,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh3.indexer: - image: wazuh/wazuh-indexer:4.14.2-rc2 + image: wazuh/wazuh-indexer:4.14.2 hostname: wazuh3.indexer restart: always environment: @@ -149,7 +149,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh.dashboard: - image: wazuh/wazuh-dashboard:4.14.2-rc2 + image: wazuh/wazuh-dashboard:4.14.2 hostname: wazuh.dashboard restart: always ports: diff --git a/single-node/docker-compose.yml b/single-node/docker-compose.yml index 600a7284..9dd70a6b 100644 --- a/single-node/docker-compose.yml +++ b/single-node/docker-compose.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: wazuh.manager: - image: wazuh/wazuh-manager:4.14.2-rc2 + image: wazuh/wazuh-manager:4.14.2 hostname: wazuh.manager restart: always ulimits: @@ -44,7 +44,7 @@ services: - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf wazuh.indexer: - image: wazuh/wazuh-indexer:4.14.2-rc2 + image: wazuh/wazuh-indexer:4.14.2 hostname: wazuh.indexer restart: always ports: @@ -69,7 +69,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml wazuh.dashboard: - image: wazuh/wazuh-dashboard:4.14.2-rc2 + image: wazuh/wazuh-dashboard:4.14.2 hostname: wazuh.dashboard restart: always ports: diff --git a/wazuh-agent/docker-compose.yml b/wazuh-agent/docker-compose.yml index 91fdb29f..67142ad1 100644 --- a/wazuh-agent/docker-compose.yml +++ b/wazuh-agent/docker-compose.yml @@ -1,7 +1,7 @@ # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) services: wazuh.agent: - image: wazuh/wazuh-agent:4.14.2-rc2 + image: wazuh/wazuh-agent:4.14.2 restart: always environment: - WAZUH_MANAGER_SERVER= From a5fc8fd88c9c4fbfa5ac6eeba69fd69623b1023e Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Mon, 22 Dec 2025 10:17:01 -0500 Subject: [PATCH 16/20] Improve documentation for Docker image building process and remove unused reference option --- build-docker-images/README.md | 32 ++++++++++++++++++----------- build-docker-images/build-images.sh | 9 -------- indexer-certs-creator/README.md | 6 +++++- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/build-docker-images/README.md b/build-docker-images/README.md index d4640644..8502b8c6 100644 --- a/build-docker-images/README.md +++ b/build-docker-images/README.md @@ -1,32 +1,40 @@ # Wazuh Docker Image Builder -The creation of the images for the Wazuh stack deployment in Docker is done with the build-images.yml script - -To execute the process, the following must be executed in the root of the wazuh-docker repository: - -``` -$ build-docker-images/build-images.sh -``` +The creation of the images for the Wazuh stack deployment in Docker is done with the `build-docker-images/build-images.sh` script This script initializes the environment variables needed to build each of the images. -The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument: +To execute it, make sure to be in the `build-docker-images` directory: +```bash +cd build-docker-images ``` -$ build-docker-images/build-images.sh -v 4.14.3 + +Then execute: + +```bash +./build-images.sh +``` + +The script also allows to build images from other versions of Wazuh by using the `-v` or `--version` argument: + +```bash +./build-images.sh -v 4.14.3 ``` To get all the available script options use the -h or --help option: -``` -$ build-docker-images/build-images.sh -h +```bash +./build-images.sh -h -Usage: build-docker-images/build-images.sh [OPTIONS] +Usage: ./build-images.sh [OPTIONS] -d, --dev [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default. -f, --filebeat-module [Optional] Set Filebeat module version. By default 0.5. -r, --revision [Optional] Package revision. By default 1 + -rg, --registry [Optional] Set the Docker registry to push the images. -v, --version [Optional] Set the Wazuh version should be builded. By default, 4.14.3. + -m, --multiarch [Optional] Enable multi-architecture builds. -h, --help Show this help. ``` \ No newline at end of file diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index 5cc8e1ae..a284b1fb 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -94,7 +94,6 @@ help() { echo " -d, --dev [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default." echo " -f, --filebeat-module [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}." echo " -r, --revision [Optional] Package revision. By default ${WAZUH_TAG_REVISION}" - echo " -ref, --reference [Optional] Set the Wazuh reference to build development images. By default, the latest stable release." echo " -rg, --registry [Optional] Set the Docker registry to push the images." echo " -v, --version [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}." echo " -m, --multiarch [Optional] Enable multi-architecture builds." @@ -140,14 +139,6 @@ main() { help 1 fi ;; - "-ref"|"--reference") - if [ -n "${2}" ]; then - WAZUH_TAG_REFERENCE="${2}" - shift 2 - else - help 1 - fi - ;; "-rg"|"--registry") if [ -n "${2}" ]; then WAZUH_REGISTRY="${2}" diff --git a/indexer-certs-creator/README.md b/indexer-certs-creator/README.md index 3f979e6f..1a6e05e3 100644 --- a/indexer-certs-creator/README.md +++ b/indexer-certs-creator/README.md @@ -16,7 +16,11 @@ Useful documentation: ## Procedure -Run the following script to build the wazuh-certs-generator docker image +Execute the following to run the script used to build the wazuh-certs-generator docker image + +```console +cd indexer-certs-creator +``` ```console ./build-image.sh -v [-m] [-rg ] From 024bb8553acdd7d2ced184c8b99eccb824911995 Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Mon, 22 Dec 2025 11:03:55 -0500 Subject: [PATCH 17/20] Add working directory to push.yml workflow and add shebang to image build script --- .github/workflows/push.yml | 3 ++- build-docker-images/build-images.sh | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index e67a9a5b..02d83a2c 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -11,7 +11,8 @@ jobs: uses: actions/checkout@v4 - name: Build Wazuh images - run: build-docker-images/build-images.sh + run: ./build-images.sh + working-directory: ./build-docker-images - name: Create enviroment variables run: cat .env > $GITHUB_ENV diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index a284b1fb..7ccf4c81 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -1,6 +1,4 @@ -IMAGE_TAG=4.14.3 -WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g') -WAZUH_REGISTRY=docker.io +#!/bin/bash # Wazuh package generator # Copyright (C) 2023, Wazuh Inc. @@ -10,6 +8,10 @@ WAZUH_REGISTRY=docker.io # License (version 2) as published by the FSF - Free Software # Foundation. +IMAGE_TAG=4.14.3 +WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g') +WAZUH_REGISTRY=docker.io + WAZUH_IMAGE_VERSION="4.14.3" WAZUH_TAG_REVISION="1" WAZUH_DEV_STAGE="" From 960efa9cda4afecb051aea22f933341bafd1cc91 Mon Sep 17 00:00:00 2001 From: Carlos Bordon Date: Wed, 24 Dec 2025 09:10:09 -0300 Subject: [PATCH 18/20] Removed certificates files from main --- build-docker-images/README.md | 40 --------- indexer-certs-creator/README.md | 32 -------- indexer-certs-creator/build-image.sh | 107 ------------------------- indexer-certs-creator/build-image.yml | 8 -- multi-node/generate-indexer-certs.yml | 10 --- single-node/generate-indexer-certs.yml | 10 --- 6 files changed, 207 deletions(-) delete mode 100644 build-docker-images/README.md delete mode 100644 indexer-certs-creator/README.md delete mode 100755 indexer-certs-creator/build-image.sh delete mode 100644 indexer-certs-creator/build-image.yml delete mode 100644 multi-node/generate-indexer-certs.yml delete mode 100644 single-node/generate-indexer-certs.yml diff --git a/build-docker-images/README.md b/build-docker-images/README.md deleted file mode 100644 index 8502b8c6..00000000 --- a/build-docker-images/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Wazuh Docker Image Builder - -The creation of the images for the Wazuh stack deployment in Docker is done with the `build-docker-images/build-images.sh` script - -This script initializes the environment variables needed to build each of the images. - -To execute it, make sure to be in the `build-docker-images` directory: - -```bash -cd build-docker-images -``` - -Then execute: - -```bash -./build-images.sh -``` - -The script also allows to build images from other versions of Wazuh by using the `-v` or `--version` argument: - -```bash -./build-images.sh -v 4.14.3 -``` - -To get all the available script options use the -h or --help option: - -```bash -./build-images.sh -h - -Usage: ./build-images.sh [OPTIONS] - - -d, --dev [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default. - -f, --filebeat-module [Optional] Set Filebeat module version. By default 0.5. - -r, --revision [Optional] Package revision. By default 1 - -rg, --registry [Optional] Set the Docker registry to push the images. - -v, --version [Optional] Set the Wazuh version should be builded. By default, 4.14.3. - -m, --multiarch [Optional] Enable multi-architecture builds. - -h, --help Show this help. - -``` \ No newline at end of file diff --git a/indexer-certs-creator/README.md b/indexer-certs-creator/README.md deleted file mode 100644 index 1a6e05e3..00000000 --- a/indexer-certs-creator/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Certificate Creation Image Build - -The dockerfile hosted in this directory is used to build the image required for generating Wazuh Docker single-node and multi-node certificate files - -## Pre-requisites - -1. Verify the Docker Buildx plugin is properly set up -2. For multi-architecture image builds: - - Ensure QEMU is installed - - Check permissions to push images to a Docker registry - -Useful documentation: - -- https://docs.docker.com/build/building/multi-platform/ -- https://www.qemu.org/download/ - -## Procedure - -Execute the following to run the script used to build the wazuh-certs-generator docker image - -```console -cd indexer-certs-creator -``` - -```console -./build-image.sh -v [-m] [-rg ] -``` - -- Replace with the new image desired tag. -- Use the `-m` flag to build a multi-architecture image (supports both `amd64` and `arm64`) - - If multiarch build is enabled, the script will attempt to push the image to the specified registry. This image upload will only work if credentials are properly configured. -- Use the `-rg ` parameter to specify a custom Docker registry (default is Docker Hub) diff --git a/indexer-certs-creator/build-image.sh b/indexer-certs-creator/build-image.sh deleted file mode 100755 index afa0eea2..00000000 --- a/indexer-certs-creator/build-image.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash - -# Wazuh package generator -# Copyright (C) 2023, Wazuh Inc. -# -# This program is a free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public -# License (version 2) as published by the FSF - Free Software -# Foundation. - -WAZUH_CERTS_IMAGE_VERSION="0.0.4" -WAZUH_REGISTRY="docker.io" - -# ----------------------------------------------------------------------------- - -trap ctrl_c INT - -clean() { - exit_code=$1 - exit ${exit_code} -} - -ctrl_c() { - clean 1 -} - -# ----------------------------------------------------------------------------- - -build() { - IMAGE_TAG="${WAZUH_CERTS_IMAGE_VERSION}" - - echo WAZUH_REGISTRY=$WAZUH_REGISTRY > .env - echo IMAGE_TAG=$IMAGE_TAG >> .env - - set -a - source .env - set +a - - if [ "${MULTIARCH}" ]; then - docker buildx bake \ - --file build-image.yml \ - --set *.platform=linux/amd64,linux/arm64 \ - --push \ - --no-cache || clean 1 - else - docker buildx bake \ - --file build-image.yml \ - --load \ - --no-cache || clean 1 - fi - return 0 -} - -# ----------------------------------------------------------------------------- - -help() { - echo - echo "Usage: $0 [OPTIONS]" - echo - echo " -v, --version [Optional] Set the image version. By default ${WAZUH_CERTS_IMAGE_VERSION}." - echo " -rg, --registry [Optional] Set the Docker registry to push the images." - echo " -m, --multiarch [Optional] Enable multi-architecture builds." - echo " -h, --help Show this help." - echo - exit $1 -} - -# ----------------------------------------------------------------------------- - -main() { - while [ -n "${1}" ] - do - case "${1}" in - "-h"|"--help") - help 0 - ;; - "-m"|"--multiarch") - MULTIARCH="true" - shift - ;; - "-rg"|"--registry") - if [ -n "${2}" ]; then - WAZUH_REGISTRY="${2}" - shift 2 - else - help 1 - fi - ;; - "-v"|"--version") - if [ -n "$2" ]; then - WAZUH_CERTS_IMAGE_VERSION="$2" - shift 2 - else - help 1 - fi - ;; - *) - help 1 - esac - done - - build || clean 1 - - clean 0 -} - -main "$@" diff --git a/indexer-certs-creator/build-image.yml b/indexer-certs-creator/build-image.yml deleted file mode 100644 index 58bb13cf..00000000 --- a/indexer-certs-creator/build-image.yml +++ /dev/null @@ -1,8 +0,0 @@ -# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) -services: - wazuh.certs.generator: - build: - context: . - dockerfile: Dockerfile - image: ${WAZUH_REGISTRY}/wazuh/wazuh-certs-generator:${IMAGE_TAG} - hostname: wazuh-certs-generator diff --git a/multi-node/generate-indexer-certs.yml b/multi-node/generate-indexer-certs.yml deleted file mode 100644 index c719d22e..00000000 --- a/multi-node/generate-indexer-certs.yml +++ /dev/null @@ -1,10 +0,0 @@ -# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) -services: - generator: - image: wazuh/wazuh-certs-generator:0.0.4 - hostname: wazuh-certs-generator - environment: - - CERT_TOOL_VERSION=4.14 - volumes: - - ./config/wazuh_indexer_ssl_certs/:/certificates/ - - ./config/certs.yml:/config/certs.yml \ No newline at end of file diff --git a/single-node/generate-indexer-certs.yml b/single-node/generate-indexer-certs.yml deleted file mode 100644 index dfcdca57..00000000 --- a/single-node/generate-indexer-certs.yml +++ /dev/null @@ -1,10 +0,0 @@ -# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) -services: - generator: - image: wazuh/wazuh-certs-generator:0.0.4 - hostname: wazuh-certs-generator - environment: - - CERT_TOOL_VERSION=4.14 - volumes: - - ./config/wazuh_indexer_ssl_certs/:/certificates/ - - ./config/certs.yml:/config/certs.yml From 5a803bc877985c6eece60f3ae13edc2a19bfbe23 Mon Sep 17 00:00:00 2001 From: Carlos Bordon Date: Wed, 24 Dec 2025 09:24:00 -0300 Subject: [PATCH 19/20] Updated build images parameters --- build-docker-images/build-images.sh | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index 2c937af5..1a0802fc 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -128,10 +128,6 @@ main() { help 1 fi ;; - "-m"|"--multiarch") - MULTIARCH="true" - shift - ;; "-ref"|"--reference") if [ -n "${2}" ]; then WAZUH_TAG_REFERENCE="${2}" @@ -148,14 +144,6 @@ main() { help 1 fi ;; - "-rg"|"--registry") - if [ -n "${2}" ]; then - WAZUH_REGISTRY="${2}" - shift 2 - else - help 1 - fi - ;; "-v"|"--version") if [ -n "$2" ]; then WAZUH_IMAGE_VERSION="$2" From 2c28bd04c6764fa3ab9ff9eeb360dd1f79dfed1d Mon Sep 17 00:00:00 2001 From: Victor Carlos Erenu Date: Fri, 26 Dec 2025 20:02:43 +0700 Subject: [PATCH 20/20] Add changelog deleted --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c6ecac9..96f4a5c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file. ### Changed +- Update documentation for Wazuh Docker image builder and workflow usage ([#2136](https://github.com/wazuh/wazuh-docker/issues/2136)) - Configure deployment with environment variables ([#2081](https://github.com/wazuh/wazuh-docker/pull/2081)) - Modify Wazuh components install method ([#2058](https://github.com/wazuh/wazuh-docker/pull/2058)) - Image builder Workflow Rebuild ([#2054](https://github.com/wazuh/wazuh-docker/pull/2054))