Skip to content

[backport-kubernetes-1.39] Sync CI configuration with main branch - #20542

Merged
mrodm merged 10 commits into
elastic:backport-kubernetes-1.39from
mrodm:sync-ci-configuration-kubernetes-1.39
Sep 9, 2026
Merged

mrodm merged 10 commits into
elastic:backport-kubernetes-1.39from
mrodm:sync-ci-configuration-kubernetes-1.39

Conversation

@mrodm

@mrodm mrodm commented Aug 5, 2026 •

Copy link
Copy Markdown
Collaborator

TL;DR

Syncs .buildkite and .github CI configuration from main to the
backport-kubernetes-1.39 backport branch.

This brings automated backport workflows, new CI scripts, Go tooling, and
GitHub Actions that only work when they are present on the target branch itself.

Proposed commit message

Sync CI configuration with main branch for backport-kubernetes-1.39.

Keep CI pipelines, GitHub Actions, and tooling consistent between active backport
branches and `main`, so that automated backport workflows and tooling improvements
land on all supported branches.

WHY:
GitHub Actions resolves workflow files from the branch where the event occurs,
not from `main`. Backport-branch workflows (changelog sync, post-backport
checklist, owner checks, auto-backport) must be present on the backport branch
itself to fire correctly.

Author's Checklist

  • CI configuration files have been synced verbatim from main.

Related issues


This PR was generated with the assistance of Claude (claude-sonnet-4-6).

@mrodm mrodm self-assigned this Aug 5, 2026
@elastic-vault-github-plugin-prod

elastic-vault-github-plugin-prod Bot commented Aug 5, 2026 •

Copy link
Copy Markdown
Contributor

🚀 Benchmarks report

To see the full report comment with /test benchmark fullreport

@botelastic

botelastic Bot commented Sep 4, 2026

Copy link
Copy Markdown

Hi! We just realized that we haven't looked into this PR in a while. We're sorry! We're labeling this issue as Stale to make it hit our filters and make sure we get back to it as soon as possible. In the meantime, it'd be extremely helpful if you could take a look at it as well and confirm its relevance. A simple comment with a nice emoji will be enough :+1. Thank you for your contribution!

@botelastic botelastic Bot added the Stalled label Sep 4, 2026
This licenses folder is used by the environment variable
ELASTIC_PACKAGE_REPOSITORY_LICENSE, and it is the same in this branch
as the file present in the root of the repository LICENSE.txt
This parameter was not available until elastic-package v0.96.0
@mrodm
mrodm force-pushed the sync-ci-configuration-kubernetes-1.39 branch from c3accea to 5cea34f Compare September 8, 2026 08:19
@botelastic botelastic Bot removed the Stalled label Sep 8, 2026
@mrodm
mrodm marked this pull request as ready for review September 8, 2026 10:35
@mrodm
mrodm requested a review from a team as a code owner September 8, 2026 10:35
Copilot AI lite review requested due to automatic review settings September 8, 2026 10:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

There are confirmed usability/behavior issues in newly added shell tooling (help exit codes, misleading usage/docs, and a couple of malformed echo lines) that should be fixed before relying on these scripts in CI automation.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Syncs CI/configuration and related tooling from main into the backport-kubernetes-1.39 branch so backport-branch automation (GitHub Actions + Buildkite) and associated helper tools exist on the target branch where events occur.

Changes:

  • Adds/syncs GitHub Actions workflows (docs validation, Vale lint/report, backport automation triggers, sweepers, Updatecli, etc.) and a composite action for syncing backport changelogs.
  • Updates Buildkite pipelines + scripts, including new script unit tests and patterns for determining when to run the full package test matrix.
  • Adds/updates Go-based CI tooling under dev/ and introduces a self-contained cmd/backport Go sub-module, plus Go module/tooling dependency updates.
