Skip to content

Commit 7b6a79c

Browse files
Merge branch 'main' into add-markdown-release-notes
2 parents a6f0f28 + 05f62c2 commit 7b6a79c

File tree

60 files changed

+1785
-498
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+1785
-498
lines changed

.buildkite/bk.integration-fips.pipeline.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ env:
44
ASDF_MAGE_VERSION: 1.14.0
55
MS_GOTOOLCHAIN_TELEMETRY_ENABLED: "0"
66

7-
IMAGE_UBUNTU_2404_X86_64: "platform-ingest-elastic-agent-ubuntu-2404-1755910857"
8-
IMAGE_UBUNTU_X86_64_FIPS: "platform-ingest-elastic-agent-ubuntu-2204-fips-1755910857"
9-
IMAGE_UBUNTU_ARM64_FIPS: "platform-ingest-elastic-agent-ubuntu-2204-fips-aarch64-1755910857"
7+
IMAGE_UBUNTU_2404_X86_64: "platform-ingest-elastic-agent-ubuntu-2404-1757120457"
8+
IMAGE_UBUNTU_X86_64_FIPS: "platform-ingest-elastic-agent-ubuntu-2204-fips-1757120457"
9+
IMAGE_UBUNTU_ARM64_FIPS: "platform-ingest-elastic-agent-ubuntu-2204-fips-aarch64-1757120457"
1010

1111
# This section is used to define the plugins that will be used in the pipeline.
1212
# See https://buildkite.com/docs/pipelines/integrations/plugins/using#using-yaml-anchors-with-plugins

.buildkite/bk.integration.pipeline.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ env:
66

77
# The following images are defined here and their values will be updated by updatecli
88
# Please do not change them manually.
9-
IMAGE_UBUNTU_2404_X86_64: "platform-ingest-elastic-agent-ubuntu-2404-1755910857"
10-
IMAGE_UBUNTU_2404_ARM_64: "platform-ingest-elastic-agent-ubuntu-2404-aarch64-1755910857"
11-
IMAGE_RHEL_8: "platform-ingest-elastic-agent-rhel-8-1755910857"
12-
IMAGE_DEBIAN_12: "platform-ingest-elastic-agent-debian-12-1755910857"
13-
IMAGE_WIN_2022: "platform-ingest-elastic-agent-windows-2022-1755910857"
14-
IMAGE_WIN_2025: "platform-ingest-elastic-agent-windows-2025-1755910857"
9+
IMAGE_UBUNTU_2404_X86_64: "platform-ingest-elastic-agent-ubuntu-2404-1757120457"
10+
IMAGE_UBUNTU_2404_ARM_64: "platform-ingest-elastic-agent-ubuntu-2404-aarch64-1757120457"
11+
IMAGE_RHEL_8: "platform-ingest-elastic-agent-rhel-8-1757120457"
12+
IMAGE_DEBIAN_12: "platform-ingest-elastic-agent-debian-12-1757120457"
13+
IMAGE_WIN_2022: "platform-ingest-elastic-agent-windows-2022-1757120457"
14+
IMAGE_WIN_2025: "platform-ingest-elastic-agent-windows-2025-1757120457"
1515

1616
# This section is used to define the plugins that will be used in the pipeline.
1717
# See https://buildkite.com/docs/pipelines/integrations/plugins/using#using-yaml-anchors-with-plugins

.buildkite/integration.pipeline.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ env:
66

77
# The following images are defined here and their values will be updated by updatecli
88
# Please do not change them manually.
9-
IMAGE_UBUNTU_2204_X86_64: "platform-ingest-elastic-agent-ubuntu-2204-1755910857"
10-
IMAGE_UBUNTU_2204_ARM_64: "platform-ingest-elastic-agent-ubuntu-2204-aarch64-1755910857"
9+
IMAGE_UBUNTU_2204_X86_64: "platform-ingest-elastic-agent-ubuntu-2204-1757120457"
10+
IMAGE_UBUNTU_2204_ARM_64: "platform-ingest-elastic-agent-ubuntu-2204-aarch64-1757120457"
1111

1212
common:
1313
- vault_docker_login: &vault_docker_login

.buildkite/pipeline.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ env:
55

