Skip to content

Commit 8b4e0c6

Browse files
authored
Merge branch 'main' into package-cloud-defend
2 parents 2b79b9e + 786c3e5 commit 8b4e0c6

File tree

10 files changed

+319
-622
lines changed

10 files changed

+319
-622
lines changed

.buildkite/pipeline.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,19 @@ steps:
348348
- .buildkite/scripts/steps/beats_tests.sh
349349
- .buildkite/hooks/pre-command
350350

351+
# NOTE: This should help detecting issues earlier in the development cycle
352+
# See https://github.com/elastic/elastic-agent/issues/11604
353+
- label: "Trigger Elastic Agent Package"
354+
if: build.pull_request.id != null
355+
commands:
356+
- .buildkite/scripts/steps/trigger-elastic-agent-package.sh
357+
- .buildkite/scripts/steps/trigger-elastic-agent-package.sh | buildkite-agent pipeline upload
358+
if_changed:
359+
include:
360+
- .buildkite/pipeline.elastic-agent-package.yml
361+
- .buildkite/scripts/steps/package.sh
362+
- .buildkite/scripts/steps/trigger-elastic-agent-package.sh
363+
351364
# wait for CI to be done
352365
- wait: ~
353366

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Create a dynamic buildkite step for running the elastic-agent-package pipeline.
4+
#
5+
# Required environment variables:
6+
# - BUILDKITE_PULL_REQUEST
7+
# - BUILDKITE_COMMIT
8+
# - BUILDKITE_BRANCH
9+
# - BUILDKITE_PULL_REQUEST_BASE_BRANCH
10+
#
11+
12+
if [ ! -f .package-version ]; then
13+
echo ".package-version file not found!"
14+
exit 1
15+
fi
16+
17+
# No need for the snapshot but the three digits version is required
18+
BEAT_VERSION=$(jq -r .version .core_version)
19+
MANIFEST_URL=$(jq -r .manifest_url .package-version)
20+
21+
cat << EOF
22+
- label: ":pipeline: Run elastic-agent-package"
23+
trigger: "elastic-agent-package"
24+
build:
25+
message: "#${BUILDKITE_PULL_REQUEST} - Verify elastic-agent-package works"
26+
commit: "${BUILDKITE_COMMIT}"
27+
branch: "${BUILDKITE_BRANCH}"
28+
env:
29+
DRA_VERSION: "${BEAT_VERSION}"
30+
DRA_WORKFLOW: "snapshot"
31+
DRA_BRANCH: "${BUILDKITE_PULL_REQUEST_BASE_BRANCH}"
32+
DRA_DRY_RUN: "--dry-run"
33+
MANIFEST_URL: "${MANIFEST_URL}"
34+
ELASTIC_SLACK_NOTIFICATIONS_ENABLED: "false"
35+
EOF

.package-version

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"version": "9.3.0-SNAPSHOT",
3-
"build_id": "9.3.0-a70e9854",
4-
"manifest_url": "https://snapshots.elastic.co/9.3.0-a70e9854/manifest-9.3.0-SNAPSHOT.json",
5-
"summary_url": "https://snapshots.elastic.co/9.3.0-a70e9854/summary-9.3.0-SNAPSHOT.html",
3+
"build_id": "9.3.0-008e98cd",
4+
"manifest_url": "https://snapshots.elastic.co/9.3.0-008e98cd/manifest-9.3.0-SNAPSHOT.json",
5+
"summary_url": "https://snapshots.elastic.co/9.3.0-008e98cd/summary-9.3.0-SNAPSHOT.html",
66
"core_version": "9.3.0",
7-
"stack_build_id": "9.3.0-a70e9854-SNAPSHOT"
7+
"stack_build_id": "9.3.0-008e98cd-SNAPSHOT"
88
}

dev-tools/packaging/testing/package_test.go

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ func checkDocker(t *testing.T, file string, fipsPackage bool) (string, int64) {
421421
return checkEdotCollectorDocker(t, file)
422422
}
423423