File summaries
File Description
tools.go Add tool dependencies for mage and gotestsum under tools build tag.
go.mod Update Go dependencies (semver, ucfg, x/mod, yaml v3, gotestsum) to match main.
dev/scripts/README.md Document purpose/scope of dev/scripts/ and CI impact.
dev/scripts/get_release_commit.sh Add helper script to locate release commit for a package/version.
dev/scripts/backport_apply.sh Add wrapper script around backport apply for CI/local usage.
dev/packagenames/packagenames.go Add package-name uniqueness checker for CI tooling.
dev/packagenames/packagenames_test.go Unit tests for package-name uniqueness checker.
dev/packagenames/testdata/no_duplicates/p1/manifest.yml Test fixture manifest (no-duplicates).
dev/packagenames/testdata/no_duplicates/p2/manifest.yml Test fixture manifest (no-duplicates).
dev/packagenames/testdata/duplicates/p1/manifest.yml Test fixture manifest (duplicates).
dev/packagenames/testdata/duplicates/p2/manifest.yml Test fixture manifest (duplicates).
dev/packagenames/testdata/invalid_manifests/p1/manifest.yml Test fixture manifest (invalid manifests handling).
dev/packagenames/testdata/invalid_manifests/p2/manifest.yml Test fixture manifest (invalid manifests handling).
dev/packagenames/testdata/nested/no_duplicates/p3/manifest.yml Test fixture manifest (nested packages, no-duplicates).
dev/packagenames/testdata/nested/no_duplicates/technology/p1/manifest.yml Test fixture manifest (nested packages, no-duplicates).
dev/packagenames/testdata/nested/no_duplicates/technology/p2/manifest.yml Test fixture manifest (nested packages, no-duplicates).
dev/packagenames/testdata/nested/duplicates/p3/manifest.yml Test fixture manifest (nested packages, duplicates).
dev/packagenames/testdata/nested/duplicates/technology/p1/manifest.yml Test fixture manifest (nested packages, duplicates).
dev/packagenames/testdata/nested/duplicates/technology/p2/manifest.yml Test fixture manifest (nested packages, duplicates).
dev/import-beats/variables.go Switch YAML parsing dependency to gopkg.in/yaml.v3.
dev/import-beats/variables_compact.go Switch YAML parsing dependency to gopkg.in/yaml.v3.
dev/import-beats/packages.go Switch YAML parsing to v3; formatting/idiomatic Go tweaks.
dev/import-beats/fields.go Switch YAML parsing to v3; minor comment/idiom cleanup.
dev/import-beats/elasticsearch.go Switch YAML parsing dependency to gopkg.in/yaml.v3.
dev/import-beats/README.md Fix grammar in documentation.
dev/gitutil/git.go Add small git command helper used by dev tooling.
dev/coverage/coverage.go Add Cobertura XML merge helper (ported from elastic-package).
dev/coverage/coverage_test.go Unit tests for coverage merge helper.
dev/coverage/testdata/test-coverage-1.xml Coverage merge test fixture.
dev/coverage/testdata/test-coverage-2.xml Coverage merge test fixture.
dev/coverage/testdata/test-coverage-3.xml Coverage merge test fixture.
dev/coverage/testdata/expected-test-coverage.xml Expected merged coverage fixture.
dev/codeowners/testdata/test_packages/package_1/manifest.yml Codeowners test fixture manifest.
dev/codeowners/testdata/test_packages/package_1/data_stream/stream_1/.keep Placeholder for stream fixture directory.
dev/codeowners/testdata/test_packages/package_1/data_stream/stream_2/.keep Placeholder for stream fixture directory.
dev/codeowners/testdata/nested_packages/package_top/manifest.yml Codeowners test fixture manifest (nested).
dev/codeowners/testdata/nested_packages/category/package_nested_1/manifest.yml Codeowners test fixture manifest (nested).
dev/codeowners/testdata/nested_packages/category/package_nested_2/manifest.yml Codeowners test fixture manifest (nested).
dev/codeowners/testdata/nested_packages/category/package_nested_1/data_stream/stream_1/.keep Placeholder for nested stream fixture directory.
dev/codeowners/testdata/nested_packages/category/package_nested_1/data_stream/stream_2/.keep Placeholder for nested stream fixture directory.
dev/codeowners/testdata/devexp/manifest.yml Update codeowners fixture manifest fields.
dev/codeowners/testdata/CODEOWNERS-streams-valid CODEOWNERS parsing test fixture (streams).
dev/codeowners/testdata/CODEOWNERS-streams-multiple-owners CODEOWNERS parsing test fixture (multiple owners).
dev/codeowners/testdata/CODEOWNERS-streams-missing-owners CODEOWNERS parsing test fixture (missing owners).
dev/codeowners/testdata/CODEOWNERS-owners-trailing-slash CODEOWNERS parsing test fixture (trailing slash).
dev/codeowners/testdata/CODEOWNERS-owners-packages-datastreams CODEOWNERS parsing test fixture (package/datastream owners).
dev/codeowners/testdata/CODEOWNERS-nested-valid CODEOWNERS parsing test fixture (nested).
dev/codeowners/testdata/CODEOWNERS-nested-streams-valid CODEOWNERS parsing test fixture (nested + streams).
dev/codeowners/testdata/CODEOWNERS-nested-streams-missing-owners CODEOWNERS parsing test fixture (nested missing owners).
dev/codeowners/testdata/CODEOWNERS-nested-missing-owner CODEOWNERS parsing test fixture (nested missing owner).
dev/codeowners/testdata/CODEOWNERS-nested-category-owner CODEOWNERS parsing test fixture (category owner).
dev/citools/packages.go Add package discovery helper used by mage/CI tooling.
dev/citools/packagemanifest.go Add manifest parsing/unpack helpers (go-ucfg based).
dev/citools/subscription.go Add subscription compatibility helper.
dev/citools/logsdb.go Add LogsDB support detection helpers based on kibana constraints.
dev/citools/logsdb_test.go Unit tests for LogsDB helpers.
dev/citools/kibana.go Add Kibana constraint parsing + stack support check.
dev/citools/kibana_test.go Unit tests for Kibana constraint helpers.
dev/citools/gomod.go Add helper to read a dependency version from go.mod.
dev/citools/gomod_test.go Unit tests for go.mod dependency-version helper.
cmd/backport/.go-version Pin Go toolchain version for cmd/backport sub-module.
cmd/backport/go.mod Add self-contained Go sub-module for backport automation tooling.
cmd/backport/tools.go Tool deps for backport sub-module (mage/goimports/go-licenser).
cmd/backport/magefile.go Mage tasks for building/testing/formatting the backport tool.
cmd/backport/gitutil/git.go Local git helper copy for self-contained backport sub-module.
cmd/backport/citools/packages.go Local citools package discovery copy for sub-module.
cmd/backport/citools/packagemanifest.go Local manifest parser copy for sub-module (plus Parse helper).
cmd/backport/backports/packages/detect.go Add package detection from changed file paths for backport flows.
cmd/backport/backports/owners/check.go Add owner mismatch checking for backport owner sync workflows.
cmd/backport/backports/owners/check_test.go Unit tests for owner mismatch helper (dedupTeams).
cmd/backport/backports/changelog/resolve.go Build package name→dir index for changelog tooling.
cmd/backport/backports/changelog/resolve_test.go Tests for package index builder.
cmd/backport/backports/changelog/extract.go Extract changelog entry from unified diff text.
cmd/backport/backports/changelog/extract_test.go Tests for changelog diff extraction.
cmd/backport/backports/changelog/insert.go Insert changelog entry maintaining semver-desc ordering.
cmd/backport/backports/changelog/insert_test.go Tests for changelog insertion logic.
cmd/backport/backports/changelog/update.go Update link: fields inside a specific changelog entry.
cmd/backport/backports/changelog/update_test.go Tests for changelog link updates.
cmd/backport/backports/changelog/sync_test.go Tests for TSV entry parsing and message/title building.
cmd/backport/backports/changelog/comment.go Post results back to PR via gh for changelog sync workflow.
.gitignore Ignore Claude state, scannerwork, and CI venv artifacts.
.github/workflows/validate-yaml-dashboards.requirements.txt Add pinned Python deps for dashboard YAML validation.
.github/workflows/validate-package-docs.yml Add docs-builder validation workflow for package docs changes.
.github/workflows/notify-package-docs-failure.yml Add PR comment notification workflow for docs validation failures.
.github/workflows/vale-lint.yml Add Vale lint workflow for user-facing content.
.github/workflows/vale-report.yml Add Vale report workflow to comment results via workflow_run.
.github/workflows/docs-build.yml Add reusable docs build workflow wiring.
.github/workflows/docs-deploy.yml Add reusable docs deploy workflow wiring.
.github/workflows/docs-preview-cleanup.yml Add reusable docs preview cleanup workflow wiring.
.github/workflows/ci-comment.yml Add PR comment workflow for external contributor Buildkite instructions.
.github/workflows/catalog-info.yml Validate Backstage catalog-info changes on PRs.
.github/workflows/bump-elastic-stack-version.yml Add Updatecli-driven stack version bump automation workflow.
.github/workflows/updatecli/values.d/scm.yml Updatecli values file for SCM owner/repo.
.github/workflows/updatecli/updatecli.d/sync-packages-to-bug-issue-template.yml Updatecli pipeline to sync package list into issue templates.
.github/workflows/updatecli/updatecli.d/bump-latest-9x-snapshot-version.yml Updatecli pipeline for 9.x snapshot updates.
.github/workflows/updatecli/updatecli.d/bump-latest-8x-snapshot-version.yml Updatecli pipeline for 8.x snapshot updates.
.github/workflows/updatecli/updatecli.d/bump-latest-7x-version.yml Updatecli pipeline for 7.x version updates.
.github/workflows/requires-update.yml Add scheduled/manual “requires” update automation workflow.
.github/workflows/pr-buildkite-detective.yml Add workflow to trigger Buildkite detective on failing statuses.
.github/workflows/backport-packages-detect.yml Add workflow to detect touched packages for backport checklists.
.github/workflows/trigger-package-tests-security-ml.yml Add security-ml ITP dispatch trigger workflow for selected packages.
.github/workflows/trigger-pr-actions-detective.yml Add workflow_run integration with PR Actions Detective.
.github/workflows/trigger-pr-review.yml Add (currently disabled) PR Review automation trigger.
.github/workflows/trigger-text-auditor.yml Add (disabled) Text Auditor scheduled workflow trigger.
.github/workflows/trigger-stale-issues.yml Add (disabled) Stale Issues scheduled workflow trigger.
.github/workflows/trigger-newbie-contributor-patrol.yml Add (disabled) Newbie Contributor Patrol trigger.
.github/workflows/trigger-mention-in-pr.yml Add (disabled) mention-in-PR automation trigger.
.github/workflows/trigger-mention-in-issue.yml Add (disabled) mention-in-issue automation trigger.
.github/workflows/trigger-issue-triage.yml Add (disabled) issue triage automation trigger.
.github/workflows/trigger-duplicate-issue-detector.yml Add (disabled) duplicate issue detector trigger.
.github/workflows/trigger-docs-patrol.yml Add (disabled) docs patrol trigger.
.github/workflows/trigger-bug-hunter.yml Add (disabled) bug hunter trigger.
.github/workflows/trigger-breaking-change-detector.yml Add (disabled) breaking change detector trigger with guidance.
.github/workflows/sweep-ingest-pipeline-safety.yml Add (disabled) ingest pipeline safety sweeper workflow.
.github/workflows/sweep-httpjson-pagination.yml Add (disabled) httpjson/CEL pagination sweeper workflow.
.github/workflows/sweep-field-mapping-conflicts.yml Add (disabled) field mapping conflict sweeper workflow.
.github/workflows/sweep-dashboard-data-scope.yml Add (disabled) dashboard data-scope sweeper workflow.
.github/actions/sync-backport-changelog/action.yml Composite action to build/run changelog sync + post PR comment.
.buildkite/pull-requests.json Update Buildkite PR trigger config (allowed bots, skip-only paths, pipelines).
.buildkite/pipeline.serverless.yml Sync serverless pipeline env, plugins, and follow-up reporting steps.
.buildkite/pipeline.schedule-daily.yml Sync daily schedule triggers and gating flags.
.buildkite/pipeline.schedule-weekly.yml Add weekly schedule pipeline.
.buildkite/pipeline.publish.yml Add publish pipeline for building/publishing missing packages.
.buildkite/pipeline.backport.yml Replace placeholder with full backport pipeline definition.
.buildkite/pipeline.backport-dispatch.yml Add dispatch pipeline for validating inventory and creating branches.
.buildkite/hooks/post-checkout Ensure consistent target-branch merge base across long-running PR steps.
.buildkite/hooks/pre-exit Improve teardown behavior (kind deletion/stack down) and cleanup.
.buildkite/scripts/trigger_backport.sh Trigger backport branch creation/dry-run when .backports.yml changes.
.buildkite/scripts/test_one_package.sh Update single-package test runner to use package paths and hooks.
.buildkite/scripts/test_integrations_with_serverless.sh Improve serverless test runner (config download, affected-package selection).
.buildkite/scripts/test_helpers.sh Add shared shell assertion helpers for script unit tests.
.buildkite/scripts/test_check_backport_owners.sh Add unit tests for backport owner-check comment rendering.
.buildkite/scripts/run_buildkite_scripts_tests.sh Add runner to execute shell/python unit tests for CI scripts.
.buildkite/scripts/run_dev_scripts_tests.sh Add runner to execute tests for dev/scripts/.
.buildkite/scripts/requirements-ci-python-scripts.txt Add pinned Python deps for CI python script tests/runtime.
.buildkite/scripts/report_issues.sh Add GitHub issue reporting step for failed tests (via mage).
.buildkite/scripts/process_benchmarks.sh Fix typo in benchmarks script message.
.buildkite/scripts/packages/security_detection_engine.sh Add per-package custom checker for security_detection_engine.
.buildkite/scripts/packages/crowdstrike.sh Add per-package custom checker ensuring generated pipelines stay in sync.
.buildkite/scripts/notify_backport_pr.sh Add PR notification script for backport branch creation outcome.
.buildkite/scripts/non_package_patterns.txt Add pattern manifest used to decide full-matrix vs scoped testing.
.buildkite/scripts/check_sources.sh Run mage check + optional elastic-package links check; verify clean git diff.
.buildkite/scripts/check_changelog_versions_in_main.sh Add check to prevent duplicate changelog versions already in main.
.buildkite/scripts/check_backports_inventory.sh Add schema validation for .backports.yml inventory plus clean-tree check.
.buildkite/scripts/check_backport_tool.sh Add standalone check step for cmd/backport sub-module.
.buildkite/scripts/build_packages.sh Update publish build script to handle skip list and nested package paths.
.buildkite/scripts/backport_branch_lib.sh Add helper functions for backport branch creation flow.
Review details

