mirror of
				https://github.com/wazuh/wazuh-docker.git
				synced 2025-11-04 05:53:19 +00:00 
			
		
		
		
	Compare commits
	
		
			38 Commits
		
	
	
		
			change/182
			...
			v4.10.3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					15e49f7325 | ||
| 
						 | 
					96d60d4a49 | ||
| 
						 | 
					1c7bb4a60b | ||
| 
						 | 
					090b64b959 | ||
| 
						 | 
					d3afec63e0 | ||
| 
						 | 
					f4933cdfe8 | ||
| 
						 | 
					c10113ba56 | ||
| 
						 | 
					3e1a5a38ae | ||
| 
						 | 
					440242181a | ||
| 
						 | 
					6673d76a09 | ||
| 
						 | 
					083b7b6571 | ||
| 
						 | 
					1c9e8b2c01 | ||
| 
						 | 
					a59789e29a | ||
| 
						 | 
					13090a5446 | ||
| 
						 | 
					0edd93c25d | ||
| 
						 | 
					34679bc91b | ||
| 
						 | 
					ee23975bd7 | ||
| 
						 | 
					8846329d50 | ||
| 
						 | 
					9bda0fc4fd | ||
| 
						 | 
					b98d98532e | ||
| 
						 | 
					a1be73f820 | ||
| 
						 | 
					eb95be535c | ||
| 
						 | 
					acd7acb7da | ||
| 
						 | 
					f28a7068b1 | ||
| 
						 | 
					489fd96e42 | ||
| 
						 | 
					3c7436c7c2 | ||
| 
						 | 
					00286586aa | ||
| 
						 | 
					bc88c686aa | ||
| 
						 | 
					144301bf7c | ||
| 
						 | 
					5803392993 | ||
| 
						 | 
					680b0ac725 | ||
| 
						 | 
					9b19ca8b33 | ||
| 
						 | 
					9d7910c0ed | ||
| 
						 | 
					dbe677b1c0 | ||
| 
						 | 
					aa2bc74977 | ||
| 
						 | 
					e4cdd20c6a | ||
| 
						 | 
					097c198e0c | ||
| 
						 | 
					82392ca998 | 
							
								
								
									
										6
									
								
								.env
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								.env
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
WAZUH_VERSION=4.13.0
 | 
			
		||||
WAZUH_IMAGE_VERSION=4.13.0
 | 
			
		||||
WAZUH_VERSION=4.10.3
 | 
			
		||||
WAZUH_IMAGE_VERSION=4.10.3
 | 
			
		||||
WAZUH_TAG_REVISION=1
 | 
			
		||||
FILEBEAT_TEMPLATE_BRANCH=4.13.0
 | 
			
		||||
FILEBEAT_TEMPLATE_BRANCH=4.10.3
 | 
			
		||||
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz
 | 
			
		||||
WAZUH_UI_REVISION=1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/.goss.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/.goss.yaml
									
									
									
									
										vendored
									
									
								
							@@ -56,7 +56,7 @@ package:
 | 
			
		||||
  wazuh-manager:
 | 
			
		||||
    installed: true
 | 
			
		||||
    versions:
 | 
			
		||||
    - 4.13.0
 | 
			
		||||
    - 4.10.3
 | 
			
		||||
port:
 | 
			
		||||
  tcp:1514:
 | 
			
		||||
    listening: true
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										245
									
								
								.github/free-disk-space/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										245
									
								
								.github/free-disk-space/action.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,245 +0,0 @@
 | 
			
		||||
name: "Free Disk Space (Ubuntu)"
 | 
			
		||||
description: "A configurable GitHub Action to free up disk space on an Ubuntu GitHub Actions runner."
 | 
			
		||||
 | 
			
		||||
# Thanks @jlumbroso for the action code https://github.com/jlumbroso/free-disk-space/
 | 
			
		||||
# See: https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#branding
 | 
			
		||||
 | 
			
		||||
inputs:
 | 
			
		||||
  android:
 | 
			
		||||
    description: "Remove Android runtime"
 | 
			
		||||
    required: false
 | 
			
		||||
    default: "true"
 | 
			
		||||
  dotnet:
 | 
			
		||||
    description: "Remove .NET runtime"
 | 
			
		||||
    required: false
 | 
			
		||||
    default: "true"
 | 
			
		||||
  haskell:
 | 
			
		||||
    description: "Remove Haskell runtime"
 | 
			
		||||
    required: false
 | 
			
		||||
    default: "true"
 | 
			
		||||
 | 
			
		||||
  # option inspired by:
 | 
			
		||||
  # https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh
 | 
			
		||||
  large-packages:
 | 
			
		||||
    description: "Remove large packages"
 | 
			
		||||
    required: false
 | 
			
		||||
    default: "true"
 | 
			
		||||
 | 
			
		||||
  docker-images:
 | 
			
		||||
    description: "Remove Docker images"
 | 
			
		||||
    required: false
 | 
			
		||||
    default: "true"
 | 
			
		||||
 | 
			
		||||
  # option inspired by:
 | 
			
		||||
  # https://github.com/actions/virtual-environments/issues/2875#issuecomment-1163392159
 | 
			
		||||
  tool-cache:
 | 
			
		||||
    description: "Remove image tool cache"
 | 
			
		||||
    required: false
 | 
			
		||||
    default: "false"
 | 
			
		||||
 | 
			
		||||
  swap-storage:
 | 
			
		||||
    description: "Remove swap storage"
 | 
			
		||||
    required: false
 | 
			
		||||
    default: "true"
 | 
			
		||||
 | 
			
		||||