66
# The following images are defined here and their values will be updated by updatecli
77
# Please do not change them manually.
8-
IMAGE_UBUNTU_2204_X86_64: "platform-ingest-elastic-agent-ubuntu-2204-1755910857"
9-
IMAGE_UBUNTU_2204_ARM_64: "platform-ingest-elastic-agent-ubuntu-2204-aarch64-1755910857"
10-
IMAGE_WIN_2016: "platform-ingest-elastic-agent-windows-2016-1755910857"
11-
IMAGE_WIN_2022: "platform-ingest-elastic-agent-windows-2022-1755910857"
12-
IMAGE_WIN_10: "platform-ingest-elastic-agent-windows-10-1755910857"
13-
IMAGE_WIN_11: "platform-ingest-elastic-agent-windows-11-1755910857"
8+
IMAGE_UBUNTU_2204_X86_64: "platform-ingest-elastic-agent-ubuntu-2204-1757120457"
9+
IMAGE_UBUNTU_2204_ARM_64: "platform-ingest-elastic-agent-ubuntu-2204-aarch64-1757120457"
10+
IMAGE_WIN_2016: "platform-ingest-elastic-agent-windows-2016-1757120457"
11+
IMAGE_WIN_2022: "platform-ingest-elastic-agent-windows-2022-1757120457"
12+
IMAGE_WIN_10: "platform-ingest-elastic-agent-windows-10-1757120457"
13+
IMAGE_WIN_11: "platform-ingest-elastic-agent-windows-11-1757120457"
1414

1515
steps:
1616
- label: "check-ci"
@@ -255,7 +255,7 @@ steps:
255255
artifact_paths:
256256
- "build/TEST-go-unit.cov"
257257
agents:
258-
image: "golang:1.24.6"
258+
image: "golang:1.24.7"
259259
depends_on:
260260
- unit-tests
261261
- extended-windows