Suppressed comments (1)

.buildkite/scripts/test_integrations_with_serverless.sh:73

  • There is a stray . outside the quoted string, so the output becomes Missing "to" changeset . (with an extra space/dot).
  • Files reviewed: 173/192 changed files
  • Comments generated: 7
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +37 to +56
usage() {
grep '^#' "$0" | grep -v '#!/' | sed 's/^# \?//' >&2
exit 1
}

while [[ $# -gt 0 ]]; do
case "$1" in
--sha) sha="$2"; shift 2 ;;
--package) pkg="$2"; shift 2 ;;
--target) shift 2 ;;
--open-pr) open_pr="true"; shift ;;
--json) as_json="true"; shift ;;
--dry-run) dry_run="true"; shift ;;
--remote) remote="$2"; shift 2 ;;
--repository) repository="$2"; shift 2 ;;
--packages-dir) packages_dir="$2"; shift 2 ;;
-h|--help) usage ;;
*) echo "Unknown option: $1" >&2; usage ;;
esac
done
Comment on lines +64 to +68
git log --oneline \
-G "^version: ['\"]?${ESCAPED_VERSION}['\"]?[[:space:]]*$" \
-- "$MANIFEST" \
| awk 'NF {print $1}' | sort -u
)
Comment on lines +1 to +3
# Patterns for files that, when changed alone, do NOT trigger package tests.
# One ERE pattern per line. Blank lines and lines starting with # are ignored.
# This file itself is listed below so editing it does not trigger all tests.
Comment on lines +66 to +69
if [[ "${from}" == "" ]]; then
echo "Missing \"from\" changeset".
exit 1
fi
Comment on lines +26 to +28
# Paths covered by non_package_patterns: must NOT trigger tests
# ---------------------------------------------------------------------------
echo "--- pr_has_package_related_files: non-package paths do NOT trigger tests"
Comment thread dev/citools/gomod.go
Comment on lines +36 to +38
if epVersion == "" {
return nil, fmt.Errorf("elastic-package dependency not found")
}
Comment on lines +2 to +3
# Finds the commit on main where a package version was released.
# Usage: ./get_release_commit.sh <package_name> <version>
Copilot AI review requested due to automatic review settings September 8, 2026 12:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