runs:
 | 
			
		||||
  using: "composite"
 | 
			
		||||
  steps:
 | 
			
		||||
    - shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
 | 
			
		||||
        # ======
 | 
			
		||||
        # MACROS
 | 
			
		||||
        # ======
 | 
			
		||||
 | 
			
		||||
        # macro to print a line of equals
 | 
			
		||||
        # (silly but works)
 | 
			
		||||
        printSeparationLine() {
 | 
			
		||||
          str=${1:=}
 | 
			
		||||
          num=${2:-80}
 | 
			
		||||
          counter=1
 | 
			
		||||
          output=""
 | 
			
		||||
          while [ $counter -le $num ]
 | 
			
		||||
          do
 | 
			
		||||
             output="${output}${str}"
 | 
			
		||||
             counter=$((counter+1))
 | 
			
		||||
          done
 | 
			
		||||
          echo "${output}"
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # macro to compute available space
 | 
			
		||||
        # REF: https://unix.stackexchange.com/a/42049/60849
 | 
			
		||||
        # REF: https://stackoverflow.com/a/450821/408734
 | 
			
		||||
        getAvailableSpace() { echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}'); }
 | 
			
		||||
 | 
			
		||||
        # macro to make Kb human readable (assume the input is Kb)
 | 
			
		||||
        # REF: https://unix.stackexchange.com/a/44087/60849
 | 
			
		||||
        formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); }
 | 
			
		||||
 | 
			
		||||
        # macro to output saved space
 | 
			
		||||
        printSavedSpace() {
 | 
			
		||||
          saved=${1}
 | 
			
		||||
          title=${2:-}
 | 
			
		||||
 | 
			
		||||
          echo ""
 | 
			
		||||
          printSeparationLine '*' 80
 | 
			
		||||
          if [ ! -z "${title}" ]; then
 | 
			
		||||
            echo "=> ${title}: Saved $(formatByteCount $saved)"
 | 
			
		||||
          else
 | 
			
		||||
            echo "=> Saved $(formatByteCount $saved)"
 | 
			
		||||
          fi
 | 
			
		||||
          printSeparationLine '*' 80
 | 
			
		||||
          echo ""
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        # macro to print output of dh with caption
 | 
			
		||||
        printDH() {
 | 
			
		||||
          caption=${1:-}
 | 
			
		||||
 | 
			
		||||
          printSeparationLine '=' 80
 | 
			
		||||
          echo "${caption}"
 | 
			
		||||
          echo ""
 | 
			
		||||
          echo "$ dh -h /"
 | 
			
		||||
          echo ""
 | 
			
		||||
          df -h /
 | 
			
		||||
          echo "$ dh -a /"
 | 
			
		||||
          echo ""
 | 
			
		||||
          df -a /
 | 
			
		||||
          echo "$ dh -a"
 | 
			
		||||
          echo ""
 | 
			
		||||
          df -a
 | 
			
		||||
          printSeparationLine '=' 80
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        # ======
 | 
			
		||||
        # SCRIPT
 | 
			
		||||
        # ======
 | 
			
		||||
 | 
			
		||||
        # Display initial disk space stats
 | 
			
		||||
 | 
			
		||||
        AVAILABLE_INITIAL=$(getAvailableSpace)
 | 
			
		||||
        AVAILABLE_ROOT_INITIAL=$(getAvailableSpace '/')
 | 
			
		||||
 | 
			
		||||
        printDH "BEFORE CLEAN-UP:"
 | 
			
		||||
        echo ""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        # Option: Remove Android library
 | 
			
		||||
 | 
			
		||||
        if [[ ${{ inputs.android }} == 'true' ]]; then
 | 
			
		||||
          BEFORE=$(getAvailableSpace)
 | 
			
		||||
          
 | 
			
		||||
          sudo rm -rf /usr/local/lib/android || true
 | 
			
		||||
 | 
			
		||||
          AFTER=$(getAvailableSpace)
 | 
			
		||||
          SAVED=$((AFTER-BEFORE))
 | 
			
		||||
          printSavedSpace $SAVED "Android library"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Option: Remove .NET runtime
 | 
			
		||||
 | 
			
		||||
        if [[ ${{ inputs.dotnet }} == 'true' ]]; then
 | 
			
		||||
          BEFORE=$(getAvailableSpace)
 | 
			
		||||
 | 
			
		||||
          # https://github.community/t/bigger-github-hosted-runners-disk-space/17267/11
 | 
			
		||||
          sudo rm -rf /usr/share/dotnet || true
 | 
			
		||||
          
 | 
			
		||||
          AFTER=$(getAvailableSpace)
 | 
			
		||||
          SAVED=$((AFTER-BEFORE))
 | 
			
		||||
          printSavedSpace $SAVED ".NET runtime"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Option: Remove Haskell runtime
 | 
			
		||||
 | 
			
		||||
        if [[ ${{ inputs.haskell }} == 'true' ]]; then
 | 
			
		||||
          BEFORE=$(getAvailableSpace)
 | 
			
		||||
 | 
			
		||||
          sudo rm -rf /opt/ghc || true
 | 
			
		||||
          sudo rm -rf /usr/local/.ghcup || true
 | 
			
		||||
          
 | 
			
		||||
          AFTER=$(getAvailableSpace)
 | 
			
		||||
          SAVED=$((AFTER-BEFORE))
 | 
			
		||||
          printSavedSpace $SAVED "Haskell runtime"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Option: Remove large packages
 | 
			
		||||
        # REF: https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh
 | 
			
		||||
 | 
			
		||||
        if [[ ${{ inputs.large-packages }} == 'true' ]]; then
 | 
			
		||||
          BEFORE=$(getAvailableSpace)
 | 
			
		||||
          
 | 
			
		||||
          sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y '^dotnet-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^dotnet-.*' --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y '^llvm-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^llvm-.*' --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y 'php.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y 'php.*' --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y '^mongodb-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mongodb-.*' --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y '^mysql-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || echo "::warning::The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y google-cloud-sdk --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-sdk --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get remove -y google-cloud-cli --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-cli --fix-missing] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."
 | 
			
		||||
          sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..."
 | 
			
		||||
 | 
			
		||||
          AFTER=$(getAvailableSpace)
 | 
			
		||||
          SAVED=$((AFTER-BEFORE))
 | 
			
		||||
          printSavedSpace $SAVED "Large misc. packages"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Option: Remove Docker images
 | 
			
		||||
 | 
			
		||||
        if [[ ${{ inputs.docker-images }} == 'true' ]]; then
 | 
			
		||||
          BEFORE=$(getAvailableSpace)
 | 
			
		||||
 | 
			
		||||
          sudo docker image prune --all --force || true
 | 
			
		||||
 | 
			
		||||
          AFTER=$(getAvailableSpace)
 | 
			
		||||
          SAVED=$((AFTER-BEFORE))
 | 
			
		||||
          printSavedSpace $SAVED "Docker images"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Option: Remove tool cache
 | 
			
		||||
        # REF: https://github.com/actions/virtual-environments/issues/2875#issuecomment-1163392159
 | 
			
		||||
 | 
			
		||||
        if [[ ${{ inputs.tool-cache }} == 'true' ]]; then
 | 
			
		||||
          BEFORE=$(getAvailableSpace)
 | 
			
		||||
 | 
			
		||||
          sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true
 | 
			
		||||
          
 | 
			
		||||
          AFTER=$(getAvailableSpace)
 | 
			
		||||
          SAVED=$((AFTER-BEFORE))
 | 
			
		||||
          printSavedSpace $SAVED "Tool cache"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Option: Remove Swap storage
 | 
			
		||||
 | 
			
		||||
        if [[ ${{ inputs.swap-storage }} == 'true' ]]; then
 | 
			
		||||
          BEFORE=$(getAvailableSpace)
 | 
			
		||||
 | 
			
		||||
          sudo swapoff -a || true
 | 
			
		||||
          sudo rm -f /mnt/swapfile || true
 | 
			
		||||
          free -h
 | 
			
		||||
          
 | 
			
		||||
          AFTER=$(getAvailableSpace)
 | 
			
		||||
          SAVED=$((AFTER-BEFORE))
 | 
			
		||||
          printSavedSpace $SAVED "Swap storage"
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        # Output saved space statistic
 | 
			
		||||
 | 
			
		||||
        AVAILABLE_END=$(getAvailableSpace)
 | 
			
		||||
        AVAILABLE_ROOT_END=$(getAvailableSpace '/')
 | 
			
		||||
 | 
			
		||||
        echo ""
 | 
			
		||||
        printDH "AFTER CLEAN-UP:"
 | 
			
		||||
 | 
			
		||||
        echo ""
 | 
			
		||||
        echo ""
 | 
			
		||||
 | 
			
		||||
        echo "/dev/root:"
 | 
			
		||||
        printSavedSpace $((AVAILABLE_ROOT_END - AVAILABLE_ROOT_INITIAL))
 | 
			
		||||
        echo "overall:"
 | 
			
		||||
        printSavedSpace $((AVAILABLE_END - AVAILABLE_INITIAL))
 | 
			
		||||
@@ -6,11 +6,12 @@ on:
 | 
			
		||||
    inputs:
 | 
			
		||||
      image_tag:
 | 
			
		||||
        description: 'Docker image tag'
 | 
			
		||||
        default: '4.13.0'
 | 
			
		||||
        default: '4.10.3'
 | 
			
		||||
        required: true
 | 
			
		||||
      docker_reference:
 | 
			
		||||
        description: 'wazuh-docker reference'
 | 
			
		||||
        required: true
 | 
			
		||||
        default: 'v4.10.3'
 | 
			
		||||
        required: false
 | 
			
		||||
      products:
 | 
			
		||||
        description: 'Comma-separated list of the image names to build and push'
 | 
			
		||||
        default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer'
 | 
			
		||||
@@ -41,11 +42,12 @@ on:
 | 
			
		||||
    inputs:
 | 
			
		||||
      image_tag:
 | 
			
		||||
        description: 'Docker image tag'
 | 
			
		||||
        default: '4.13.0'
 | 
			
		||||
        default: '4.10.3'
 | 
			
		||||
        required: true
 | 
			
		||||
        type: string
 | 
			
		||||
      docker_reference:
 | 
			
		||||
        description: 'wazuh-docker reference'
 | 
			
		||||
        default: 'v4.10.3'
 | 
			
		||||
        required: false
 | 
			
		||||
        type: string
 | 
			
		||||
      products:
 | 
			
		||||
@@ -80,7 +82,7 @@ on:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build-and-push:
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Print inputs
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								.github/workflows/push.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/push.yml
									
									
									
									
										vendored
									
									
								
							@@ -4,11 +4,11 @@ on: [pull_request]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build-docker-images:
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
    - name: Check out code
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
    - name: Install docker-compose
 | 
			
		||||
      run: |
 | 
			
		||||
@@ -61,12 +61,12 @@ jobs:
 | 
			
		||||
        GOSS_FILE: .github/.goss.yaml
 | 
			
		||||
 | 
			
		||||
  check-single-node:
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: build-docker-images
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
    - name: Check out code
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
    - name: Install docker-compose
 | 
			
		||||
      run: |
 | 
			
		||||
@@ -189,12 +189,12 @@ jobs:
 | 
			
		||||
      run: ./.github/single-node-log-check.sh
 | 
			
		||||
 | 
			
		||||
  check-multi-node:
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: build-docker-images
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
    - name: Check out code
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
    - name: Install docker-compose
 | 
			
		||||
      run: |
 | 
			
		||||
@@ -205,7 +205,12 @@ jobs:
 | 
			
		||||
      run: cat .env > $GITHUB_ENV
 | 
			
		||||
 | 
			
		||||
    - name: free disk space
 | 
			
		||||
      uses: ./.github/free-disk-space
 | 
			
		||||
      run: |
 | 
			
		||||
        sudo swapoff -a
 | 
			
		||||
        sudo rm -f /swapfile
 | 
			
		||||
        sudo apt clean
 | 
			
		||||
        docker rmi $(docker image ls -aq)
 | 
			
		||||
        df -h
 | 
			
		||||
 | 
			
		||||
    - name: Retrieve saved Wazuh dashboard Docker image
 | 
			
		||||
      uses: actions/download-artifact@v4
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								.github/workflows/trivy-dashboard.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/trivy-dashboard.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,7 +11,8 @@ on:
 | 
			
		||||
    - published
 | 
			
		||||
  pull_request:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
      - master
 | 
			
		||||
      - stable
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '34 2 * * 1'
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
@@ -26,10 +27,10 @@ jobs:
 | 
			
		||||
      security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
 | 
			
		||||
 | 
			
		||||
    name: Build images and upload Trivy results
 | 
			
		||||
    runs-on: "ubuntu-22.04"
 | 
			
		||||
    runs-on: "ubuntu-latest"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout code
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Installing dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								.github/workflows/trivy-indexer.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/trivy-indexer.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,7 +11,8 @@ on:
 | 
			
		||||
    - published
 | 
			
		||||
  pull_request:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
      - master
 | 
			
		||||
      - stable
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '34 2 * * 1'
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
@@ -26,10 +27,10 @@ jobs:
 | 
			
		||||
      security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
 | 
			
		||||
 | 
			
		||||
    name: Build images and upload Trivy results
 | 
			
		||||
    runs-on: "ubuntu-22.04"
 | 
			
		||||
    runs-on: "ubuntu-latest"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout code
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Installing dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								.github/workflows/trivy-manager.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/trivy-manager.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,7 +11,8 @@ on:
 | 
			
		||||
    - published
 | 
			
		||||
  pull_request:
 | 
			
		||||
    branches:
 | 
			
		||||
      - main
 | 
			
		||||
      - master
 | 
			
		||||
      - stable
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: '34 2 * * 1'
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
@@ -26,10 +27,10 @@ jobs:
 | 
			
		||||
      security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
 | 
			
		||||
 | 
			
		||||
    name: Build images and upload Trivy results
 | 
			
		||||
    runs-on: "ubuntu-22.04"
 | 
			
		||||
    runs-on: "ubuntu-latest"
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout code
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Installing dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,4 @@
 | 
			
		||||
single-node/config/wazuh_indexer_ssl_certs/*.pem
 | 
			
		||||
single-node/config/wazuh_indexer_ssl_certs/*.key
 | 
			
		||||
multi-node/config/wazuh_indexer_ssl_certs/*.pem
 | 
			
		||||
multi-node/config/wazuh_indexer_ssl_certs/*.key
 | 
			
		||||
*.log
 | 
			
		||||
multi-node/config/wazuh_indexer_ssl_certs/*.key
 | 
			
		||||
							
								
								
									
										99
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -1,26 +1,7 @@
 | 
			
		||||
# Change Log
 | 
			
		||||
All notable changes to this project will be documented in this file.
 | 
			
		||||
 | 
			
		||||
## [4.13.0]
 | 
			
		||||
 | 
			
		||||
### Added
 | 
			
		||||
 | 
			
		||||
- Added repository_bumper script. ([#1781](https://github.com/wazuh/wazuh-docker/pull/1781))
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
- Modify wazuh-keystore use ([#1750](https://github.com/wazuh/wazuh-docker/pull/1750)) \- (wazuh-keystore)
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
 | 
			
		||||
- None
 | 
			
		||||
 | 
			
		||||
### 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.2]
 | 
			
		||||
## [4.10.3]
 | 
			
		||||
 | 
			
		||||
### Added
 | 
			
		||||
 | 
			
		||||
@@ -38,8 +19,7 @@ All notable changes to this project will be documented in this file.
 | 
			
		||||
 | 
			
		||||
- None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## [4.12.1]
 | 
			
		||||
## [4.10.2]
 | 
			
		||||
 | 
			
		||||
### Added
 | 
			
		||||
 | 
			
		||||
@@ -51,80 +31,7 @@ All notable changes to this project will be documented in this file.
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
 | 
			
		||||
- None
 | 
			
		||||
 | 
			
		||||
### Deleted
 | 
			
		||||
 | 
			
		||||
- None
 | 
			
		||||
 | 
			
		||||
## [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))
 | 
			
		||||
- Updated docker/login-action module ([#1837](https://github.com/wazuh/wazuh-docker/pull/1837))
 | 
			
		||||
 | 
			
		||||
### Deleted
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -165,13 +165,14 @@ WAZUH_MONITORING_REPLICAS=0         ##
 | 
			
		||||
    │   ├── docker-compose.yml
 | 
			
		||||
    │   ├── generate-indexer-certs.yml
 | 
			
		||||
    │   └── README.md
 | 
			
		||||
    └── VERSION.json
 | 
			
		||||
    └── VERSION
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Branches
 | 
			
		||||
 | 
			
		||||
* `main` branch contains the latest code, be aware of possible bugs on this branch.
 | 
			
		||||
* `master` branch contains the latest code, be aware of possible bugs on this branch.
 | 
			
		||||
* `stable` branch corresponds to the last Wazuh stable version.
 | 
			
		||||
 | 
			
		||||
## Compatibility Matrix
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
    "version": "4.13.0",
 | 
			
		||||
    "stage": "alpha0"
 | 
			
		||||
}
 | 
			
		||||
@@ -13,7 +13,7 @@ This script initializes the environment variables needed to build each of the im
 | 
			
		||||
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ build-docker-images/build-images.sh -v 4.13.0
 | 
			
		||||
$ build-docker-images/build-images.sh -v 4.10.3
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
To get all the available script options use the -h or --help option:
 | 
			
		||||
@@ -26,7 +26,7 @@ Usage: build-docker-images/build-images.sh [OPTIONS]
 | 
			
		||||
    -d, --dev <ref>              [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
 | 
			
		||||
    -f, --filebeat-module <ref>  [Optional] Set Filebeat module version. By default 0.4.
 | 
			
		||||
    -r, --revision <rev>         [Optional] Package revision. By default 1
 | 
			
		||||
    -v, --version <ver>          [Optional] Set the Wazuh version should be builded. By default, 4.13.0.
 | 
			
		||||
    -v, --version <ver>          [Optional] Set the Wazuh version should be builded. By default, 4.10.3.
 | 
			
		||||
    -h, --help                   Show this help.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
WAZUH_IMAGE_VERSION=4.13.0
 | 
			
		||||
WAZUH_IMAGE_VERSION=4.10.3
 | 
			
		||||
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
 | 
			
		||||
WAZUH_TAG_REVISION=1
 | 
			
		||||
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')
 | 
			
		||||
@@ -12,7 +12,7 @@ IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
 | 
			
		||||
# License (version 2) as published by the FSF - Free Software
 | 
			
		||||
# Foundation.
 | 
			
		||||
 | 
			
		||||
WAZUH_IMAGE_VERSION="4.13.0"
 | 
			
		||||
WAZUH_IMAGE_VERSION="4.10.3"
 | 
			
		||||
WAZUH_TAG_REVISION="1"
 | 
			
		||||
WAZUH_DEV_STAGE=""
 | 
			
		||||
FILEBEAT_MODULE_VERSION="0.4"
 | 
			
		||||
@@ -53,8 +53,13 @@ build() {
 | 
			
		||||
        elif curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
 | 
			
		||||
            FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}"
 | 
			
		||||
        else
 | 
			
		||||
            echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
 | 
			
		||||
            clean 1
 | 
			
		||||
            WAZUH_MASTER_VERSION="$(curl -s https://raw.githubusercontent.com/wazuh/wazuh/master/src/VERSION | sed -e 's/v//g')"
 | 
			
		||||
            if [ "${FILEBEAT_TEMPLATE_BRANCH}" == "${WAZUH_MASTER_VERSION}" ]; then
 | 
			
		||||
                FILEBEAT_TEMPLATE_BRANCH="master"
 | 
			
		||||
            else
 | 
			
		||||
                echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
 | 
			
		||||
                clean 1
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,8 @@ export CONFIG_DIR=${INSTALLATION_DIR}/config
 | 
			
		||||
 | 
			
		||||
## Variables
 | 
			
		||||
CERT_TOOL=wazuh-certs-tool.sh
 | 
			
		||||
PACKAGES_URL=https://packages.wazuh.com/4.13/
 | 
			
		||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
 | 
			
		||||
PACKAGES_URL=https://packages.wazuh.com/4.10/
 | 
			
		||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.10/
 | 
			
		||||
 | 
			
		||||
## Check if the cert tool exists in S3 buckets
 | 
			
		||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk  '{print $2}')
 | 
			
		||||
 
 | 
			
		||||
@@ -22,8 +22,8 @@ export REPO_DIR=/unattended_installer
 | 
			
		||||
## Variables
 | 
			
		||||
CERT_TOOL=wazuh-certs-tool.sh
 | 
			
		||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
 | 
			
		||||
PACKAGES_URL=https://packages.wazuh.com/4.13/
 | 
			
		||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
 | 
			
		||||
PACKAGES_URL=https://packages.wazuh.com/4.10/
 | 
			
		||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.10/
 | 
			
		||||
 | 
			
		||||
## Check if the cert tool exists in S3 buckets
 | 
			
		||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk  '{print $2}')
 | 
			
		||||
 
 | 
			
		||||
@@ -47,8 +47,12 @@ mount_permanent_data() {
 | 
			
		||||
    if find ${permanent_dir} -mindepth 1 | read; then
 | 
			
		||||
      print "The path ${permanent_dir} is already mounted"
 | 
			
		||||
    else
 | 
			
		||||
      if find ${data_tmp} -mindepth 1 | read; then
 | 
			
		||||
        print "Installing ${permanent_dir}"
 | 
			
		||||
        exec_cmd "cp -ar ${data_tmp}. ${permanent_dir}"
 | 
			
		||||
        exec_cmd "cp -a ${data_tmp}. ${permanent_dir}"
 | 
			
		||||
      else
 | 
			
		||||
        print "The path ${permanent_dir} is empty, skipped"
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -115,8 +115,8 @@ function_entrypoint_scripts() {
 | 
			
		||||
function_configure_vulnerability_detection() {
 | 
			
		||||
if [ "$INDEXER_PASSWORD" != "" ]; then
 | 
			
		||||
  >&2 echo "Configuring password."
 | 
			
		||||
    echo "$INDEXER_USERNAME" | /var/ossec/bin/wazuh-keystore -f indexer -k username
 | 
			
		||||
    echo "$INDEXER_PASSWORD" | /var/ossec/bin/wazuh-keystore -f indexer -k password
 | 
			
		||||
  /var/ossec/bin/wazuh-keystore -f indexer -k username -v $INDEXER_USERNAME
 | 
			
		||||
  /var/ossec/bin/wazuh-keystore -f indexer -k password -v $INDEXER_PASSWORD
 | 
			
		||||
fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -97,6 +97,7 @@ PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/exceptions.py"
 | 
			
		||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/buckets/bucket.py"
 | 
			
		||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/buckets/access_logs.py"
 | 
			
		||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/pubsub/subscriber.py"
 | 
			
		||||
PERMANENT_DATA_EXCP[((i++))]="/etc/filebeat/filebeat.yml"
 | 
			
		||||
export PERMANENT_DATA_EXCP
 | 
			
		||||
 | 
			
		||||
# Files mounted in a volume that should be deleted
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,11 @@ mkdir ${PERMANENT_PATH}
 | 
			
		||||
for permanent_dir in "${PERMANENT_DATA[@]}"; do
 | 
			
		||||
  # Create the directory for the permanent file if it does not exist
 | 
			
		||||
  DIR=$(dirname "${permanent_dir}")
 | 
			
		||||
  mkdir -p ${PERMANENT_PATH}${DIR}
 | 
			
		||||
  cp -ar ${permanent_dir} ${PERMANENT_PATH}${DIR}
 | 
			
		||||
  if [ ! -e ${PERMANENT_PATH}${DIR}  ]
 | 
			
		||||
  then
 | 
			
		||||
    mkdir -p ${PERMANENT_PATH}${DIR}
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  mv ${permanent_dir} ${PERMANENT_PATH}${permanent_dir}
 | 
			
		||||
 | 
			
		||||
done
 | 
			
		||||
 
 | 
			
		||||
@@ -8,8 +8,8 @@
 | 
			
		||||
## Variables
 | 
			
		||||
CERT_TOOL=wazuh-certs-tool.sh
 | 
			
		||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
 | 
			
		||||
PACKAGES_URL=https://packages.wazuh.com/4.13/
 | 
			
		||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
 | 
			
		||||
PACKAGES_URL=https://packages.wazuh.com/4.10/
 | 
			
		||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.10/
 | 
			
		||||
 | 
			
		||||
## Check if the cert tool exists in S3 buckets
 | 
			
		||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk  '{print $2}')
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ version: '3.7'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  wazuh.master:
 | 
			
		||||
    image: wazuh/wazuh-manager:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-manager:4.10.3
 | 
			
		||||
    hostname: wazuh.master
 | 
			
		||||
    restart: always
 | 
			
		||||
    ulimits:
 | 
			
		||||
@@ -45,7 +45,7 @@ services:
 | 
			
		||||
      - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
 | 
			
		||||
 | 
			
		||||
  wazuh.worker:
 | 
			
		||||
    image: wazuh/wazuh-manager:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-manager:4.10.3
 | 
			
		||||
    hostname: wazuh.worker
 | 
			
		||||
    restart: always
 | 
			
		||||
    ulimits:
 | 
			
		||||
@@ -81,7 +81,7 @@ services:
 | 
			
		||||
      - ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf
 | 
			
		||||
 | 
			
		||||
  wazuh1.indexer:
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.10.3
 | 
			
		||||
    hostname: wazuh1.indexer
 | 
			
		||||
    restart: always
 | 
			
		||||
    ports:
 | 
			
		||||
@@ -107,7 +107,7 @@ services:
 | 
			
		||||
      - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
 | 
			
		||||
 | 
			
		||||
  wazuh2.indexer:
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.10.3
 | 
			
		||||
    hostname: wazuh2.indexer
 | 
			
		||||
    restart: always
 | 
			
		||||
    environment:
 | 
			
		||||
@@ -129,7 +129,7 @@ services:
 | 
			
		||||
      - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
 | 
			
		||||
 | 
			
		||||
  wazuh3.indexer:
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.10.3
 | 
			
		||||
    hostname: wazuh3.indexer
 | 
			
		||||
    restart: always
 | 
			
		||||
    environment:
 | 
			
		||||
@@ -151,7 +151,7 @@ services:
 | 
			
		||||
      - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
 | 
			
		||||
 | 
			
		||||
  wazuh.dashboard:
 | 
			
		||||
    image: wazuh/wazuh-dashboard:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-dashboard:4.10.3
 | 
			
		||||
    hostname: wazuh.dashboard
 | 
			
		||||
    restart: always
 | 
			
		||||
    ports:
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ version: '3.7'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  wazuh.manager:
 | 
			
		||||
    image: wazuh/wazuh-manager:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-manager:4.10.3
 | 
			
		||||
    hostname: wazuh.manager
 | 
			
		||||
    restart: always
 | 
			
		||||
    ulimits:
 | 
			
		||||
@@ -46,7 +46,7 @@ services:
 | 
			
		||||
      - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
 | 
			
		||||
 | 
			
		||||
  wazuh.indexer:
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-indexer:4.10.3
 | 
			
		||||
    hostname: wazuh.indexer
 | 
			
		||||
    restart: always
 | 
			
		||||
    ports:
 | 
			
		||||
@@ -71,7 +71,7 @@ services:
 | 
			
		||||
      - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
 | 
			
		||||
 | 
			
		||||
  wazuh.dashboard:
 | 
			
		||||
    image: wazuh/wazuh-dashboard:4.13.0
 | 
			
		||||
    image: wazuh/wazuh-dashboard:4.10.3
 | 
			
		||||
    hostname: wazuh.dashboard
 | 
			
		||||
    restart: always
 | 
			
		||||
    ports:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,150 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# This script is used to update the version of a repository in the specified files.
 | 
			
		||||
# It takes a version number as an argument and updates the version in the specified files.
 | 
			
		||||
# Usage: ./repository_bumper.sh <version>
 | 
			
		||||
 | 
			
		||||
# Global variables
 | 
			
		||||
DIR=$(dirname "$(pwd)")
 | 
			
		||||
LOG_FILE="${DIR}/tools/repository_bumper_$(date +"%Y-%m-%d_%H-%M-%S-%3N").log"
 | 
			
		||||
VERSION=""
 | 
			
		||||
STAGE=""
 | 
			
		||||
FILES_EDITED=()
 | 
			
		||||
 | 
			
		||||
get_old_version_and_stage() {
 | 
			
		||||
    local VERSION_FILE="${DIR}/VERSION.json"
 | 
			
		||||
 | 
			
		||||
    OLD_VERSION=$(jq -r '.version' "${VERSION_FILE}")
 | 
			
		||||
    OLD_STAGE=$(jq -r '.stage' "${VERSION_FILE}")
 | 
			
		||||
    echo "Old version: ${OLD_VERSION}" | tee -a "${LOG_FILE}"
 | 
			
		||||
    echo "Old stage: ${OLD_STAGE}" | tee -a "${LOG_FILE}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
grep_command() {
 | 
			
		||||
    # This function is used to search for a specific string in the specified directory.
 | 
			
		||||
    # It takes two arguments: the string to search for and the directory to search in.
 | 
			
		||||
    # Usage: grep_command <string> <directory>
 | 
			
		||||
    eval grep -Rl "${1}" "${2}" --exclude-dir=".git" --exclude="repository_bumper_*.log" --exclude="CHANGELOG.md" "${3}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
update_version_in_files() {
 | 
			
		||||
 | 
			
		||||
    local OLD_MAYOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 1)"
 | 
			
		||||
    local OLD_MINOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 2)"
 | 
			
		||||
    local OLD_PATCH="$(echo "${OLD_VERSION}" | cut -d '.' -f 3)"
 | 
			
		||||
    local NEW_MAYOR="$(echo "${VERSION}" | cut -d '.' -f 1)"
 | 
			
		||||
    local NEW_MINOR="$(echo "${VERSION}" | cut -d '.' -f 2)"
 | 
			
		||||
    local NEW_PATCH="$(echo "${VERSION}" | cut -d '.' -f 3)"
 | 
			
		||||
    m_m_p_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}" "${DIR}") )
 | 
			
		||||
    for file in "${m_m_p_files[@]}"; do
 | 
			
		||||
        sed -i "s/\bv${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}\b/v${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g; s/\b${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}"
 | 
			
		||||
        if [[ $(git diff --name-only "${file}") ]]; then
 | 
			
		||||
            FILES_EDITED+=("${file}")
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    m_m_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}" "${DIR}") )
 | 
			
		||||
    for file in "${m_m_files[@]}"; do
 | 
			
		||||
        sed -i -E "/[0-9]+\.[0-9]+\.[0-9]+/! s/(^|[^0-9.])(${OLD_MAYOR}\.${OLD_MINOR})([^0-9.]|$)/\1${NEW_MAYOR}.${NEW_MINOR}\3/g" "$file"
 | 
			
		||||
        if [[ $(git diff --name-only "${file}") ]]; then
 | 
			
		||||
            FILES_EDITED+=("${file}")
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    m_x_files=( $(grep_command "${OLD_MAYOR}\.x" "${DIR}") )
 | 
			
		||||
    for file in "${m_x_files[@]}"; do
 | 
			
		||||
        sed -i "s/\b${OLD_MAYOR}\.x\b/${NEW_MAYOR}\.x/g" "${file}"
 | 
			
		||||
        if [[ $(git diff --name-only "${file}") ]]; then
 | 
			
		||||
            FILES_EDITED+=("${file}")
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    if ! sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${DIR}/CHANGELOG.md"; then
 | 
			
		||||
        echo "Error: Failed to update CHANGELOG.md" | tee -a "${LOG_FILE}"
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ $(git diff --name-only "${DIR}/CHANGELOG.md") ]]; then
 | 
			
		||||
        FILES_EDITED+=("${DIR}/CHANGELOG.md")
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
update_stage_in_files() {
 | 
			
		||||
    local OLD_STAGE="$(echo "${OLD_STAGE}")"
 | 
			
		||||
    files=( $(grep_command "${OLD_STAGE}" "${DIR}" --exclude="README.md") )
 | 
			
		||||
    for file in "${files[@]}"; do
 | 
			
		||||
        sed -i "s/${OLD_STAGE}/${STAGE}/g" "${file}"
 | 
			
		||||
        if [[ $(git diff --name-only "${file}") ]]; then
 | 
			
		||||
            FILES_EDITED+=("${file}")
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
 | 
			
		||||
    echo "Starting repository version bumping process..." | tee -a "${LOG_FILE}"
 | 
			
		||||
    echo "Log file: ${LOG_FILE}"
 | 
			
		||||
    # Parse arguments
 | 
			
		||||
    while [[ $# -gt 0 ]]; do
 | 
			
		||||
        case $1 in
 | 
			
		||||
            --version)
 | 
			
		||||
                VERSION="$2"
 | 
			
		||||
                shift 2
 | 
			
		||||
                ;;
 | 
			
		||||
            --stage)
 | 
			
		||||
                STAGE="$2"
 | 
			
		||||
                shift 2
 | 
			
		||||
                ;;
 | 
			
		||||
            *)
 | 
			
		||||
                echo "Unknown argument: $1"
 | 
			
		||||
                exit 1
 | 
			
		||||
                ;;
 | 
			
		||||
        esac
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    # Validate arguments
 | 
			
		||||
    if [[ -z "$VERSION" ]]; then
 | 
			
		||||
        echo "Error: --version argument is required." | tee -a "${LOG_FILE}"
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ -z "$STAGE" ]]; then
 | 
			
		||||
        echo "Error: --stage argument is required." | tee -a "${LOG_FILE}"
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Validate if version is in the correct format
 | 
			
		||||
    if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
 | 
			
		||||
        echo "Error: Version must be in the format X.Y.Z (e.g., 1.2.3)." | tee -a "${LOG_FILE}"
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Validate if stage is in the correct format
 | 
			
		||||
    STAGE=$(echo "$STAGE" | tr '[:upper:]' '[:lower:]')
 | 
			
		||||
    if ! [[ "$STAGE" =~ ^(alpha[0-9]*|beta[0-9]*|rc[0-9]*|stable)$ ]]; then
 | 
			
		||||
        echo "Error: Stage must be one of the following examples: alpha1, beta1, rc1, stable." | tee -a "${LOG_FILE}"
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Get old version and stage
 | 
			
		||||
    get_old_version_and_stage
 | 
			
		||||
 | 
			
		||||
    if [[ "$OLD_VERSION" == "$VERSION" && "$OLD_STAGE" == "$STAGE" ]]; then
 | 
			
		||||
        echo "Version and stage are already up to date." | tee -a "${LOG_FILE}"
 | 
			
		||||
        echo "No changes needed." | tee -a "${LOG_FILE}"
 | 
			
		||||
        exit 0
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "$OLD_VERSION" != "$VERSION" ]]; then
 | 
			
		||||
        echo "Updating version from $OLD_VERSION to $VERSION" | tee -a "${LOG_FILE}"
 | 
			
		||||
        update_version_in_files "$VERSION"
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "$OLD_STAGE" != "$STAGE" ]]; then
 | 
			
		||||
        echo "Updating stage from $OLD_STAGE to $STAGE" | tee -a "${LOG_FILE}"
 | 
			
		||||
        update_stage_in_files "$STAGE"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    echo "The following files were edited:" | tee -a "${LOG_FILE}"
 | 
			
		||||
    for file in $(printf "%s\n" "${FILES_EDITED[@]}" | sort -u); do
 | 
			
		||||
        echo "${file}" | tee -a "${LOG_FILE}"
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    echo "Version and stage updated successfully." | tee -a "${LOG_FILE}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Call the main method with all arguments
 | 
			
		||||
main "$@"
 | 
			
		||||
		Reference in New Issue
	
	Block a user