424-
p, info, err := readDocker(file, true)
424+
p, info, err := readDocker(t, file, true)
425425
if err != nil {
426426
t.Errorf("error reading file %v: %v", file, err)
427427
return "", -1
@@ -474,7 +474,7 @@ func dockerName(file string, labels map[string]string) (string, error) {
474474
}
475475

476476
func checkEdotCollectorDocker(t *testing.T, file string) (string, int64) {
477-
p, info, err := readDocker(file, true)
477+
p, info, err := readDocker(t, file, true)
478478
if err != nil {
479479
t.Errorf("error reading file %v: %v", file, err)
480480
return "", -1
@@ -500,7 +500,7 @@ func checkEdotCollectorDocker(t *testing.T, file string) (string, int64) {
500500
}
501501

502502
func checkCompleteDocker(t *testing.T, file string) {
503-
p, _, err := readDocker(file, false)
503+
p, _, err := readDocker(t, file, false)
504504
if err != nil {
505505
t.Errorf("error reading file %v: %v", file, err)
506506
}
@@ -1079,33 +1079,27 @@ func openZip(zipFile string) (*zip.ReadCloser, error) {
10791079
return r, nil
10801080
}
10811081

1082-
func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *dockerInfo, error) {
1082+
func readDocker(t *testing.T, dockerFile string, filterWorkingDir bool) (*packageFile, *dockerInfo, error) {
1083+
t.Helper()
1084+
10831085
// Read the manifest file first so that the config file and layer
10841086
// names are known in advance.
10851087
manifest, err := getDockerManifest(dockerFile)
1086-
if err != nil {
1087-
return nil, nil, err
1088-
}
1088+
require.NoError(t, err)
10891089

10901090
file, err := os.Open(dockerFile)
1091-
if err != nil {
1092-
return nil, nil, err
1093-
}
1091+
require.NoError(t, err)
10941092
defer file.Close()
10951093

10961094
var info *dockerInfo
10971095

10981096
stat, err := file.Stat()
1099-
if err != nil {
1100-
return nil, nil, err
1101-
}
1097+
require.NoError(t, err)
11021098

11031099
layers := make(map[string]*packageFile)
11041100

11051101
gzipReader, err := gzip.NewReader(file)
1106-
if err != nil {
1107-
return nil, nil, err
1108-
}
1102+
require.NoError(t, err)
11091103
defer gzipReader.Close()
11101104

11111105
tarReader := tar.NewReader(gzipReader)
@@ -1115,38 +1109,29 @@ func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *docker
11151109
if errors.Is(err, io.EOF) {
11161110
break
11171111
}
1118-
return nil, nil, err
1112+
require.NoError(t, err)
11191113
}
11201114

11211115
switch {
11221116
case header.Name == manifest.Config:
11231117
info, err = readDockerInfo(tarReader)
1124-
if err != nil {
1125-
return nil, nil, err
1126-
}
1118+
require.NoError(t, err)
11271119
case slices.Contains(manifest.Layers, header.Name):
11281120
layer, err := readTarContents(header.Name, tarReader)
1129-
if err != nil {
1130-
return nil, nil, err
1131-
}
1121+
require.NoError(t, err)
11321122
layers[header.Name] = layer
11331123
}
11341124
}
11351125

1136-
if len(info.Config.Entrypoint) == 0 {
1137-
return nil, nil, fmt.Errorf("no entrypoint")
1138-
}
1139-
1126+
require.NotZero(t, len(info.Config.Entrypoint), "no entrypoint")
11401127
workingDir := info.Config.WorkingDir
11411128
entrypoint := info.Config.Entrypoint[0]
11421129

11431130
// Read layers in order and for each file keep only the entry seen in the later layer
11441131
p := &packageFile{Name: filepath.Base(dockerFile), Contents: map[string]packageEntry{}}
11451132
for _, layer := range manifest.Layers {
11461133
layerFile, found := layers[layer]
1147-
if !found {
1148-
return nil, nil, fmt.Errorf("layer not found: %s", layer)
1149-
}
1134+
require.True(t, found, fmt.Sprintf("layer not found: %s", layer))
11501135
for name, entry := range layerFile.Contents {
11511136
if excludedPathsPattern.MatchString(name) {
11521137
continue
@@ -1164,10 +1149,7 @@ func readDocker(dockerFile string, filterWorkingDir bool) (*packageFile, *docker
11641149
}
11651150
}
11661151

1167-
if len(p.Contents) == 0 {
1168-
return nil, nil, fmt.Errorf("no files found in docker working directory (%s)", info.Config.WorkingDir)
1169-
}
1170-
1152+
require.NotZero(t, len(p.Contents), fmt.Sprintf("no files found in docker working directory (%s)", info.Config.WorkingDir))
11711153
info.Size = stat.Size()
11721154
return p, info, nil
11731155
}

internal/pkg/agent/application/coordinator/diagnostics_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ func TestDiagnosticLocalConfig(t *testing.T) {
8484
ServerCA: "/path/to/server/ca",
8585
},
8686
},
87+
MetricsPeriod: monitoringCfg.DefaultMetricsCollectionInterval,
8788
},
8889
},
8990
}
@@ -106,11 +107,12 @@ agent:
106107
http: null
107108
logs: false
108109
metrics: false
109-
metrics_period: ""
110+
metrics_period: "1m0s"
110111
namespace: ""
111112
pprof: null
112113
failure_threshold: null
113114
traces: true
115+
use_output: ""
114116
apm:
115117
hosts:
116118
- host1

internal/pkg/agent/application/monitoring/component/testdata/monitoring_config_full_otel.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
agent:
2-
monitoring:
3-
http:
4-
enabled: false
5-
metrics: true
61
inputs:
72
- _runtime_experimental: otel
83
id: filestream-monitoring-agent

internal/pkg/agent/application/monitoring/component/testdata/monitoring_config_full_process.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
agent:
2-
monitoring:
3-
http:
4-
enabled: false
5-
metrics: true
61
inputs:
72
- _runtime_experimental: process
83
id: filestream-monitoring-agent

0 commit comments

Comments
 (0)