A few newly added utilities have correctness/robustness issues (nil-deref on empty input, Windows path handling, help exit status, curl HTTP error handling) that should be addressed before merging.

Review details

Suppressed comments (3)

Previously missed (3) — in code that hasn't changed since the last review.

.buildkite/scripts/test_integrations_with_serverless.sh:36

  • Consider using curl -f here so HTTP errors (e.g. 404/500) fail fast; otherwise curl can exit 0 and write an HTML error page that causes confusing downstream failures when parsed as YAML.
    cmd/backport/backports/packages/detect.go:42
  • git diff --name-only paths use forward slashes even on Windows; using filepath.Separator here makes HasPrefix mismatches likely when the tool is run on Windows. Normalize both package roots and input file paths with filepath.ToSlash and use a literal "/" separator for prefix checks.
    dev/citools/subscription.go:25
  • The local variable packageSubscription shadows the function name packageSubscription, which makes the code harder to read and grep. Rename the local to something like subscription.
  • Files reviewed: 173/192 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@infra-vault-gh-plugin-prod

infra-vault-gh-plugin-prod Bot commented Sep 8, 2026 •

Copy link
Copy Markdown

💔 Build Failed

Failed CI Steps

History

cc @mrodm

@mrodm
mrodm merged commit 8ad442e into elastic:backport-kubernetes-1.39 Sep 9, 2026
7 of 9 checks passed
@mrodm
mrodm deleted the sync-ci-configuration-kubernetes-1.39 branch September 9, 2026 07:43
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Changelog sync skipped — all changelog versions are already present on main.

