Skip to content

Conversation

@tobio
Copy link
Member

@tobio tobio commented Oct 22, 2025

Fixes #1309

Moves the plain docker run configuration from the Makefile to a Docker compose based setup. The old method was unreliable within Buildkite runners, presumably there's some timing issue there which we could track down, but Compose allows us to define service health dependencies explicitly. Buildkite runs for this branch are available here

The same Make targets continue to work as expected, though we can now much more easily execute acceptance tests variations:

  • Testing TLS terminated Kibana is available via USE_TLS=1 make docker-testacc. The other make targets respect this variable, so bringing up a TLS terminated environment for manual testing is simplified.
  • Testing Elasticsearch bearer tokens is available via make docker-testacc-with-token.

@tobio tobio requested review from Copilot and nick-benoit October 22, 2025 07:15
@tobio tobio self-assigned this Oct 22, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR migrates the local development environment from standalone docker run commands to a Docker Compose-based setup, addressing reliability issues in CI/CD pipelines. The migration introduces explicit service health dependencies and supports testing variations including TLS-terminated Kibana and Elasticsearch bearer token authentication.

Key Changes:

  • Replaced manual Docker container orchestration with Docker Compose configurations
  • Added support for TLS testing via USE_TLS=1 environment variable
  • Simplified acceptance test execution through compose profiles

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
docker-compose.yml New base compose configuration defining elasticsearch, kibana, fleet services and test profiles
docker-compose.tls.yml New TLS variant extending base configuration with certificate generation and HTTPS setup
Makefile Simplified targets to use docker compose commands, removed manual retry/health check logic
.env New environment variables file centralizing configuration for compose services
.buildkite/scripts/update-kibana-client.sh Removed manual sleep wait, relying on compose health checks
internal/elasticsearch/logstash/pipeline_test.go Fixed pipeline ID generation to meet API requirements

Copy link
Contributor

@nick-benoit nick-benoit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@tobio tobio merged commit 574fcd2 into main Oct 22, 2025
54 checks passed
@tobio tobio deleted the docker-compose-minimal branch October 22, 2025 23:30
tobio added a commit that referenced this pull request Oct 23, 2025
* origin/main:
  Add resource to manage ML anomaly detection jobs (#1329)
  chore(deps): pin alpine/mkcert docker tag to a8f4f5a (#1389)
  Bump version in Makefile (#1388)
  Update changelog for 0.11.19 and 0.12.1 (#1387)
  Security Detection Rule schema validation improvements (#1381)
  Remove connector client generation make task (#1386)
  Fixup changelog link
  Move local environment to docker compose managed services (#1384)
  chore(deps): update golang:1.25.3 docker digest to 8c945d3 (#1385)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define a Buildkite pipeline to update the Kibana OpenAPI spec

3 participants