Skip to content

Commit 3b8f1af

Browse files
[9.1] (backport #18375) Use logstash-versions.yml for observabilitySRE stack versions (#18401)
* Use logstash-versions.yml for observabilitySRE stack versions (#18375) * Use logstash-versions.yml for observabilitySRE stack versions Previously the version of logstash checked in to the logstash repo was used to determine stack version for smoke and acceptance testing of the observabilitySRE artifact. Given the ES/Filebeat containers are subject to a unified release the delay between a logstash version bump and those artifacts being available was causing failures when the smoke/acceptance tests were run. In plugin testing the way we deal with this is to ensure the logstash-versions.yml file is updated when stack components are ready. This commit introduces the use of that pattern to the observabilitySRE artifact testing. The important step will be to set the STACK_VERSION to correspond to the desired stack version. For example the 9.2 logstash branch should look up `9.current`. * track stream in versions.yml * Finalize name/location for versions.yml mapping * better comment (cherry picked from commit d9fda37) # Conflicts: # ci/observabilitySREacceptance_tests.sh # ci/observabilitySREsmoke_tests.sh * Update versions.yml --------- Co-authored-by: Cas Donoghue <[email protected]>
1 parent 3abdae3 commit 3b8f1af

File tree

5 files changed

+51
-1
lines changed

5 files changed

+51
-1
lines changed

.ci/updatecli/bump-logstash-version.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ targets:
5656
key: $.logstash-core
5757
value: '{{ requiredEnv "LOGSTASH_VERSION" }}'
5858

59+
update_release_track:
60+
name: Update logstash-release-track in versions.yml
61+
kind: yaml
62+
disablesourceinput: true
63+
scmid: default
64+
spec:
65+
file: versions.yml
66+
key: $.logstash-release-track
67+
value: '{{ requiredEnv "LOGSTASH_RELEASE_TRACK" }}'
68+
5969
update_gemfile_lock_dependency:
6070
name: Update logstash-core dependency in lockfile
6171
kind: file

.github/workflows/bump-logstash.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ on:
1111
description: 'Logstash branch (example: 9.1)'
1212
required: true
1313
type: string
14-
14+
logstash_release_track:
15+
description: 'Release track (example: 9.current, 9.previous, main)'
16+
required: true
17+
type: string
1518
jobs:
1619
bump:
1720
permissions:
@@ -29,3 +32,4 @@ jobs:
2932
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3033
LOGSTASH_BRANCH: "${{ github.event.inputs.logstash_branch }}"
3134
LOGSTASH_VERSION: "${{ github.event.inputs.logstash_version }}"
35+
LOGSTASH_RELEASE_TRACK: "${{ github.event.inputs.logstash_release_track }}"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
# Look up corresponding LOGSTASH_RELEASE_TRACK from versions.yml
6+
LOGSTASH_RELEASE_TRACK=$(ruby -ryaml -e "puts YAML.load_file('versions.yml')['logstash-release-track']")
7+
# Use logstash stream to find the corresponding stack verstion from logstash-versions.yml
8+
STACK_VERSION=$(ruby -ryaml -ropen-uri -e "puts YAML.load(URI.open('https://raw.githubusercontent.com/logstash-plugins/.ci/1.x/logstash-versions.yml'))['snapshots']['${LOGSTASH_RELEASE_TRACK}']")
9+
export OBSERVABILITY_SRE_IMAGE_VERSION="${OBSERVABILITY_SRE_IMAGE_VERSION:-$STACK_VERSION}"
10+
export ELASTICSEARCH_IMAGE_VERSION="${ELASTICSEARCH_IMAGE_VERSION:-$STACK_VERSION}"
11+
export FILEBEAT_IMAGE_VERSION="${FILEBEAT_IMAGE_VERSION:-$STACK_VERSION}"
12+
13+
./gradlew observabilitySREacceptanceTests --stacktrace

ci/observabilitySREsmoke_tests.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
QUALIFIED_VERSION="$(.buildkite/scripts/common/qualified-version.sh)"
6+
# Look up corresponding LOGSTASH_RELEASE_TRACK from versions.yml
7+
LOGSTASH_RELEASE_TRACK=$(ruby -ryaml -e "puts YAML.load_file('versions.yml')['logstash-release-track']")
8+
# Use logstash stream to find the corresponding stack verstion from logstash-versions.yml
9+
STACK_VERSION=$(ruby -ryaml -ropen-uri -e "puts YAML.load(URI.open('https://raw.githubusercontent.com/logstash-plugins/.ci/1.x/logstash-versions.yml'))['snapshots']['${LOGSTASH_RELEASE_TRACK}']")
10+
export ELASTICSEARCH_IMAGE_VERSION="${ELASTICSEARCH_IMAGE_VERSION:-$STACK_VERSION}"
11+
export FILEBEAT_IMAGE_VERSION="${FILEBEAT_IMAGE_VERSION:-$STACK_VERSION}"
12+
13+
./gradlew --stacktrace artifactDockerObservabilitySRE -PfedrampHighMode=true
14+
15+
docker run docker.elastic.co/logstash/logstash-observability-sre:${QUALIFIED_VERSION} \
16+
logstash -e 'input { generator { count => 3 } } output { stdout { codec => rubydebug } }'
17+
18+
docker tag docker.elastic.co/logstash/logstash-observability-sre:${QUALIFIED_VERSION} pr-built-observability-sre-image
19+
20+
./gradlew observabilitySREsmokeTests --stacktrace

versions.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
logstash: 9.1.7
44
logstash-core: 9.1.7
55
logstash-core-plugin-api: 2.1.16
6+
# Logstash release track corresponding to keys in https://github.com/logstash-plugins/.ci/blob/1.x/logstash-versions.yml
7+
# For example 9.current, 9.previous, etc
8+
logstash-release-track: 9.previous
69

710
bundled_jdk:
811
# for AdoptOpenJDK/OpenJDK jdk-14.0.1+7.1, the revision is 14.0.1 while the build is 7.1

0 commit comments

Comments
 (0)