mrodm added a commit to mrodm/integrations that referenced this pull request Sep 9, 2026
…-package v0.79.0

The CI sync (elastic#20542) replaced with_docker_compose (standalone binary
installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin
installed into ~/.docker/cli-plugins). This caused elastic-package
v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick
up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2)
instead of the pinned version.

Docker Compose v2.23+ changed the YAML output of `docker compose config`
so that the environment field is serialized as a sequence instead of a
map, which elastic-package v0.79.0 cannot unmarshal (map[string]string).

Restore with_docker_compose so the pinned standalone binary is placed
in BIN_FOLDER (first in PATH) and called before the system version.
Call it from test_one_package.sh and test_integrations_with_serverless.sh
alongside the existing plugin installation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mrodm added a commit to mrodm/integrations that referenced this pull request Sep 9, 2026
…-package v0.79.0

The CI sync (elastic#20542) replaced with_docker_compose (standalone binary
installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin
installed into ~/.docker/cli-plugins). This caused elastic-package
v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick
up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2)
instead of the pinned version.

Docker Compose v2.23+ changed the YAML output of `docker compose config`
so that the environment field is serialized as a sequence instead of a
map, which elastic-package v0.79.0 cannot unmarshal (map[string]string).

Restore with_docker_compose so the pinned standalone binary is placed
in BIN_FOLDER (first in PATH) and called before the system version.
Call it from test_one_package.sh and test_integrations_with_serverless.sh
alongside the existing plugin installation.

