diff --git a/.github/workflows/4_build_and_push_images.yml b/.github/workflows/4_build_and_push_images.yml index bea1b2e9..a801e928 100644 --- a/.github/workflows/4_build_and_push_images.yml +++ b/.github/workflows/4_build_and_push_images.yml @@ -155,6 +155,12 @@ jobs: with: ref: ${{ inputs.docker_reference }} + - name: Log in to Docker Hub + uses: docker/login-action@v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Set up QEMU uses: docker/setup-qemu-action@v4 @@ -172,12 +178,6 @@ jobs: if: ${{ inputs.dev == true }} uses: aws-actions/amazon-ecr-login@v2 - - name: Log in to Docker Hub - uses: docker/login-action@v4 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Build Wazuh images run: | IMAGE_TAG="${{ inputs.image_tag }}" diff --git a/.github/workflows/5_build_and_push_images.yml b/.github/workflows/5_build_and_push_images.yml index e39cf756..d0eebded 100644 --- a/.github/workflows/5_build_and_push_images.yml +++ b/.github/workflows/5_build_and_push_images.yml @@ -81,6 +81,8 @@ on: permissions: id-token: write contents: read +env: + LOCAL_ARTIFACT_URLS_FILEPATH: /tmp/${{ vars.ARTIFACT_URL_FILE_NAME }} jobs: setup: @@ -166,7 +168,6 @@ jobs: WORKFLOW_VENV: "${{ github.workspace }}/workflow_venv" GENERATE_PRESIGNED_URLS_SCRIPT_PATH: ${{ github.workspace }}/wazuh-automation/tools/sign_urls/generate_presigned_dev_urls.py PRESIGNED_URLS_SCRIPT_PROCESS: "build_docker" - LOCAL_ARTIFACT_URLS_FILEPATH: /tmp/${{ vars.ARTIFACT_URL_FILE_NAME }} COMMIT_LIST: ${{ inputs.commit_list }} ASSISTANT_REVISION: ${{ inputs.assistant_revision }} @@ -284,10 +285,9 @@ jobs: - name: Save presigned URLs file to artifact if: ${{ inputs.dev == true }} - uses: actions/upload-artifact@v4 - with: - name: presigned-artifact-urls-${{ github.run_id }} - path: ${{ env.LOCAL_ARTIFACT_URLS_FILEPATH }} + run: | + echo "Uploading presigned URLs artifact..." + aws s3 cp "${{ env.LOCAL_ARTIFACT_URLS_FILEPATH }}" "s3://${{ secrets.CI_DEV_INTERNAL_S3_BUCKET }}/wazuh-docker/5_build_and_push_images/${{ github.run_id }}/${{ vars.ARTIFACT_URL_FILE_NAME }}" build-and-push: runs-on: codebuild-github-actions-codebuild-runner-devops-amd-${{ github.run_id }}-${{ github.run_attempt }} @@ -337,10 +337,10 @@ jobs: - name: Download artifact_urls.yaml (dev) if: ${{ inputs.dev == true }} - uses: actions/download-artifact@v4 - with: - name: presigned-artifact-urls-${{ github.run_id }} - path: ./build-docker-images + run: | + echo "Downloading presigned URLs artifact..." + aws s3 cp "s3://${{ secrets.CI_DEV_INTERNAL_S3_BUCKET }}/wazuh-docker/5_build_and_push_images/${{ github.run_id }}/${{ vars.ARTIFACT_URL_FILE_NAME }}" "${{ env.LOCAL_ARTIFACT_URLS_FILEPATH }}" + mv "${{ env.LOCAL_ARTIFACT_URLS_FILEPATH }}" ./build-docker-images/${{ vars.ARTIFACT_URL_FILE_NAME }} - name: Compute component reference (dev) if: ${{ inputs.dev == true }} diff --git a/.github/workflows/5_bumper_repository.yml b/.github/workflows/5_bumper_repository.yml index 9f19be22..281b4775 100644 --- a/.github/workflows/5_bumper_repository.yml +++ b/.github/workflows/5_bumper_repository.yml @@ -37,6 +37,11 @@ on: default: false required: false type: boolean + bump-issue-link: + description: 'Issue link used in the original bump (required for revert if different from issue-link)' + required: false + type: string + jobs: bump: name: Repository bumper 5.x @@ -152,9 +157,18 @@ jobs: id: revert_step if: inputs.revert == true run: | + # 1. Get the current issue number (for the new revert branch/PR) ISSUE_NUMBER=$(echo "${{ inputs.issue-link }}" | awk -F'/' '{print $NF}') - BUMP_BRANCH="enhancement/wqa${ISSUE_NUMBER}-bump-${{ github.ref_name }}" + # 2. Get the issue number from the original bump (if provided; otherwise, defaults to the current one) + if [ -n "${{ inputs.bump-issue-link }}" ]; then + BUMP_ISSUE_NUMBER=$(echo "${{ inputs.bump-issue-link }}" | awk -F'/' '{print $NF}') + else + BUMP_ISSUE_NUMBER=$ISSUE_NUMBER + fi + + # 3. Search for the original bump branch using the obtained BUMP ISSUE number + BUMP_BRANCH="enhancement/wqa${BUMP_ISSUE_NUMBER}-bump-${{ github.ref_name }}" PR_NUMBER=$(gh pr list --head "$BUMP_BRANCH" --base "${{ github.ref_name }}" --state merged --json number --jq '.[0].number') @@ -173,7 +187,7 @@ jobs: # Remove the files to prevent them from being included in the revert commit git checkout HEAD -- VERSION.json 2>/dev/null || true git checkout HEAD -- CHANGELOG.md 2>/dev/null || true - # Add any other repository-specific version files here + # [!] ADD ANY OTHER REPOSITORY-SPECIFIC VERSION FILES HERE [!] if git diff --staged --quiet; then echo "No references to revert. Skipping commit." diff --git a/.github/workflows/5_check_integration_tools.yml b/.github/workflows/5_check_integration_tools.yml index c22c363a..4f42c83c 100644 --- a/.github/workflows/5_check_integration_tools.yml +++ b/.github/workflows/5_check_integration_tools.yml @@ -53,6 +53,7 @@ env: AUTOMATION_REFERENCE: ${{ inputs.automation_reference || 'main' }} ALLOCATOR_PATH: /tmp/allocator_instance REGION: us-east-1 + LOGS_ARTIFACT_ZIP_FILE: "docker_logs_artifacts_${{ github.run_id }}.zip" jobs: # ------------------------------------------------------------------------- @@ -176,8 +177,8 @@ jobs: echo "deployment_matrix=[\"${DEPLOY_TYPE}\"]" >> $GITHUB_OUTPUT fi else - echo "pr_head_ref=${{ needs.get_pr_info.outputs.pr_head_ref }}" >> $GITHUB_OUTPUT - echo "deployment_matrix=${{ needs.get_pr_info.outputs.deployment_matrix }}" >> $GITHUB_OUTPUT + echo 'pr_head_ref=${{ needs.get_pr_info.outputs.pr_head_ref }}' >> $GITHUB_OUTPUT + echo 'deployment_matrix=${{ needs.get_pr_info.outputs.deployment_matrix }}' >> $GITHUB_OUTPUT fi - name: Checkout wazuh-docker PR branch (VERSION.json only) @@ -409,6 +410,7 @@ jobs: pip install -r wazuh-automation/deployability/deps/requirements.txt pip install -r wazuh-automation/integration-test-module/requirements.txt pip install -e wazuh-automation/integration-test-module/ + pip install pyyaml - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 @@ -417,6 +419,19 @@ jobs: role-session-name: docker-test-${{ github.run_id }}-${{ matrix.deployment_type }} aws-region: ${{ env.REGION }} + - name: Generate presigned cert tool URL + run: | + python wazuh-automation/tools/sign_urls/generate_presigned_dev_urls.py \ + --process build_docker \ + --wazuh-version "${{ env.DOCKER_VERSION }}" \ + --aws-s3-bucket-dev "${{ vars.AWS_S3_BUCKET_DEV }}" + + python3 -c " + import yaml + data = yaml.safe_load(open('/tmp/artifact_urls.yaml')) + print(f'wazuh_certs_tool={data[\"wazuh_certs_tool\"]}') + " >> "$GITHUB_ENV" + # ----------------------------------------------------------------------- # Provision: allocate VM and extract SSH credentials # ----------------------------------------------------------------------- @@ -502,20 +517,10 @@ jobs: - name: Prepare cert tool and config run: | DEPLOYMENT="${{ matrix.deployment_type }}" - VERSION="${{ env.WAZUH_VERSION }}" - STAGE="${{ env.WAZUH_STAGE }}" - MAJOR=$(echo "$VERSION" | cut -d. -f1) - echo "Cert tool: ${VERSION}-${STAGE} Docker image: ${{ env.DOCKER_TAG }}" + echo "Cert tool: ${{ env.wazuh_certs_tool }} Docker image: ${{ env.DOCKER_TAG }}" - # Download cert tool once on the runner - if [ -n "$STAGE" ]; then - CERT_TOOL_URL="https://packages-staging.xdrsiem.wazuh.info/pre-release/${MAJOR}.x/installation-assistant/wazuh-certs-tool-${VERSION}-${STAGE}.sh" - else - CERT_TOOL_URL="https://packages.wazuh.com/${MAJOR}.$(echo "$VERSION" | cut -d. -f2)/wazuh-certs-tool-${VERSION}-1.sh" - fi - echo "Downloading cert tool: $CERT_TOOL_URL" - curl -fsSL -o "wazuh-docker/${DEPLOYMENT}/wazuh-certs-tool.sh" "$CERT_TOOL_URL" + curl --output "wazuh-docker/${DEPLOYMENT}/wazuh-certs-tool.sh" "${{ env.wazuh_certs_tool }}" chmod +x "wazuh-docker/${DEPLOYMENT}/wazuh-certs-tool.sh" echo "Downloaded OK" @@ -732,11 +737,10 @@ jobs: - name: Upload Docker logs if: failure() || steps.run_tests.outcome == 'failure' - uses: actions/upload-artifact@v4 - with: - name: docker-logs-${{ matrix.deployment_type }}-${{ github.run_id }} - path: docker-logs-*.txt - retention-days: 7 + run: | + echo "Uploading Docker logs artifact..." + zip "${{ env.LOGS_ARTIFACT_ZIP_FILE }}" docker-logs-*.txt + aws s3 cp "${{ env.LOGS_ARTIFACT_ZIP_FILE }}" "s3://${{ secrets.CI_DEV_INTERNAL_S3_BUCKET }}/wazuh-docker/5_check_integration_tools/${{ github.run_id }}/${{ env.LOGS_ARTIFACT_ZIP_FILE }}" # ----------------------------------------------------------------------- # Reporting @@ -810,11 +814,16 @@ jobs: - name: Upload test results if: always() - uses: actions/upload-artifact@v4 - with: - name: test-results-docker-${{ matrix.deployment_type }}-${{ github.run_id }} - path: test-results-docker-${{ matrix.deployment_type }}.github - retention-days: 7 + env: + S3_ARTIFACTS_PATH: s3://${{ secrets.CI_DEV_INTERNAL_S3_BUCKET }}/wazuh-docker/5_check_integration_tools/${{ github.run_id }} + LOCAL_RESULTS_PATH: test-results-docker-${{ matrix.deployment_type }}.github + run: | + if [ -f "${LOCAL_RESULTS_PATH}" ]; then + echo "Uploading test results to S3..." + aws s3 cp "${LOCAL_RESULTS_PATH}" "${S3_ARTIFACTS_PATH}/test-results-docker-${{ matrix.deployment_type }}/" + else + echo "::warning::No test results file found - skipping upload (an earlier step likely failed before test_runner produced output)." + fi # ----------------------------------------------------------------------- # Cleanup: always stop stack and deallocate VM diff --git a/.github/workflows/5_pr_check.yml b/.github/workflows/5_pr_check.yml deleted file mode 100644 index 6bc408d9..00000000 --- a/.github/workflows/5_pr_check.yml +++ /dev/null @@ -1,664 +0,0 @@ -name: (5.x) Docker PR check -permissions: - contents: read - id-token: write -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - branches: - - 5.* - - main - paths: - - 'build-docker-images/**' - - 'multi-node/**' - - 'single-node/**' - - 'wazuh-agent/**' - - '.github/**' - workflow_dispatch: - inputs: - docker_reference: - description: 'Branch or tag to build from' - required: true - type: string - -jobs: - - prepare-variables: - if: ${{ !github.event.pull_request.draft }} - runs-on: codebuild-github-actions-codebuild-runner-devops-amd-${{ github.run_id }}-${{ github.run_attempt }} - outputs: - WAZUH_VERSION: ${{ steps.dotenv.outputs.WAZUH_VERSION }} - WAZUH_IMAGE_VERSION: ${{ steps.dotenv.outputs.WAZUH_IMAGE_VERSION }} - WAZUH_REGISTRY: ${{ vars.IMAGE_REGISTRY_DEV }} - IMAGE_TAG: ${{ steps.dotenv.outputs.IMAGE_TAG }} - WAZUH_MINOR_VERSION: ${{ steps.dotenv.outputs.WAZUH_MINOR_VERSION }} - steps: - - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Export .env variables - id: dotenv - shell: bash - run: | - if [ ! -f .env ]; then echo "::error::.env missing"; exit 1; fi - grep -v '^#' .env | grep -v '^\s*$' >> "$GITHUB_OUTPUT" - FULL_VERSION=$(grep "^WAZUH_VERSION=" .env | cut -d'=' -f2) - MINOR_VERSION=$(echo "$FULL_VERSION" | cut -d'.' -f1,2) - echo "WAZUH_MINOR_VERSION=$MINOR_VERSION" >> "$GITHUB_OUTPUT" - - - build-images: - needs: prepare-variables - uses: ./.github/workflows/5_build_and_push_images.yml - secrets: inherit - with: - image_tag: ${{ needs.prepare-variables.outputs.WAZUH_IMAGE_VERSION }} - docker_reference: ${{ github.head_ref || inputs.docker_reference }} - wazuh_automation_reference: '5.0.0' - commit_list: '["latest", "latest", "latest", "latest"]' - assistant_revision: 'latest' - id: ${{ github.run_id }} - dev: true - - Execute-Goss-tests: - needs: [prepare-variables, build-images] - runs-on: codebuild-github-actions-codebuild-runner-devops-amd-${{ github.run_id }}-${{ github.run_attempt }} - env: - WAZUH_IMAGE_VERSION: ${{ needs.prepare-variables.outputs.WAZUH_IMAGE_VERSION }} - WAZUH_REGISTRY: ${{ needs.prepare-variables.outputs.WAZUH_REGISTRY }} - steps: - - - name: Check out code - uses: actions/checkout@v4 - - - name: Install Goss - uses: e1himself/goss-installation-action@v1.0.3 - with: - version: 'v0.4.4' - - - name: Configure aws credentials - 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 - uses: aws-actions/amazon-ecr-login@v2 - - - name: Execute Goss tests (wazuh-manager) - run: dgoss run ${{ env.WAZUH_REGISTRY }}/wazuh/wazuh-manager:${{ env.WAZUH_IMAGE_VERSION }}-latest - env: - GOSS_SLEEP: 30 - GOSS_FILE: .github/.goss.yaml - - check-single-node: - name: Check single node on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: ["codebuild-github-actions-codebuild-runner-devops-amd-${{ github.run_id }}-${{ github.run_attempt }}", "codebuild-github-actions-codebuild-runner-devops-arm-${{ github.run_id }}-${{ github.run_attempt }}"] - fail-fast: false - needs: [prepare-variables, Execute-Goss-tests] - env: - WAZUH_IMAGE_VERSION: ${{ needs.prepare-variables.outputs.WAZUH_IMAGE_VERSION }} - WAZUH_MINOR_VERSION: ${{ needs.prepare-variables.outputs.WAZUH_MINOR_VERSION }} - WAZUH_REGISTRY: ${{ needs.prepare-variables.outputs.WAZUH_REGISTRY }} - INDEXER_USERNAME: admin - INDEXER_PASSWORD: admin - MANAGER_NODES: "manager" - API_USERNAME: wazuh-wui - API_PASSWORD: wazuh-wui - steps: - - - name: Check out code - uses: actions/checkout@v4 - - - name: Configure aws credentials - 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 - uses: aws-actions/amazon-ecr-login@v2 - - - name: Download artifact_urls.yaml - uses: actions/download-artifact@v4 - with: - name: presigned-artifact-urls-${{ github.run_id }} - path: ./single-node/ - - - name: Log in to Docker Hub - uses: docker/login-action@v4 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Add environment variables into GITHUB_ENV - run: | - # Export variables to the environment - awk -F':' '!/^#/ && NF>1 {name=$1; val=substr($0,length(name)+3); gsub(/[-.]/,"_",name); print name "=" val}' ${{ vars.ARTIFACT_URL_FILE_NAME }} >> "$GITHUB_ENV" - working-directory: ./single-node/ - - - name: Create single node certficates - run: | - curl --output ./wazuh-certs-tool.sh "${{ env.wazuh_certs_tool }}" - cat > config.yml </$(ip addr show docker0 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1)/g" wazuh-agent/docker-compose.yml - - - name: Edit Wazuh agent docker-compose file - if: ${{ always() && steps.start_single_node_stack.outcome == 'success' }} - shell: bash - env: - WAZUH_REGISTRY: ${{ env.WAZUH_REGISTRY }} - run: | - TARGET_FILE="wazuh-agent/docker-compose.yml" - if [ -f "$TARGET_FILE" ]; then - echo "Updating registry in $TARGET_FILE to: ${{ env.WAZUH_REGISTRY }}" - sed -i "s|wazuh/wazuh-|${{ env.WAZUH_REGISTRY }}/wazuh/wazuh-|g" "$TARGET_FILE" - sed -i "s/\(.*wazuh\/wazuh-.*:\)${{ env.WAZUH_IMAGE_VERSION }}/\1${{ env.WAZUH_IMAGE_VERSION }}-latest/g" "$TARGET_FILE" - else - echo "File $TARGET_FILE not found" - exit 1 - fi - - - name: Start Wazuh agent - if: ${{ always() && steps.start_single_node_stack.outcome == 'success' }} - run: docker compose up -d - working-directory: ./wazuh-agent - - - name: Check Wazuh agent enrollment - if: ${{ always() && steps.start_single_node_stack.outcome == 'success' }} - run: | - enrolled=false - for i in {1..5}; do - TOKEN=$(curl -s -u ${{ env.API_USERNAME }}:${{ env.API_PASSWORD }} -k -X POST "https://127.0.0.1:55000/security/user/authenticate?raw=true") - agents="`curl -k -s -X GET "https://127.0.0.1:55000/agents?pretty=true" -H "Authorization: Bearer ${TOKEN}" | jq -r .data.affected_items | grep active | wc -l`" - if [[ $agents -gt 0 ]]; then - echo "Wazuh agents: ${agents}" - echo "OK" - enrolled=true - break - else - curl -k -s -X GET "https://127.0.0.1:55000/agents?pretty=true" -H "Authorization: Bearer ${TOKEN}" - echo "Wazuh agents: ${agents}. Retrying in 10s" - [ $i -lt 5 ] && sleep 10 - fi - done - if [[ "$enrolled" != "true" ]]; then - echo "Error: Wazuh agent enrollment did not reach expected active agents threshold" - exit 1 - fi - - - name: Check errors in wazuh-manager.log for Wazuh manager - if: ${{ always() && steps.start_single_node_stack.outcome == 'success' }} - run: ./.github/single-node-log-check.sh - - - name: Check documents into wazuh-states index - if: ${{ always() && steps.start_single_node_stack.outcome == 'success' }} - run: | - for i in {1..20}; do - echo "Checking documents in wazuh-states (Attempt $i/20)..." - RESPONSE=$(curl -XGET "https://127.0.0.1:9200/wazuh-states*/_count" -u ${{ env.INDEXER_USERNAME }}:${{ env.INDEXER_PASSWORD }} -k -s || echo "{}") - DOCS=$(echo "$RESPONSE" | jq -r '.count // 0') - if [[ "$DOCS" -gt 0 ]]; then - echo "wazuh-states index has documents: ${DOCS}" - exit 0 - fi - echo "The index is empty or does not exist yet (Count: $DOCS). Waiting 60s" - [ $i -lt 20 ] && sleep 60 - done - echo "Error: No documents found in wazuh-states after 20 attempts." - echo "Last response: $RESPONSE" - exit 1 - - - name: Docker logs - if: always() - continue-on-error: true - run: | - INDEXER_CONTAINERS=$(docker ps --format '{{.Names}}') - for CONTAINER_NAME in $INDEXER_CONTAINERS; do - echo "" - echo "=========================================================" - echo "Container logs for $CONTAINER_NAME" - echo "=========================================================" - docker logs "$CONTAINER_NAME" - echo "---------------------------------------------------------" - done - working-directory: ./single-node - - check-multi-node: - name: Check multi node on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: ["codebuild-github-actions-codebuild-runner-devops-amd-${{ github.run_id }}-${{ github.run_attempt }}", "codebuild-github-actions-codebuild-runner-devops-arm-${{ github.run_id }}-${{ github.run_attempt }}"] - fail-fast: false - needs: [prepare-variables, Execute-Goss-tests] - env: - WAZUH_IMAGE_VERSION: ${{ needs.prepare-variables.outputs.WAZUH_IMAGE_VERSION }} - WAZUH_MINOR_VERSION: ${{ needs.prepare-variables.outputs.WAZUH_MINOR_VERSION }} - WAZUH_REGISTRY: ${{ needs.prepare-variables.outputs.WAZUH_REGISTRY }} - INDEXER_USERNAME: admin - INDEXER_PASSWORD: admin - MANAGER_NODES: "master,worker01" - API_USERNAME: wazuh-wui - API_PASSWORD: wazuh-wui - steps: - - - name: Check out code - uses: actions/checkout@v4 - - - name: Configure aws credentials - 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 - uses: aws-actions/amazon-ecr-login@v2 - - - name: Download artifact_urls.yaml - uses: actions/download-artifact@v4 - with: - name: presigned-artifact-urls-${{ github.run_id }} - path: ./multi-node/ - - - name: Log in to Docker Hub - uses: docker/login-action@v4 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Add environment variables into GITHUB_ENV - run: | - # Export variables to the environment - awk -F':' '!/^#/ && NF>1 {name=$1; val=substr($0,length(name)+3); gsub(/[-.]/,"_",name); print name "=" val}' ${{ vars.ARTIFACT_URL_FILE_NAME }} >> "$GITHUB_ENV" - working-directory: ./multi-node/ - - - name: Create multi node certficates - run: | - curl --output ./wazuh-certs-tool.sh "${{ env.wazuh_certs_tool }}" - cat > config.yml </$(ip addr show docker0 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1)/g" wazuh-agent/docker-compose.yml - - - name: Edit Wazuh agent docker-compose file - if: ${{ always() && steps.start_multi_node_stack.outcome == 'success' }} - shell: bash - env: - WAZUH_REGISTRY: ${{ env.WAZUH_REGISTRY }} - run: | - TARGET_FILE="wazuh-agent/docker-compose.yml" - if [ -f "$TARGET_FILE" ]; then - echo "Updating registry in $TARGET_FILE to: ${{ env.WAZUH_REGISTRY }}" - sed -i "s|wazuh/wazuh-|${{ env.WAZUH_REGISTRY }}/wazuh/wazuh-|g" "$TARGET_FILE" - sed -i "s/\(.*wazuh\/wazuh-.*:\)${{ env.WAZUH_IMAGE_VERSION }}/\1${{ env.WAZUH_IMAGE_VERSION }}-latest/g" "$TARGET_FILE" - else - echo "File $TARGET_FILE not found" - exit 1 - fi - - - name: Start Wazuh agent - if: ${{ always() && steps.start_multi_node_stack.outcome == 'success' }} - run: docker compose -f wazuh-agent/docker-compose.yml up -d - - - name: Check Wazuh agent enrollment - if: ${{ always() && steps.start_multi_node_stack.outcome == 'success' }} - run: | - enrolled=false - for i in {1..5}; do - TOKEN=$(curl -s -u ${{ env.API_USERNAME }}:${{ env.API_PASSWORD }} -k -X POST "https://127.0.0.1:55000/security/user/authenticate?raw=true") - agents="`curl -k -s -X GET "https://127.0.0.1:55000/agents?pretty=true" -H "Authorization: Bearer ${TOKEN}" | jq -r .data.affected_items | grep active | wc -l`" - if [[ $agents -gt 0 ]]; then - echo "Wazuh agents: ${agents}" - echo "OK" - enrolled=true - break - else - curl -k -s -X GET "https://127.0.0.1:55000/agents?pretty=true" -H "Authorization: Bearer ${TOKEN}" - echo "Wazuh agents: ${agents}. Retrying in 10s" - [ $i -lt 5 ] && sleep 10 - fi - done - if [[ "$enrolled" != "true" ]]; then - echo "Error: Wazuh agent enrollment did not reach expected active agents threshold" - exit 1 - fi - - - name: Check errors in wazuh-manager.log for Wazuh manager - if: ${{ always() && steps.start_multi_node_stack.outcome == 'success' }} - run: ./.github/multi-node-log-check.sh - - - name: Check documents into wazuh-states index - if: ${{ always() && steps.start_multi_node_stack.outcome == 'success' }} - run: | - for i in {1..20}; do - echo "Checking documents in wazuh-states (Attempt $i/20)..." - RESPONSE=$(curl -XGET "https://127.0.0.1:9200/wazuh-states*/_count" -u ${{ env.INDEXER_USERNAME }}:${{ env.INDEXER_PASSWORD }} -k -s || echo "{}") - DOCS=$(echo "$RESPONSE" | jq -r '.count // 0') - if [[ "$DOCS" -gt 0 ]]; then - echo "wazuh-states index has documents: ${DOCS}" - exit 0 - fi - echo "The index is empty or does not exist yet (Count: $DOCS). Waiting 60s" - [ $i -lt 20 ] && sleep 60 - done - echo "Error: No documents found in wazuh-states after 20 attempts." - echo "Last response: $RESPONSE" - exit 1 - - - name: Docker logs - if: always() - continue-on-error: true - run: | - INDEXER_CONTAINERS=$(docker ps --format '{{.Names}}') - for CONTAINER_NAME in $INDEXER_CONTAINERS; do - echo "" - echo "=========================================================" - echo "Container logs for $CONTAINER_NAME" - echo "=========================================================" - docker logs "$CONTAINER_NAME" - echo "---------------------------------------------------------" - done - working-directory: ./multi-node diff --git a/CHANGELOG.md b/CHANGELOG.md index 5db28cfc..067454ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,1094 +1,77 @@ # Change Log All notable changes to this project will be documented in this file. -## [5.0.0] +## [v5.0.0] ### Added -- Implement the wazuh-docker integration testing module ([#2428](https://github.com/wazuh/wazuh-docker/pull/2428)) -- Add revert option into bumper workflow ([#2330](https://github.com/wazuh/wazuh-docker/pull/2330)) -- Add checks for artifact_urls.yaml download ([#2315](https://github.com/wazuh/wazuh-docker/pull/2315)) -- Add set_as_main option ([#2293](https://github.com/wazuh/wazuh-docker/pull/2293)) +- Added bump-issue-link support for Revert Stage Bump. ([#2505](https://github.com/wazuh/wazuh-docker/pull/2505)) +- Add integration test module docs ([#2491](https://github.com/wazuh/wazuh-docker/pull/2491)) +- Implement the wazuh-docker integration testing module ([#2188](https://github.com/wazuh/wazuh-docker/issues/2188)) +- Support Revert bump functionality in wazuh-docker ([#2320](https://github.com/wazuh/wazuh-docker/issues/2320)) +- Docker and AMI workflows failing during stage release (v5.0.0-beta1) ([#35457](https://github.com/wazuh/wazuh/issues/35457)) +- Add `--set-as-main` flag support to repository bumper — `wazuh-docker` ([#2276](https://github.com/wazuh/wazuh-docker/issues/2276)) ### Changed -- Change runners on repository workflows 5.x ([#2471](https://github.com/wazuh/wazuh-docker/pull/2471)) -- PR revamp modifications 5.x ([#2446](https://github.com/wazuh/wazuh-docker/pull/2446)) -- Forbid pr_check workflow execution in draft PRs ([#2399](https://github.com/wazuh/wazuh-docker/pull/2399)) -- Unification of user UID and GID ([#2393](https://github.com/wazuh/wazuh-docker/pull/2393)) -- Add Wazuh indexer engine start on entrypoint ([#2390](https://github.com/wazuh/wazuh-docker/pull/2390)) -- Image build process update ([#2358](https://github.com/wazuh/wazuh-docker/pull/2358)) -- Add new path on artifact_urls file ([#2344](https://github.com/wazuh/wazuh-docker/pull/2344)) -- Presigned URLs generation enhancement ([#2346](https://github.com/wazuh/wazuh-docker/pull/2346)) -- Adapt bumper workflows to change main branch ([#2294](https://github.com/wazuh/wazuh-docker/pull/2294)) -- Delete all API user and password references and Wazuh agent references ([#2289](https://github.com/wazuh/wazuh-docker/pull/2289)) -- Create certificate directory with default user and group ([#2287](https://github.com/wazuh/wazuh-docker/pull/2287)) -- Standarize Artifact URL keys ([#2286](https://github.com/wazuh/wazuh-docker/pull/2286)) -- Certificates configuration script. ([#2285](https://github.com/wazuh/wazuh-docker/pull/2285)) -- Modify artifact URLs file name. ([#2266](https://github.com/wazuh/wazuh-docker/pull/2266)) -- Use URL signing script to generate presigned internal package URLs. ([#2259](https://github.com/wazuh/wazuh-docker/pull/2259)) -- Updated wazuh-docker documentation config and tooling versions to meet new standards. ([#2264](https://github.com/wazuh/wazuh-docker/pull/2264)) -- Update certificate configuration to use separate IP and DNS fields ([#2253](https://github.com/wazuh/wazuh-docker/pull/2253)) -- Modify Healthchecks ([#2252](https://github.com/wazuh/wazuh-docker/pull/2252)) -- Add deployment healthchecks ([#2251](https://github.com/wazuh/wazuh-docker/pull/2251)) -- Update artifact generation jobs to use wz-linux dedicated runner group ([#2242](https://github.com/wazuh/wazuh-docker/pull/2242)) -- Fix set_correct_permOwner function ([#2238](https://github.com/wazuh/wazuh-docker/pull/2238)) -- Add workflow dispatch option ([#2231](https://github.com/wazuh/wazuh-docker/pull/2231)) -- Change Wazuh manager certificates names ([#2223](https://github.com/wazuh/wazuh-docker/pull/2223)) -- Move index documents test ([#2221](https://github.com/wazuh/wazuh-docker/pull/2221)) -- Separate Agent/Manager - Docker - Adapt image build process ([#2220](https://github.com/wazuh/wazuh-docker/pull/2220)) -- Remove revision input ([#2217](https://github.com/wazuh/wazuh-docker/pull/2217)) -- Improve build script and workflow component revisions handling ([#2212](https://github.com/wazuh/wazuh-docker/pull/2212)) -- Add missing documentation sections in the repository ([#2215](https://github.com/wazuh/wazuh-docker/pull/2215)) -- Add Wazuh version and revision into wazuh-certs-tool and config file ([#2195](https://github.com/wazuh/wazuh-docker/pull/2195)) -- Improve S3 artifact URLs handling ([#2183](https://github.com/wazuh/wazuh-docker/pull/2183)) -- Allow building separate targets ([#2177](https://github.com/wazuh/wazuh-docker/pull/2177)) -- Add developement option when tag name is only version without stage ([#2179](https://github.com/wazuh/wazuh-docker/pull/2179)) -- Add IMAGE_TAG stage reference ([#2178](https://github.com/wazuh/wazuh-docker/pull/2178)) -- Delete Wazuh agent configuration files ([#2173](https://github.com/wazuh/wazuh-docker/pull/2173)) -- Modify run_as parameter value - main ([#2158](https://github.com/wazuh/wazuh-docker/pull/2158)) +- Change artifact upload and download ([#2502](https://github.com/wazuh/wazuh-docker/issues/2502)) +- Change runners on repository workflows 5.x ([#2471](https://github.com/wazuh/wazuh-docker/issues/2471)) +- PR revamp modifications 5.x ([#2446](https://github.com/wazuh/wazuh-docker/issues/2446)) +- Forbid pr_check workflow execution in draft PRs ([#2399](https://github.com/wazuh/wazuh-docker/issues/2399)) +- Unification of user UID and GID ([#2375](https://github.com/wazuh/wazuh-docker/issues/2375)) +- Wazuh indexer engine requirements ([#2392](https://github.com/wazuh/wazuh-docker/issues/2392)) +- Image build process update ([#2356](https://github.com/wazuh/wazuh-docker/issues/2356)) +- Add new path on artifact_urls file ([#2344](https://github.com/wazuh/wazuh-docker/issues/2344)) +- Unable to generate single component in `Procedure_push_docker_images` ([#2341](https://github.com/wazuh/wazuh-docker/issues/2341)) +- Adapt bumper workflows to change main branch ([#2294](https://github.com/wazuh/wazuh-docker/issues/2294)) +- Ensure default values are used for variables and passwords ([#2288](https://github.com/wazuh/wazuh-docker/issues/2288)) +- Docker - Ensure correct Wazuh manager certificates ownership ([#2283](https://github.com/wazuh/wazuh-docker/issues/2283)) +- Docker - Standarize Artifact URL keys ([#2278](https://github.com/wazuh/wazuh-docker/issues/2278)) +- Modify artifact URLs file name. ([#2266](https://github.com/wazuh/wazuh-docker/issues/2266)) +- URL presigned file - Update the Wazuh Docker image creation workflow ([#2218](https://github.com/wazuh/wazuh-docker/issues/2218)) +- Updated wazuh-docker documentation config and tooling versions to meet new standards. ([#2264](https://github.com/wazuh/wazuh-docker/issues/2264)) +- Align cert generation steps with current cert-tool ip validation ([#2250](https://github.com/wazuh/wazuh-docker/issues/2250)) +- Modify Healthchecks ([#2252](https://github.com/wazuh/wazuh-docker/issues/2252)) +- Add deployment healthchecks ([#2251](https://github.com/wazuh/wazuh-docker/issues/2251)) +- Update artifact generation jobs to use wz-linux dedicated runner group ([#2242](https://github.com/wazuh/wazuh-docker/issues/2242)) +- Error during Wazuh manager entrypoint ([#2237](https://github.com/wazuh/wazuh-docker/issues/2237)) +- Adapt PR test for workflow_dispatch option ([#2230](https://github.com/wazuh/wazuh-docker/issues/2230)) +- Wazuh Manager/agent Separation - Breaking changes summary ([#2227](https://github.com/wazuh/wazuh-docker/issues/2227)) +- Errors in wazuh-docker PR Test ([#2222](https://github.com/wazuh/wazuh-docker/issues/2222)) +- Development - Separate Agent/Manager - Docker - Adapt image build process ([#2206](https://github.com/wazuh/wazuh-docker/issues/2206)) +- Remove revision input ([#2217](https://github.com/wazuh/wazuh-docker/issues/2217)) +- Build images script improvement ([#2196](https://github.com/wazuh/wazuh-docker/issues/2196)) +- Missing documentation in the wazuh-docker repository ([#2197](https://github.com/wazuh/wazuh-docker/issues/2197)) +- Add Wazuh version and revision into wazuh-certs-tool and config file ([#2195](https://github.com/wazuh/wazuh-docker/issues/2195)) +- Improve S3 artifact URLs handling ([#2172](https://github.com/wazuh/wazuh-docker/issues/2172)) +- Allow building separate targets ([#2164](https://github.com/wazuh/wazuh-docker/issues/2164)) +- Add developement option when tag name is only version without stage ([#2179](https://github.com/wazuh/wazuh-docker/issues/2179)) +- Add IMAGE_TAG stage reference ([#2178](https://github.com/wazuh/wazuh-docker/issues/2178)) +- Remove Wazuh agent configuration template ([#2171](https://github.com/wazuh/wazuh-docker/issues/2171)) +- Docker - Ensure `run_as` set to true for every deployment alternative ([#2156](https://github.com/wazuh/wazuh-docker/issues/2156)) - Change macOS and Windows deployment documentation ([#2150](https://github.com/wazuh/wazuh-docker/issues/2150)) - Modify docker build image process ([#2131](https://github.com/wazuh/wazuh-docker/issues/2131)) - 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)) -- 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 - -- Fix WF docker images vulnerabilities ([#2444](https://github.com/wazuh/wazuh-docker/pull/2444)) -- Adapt Wazuh manager healthcheck with local binaries ([#2422](https://github.com/wazuh/wazuh-docker/pull/2422)) -- Delete setcap command on deprecated file ([#2345](https://github.com/wazuh/wazuh-docker/pull/2345)) -- Modify the choice of a correct tag ([#2313](https://github.com/wazuh/wazuh-docker/pull/2313)) -- Artifact URL download fix ([#2306](https://github.com/wazuh/wazuh-docker/pull/2306)) -- Change API query method. ([#2275](https://github.com/wazuh/wazuh-docker/pull/2275)) -- Change Wazuh manager Healthcheck. ([#2272](https://github.com/wazuh/wazuh-docker/pull/2272)) -- Delete WAZUH_AGENT_GROUP variable. ([#2263](https://github.com/wazuh/wazuh-docker/pull/2263)) -- Delete etc/lists references ([#2129](https://github.com/wazuh/wazuh-docker/pull/2129)) - -### Deleted - -- None - -## [4.14.7] - -### Added - -- None - -### Changed - -- PR revamp modifications 4.x ([#2445](https://github.com/wazuh/wazuh-docker/pull/2445)) - -### Fixed - -- None - -### Deleted - -- None - -## [4.14.6] - -### Added - -- None - -### Changed - -- Change runners on repository workflows ([#2470](https://github.com/wazuh/wazuh-docker/pull/2470)) - -### Fixed - -- Changed update_user function from wazuh.security to wazuh.rbac.orm module ([#2406](https://github.com/wazuh/wazuh-docker/pull/2406)) -- GH issue notification fix ([#2312](https://github.com/wazuh/wazuh-docker/pull/2312)) - -### Deleted - -- None - -## [4.14.5] - -### Added - -- None - -### Changed - -- Updated GitHub actions version for wazuh-docker workflows. ([#2290](https://github.com/wazuh/wazuh-docker/pull/2290)) - -### Fixed - -- Fix WAZUH_AGENT_GROUP variable ([#2262](https://github.com/wazuh/wazuh-docker/pull/2262)) -- Fix bumper script early exit ([#2261](https://github.com/wazuh/wazuh-docker/pull/2261)) - -### Deleted - -- None - -## [4.14.4] - -### Added - -- None - -### Changed - -- Backport from 5.0.0: Allow building separate targets #2177 ([#2184](https://github.com/wazuh/wazuh-docker/pull/2184)) - -### Fixed - -- INDEXER_URL substitution fix ([#2226](https://github.com/wazuh/wazuh-docker/pull/2226)) - -### Deleted - -- None - -## [4.14.3] - -### Added - -- Update indexer-certs-gen README.md for clarity on procedure ([#2132](https://github.com/wazuh/wazuh-docker/pull/2132)) -- Update certs generator image version to 0.0.4 ([#2130](https://github.com/wazuh/wazuh-docker/pull/2130)) - -### Changed - -- Add IMAGE_TAG stage reference ([#2176](https://github.com/wazuh/wazuh-docker/pull/2176)) -- Modify run_as parameter value - v4.14.3 ([#2157](https://github.com/wazuh/wazuh-docker/pull/2157)) -- Adapt Wazuh Agent Dockerfile for multi-architecture support ([#2149](https://github.com/wazuh/wazuh-docker/pull/2149)) -- Agent group parameter added ([#2127](https://github.com/wazuh/wazuh-docker/pull/2127)) -- Adapt to multi architecture build ([#2120](https://github.com/wazuh/wazuh-docker/pull/2120)) - -### Fixed - -- None - -### Deleted - -- None - -## [4.14.2] - -### Added - -- Code improvements for 4.14.2 ([#2090](https://github.com/wazuh/wazuh-docker/pull/2090)) -- Artifactory vulnerabilities notification ([#2078](https://github.com/wazuh/wazuh-docker/pull/2078)) - -### Changed - -- Filebeat module version update ([#2115](https://github.com/wazuh/wazuh-docker/pull/2115)) -- The location of the remove command for the wazuh-authd certificates has been changed. ([#2094](https://github.com/wazuh/wazuh-docker/pull/2094)) -- Removed sslmanager key from the docker manager image to 4.14.2. ([#2093](https://github.com/wazuh/wazuh-docker/pull/2093)) - -### Fixed - -- Add missing SSL ciphers and protocols and remove outdated ports parameters from opensearch.yml template ([#2104](https://github.com/wazuh/wazuh-docker/pull/2104)) - -### Deleted - -- None - -## [4.14.1] - -### Added - -- None - -### Changed - -- Wazuh cert tool generator improvements ([#2027](https://github.com/wazuh/wazuh-docker/pull/2027)) - -### Fixed - -- None - -### Deleted - -- None - -## [4.14.0] - -### Added - -- None - -### Changed - -- Change filebeat install method ([#2020](https://github.com/wazuh/wazuh-docker/pull/2020)) -- Remove dashboard chat setting ([#2021](https://github.com/wazuh/wazuh-docker/pull/2021)) -- Rollback data source setting ([#1999](https://github.com/wazuh/wazuh-docker/pull/1999)) -- Dashboard settings added ([#1998](https://github.com/wazuh/wazuh-docker/pull/1998)) -- Add filebeat config file in the PERMANENT_DATA_EXCP list ([#1898](https://github.com/wazuh/wazuh-docker/pull/1898)) -- Change validation of existing certs tool in S3 buckets ([#1880](https://github.com/wazuh/wazuh-docker/pull/1880)) - -### Fixed - -- Change Wazuh indexer directory owner ([#2029](https://github.com/wazuh/wazuh-docker/pull/2029)) -- Double the amount of space consumed in Wazuh Indexer ([#1953](https://github.com/wazuh/wazuh-docker/pull/1953)) -- Fix config directory for opensearch_security plugin work ([#1951](https://github.com/wazuh/wazuh-docker/pull/1951)) -- Update Dockerfile to copy opensearch-security files ([#1928](https://github.com/wazuh/wazuh-docker/pull/1928)) - -### Deleted - -- None - -## [4.13.1] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- None - -### Deleted - -- None - -## [4.13.0] - -### Added - -- Add opensearch_dashboard.yml parameters. ([#1985](https://github.com/wazuh/wazuh-docker/pull/1985)) -- Set right ownership for malicious-ioc files on container start ([#1926](https://github.com/wazuh/wazuh-docker/pull/1926)) -- Delete services statement in wazuh agent deployment. ([#1925](https://github.com/wazuh/wazuh-docker/pull/1925)) -- Add permanent_data exceptions. ([#1890](https://github.com/wazuh/wazuh-docker/pull/1890)) -- Integrate bumper script via GitHub action. ([#1863](https://github.com/wazuh/wazuh-docker/pull/1863)) -- Add missing malicious-ioc ruleset lists ([#1870](https://github.com/wazuh/wazuh-docker/pull/1870)) -- Added repository_bumper script. ([#1781](https://github.com/wazuh/wazuh-docker/pull/1781)) -- Fix Warning message when migrating Docker compose v2 ([#1828](https://github.com/wazuh/wazuh-docker/pull/1828)) -- Add technical documentation ([#1822](https://github.com/wazuh/wazuh-docker/pull/1822)) -- Add wazuh agent test and push ([#1817](https://github.com/wazuh/wazuh-docker/pull/1817)) -- Add Wazuh agent image build and deploy ([#1816](https://github.com/wazuh/wazuh-docker/pull/1816)) - -### Changed - -- Syscollector configuration change ([#1994](https://github.com/wazuh/wazuh-docker/pull/1994)) -- Modify wazuh-keystore use ([#1750](https://github.com/wazuh/wazuh-docker/pull/1750)) \- (wazuh-keystore) - -### Fixed - -- Add wazuh-template.json into permanent data exception ([#1968](https://github.com/wazuh/wazuh-docker/pull/1968)) - -### Deleted - -- Remove default docker reference version from workflow ([#1761](https://github.com/wazuh/wazuh-docker/pull/1761)) -- Remove 'stable' branch ocurrencies ([#1757](https://github.com/wazuh/wazuh-docker/pull/1757)) - -## [4.12.0] - -### Added - -- None - -### Changed - -- Change VERSION file format ([#1728](https://github.com/wazuh/wazuh-docker/pull/1728)) \- (VERSION file) -- Change Ubuntu version used in workflows ([#1662](https://github.com/wazuh/wazuh-docker/pull/1662)) \- (Docker workflows) - -### Fixed - -- Fix permanent data scripts ([#1603](https://github.com/wazuh/wazuh-docker/pull/1603)) - -### Deleted - -- None - -## [4.11.2] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- None - -### Deleted - -- None - -## [4.11.1] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- None - -### Deleted - -- None - -## [4.11.0] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- Change the cleaning disk step ([#1663](https://github.com/wazuh/wazuh-docker/pull/1663)) - -### Deleted - -- None - -## [4.10.5] - -### Added - -- None - -### Changed - -- Change runner name for Codebuild ([#2474](https://github.com/wazuh/wazuh-docker/pull/2474)) -- PR revamp modifications LTS ([#2449](https://github.com/wazuh/wazuh-docker/pull/2449)) - -### Fixed - -- None - -### Deleted - -- None - -## [4.10.4] - -### Added - -- None - -### Changed - -- Removed sslmanager key from the docker manager image. ([#2092](https://github.com/wazuh/wazuh-docker/pull/2092)) -- Backport 4.13.0 changes: Modify wazuh-keystore use ([#2036](https://github.com/wazuh/wazuh-docker/pull/2036)) \- (wazuh-keystore) - -### Fixed - -- Changed update_user function from wazuh.security to wazuh.rbac.orm module ([#2405](https://github.com/wazuh/wazuh-docker/pull/2405)) -- Add wazuh-template.json into permanent data exception ([#1967](https://github.com/wazuh/wazuh-docker/pull/1967)) - -### Deleted - -- None - -## [4.10.3] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- None - -### Deleted - -- None - -## [4.10.2] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- Updated docker/login-action module ([#1837](https://github.com/wazuh/wazuh-docker/pull/1837)) - -### Deleted - -- None - -## [4.10.1] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- None - -### Deleted - -- None - -## [4.10.0] - -### Added - -- Improve the push docker images workflow ([#1551](https://github.com/wazuh/wazuh-docker/pull/1551)) -- Update the Procedure push docker images workflow file ([#1524](https://github.com/wazuh/wazuh-docker/pull/1524)) -- Add the push_docker_images procedure workflow file ([#1518](https://github.com/wazuh/wazuh-docker/pull/1518)) - -### Changed - -- None - -### Fixed - -- Add unset capabilities. ([#1619](https://github.com/wazuh/wazuh-docker/pull/1619)) -- Removed references to module enabling because they are now enabled by default. ([#1416](https://github.com/wazuh/wazuh-docker/pull/1416)) - -### Deleted - -- None - -## [4.9.2] - -### Added - -- Update Wazuh to version [4.9.2](https://github.com/wazuh/wazuh/blob/v4.9.2/CHANGELOG.md#v492) - -## [4.9.1] - -### Added - -- None - -### Changed - -- None - -### Fixed - -- Fix typos into Wazuh manager entrypoint ([#1569](https://github.com/wazuh/wazuh-docker/pull/1569)) - -### Deleted - -- None - -## Wazuh Docker v4.9.0 -### Added - -- Update Wazuh to version [4.9.0](https://github.com/wazuh/wazuh/blob/v4.9.0/CHANGELOG.md#v490) - -## Wazuh Docker v4.8.2 -### Added - -- Update Wazuh to version [4.8.2](https://github.com/wazuh/wazuh/blob/v4.8.2/CHANGELOG.md#v482) - -## Wazuh Docker v4.8.1 -### Added - -- Update Wazuh to version [4.8.1](https://github.com/wazuh/wazuh/blob/v4.8.1/CHANGELOG.md#v481) - -## Wazuh Docker v4.8.0 -### Added - -- Update Wazuh to version [4.8.0](https://github.com/wazuh/wazuh/blob/v4.8.0/CHANGELOG.md#v480) - -## Wazuh Docker v4.7.5 -### Added - -- Update Wazuh to version [4.7.5](https://github.com/wazuh/wazuh/blob/v4.7.5/CHANGELOG.md#v475) - -## Wazuh Docker v4.7.4 -### Added - -- Update Wazuh to version [4.7.4](https://github.com/wazuh/wazuh/blob/v4.7.4/CHANGELOG.md#v474) - -## Wazuh Docker v4.7.3 -### Added - -- Update Wazuh to version [4.7.3](https://github.com/wazuh/wazuh/blob/v4.7.3/CHANGELOG.md#v473) - -## Wazuh Docker v4.7.2 -### Added - -- Update Wazuh to version [4.7.2](https://github.com/wazuh/wazuh/blob/v4.7.2/CHANGELOG.md#v472) - -## Wazuh Docker v4.7.1 -### Added - -- Update Wazuh to version [4.7.1](https://github.com/wazuh/wazuh/blob/v4.7.1/CHANGELOG.md#v471) - -## Wazuh Docker v4.7.0 -### Added - -- Update Wazuh to version [4.7.0](https://github.com/wazuh/wazuh/blob/v4.7.0/CHANGELOG.md#v470) - -## Wazuh Docker v4.6.0 -### Added - -- Update Wazuh to version [4.6.0](https://github.com/wazuh/wazuh/blob/v4.6.0/CHANGELOG.md#v460) - -## Wazuh Docker v4.5.4 -### Added - -- Update Wazuh to version [4.5.4](https://github.com/wazuh/wazuh/blob/v4.5.4/CHANGELOG.md#v454) - -## Wazuh Docker v4.5.3 -### Added - -- Update Wazuh to version [4.5.3](https://github.com/wazuh/wazuh/blob/v4.5.3/CHANGELOG.md#v453) - -## Wazuh Docker v4.5.2 -### Added - -- Update Wazuh to version [4.5.2](https://github.com/wazuh/wazuh/blob/v4.5.2/CHANGELOG.md#v452) - -## Wazuh Docker v4.5.1 -### Added - -- Update Wazuh to version [4.5.1](https://github.com/wazuh/wazuh/blob/v4.5.1/CHANGELOG.md#v451) - -## Wazuh Docker v4.5.0 -### Added - -- Update Wazuh to version [4.5.0](https://github.com/wazuh/wazuh/blob/v4.5.0/CHANGELOG.md#v450) - -## Wazuh Docker v4.4.5 -### Added - -- Update Wazuh to version [4.4.5](https://github.com/wazuh/wazuh/blob/v4.4.5/CHANGELOG.md#v445) - -## Wazuh Docker v4.4.4 -### Added - -- Update Wazuh to version [4.4.4](https://github.com/wazuh/wazuh/blob/v4.4.4/CHANGELOG.md#v444) - -## Wazuh Docker v4.4.3 -### Added - -- Update Wazuh to version [4.4.3](https://github.com/wazuh/wazuh/blob/v4.4.3/CHANGELOG.md#v443) - -## Wazuh Docker v4.4.2 -### Added - -- Update Wazuh to version [4.4.2](https://github.com/wazuh/wazuh/blob/v4.4.2/CHANGELOG.md#v442) - -## Wazuh Docker v4.4.1 -### Added - -- Update Wazuh to version [4.4.1](https://github.com/wazuh/wazuh/blob/v4.4.1/CHANGELOG.md#v441) - -## Wazuh Docker v4.4.0 -### Added - -- Update Wazuh to version [4.4.0](https://github.com/wazuh/wazuh/blob/v4.4.0/CHANGELOG.md#v440) - -## Wazuh Docker v4.3.11 -### Added - -- Update Wazuh to version [4.3.11](https://github.com/wazuh/wazuh/blob/v4.3.11/CHANGELOG.md#v4311) - -## Wazuh Docker v4.3.10 -### Added - -- Update Wazuh to version [4.3.10](https://github.com/wazuh/wazuh/blob/v4.3.10/CHANGELOG.md#v4310) - - -## Wazuh Docker v4.3.9 -### Added - -- Update Wazuh to version [4.3.9](https://github.com/wazuh/wazuh/blob/v4.3.9/CHANGELOG.md#v439) - - -## Wazuh Docker v4.3.8 -### Added - -- Update Wazuh to version [4.3.8](https://github.com/wazuh/wazuh/blob/v4.3.8/CHANGELOG.md#v438) - -## Wazuh Docker v4.3.7 -### Added - -- Update Wazuh to version [4.3.7](https://github.com/wazuh/wazuh/blob/v4.3.7/CHANGELOG.md#v437) - -## Wazuh Docker v4.3.6 -### Added - -- Update Wazuh to version [4.3.6](https://github.com/wazuh/wazuh/blob/v4.3.6/CHANGELOG.md#v436) - -## Wazuh Docker v4.3.5 -### Added - -- Update Wazuh to version [4.3.5](https://github.com/wazuh/wazuh/blob/v4.3.5/CHANGELOG.md#v435) - -## Wazuh Docker v4.3.4 -### Added - -- Update Wazuh to version [4.3.4](https://github.com/wazuh/wazuh/blob/v4.3.4/CHANGELOG.md#v434) - -## Wazuh Docker v4.3.3 -### Added - -- Update Wazuh to version [4.3.3](https://github.com/wazuh/wazuh/blob/v4.3.3/CHANGELOG.md#v433) - -## Wazuh Docker v4.3.2 -### Added - -- Update Wazuh to version [4.3.2](https://github.com/wazuh/wazuh/blob/v4.3.2/CHANGELOG.md#v432) - -## Wazuh Docker v4.3.1 -### Added - -- Update Wazuh to version [4.3.1](https://github.com/wazuh/wazuh/blob/v4.3.1/CHANGELOG.md#v431) - -## Wazuh Docker v4.3.0 -### Added - -- Update Wazuh to version [4.3.0](https://github.com/wazuh/wazuh/blob/v4.3.0/CHANGELOG.md#v430) - -## Wazuh Docker v4.2.7 -### Added - -- Update Wazuh to version [4.2.7](https://github.com/wazuh/wazuh/blob/v4.2.7/CHANGELOG.md#v427) - -## Wazuh Docker v4.2.6 -### Added - -- Update Wazuh to version [4.2.6](https://github.com/wazuh/wazuh/blob/v4.2.6/CHANGELOG.md#v426) - -## Wazuh Docker v4.2.5 -### Added - -- Update Wazuh to version [4.2.5](https://github.com/wazuh/wazuh/blob/v4.2.5/CHANGELOG.md#v425) - -## Wazuh Docker v4.2.4 -### Added - -- Update Wazuh to version [4.2.4](https://github.com/wazuh/wazuh/blob/v4.2.4/CHANGELOG.md#v424) - -## Wazuh Docker v4.2.3 -### Added - -- Update Wazuh to version [4.2.3](https://github.com/wazuh/wazuh/blob/v4.2.3/CHANGELOG.md#v423) - -## Wazuh Docker v4.2.2 -### Added - -- Update Wazuh to version [4.2.2](https://github.com/wazuh/wazuh/blob/v4.2.2/CHANGELOG.md#v422) - -## Wazuh Docker v4.2.1 -### Added - -- Update Wazuh to version [4.2.1](https://github.com/wazuh/wazuh/blob/v4.2.1/CHANGELOG.md#v421) - -## Wazuh Docker v4.2.0 -### Added - -- Update Wazuh to version [4.2.0](https://github.com/wazuh/wazuh/blob/v4.2.0/CHANGELOG.md#v420) - -## Wazuh Docker v4.1.5 -### Added - -- Update Wazuh to version [4.1.5](https://github.com/wazuh/wazuh/blob/v4.1.5/CHANGELOG.md#v415) -- Update ODFE compatibility to version 1.13.2 - -## Wazuh Docker v4.1.4 -### Added - -- Update Wazuh to version [4.1.4](https://github.com/wazuh/wazuh/blob/v4.1.4/CHANGELOG.md#v414) - -## Wazuh Docker v4.1.3 -### Added - -- Update Wazuh to version [4.1.3](https://github.com/wazuh/wazuh/blob/v4.1.3/CHANGELOG.md#v413) - -## Wazuh Docker v4.1.2 -### Added - -- Update Wazuh to version [4.1.2](https://github.com/wazuh/wazuh/blob/v4.1.2/CHANGELOG.md#v412) - -## Wazuh Docker v4.1.1 -### Added - -- Update Wazuh to version [4.1.1](https://github.com/wazuh/wazuh/blob/v4.1.1/CHANGELOG.md#v411) - -## Wazuh Docker v4.1.0 -### Added - -- Update Wazuh to version [4.1.0](https://github.com/wazuh/wazuh/blob/v4.1.0/CHANGELOG.md#v410) -- Update ODFE compatibility to version 1.12.0 -- Add support for Elasticsearch (xpack) images once again (7.10.2) ([@xr09](https://github.com/xr09)) [#409](https://github.com/wazuh/wazuh-docker/pull/409) -- Re-enable entrypoint scripts ([@xr09](https://github.com/xr09)) [#435](https://github.com/wazuh/wazuh-docker/pull/435) -- Add Goss binary for healthchecks ([@xr09](https://github.com/xr09)) [$441](https://github.com/wazuh/wazuh-docker/pull/441) -- Update s6-overlay to latest version - -## Wazuh Docker v4.0.4_1.11.0 - -### Added - -- Update to Wazuh version [4.0.4](https://github.com/wazuh/wazuh/blob/v4.0.4/CHANGELOG.md#v404) - - -## Wazuh Docker v4.0.3_1.11.0 - -### Added - -- Update to Wazuh version 4.0.3 - - -## Wazuh Docker v4.0.2_1.11.0 - -### Added - -- Update to Wazuh version 4.0.2 - -## Wazuh Docker v4.0.1_1.11.0 - -### Added - -- Update to Wazuh version 4.0.1 -- Opendistro 1.11.0 compatiblity -- Re-enabled dumping ossec.log to stdout - -## Wazuh Docker v4.0.0_1.10.1 - -### Added - -- Update to Wazuh version 4.0.0 -- Updating Wazuh cluster key dynamically ([@1stOfHisGame](https://github.com/1stOfHisGame)) [#393](https://github.com/wazuh/wazuh-docker/pull/393) -- Switched to CentOS 7 for base image ([@xr09](https://github.com/xr09)) [#259](https://github.com/wazuh/wazuh-docker/issues/259) -- Using s6-overlay for process management ([@xr09](https://github.com/xr09)) [#274](https://github.com/wazuh/wazuh-docker/issues/274) -- Allow the creation of custom API users ([@xr09](https://github.com/xr09)) [#395](https://github.com/wazuh/wazuh-docker/issues/395) -- OpenDistro support ([@xr09](https://github.com/xr09)) [#373](https://github.com/wazuh/wazuh-docker/pull/373) - - -### Changed - -- Removal of Elastic images - - -## Wazuh Docker v3.13.2_7.9.1 - -### Added - -- Update to Wazuh version 3.13.2_7.9.1 -- Add CLUSTER_NETWORK_HOST environment variable ([@jfut](https://github.com/jfut)) [#372](https://github.com/wazuh/wazuh-docker/pull/372) - -### Fixed - -- Too many redirects when running on port 80 ([@chowmean](https://github.com/chowmean)) [#377](https://github.com/wazuh/wazuh-docker/pull/377) -- Move Filebeat installation to build stage ([@xr09](https://github.com/xr09)) [#378](https://github.com/wazuh/wazuh-docker/pull/378) - - -## Wazuh Docker v3.13.1_7.8.0 - -### Added - -- Update to Wazuh version 3.13.1_7.8.0 - - -## Wazuh Docker v3.13.0_7.7.1 - -### Added - -- Update to Wazuh version 3.13.3_7.7.1 - -### Fixed - -- Save agentless state ([@xr09](https://github.com/xr09)) [#350](https://github.com/wazuh/wazuh-docker/pull/350) -- Use HTTP credentials for service check when required ([@xr09](https://github.com/xr09)) [#356](https://github.com/wazuh/wazuh-docker/pull/356) - -## Wazuh Docker v3.12.3_7.6.2 - -### Added - -- Update to Wazuh version 3.12.3_7.6.2 - - -## Wazuh Docker v3.12.2_7.6.2 - -### Added - -- Update to Wazuh version 3.12.2_7.6.2 - -## Wazuh Docker v3.12.1_7.6.2 - -### Added - -- Update to Wazuh version 3.12.1_7.6.2 - -### Fixed - -- Agent timestamp not being properly saved ([@xr09](https://github.com/xr09)) [#323](https://github.com/wazuh/wazuh-docker/pull/323) - - -## Wazuh Docker v3.12.0_7.6.1 - -### Added - -- Update to Wazuh version 3.12.0_7.6.1 - - -## Wazuh Docker v3.11.4_7.6.1 - -### Added - -- Update to Wazuh version 3.11.4_7.6.1 - -- Enable HTTP v2 on nginx ([@xr09](https://github.com/xr09)) [#308](https://github.com/wazuh/wazuh-docker/pull/308) - -### Fixed - -- Updated NGINX config syntax ([@xr09](https://github.com/xr09)) [#303](https://github.com/wazuh/wazuh-docker/pull/303) - - -## Wazuh Docker v3.11.3_7.5.2 - -### Added - -- Update to Wazuh version 3.11.3_7.5.2 - -## Wazuh Docker v3.11.2_7.5.1 - -### Added - -- Bumped Node.js to version 10 ([@xr09](https://github.com/xr09)) [#8615cd4](https://github.com/wazuh/wazuh-docker/commit/8615cd4d2152601e55becc7c3675360938e74b6a) - -### Fixed - -- Fix S3 Plugin ([@AnthonySendra](https://github.com/AnthonySendra)) [#293](https://github.com/wazuh/wazuh-docker/pull/293) - -## Wazuh Docker v3.11.1_7.5.1 - -### Added - -- Update to Wazuh version 3.11.1_7.5.1 -- Filebeat configuration file updated to latest version ([@manuasir](https://github.com/manuasir)) [#271](https://github.com/wazuh/wazuh-docker/pull/271) -- Allow using the hostname as node_name for managers ([@JPLachance](https://github.com/JPLachance)) [#261](https://github.com/wazuh/wazuh-docker/pull/261) - -## Wazuh Docker v3.11.0_7.5.1 - -### Added - -- Update to Wazuh version 3.11.0_7.5.1 - -## Wazuh Docker v3.10.2_7.5.0 - -### Added - -- Update to Wazuh version 3.10.2_7.5.0 - -## Wazuh Docker v3.10.2_7.3.2 - -### Added - -- Update to Wazuh version 3.10.2_7.3.2 - -## Wazuh Docker v3.10.0_7.3.2 - -### Added - -- Update to Wazuh version 3.10.0_7.3.2 - -## Wazuh Docker v3.9.5_7.2.1 - -### Added - -- Update to Wazuh version 3.9.5_7.2.1 - -## Wazuh Docker v3.9.4_7.2.0 - -### Added - -- Update to Wazuh version 3.9.4_7.2.0 -- Implemented Wazuh Filebeat Module ([jm404](https://www.github.com/jm404)) [#2a77c6a](https://github.com/wazuh/wazuh-docker/commit/2a77c6a6e6bf78f2492adeedbade7a507d9974b2) - -## Wazuh Docker v3.9.3_7.2.0 - -### Fixed -- Wazuh-docker reinserts cluster settings after resuming containers ([@manuasir](https://github.com/manuasir)) [#213](https://github.com/wazuh/wazuh-docker/pull/213) - -## Wazuh Docker v3.9.2_7.1.1 - -### Added - -- Update to Wazuh version 3.9.2_7.1.1 - -## Wazuh Docker v3.9.2_6.8.0 - -### Added - -- Update to Wazuh version 3.9.2_6.8.0 - -## Wazuh Docker v3.9.1_7.1.0 - -### Added - -- Support for Elastic v7.1.0 -- New environment variables for Kibana ([@manuasir](https://github.com/manuasir)) [#22ad43](https://github.com/wazuh/wazuh-docker/commit/22ad4360f548e54bb0c5e929f8c84a186ad2ab88) - -## Wazuh Docker v3.9.1_6.8.0 - -### Added - -- Update to Wazuh version 3.9.1_6.8.0 ([#181](https://github.com/wazuh/wazuh-docker/pull/181)) - -### Fixed - -- Fixed `ELASTICSEARCH_KIBANA_IP` environment variable ([@manuasir](https://github.com/manuasir)) ([#181](https://github.com/wazuh/wazuh-docker/pull/181)) - -## Wazuh Docker v3.9.0_6.7.2 - -### Changed - -- Update Elastic Stack version to 6.7.2. - -## Wazuh Docker v3.9.0_6.7.1 - -### Added - -- Support for xPACK authorized requests ([@manuasir](https://github.com/manuasir)) ([#119](https://github.com/wazuh/wazuh-docker/pull/119)) -- Add Elasticsearch cluster configuration ([@SitoRBJ](https://github.com/SitoRBJ)). ([#146](https://github.com/wazuh/wazuh-docker/pull/146)) -- Add Elasticsearch cluster configuration ([@Phandora](https://github.com/Phandora)) ([#140](https://github.com/wazuh/wazuh-docker/pull/140)) -- Setting Nginx to support several user/passwords in Kibana ([@toniMR](https://github.com/toniMR)) ([#136](https://github.com/wazuh/wazuh-docker/pull/136)) - - -### Changed - -- Use LS_JAVA_OPTS instead of old LS_HEAP_SIZE ([@ruffy91](https://github.com/ruffy91)) ([#139](https://github.com/wazuh/wazuh-docker/pull/139)) -- Changing the original Wazuh docker image to allow adding code in the entrypoint ([@Phandora](https://github.com/phandora)) ([#151](https://github.com/wazuh/wazuh-docker/pull/151)) +- Configure deployment with environment variables ([#2081](https://github.com/wazuh/wazuh-docker/issues/2081)) +- Modify Wazuh components install method ([#2058](https://github.com/wazuh/wazuh-docker/issues/2058)) +- Image builder Workflow Rebuild ([#2054](https://github.com/wazuh/wazuh-docker/issues/2054)) +- Remove Wazuh Manager deprecated daemons and CLI tools ([#1933](https://github.com/wazuh/wazuh-docker/issues/1933)) +- DevOps - Docker - OpenSearch 3.0 deprecated settings ([#1891](https://github.com/wazuh/wazuh-docker/issues/1891)) ### Removed -- Removing files from Wazuh image ([@Phandora](https://github.com/phandora)) ([#153](https://github.com/wazuh/wazuh-docker/pull/153)) - -## Wazuh Docker v3.8.2_6.7.0 - -### Changed - -- Update Elastic Stack version to 6.7.0. ([#144](https://github.com/wazuh/wazuh-docker/pull/144)) - -## Wazuh Docker v3.8.2_6.6.2 - -### Changed - -- Update Elastic Stack version to 6.6.2. ([#130](https://github.com/wazuh/wazuh-docker/pull/130)) - -## Wazuh Docker v3.8.2_6.6.1 - -### Changed - -- Update Elastic Stack version to 6.6.1. ([#129](https://github.com/wazuh/wazuh-docker/pull/129)) - -## Wazuh Docker v3.8.2_6.5.4 - -### Added - -- Add Wazuh-Elasticsearch. ([#106](https://github.com/wazuh/wazuh-docker/pull/106)) -- Store Filebeat _/var/lib/filebeat/registry._ ([#109](https://github.com/wazuh/wazuh-docker/pull/109)) -- Adding the option to disable some xpack features. ([#111](https://github.com/wazuh/wazuh-docker/pull/111)) -- Wazuh-Kibana customizable at plugin level. ([#117](https://github.com/wazuh/wazuh-docker/pull/117)) -- Adding env variables for alerts data flow. ([#118](https://github.com/wazuh/wazuh-docker/pull/118)) -- New Logstash entrypoint added. ([#135](https://github.com/wazuh/wazuh-docker/pull/135/files)) -- Welcome screen management. ([#133](https://github.com/wazuh/wazuh-docker/pull/133)) - -### Changed - -- Update to Wazuh version 3.8.2. ([#105](https://github.com/wazuh/wazuh-docker/pull/105)) - -### Removed - -- Remove alerts created in build time. ([#137](https://github.com/wazuh/wazuh-docker/pull/137)) - - -## Wazuh Docker v3.8.1_6.5.4 - -### Changed -- Update to Wazuh version 3.8.1. ([#102](https://github.com/wazuh/wazuh-docker/pull/102)) - -## Wazuh Docker v3.8.0_6.5.4 - -### Changed - -- Upgrade version 3.8.0_6.5.4. ([#97](https://github.com/wazuh/wazuh-docker/pull/97)) - -### Removed - -- Remove cluster.py work around. ([#99](https://github.com/wazuh/wazuh-docker/pull/99)) - -## Wazuh Docker v3.7.2_6.5.4 - -### Added - -- Improvements to Kibana settings added. ([#91](https://github.com/wazuh/wazuh-docker/pull/91)) -- Add Kibana environmental variables for Wazuh APP config.yml. ([#89](https://github.com/wazuh/wazuh-docker/pull/89)) - -### Changed - -- Update Elastic Stack version to 6.5.4. ([#82](https://github.com/wazuh/wazuh-docker/pull/82)) -- Add env credentials for nginx. ([#86](https://github.com/wazuh/wazuh-docker/pull/86)) -- Improve filebeat configuration ([#88](https://github.com/wazuh/wazuh-docker/pull/88)) +- None ### Fixed -- Temporary fix for Wazuh cluster master node in Kubernetes. ([#84](https://github.com/wazuh/wazuh-docker/pull/84)) +- Fix reported WF vulnerabilities ([#2443](https://github.com/wazuh/wazuh-docker/issues/2443)) +- Adapt Wazuh manager healthcheck with local binaries ([#2422](https://github.com/wazuh/wazuh-docker/issues/2422)) +- The Wazuh Docker image cannot be built during the Nightly ([#2337](https://github.com/wazuh/wazuh-docker/issues/2337)) +- Docker and AMI workflows failing during stage release (v5.0.0-beta1) ([#35457](https://github.com/wazuh/wazuh/issues/35457)) +- PR check issues ([#2274](https://github.com/wazuh/wazuh-docker/issues/2274)) +- Wazuh manager Healthcheck ([#2271](https://github.com/wazuh/wazuh-docker/issues/2271)) +- Delete WAZUH_AGENT_GROUPS of Wazuh 5.0.0 images build ([#2258](https://github.com/wazuh/wazuh-docker/issues/2258)) +- Development - DevOps 5.0 adaptation - Docker - Delete lists directory references ([#2128](https://github.com/wazuh/wazuh-docker/issues/2128)) -## Wazuh Docker v3.7.2_6.5.3 - -### Changed - -- Erasing temporary fix for AWS integration. ([#81](https://github.com/wazuh/wazuh-docker/pull/81)) - -### Fixed - -- Upgrading errors due to wrong files. ([#80](https://github.com/wazuh/wazuh-docker/pull/80)) - - -## Wazuh Docker v3.7.0_6.5.0 - -### Changed - -- Adapt to Elastic stack 6.5.0. - -## Wazuh Docker v3.7.0_6.4.3 - -### Added - -- Allow custom scripts or commands before service start ([#58](https://github.com/wazuh/wazuh-docker/pull/58)) -- Added description for wazuh-nginx ([#59](https://github.com/wazuh/wazuh-docker/pull/59)) -- Added license file to match https://github.com/wazuh/wazuh LICENSE ([#60](https://github.com/wazuh/wazuh-docker/pull/60)) -- Added SMTP packages ([#67](https://github.com/wazuh/wazuh-docker/pull/67)) - -### Changed - -- Increased proxy buffer for NGINX Kibana ([#51](https://github.com/wazuh/wazuh-docker/pull/51)) -- Updated logstash config to remove deprecation warnings ([#55](https://github.com/wazuh/wazuh-docker/pull/55)) -- Set ossec user's home path ([#61](https://github.com/wazuh/wazuh-docker/pull/61)) - -### Fixed - -- Fixed a bug that prevents the API from starting when the Wazuh manager was updated. Change in the files that are stored in the volume. ([#65](https://github.com/wazuh/wazuh-docker/pull/65)) -- Fixed script reference ([#62](https://github.com/wazuh/wazuh-docker/pull/62/files)) - -## Wazuh Docker v3.6.1_6.4.3 - -Wazuh-Docker starting point. +## Prior version +- []() \ No newline at end of file diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 28e0a483..312b8d86 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -30,3 +30,9 @@ - [Security](ref/security.md) - [Performance](ref/performance.md) - [Glossary](ref/glossary.md) + +--- + +# Integration Tests + +- [Docker Integration Tests](ref/integration_test/docker_integration_tests.md) diff --git a/docs/ref/integration_test/docker_integration_tests.md b/docs/ref/integration_test/docker_integration_tests.md new file mode 100644 index 00000000..23ea2e76 --- /dev/null +++ b/docs/ref/integration_test/docker_integration_tests.md @@ -0,0 +1,332 @@ +# Docker Integration Tests + +Workflow file: `.github/workflows/5_check_integration_tools.yml` + +This workflow optionally builds Docker images from the PR branch, provisions a dedicated AWS VM, deploys the Wazuh Docker stack (single-node or multi-node), and runs the integration test suite against it via SSH. + +--- + +## Triggers + +| Mode | Trigger | Who can trigger | +|---|---|---| +| PR comment | `issue_comment` on an open, non-draft PR | Any repo collaborator | +| Manual | `workflow_dispatch` | Anyone with repo write access | + +--- + +## Execution Flows + +### issue_comment flow + +```mermaid +flowchart TD + A[PR comment posted] --> B{Recognized command\non open non-draft PR?} + B -- No --> Z[Ignored] + B -- Yes --> C[get_pr_info\nReact · Extract PR data\nParse command · Create Check Run] + C --> D[prepare\nResolve branch · Read VERSION.json] + D --> E[build_images\nBuild + push to ECR\nalways runs on PR comment] + E --> F{deployment_matrix} + F --> G[docker_test\nsingle-node] + F --> H[docker_test\nmulti-node] + G --> I[update_check] + H --> I +``` + +**Recognized commands:** + +| Comment | Deployment matrix | +|---|---| +| `/test-docker` | `["single-node","multi-node"]` | +| `/test-docker-single` | `["single-node"]` | +| `/test-docker-multi` | `["multi-node"]` | + +When triggered by PR comment, `build_images` **always** runs — images are always built from the PR branch and pushed to ECR. + +### workflow_dispatch flow + +```mermaid +flowchart TD + A[Manual trigger] --> D[prepare\nResolve branch · Read VERSION.json] + D --> E{Build needed?\nno version + no stage\n+ registry=ECR} + E -- Yes --> F[build_images\nBuild + push to ECR] + E -- No --> G{deployment_type input} + F --> G + G -- single-node --> H[docker_test\nsingle-node] + G -- multi-node --> I[docker_test\nmulti-node] + G -- both --> H & I +``` + +`build_images` is **skipped** when either `version` or `stage` is provided, or when `registry = DockerHub`. + +--- + +## Parameters + +### workflow_dispatch inputs + +| Input | Required | Default | Description | +|---|---|---|---| +| `pr_head_ref` | Yes | — | Branch of `wazuh-docker` to test | +| `automation_reference` | No | `main` | Branch of `wazuh-automation` to use | +| `deployment_type` | Yes | — | `single-node`, `multi-node`, or `both` | +| `version` | No | — | Override image version (e.g. `5.0.1`). If empty, reads from `VERSION.json` | +| `stage` | No | — | Image stage suffix (e.g. `beta1`, `beta2-latest`). Required when `version` is set | +| `registry` | No | `ECR` | `ECR` (dev/built images) or `DockerHub` (released images) | + +### issue_comment parameters + +All parameters are derived automatically: + +| Parameter | Source | +|---|---| +| `pr_head_ref` | PR head branch from GitHub API | +| `deployment_matrix` | Parsed from comment command | +| `version` / `stage` | Read from `VERSION.json` on the PR branch | +| `registry` | Always ECR (images are always built) | +| `automation_reference` | Always `main` | + +--- + +## Image Resolution Scenarios + +The workflow distinguishes five cases based on inputs: + +| Case | `version` input | `stage` input | Registry | Action | Image tag | +|---|---|---|---|---|---| +| a.1 | empty | empty | ECR (or PR comment) | **BUILD** from PR → ECR | `{version}-{stage}-latest` | +| a.2 | empty | empty | DockerHub | Pull (no build) | `{version}-{stage}` | +| b.1 | set | empty | ECR | Pull (no build) | `{version}-latest` | +| b.2 | set | empty | DockerHub | Pull (no build) | `{version}` | +| c | set or empty | set | ECR or DockerHub | Pull (no build) | `{version}-{stage}` | + +> When neither `version` nor `stage` is set, `version` and `stage` are read from `VERSION.json` on the target branch. + +> Case a.1 always applies when triggered by PR comment, regardless of the `registry` input (which is not available in that trigger mode). + +--- + +## Job Details + +### Job 1 — `get_pr_info` (issue_comment only) + +| Step | What it does | +|---|---| +| React to comment | Adds a 🚀 reaction to the triggering PR comment | +| Extract PR data | Calls GitHub API to get PR `head_ref` and `head_sha` | +| Parse command | Maps comment text → `deployment_matrix` JSON and `check_name` string | +| Create Check Run | Creates a GitHub Check Run in `in_progress` state on the PR head SHA | + +### Job 2 — `prepare` (both triggers) + +| Step | What it does | +|---|---| +| Resolve context | Reads inputs (workflow_dispatch) or `get_pr_info` outputs (issue_comment) | +| Checkout `VERSION.json` | Sparse-checks out only `VERSION.json` from the target branch | +| Read version info | Extracts `version` and `stage` from `VERSION.json` | +| Show test plan | Logs the resolved image case (a.1/a.2/b.1/b.2/c) and writes a summary table | + +Outputs: `pr_head_ref`, `deployment_matrix`, `wazuh_version`, `wazuh_stage`. + +### Job 3 — `build_images` (conditional) + +Calls the reusable workflow `.github/workflows/5_build_and_push_images.yml`. + +**Runs when:** `version == ''` AND `stage == ''` AND (`registry == 'ECR'` OR `github.event_name == 'issue_comment'`). + +**Skipped when:** any explicit `version` or `stage` is provided, or `registry = DockerHub`. + +| Parameter passed | Value | +|---|---| +| `image_tag` | `{wazuh_version}-{wazuh_stage}` | +| `docker_reference` | `pr_head_ref` | +| `wazuh_automation_reference` | `automation_reference` input | +| `products` | `wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent` | +| `dev` | `true` | +| `id` | `docker-integration-{run_id}` | + +### Job 4 — `docker_test` (matrix, both triggers) + +Runs once per entry in `deployment_matrix`. Each instance provisions its own VM. + +#### Setup + +1. Checkout `wazuh-automation` at `automation_reference` +2. Checkout `wazuh-docker` at `pr_head_ref` +3. Resolve image configuration (see [Image Resolution Scenarios](#image-resolution-scenarios)) → sets `DOCKER_REGISTRY`, `DOCKER_TAG`, `DOCKER_VERSION` +4. Set up Python 3.12 and install `test_runner` +5. Configure AWS credentials via OIDC (`AWS_IAM_DOCKER_ROLE`) + +#### Instance allocation + +Provisions a dedicated AWS VM using the `deployability` allocator module: + +```bash +python3 wazuh-automation/deployability/modules/allocation/main.py \ + --action create \ + --provider aws \ + --size large \ + --composite-name ubuntu-24-amd64 \ + --instance-name gha_{run_id}_docker_{deployment_type} \ + --label-team devops \ + --label-termination-date 1d +``` + +The allocator writes `inventory.yml` with the SSH connection details (`ansible_host`, `ansible_port`, `ansible_user`, `ansible_ssh_private_key_file`). These are extracted and exported as `SSH_HOST`, `SSH_PORT`, `SSH_USER`, `SSH_KEY` environment variables. + +#### VM configuration and Docker install + +All subsequent steps run on the remote VM over SSH: + +1. **Install Docker CE**: `curl -fsSL https://get.docker.com | sudo sh` +2. **Login to ECR** (when registry is ECR or trigger is issue_comment): authenticates the VM's Docker daemon to the dev registry +3. **Set `vm.max_map_count=262144`**: required for OpenSearch/Wazuh Indexer + +#### Certificate generation and config + +Runs on the **runner** (not the VM): + +1. **Download `wazuh-certs-tool.sh`** directly from the packages URL: + - Pre-release: `packages-staging.xdrsiem.wazuh.info/pre-release/{major}.x/installation-assistant/wazuh-certs-tool-{version}-{stage}.sh` + - Release: `packages.wazuh.com/{major}.{minor}/wazuh-certs-tool-{version}-1.sh` + +2. **Generate `config.yml`** inline based on deployment type: + + **single-node:** + ```yaml + nodes: + indexer: [{ name: wazuh.indexer, dns: wazuh.indexer }] + manager: [{ name: wazuh.manager, dns: wazuh.manager }] + dashboard:[{ name: wazuh.dashboard, dns: wazuh.dashboard }] + ``` + + **multi-node:** + ```yaml + nodes: + indexer: + - { name: wazuh1.indexer, dns: wazuh1.indexer } + - { name: wazuh2.indexer, dns: wazuh2.indexer } + - { name: wazuh3.indexer, dns: wazuh3.indexer } + manager: + - { name: wazuh.master, dns: wazuh.master, node_type: master } + - { name: wazuh.worker, dns: wazuh.worker, node_type: worker } + dashboard: [{ name: wazuh.dashboard, dns: wazuh.dashboard }] + ``` + +3. **Copy `wazuh-docker/` to VM** via SCP: `scp -r wazuh-docker {remote}:/tmp/wazuh-docker` + +4. **Generate certificates on VM**: runs `tools/utils/deployment/certificates-conf.sh --cert --copy` inside `/tmp/wazuh-docker/{deployment}/` + +#### Deployment + +```bash +# On the VM +cd /tmp/wazuh-docker/{deployment_type} +sudo docker compose up -d +``` + +Waits up to **15 minutes** polling every 10 seconds until all non-nginx containers report `healthy` status. + +After containers are healthy, waits for steady state: +- `single-node`: 60 seconds +- `multi-node`: 90 seconds + +#### Test execution + +```bash +test_runner \ + --test-type "docker-{deployment_type}" \ + --deployment-type "docker-{deployment_type}" \ + --ssh-host "{SSH_HOST}" \ + --ssh-port "{SSH_PORT}" \ + --ssh-key-path "{SSH_KEY}" \ + --ssh-username "{SSH_USER}" \ + --version "{DOCKER_VERSION}" \ + --log-level INFO \ + --output github \ + --output-file "test-results-docker-{deployment_type}.github" +``` + +| Argument | Value | Notes | +|---|---|---| +| `--test-type` | `docker-single-node` or `docker-multi-node` | Selects the test module set | +| `--deployment-type` | `docker-single-node` or `docker-multi-node` | Selects the deployment profile | +| `--ssh-host/port/key/username` | From allocator inventory | Connects to the allocated VM | +| `--version` | Resolved `DOCKER_VERSION` | Used for version assertion tests | +| `--output github` | — | Emits GitHub Actions annotations | + +For details on what `docker-single-node` and `docker-multi-node` test types validate, see the `Integration Test Module — Description` of the internal documentation. + +#### Reporting + +| Output | When | Content | +|---|---|---| +| Step summary | Always | Test results appended to `$GITHUB_STEP_SUMMARY` | +| PR comment | `issue_comment` trigger only | Posts or updates a comment (marker: ``) with ✅/❌ and results | +| Artifact: `test-results-docker-{deployment}-{run_id}` | Always | Results file, retained 7 days | +| Artifact: `docker-logs-{deployment}-{run_id}` | On failure only | Full `docker compose logs` output, retained 7 days | + +#### Cleanup (always runs, even on failure) + +1. `docker compose down -v` on the VM (stops containers and removes volumes) +2. Deallocate the VM: + ```bash + python3 wazuh-automation/deployability/modules/allocation/main.py \ + --action delete \ + --track-output {ALLOCATOR_PATH}/track.yml + ``` + +### Job 5 — `update_check` (issue_comment only) + +Updates the GitHub Check Run created in Job 1: + +| `docker_test` result | Check conclusion | +|---|---| +| `success` | `success` — ✅ All Docker integration tests passed | +| `failure` | `failure` — ❌ One or more tests failed | +| `cancelled` | `cancelled` | + +--- + +## Required Secrets and Variables + +### Secrets + +| Secret | Used by | +|---|---| +| `AWS_IAM_DOCKER_ROLE` | OIDC role for AWS operations (allocator + ECR) | +| `GH_CLONE_TOKEN` | Checkout `wazuh-automation` | +| `GITHUB_TOKEN` | PR comments and Check Run updates (built-in) | + +### Repository variables + +| Variable | Used by | +|---|---| +| `IMAGE_REGISTRY_PROD` | DockerHub registry URL | +| `IMAGE_REGISTRY_DEV` | ECR registry URL | + +--- + +## Permissions + +| Permission | Purpose | +|---|---| +| `id-token: write` | OIDC authentication to AWS | +| `contents: read` | Checkout repository | +| `pull-requests: write` | Post PR comments | +| `issues: write` | Post comments via issues API | +| `checks: write` | Create and update GitHub Check Runs | + +--- + +## Instance Naming + +Allocated VMs are named: + +``` +gha_{github.run_id}_docker_{deployment_type} +``` + +Example: `gha_12345678_docker_single-node` + +VMs are tagged with `termination-date: 1d` — they are automatically terminated after 24 hours as a safety net, even if the cleanup step fails.