.ci/updatecli/README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Overview
2+
3+
This is how we manage adhoc dependency updates using `updatecli`.
4+
5+
## EDOT SDK Dependencies Update Automation
6+
7+
This directory contains updatecli configuration to automatically update EDOT SDK docker image versions in the elastic-agent repository.
8+
9+
### Overview
10+
11+
The automation tracks latest releases from the following repositories and updates corresponding docker image references in elastic-agent:
12+
13+
- **elastic/elastic-otel-dotnet**`docker.elastic.co/observability/elastic-otel-dotnet`
14+
- **elastic/elastic-otel-java**`docker.elastic.co/observability/elastic-otel-javaagent`
15+
- **elastic/elastic-otel-node**`docker.elastic.co/observability/elastic-otel-node`
16+
- **elastic/elastic-otel-python**`docker.elastic.co/observability/elastic-otel-python`
17+
- **open-telemetry/opentelemetry-go-instrumentation**`ghcr.io/open-telemetry/opentelemetry-go-instrumentation/autoinstrumentation-go`
18+
19+
### Files Updated
20+
21+
The automation updates these files in the elastic-agent repository:
22+
- `deploy/helm/edot-collector/kube-stack/managed_otlp/values.yaml`
23+
- `deploy/helm/edot-collector/kube-stack/values.yaml`
24+
25+
Specifically, it updates the `instrumentation` section with the latest versions:
26+
27+
```yaml
28+
instrumentation:
29+
java:
30+
image: docker.elastic.co/observability/elastic-otel-javaagent:X.Y.Z
31+
nodejs:
32+
image: docker.elastic.co/observability/elastic-otel-node:X.Y.Z
33+
dotnet:
34+
image: docker.elastic.co/observability/elastic-otel-dotnet:X.Y.Z
35+
python:
36+
image: docker.elastic.co/observability/elastic-otel-python:X.Y.Z
37+
go:
38+
image: ghcr.io/open-telemetry/opentelemetry-go-instrumentation/autoinstrumentation-go:vX.Y.Z
39+
```
40+
41+
### Configuration Files
42+
43+
- **`bump-edot-images.yml`**: Main updatecli configuration that defines sources and targets
44+
- **`values.d/scm.yml`**: Contains SCM configuration values for GitHub authentication
45+
46+
### GitHub Workflow
47+
48+
The automation runs via GitHub workflow `.github/workflows/bump-edot-images.yml` which:
49+
- Runs Monday to Friday at 3 PM UTC
50+
- Can be triggered manually via workflow_dispatch
51+
- Uses the OBS_AUTOMATION_APP credentials for creating PRs
52+
- Creates pull requests with `dependencies`, `skip-changelog`, and backport labels.
53+
54+
### Example Output
55+
56+
When new versions are detected, the automation will create a pull request similar to [elastic-agent#7327](https://github.com/elastic/elastic-agent/pull/7327) that was manually created previously.
57+
58+
### Version Handling
59+
60+
The configuration handles different version formatting:
61+
- Some repositories use `v` prefix in their tags (like `v1.2.0`)
62+
- The automation strips the `v` prefix where needed to match the expected docker tag format
63+
- Go instrumentation keeps the `v` prefix as that's the expected format
64+
65+
### Manual Testing
66+
67+
To test the configuration locally:
68+
69+
```bash
70+
export GITHUB_TOKEN=$(gh auth token)
71+
export GITHUB_ACTOR=v1v
72+
updatecli diff \
73+
--config .ci/updatecli/bump-edot-images.yml \
74+
--values .ci/updatecli/values.d/scm.yml
75+
# Apply changes (requires write access to elastic-agent repo)
76+
updatecli apply \
77+
--config .ci/updatecli/bump-edot-images.yml \
78+
--values .ci/updatecli/values.d/scm.yml
79+
```
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
---
2+
name: Bump EDOT SDKs to latest versions
3+
4+
scms:
5+
elastic-agent:
6+
kind: github
7+
spec:
8+
user: '{{ requiredEnv "GITHUB_ACTOR" }}'
9+
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
10+
owner: '{{ .scm.owner }}'
11+
repository: '{{ .scm.repository }}'
12+
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
13+
commitusingapi: true
14+
branch: '{{ .scm.branch }}'
15+
force: false
16+
17+
actions:
18+
elastic-agent:
19+
kind: github/pullrequest
20+
scmid: elastic-agent
21+
spec:
22+
automerge: false
23+
labels:
24+
- backport-active-8
25+
- backport-active-9
26+
- dependencies
27+
- skip-changelog
28+
- Team:Elastic-Agent-Control-Plane
29+
title: '[otel/kube-stack] Update EDOT SDK k8s auto-instrumentation images to their latest versions'
30+
description: |
31+
Update the versions of the EDOT language SDK images being used with the OTel Operator.
32+
33+
sources:
34+
elastic-otel-dotnet:
35+
name: "Get latest Elastic OTEL .NET release"
36+
kind: githubrelease
37+
spec:
38+
owner: "elastic"
39+
repository: "elastic-otel-dotnet"
40+
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
41+
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
42+
versionfilter:
43+
kind: semver
44+
45+
elastic-otel-java:
46+
name: "Get latest Elastic OTEL Java release"
47+
kind: githubrelease
48+
spec:
49+
owner: "elastic"
50+
repository: "elastic-otel-java"
51+
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
52+
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
53+
versionfilter:
54+
kind: semver
55+
56+
elastic-otel-node:
57+
name: "Get latest Elastic OTEL Node.js release"
58+
kind: githubrelease
59+
spec:
60+
owner: "elastic"
61+
repository: "elastic-otel-node"
62+
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
63+
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
64+
versionfilter:
65+
kind: semver
66+
67+
elastic-otel-python:
68+
name: "Get latest Elastic OTEL Python release"
69+
kind: githubrelease
70+
spec:
71+
owner: "elastic"
72+
repository: "elastic-otel-python"
73+
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
74+
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
75+
versionfilter:
76+
kind: semver
77+
78+
otel-go-instrumentation:
79+
name: "Get latest OpenTelemetry Go Instrumentation release"
80+
kind: githubrelease
81+
spec:
82+
owner: "open-telemetry"
83+
repository: "opentelemetry-go-instrumentation"
84+
token: '{{ requiredEnv "GITHUB_TOKEN" }}'
85+
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
86+
versionfilter:
87+
kind: semver
88+
89+
targets:
90+
update-dotnet-managed-otlp:
91+
name: "Update Elastic OTEL .NET image in values.yaml"
92+
kind: yaml
93+
scmid: elastic-agent
94+
sourceid: elastic-otel-dotnet
95+
spec:
96+
files:
97+
- "deploy/helm/edot-collector/kube-stack/managed_otlp/values.yaml"
98+
- "deploy/helm/edot-collector/kube-stack/values.yaml"
99+
key: "$.instrumentation.dotnet.image"
100+
transformers:
101+
- addprefix: "docker.elastic.co/observability/elastic-otel-dotnet:"
102+
103+
# Update Java image in managed_otlp/values.yaml
104+
update-java-managed-otlp:
105+
name: "Update Elastic OTEL Java image in values.yaml"
106+
kind: yaml
107+
scmid: elastic-agent
108+
sourceid: elastic-otel-java
109+
spec:
110+
files:
111+
- "deploy/helm/edot-collector/kube-stack/managed_otlp/values.yaml"
112+
- "deploy/helm/edot-collector/kube-stack/values.yaml"
113+
key: "$.instrumentation.java.image"
114+
transformers:
115+
- trimprefix: "v"
116+
- addprefix: "docker.elastic.co/observability/elastic-otel-javaagent:"
117+
118+
update-nodejs-managed-otlp:
119+
name: "Update Elastic OTEL Node.js image in values.yaml"
120+
kind: yaml
121+
scmid: elastic-agent
122+
sourceid: elastic-otel-node
123+
spec:
124+
files:
125+
- "deploy/helm/edot-collector/kube-stack/managed_otlp/values.yaml"
126+
- "deploy/helm/edot-collector/kube-stack/values.yaml"
127+
key: "$.instrumentation.nodejs.image"
128+
transformers:
129+
- trimprefix: "v"
130+
- addprefix: "docker.elastic.co/observability/elastic-otel-node:"
131+
132+
update-python-managed-otlp:
133+
name: "Update Elastic OTEL Python image in managed_otlp/values.yaml"
134+
kind: yaml
135+
scmid: elastic-agent
136+
sourceid: elastic-otel-python
137+
spec:
138+
files:
139+
- "deploy/helm/edot-collector/kube-stack/managed_otlp/values.yaml"
140+
- "deploy/helm/edot-collector/kube-stack/values.yaml"
141+
key: "$.instrumentation.python.image"
142+
transformers:
143+
- trimprefix: "v"
144+
- addprefix: "docker.elastic.co/observability/elastic-otel-python:"
145+
146+
update-go-main:
147+
name: "Update OpenTelemetry Go Instrumentation image in values.yaml"
148+
kind: yaml
149+
scmid: elastic-agent
150+
sourceid: otel-go-instrumentation
151+
spec:
152+
files:
153+
- "deploy/helm/edot-collector/kube-stack/managed_otlp/values.yaml"
154+
- "deploy/helm/edot-collector/kube-stack/values.yaml"
155+
key: "$.instrumentation.go.image"
156+
transformers:
157+
- addprefix: "ghcr.io/open-telemetry/opentelemetry-go-instrumentation/autoinstrumentation-go:"

.github/workflows/bump-agent-versions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
fetch-depth: 0
4141

4242
- name: Set up Go
43-
uses: actions/setup-go@v5
43+
uses: actions/setup-go@v6
4444
with:
4545
go-version-file: 'go.mod'
4646

.github/workflows/bump-beats-version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
ref: ${{ matrix.branch }}
4343

4444
- name: Set up Go
45-
uses: actions/setup-go@v5
45+
uses: actions/setup-go@v6
4646
with:
4747
go-version-file: 'go.mod'
4848

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: bump-edot-images
3+
4+
on:
5+
workflow_dispatch:
6+
schedule:
7+
- cron: "0 20 * * 1-6"
8+
9+
permissions:
10+
contents: read
11+
12+
env:
13+
JOB_URL: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
14+
15+
jobs:
16+
bump:
17+
permissions:
18+
contents: write
19+
pull-requests: write
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v5
23+
24+
- uses: elastic/oblt-actions/updatecli/run@v1
25+
with:
26+
command: apply --config .ci/updatecli/updatecli-bump-edot.yml --values .ci/updatecli/values.d/scm.yml
27+
version-file: .updatecli-version
28+
env:
29+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30+
31+
- if: ${{ failure() }}
32+
uses: elastic/oblt-actions/slack/send@v1
33+
with:
34+
bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
35+
channel-id: "#ingest-notifications"
36+
message: ":traffic_cone: updatecli failed for `${{ github.repository }}@${{ github.ref_name }}`, `@agent-team` please look what's going on <${{ env.JOB_URL }}|here>"

.github/workflows/bump-otel-version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- uses: actions/checkout@v5
2626

2727
- name: Set up Go
28-
uses: actions/setup-go@v5
28+
uses: actions/setup-go@v6
2929
with:
3030
go-version-file: 'go.mod'
3131

0 commit comments

Comments
 (0)