Restore the previous docker-compose version v2.17.2

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

fix: add --fail to curl in with_docker_compose to enable retries on HTTP errors

Without --fail, curl exits 0 even on 4xx responses, saving the HTML
error body silently. This caused the docker-compose binary to contain
an HTML page, making it fail at execution time. With --fail, HTTP
errors produce a non-zero exit code so retry 5 can kick in properly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mrodm added a commit that referenced this pull request Sep 9, 2026
…ubernetes-1.39 backport branch (#21152)

The CI sync (#20542) replaced with_docker_compose (standalone binary
installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin
installed into ~/.docker/cli-plugins). This caused elastic-package
v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick
up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2)
instead of the pinned version.

Docker Compose v2.23+ changed the YAML output of `docker compose config`
so that the environment field is serialized as a sequence instead of a
map, which elastic-package v0.79.0 cannot unmarshal (map[string]string).

Restore with_docker_compose so the pinned standalone binary v2.17.2 is
placed in BIN_FOLDER (first in PATH) and called before the system version.
Call it from test_one_package.sh and test_integrations_with_serverless.sh
alongside the existing plugin installation.

fix: detect legacy snapshot.yml in is_stack_created

Also check for snapshot.yml (the name used before elastic-package
renamed it to docker-compose.yml in May 2024) so the function does
not miss a running stack on older installations.


