Skip to content

Skip shard routing tests on OpenSearch < 2.2.0 with security #343

Skip shard routing tests on OpenSearch < 2.2.0 with security

Skip shard routing tests on OpenSearch < 2.2.0 with security #343

name: Integration for Compatibility
on: [push, pull_request]
env:
OPENSEARCH_NODE_COUNT: 3
jobs:
integ-test-compat:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.entry.opensearch_version == 'latest' }}
strategy:
fail-fast: false
matrix:
secured: ["true", "false"]
entry:
- { opensearch_version: 1.3.20 }
- { opensearch_version: 2.0.1 }
- { opensearch_version: 2.1.0 }
- { opensearch_version: 2.2.1 }
- { opensearch_version: 2.3.0 }
- { opensearch_version: 2.4.1 }
- { opensearch_version: 2.5.0 }
- { opensearch_version: 2.6.0 }
- { opensearch_version: 2.7.0 }
- { opensearch_version: 2.8.0 }
- { opensearch_version: 2.9.0 }
- { opensearch_version: 2.10.0 }
- { opensearch_version: 2.11.1 }
- { opensearch_version: 2.12.0 }
- { opensearch_version: 2.13.0 }
- { opensearch_version: 2.14.0 }
- { opensearch_version: 2.15.0 }
- { opensearch_version: 2.16.0 }
- { opensearch_version: 2.17.1 }
- { opensearch_version: 2.18.0 }
- { opensearch_version: 2.19.5 }
- { opensearch_version: 3.0.0 }
- { opensearch_version: 3.1.0 }
- { opensearch_version: 3.2.0 }
- { opensearch_version: 3.3.2 }
- { opensearch_version: 3.4.0 }
- { opensearch_version: 3.5.0 }
- { opensearch_version: 3.6.0 }
- { opensearch_version: latest }
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with: { go-version-file: 'go.mod' }
- run: go version
- name: Increase system limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Launch OpenSearch cluster
run: |
export OPENSEARCH_VERSION=${{ matrix.entry.opensearch_version }}
export SECURE_INTEGRATION=${{ matrix.secured }}
make cluster.clean cluster.build cluster.start
if [ "${SECURE_INTEGRATION}" = "true" ]; then
CURL_URL="https://localhost:9200"
# Password changed in OpenSearch 2.12.0
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
if [ $(version ${OPENSEARCH_VERSION}) -ge $(version "2.12.0") ] || [ "${OPENSEARCH_VERSION}" = "latest" ]; then
CURL_OPTS="-sfku admin:myStrongPassword123!"
else
CURL_OPTS="-sfku admin:admin"
fi
else
CURL_URL="http://localhost:9200"
CURL_OPTS="-sf"
fi
echo "=====> Waiting for OpenSearch ${OPENSEARCH_VERSION} (secure=${SECURE_INTEGRATION}) to be ready (max 125s)..."
for attempt in $(seq 25); do
sleep 5
if curl ${CURL_OPTS} ${CURL_URL} > /dev/null 2>&1; then
echo "=====> Cluster ready after $((attempt * 5))s"
curl -s ${CURL_OPTS} ${CURL_URL} | jq -r '.version.number // "unknown"' | xargs echo "OpenSearch version:"
break
fi
if [ $attempt -eq 25 ]; then
echo "=====> ERROR: Cluster failed to start after 125s"
echo ""
echo "=====> Container status:"
docker compose --project-directory .ci/opensearch ps
echo ""
echo "=====> Node 1 logs (last 50 lines):"
docker compose --project-directory .ci/opensearch logs --tail=50 opensearch-node1
echo ""
echo "=====> Node 2 logs (last 50 lines):"
docker compose --project-directory .ci/opensearch logs --tail=50 opensearch-node2
echo ""
echo "=====> Node 3 logs (last 50 lines):"
docker compose --project-directory .ci/opensearch logs --tail=50 opensearch-node3
exit 1
fi
echo "=====> Attempt $attempt/25 - waiting..."
done
- name: Integration test
run: |
export OPENSEARCH_VERSION=${{ matrix.entry.opensearch_version }}
export SECURE_INTEGRATION=${{ matrix.secured }}
make cluster.get-cert test-integ-core test-integ-plugins race=true
- name: Stop the OpenSearch cluster
run: |
make cluster.stop