language: minimal services: docker env: - DOCKER_COMPOSE_VERSION=1.20.1 before_install: - sudo apt-get update - sudo apt-get install -y expect jq install: # Install Docker Compose - curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o "$HOME/bin/docker-compose" - chmod +x "$HOME/bin/docker-compose" - docker-compose --version before_script: # Build images - docker-compose build # Use built-in users with passwords set by 'elasticsearch-setup-passwords.exp' - sed -i -e 's/\(elasticsearch.username:\) elastic/\1 kibana_system/g' -e 's/\(elasticsearch.password:\) changeme/\1 testpasswd/g' kibana/config/kibana.yml - sed -i -e 's/\(xpack.monitoring.elasticsearch.username:\) elastic/\1 logstash_system/g' -e 's/\(xpack.monitoring.elasticsearch.password:\) changeme/\1 testpasswd/g' logstash/config/logstash.yml - sed -i 's/\(password =>\) "changeme"/\1 "testpasswd"/g' logstash/pipeline/logstash.conf - sed -i -e 's/\(elasticsearch.password:\) changeme/\1 testpasswd/g' -e 's/\(secret_management.encryption_keys:\)/\1 [test-encrypt]/g' extensions/enterprise-search/config/enterprise-search.yml - sed -i 's/\(password:\) changeme/\1 testpasswd/g' extensions/apm-server/config/apm-server.yml script: # Core Elastic Stack - docker-compose up -d elasticsearch - sleep 30 - .travis/elasticsearch-setup-passwords.exp - docker-compose up -d - .travis/run-tests-core.sh - docker-compose ps - docker-compose logs elasticsearch - docker-compose logs kibana - docker-compose logs logstash - docker-compose stop logstash kibana # Extensions # Enterprise Search - "sed -i '$ a xpack.security.authc.api_key.enabled: true' elasticsearch/config/elasticsearch.yml" - docker-compose restart elasticsearch - docker-compose -f docker-compose.yml -f extensions/enterprise-search/enterprise-search-compose.yml up -d enterprise-search - sleep 30 - .travis/run-tests-enterprise-search.sh - docker-compose -f docker-compose.yml -f extensions/enterprise-search/enterprise-search-compose.yml ps - docker-compose -f docker-compose.yml -f extensions/enterprise-search/enterprise-search-compose.yml logs enterprise-search - docker-compose -f docker-compose.yml -f extensions/enterprise-search/enterprise-search-compose.yml stop enterprise-search - "sed -i '/xpack.security.authc.api_key.enabled: true/d' elasticsearch/config/elasticsearch.yml" - docker-compose restart elasticsearch # APM Server - docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml up -d apm-server - .travis/run-tests-apm-server.sh - docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml ps - docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml logs apm-server - docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml stop apm-server # Tear down - >- docker-compose -f docker-compose.yml -f extensions/enterprise-search/enterprise-search-compose.yml -f extensions/apm-server/apm-server-compose.yml down -v # Swarm - docker swarm init - docker stack deploy -c ./docker-stack.yml elk - docker service scale elk_kibana=0 --detach=false - docker service scale elk_logstash=0 --detach=false - sleep 40 - .travis/elasticsearch-setup-passwords.exp swarm - docker service scale elk_kibana=1 --detach=false - docker service scale elk_logstash=1 --detach=false - .travis/run-tests-core.sh swarm - docker stack services elk - docker service logs elk_elasticsearch - docker service logs elk_kibana - docker service logs elk_logstash - docker stack rm elk