---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
mrodm added a commit that referenced this pull request Sep 9, 2026
Keep CI pipelines, GitHub Actions, and tooling consistent between active backport
branches and `main`, so that automated backport workflows and tooling improvements
land on all supported branches.

* Add shellinit command

* Restore variables to manage docker output

* Remove --coverage-format parameter
This parameter was not available until elastic-package v0.96.0

Also check for snapshot.yml (the name used before elastic-package
renamed it to docker-compose.yml in May 2024) so the function does
not miss a running stack on older installations.

* fix: restore with_docker_compose to pin standalone binary for elastic-package v0.79.0

The CI sync (#20542) replaced with_docker_compose (standalone binary
installed into BIN_FOLDER) with with_docker_compose_plugin (CLI plugin
installed into ~/.docker/cli-plugins). This caused elastic-package
v0.79.0, which hardcodes exec.Command("docker-compose", ...), to pick
up the system's docker-compose v2.24.7 (bundled with Docker 26.1.2)
instead of the pinned version.

Docker Compose v2.23+ changed the YAML output of `docker compose config`
so that the environment field is serialized as a sequence instead of a
map, which elastic-package v0.79.0 cannot unmarshal (map[string]string).

Restore with_docker_compose so the pinned standalone binary is placed
in BIN_FOLDER (first in PATH) and called before the system version.
Call it from test_one_package.sh and test_integrations_with_serverless.sh
alongside the existing plugin installation.

Set DOCKER_COMPOSE_VERSION to v2.17.2

* fix: add --fail to curl in with_docker_compose to enable retries on HTTP errors

Without --fail, curl exits 0 even on 4xx responses, saving the HTML
error body silently. This caused the docker-compose binary to contain
an HTML page, making it fail at execution time. With --fail, HTTP
errors produce a non-zero exit code so retry 5 can kick in properly.


---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
mrodm added a commit to mrodm/integrations that referenced this pull request Sep 9, 2026
Documents the !!seq unmarshal error that affects backport branches using
elastic-package < v0.96.0 after the CI sync PR elastic#20542 replaced the
standalone docker-compose binary installation with the Docker CLI plugin.

Includes root cause explanation and fix steps: revert DOCKER_COMPOSE_VERSION
to the pre-sync value in the three pipeline files, restore with_docker_compose
in common.sh, and wire it into the test scripts. Links to example commit
fbf68eb.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

3 participants