Skip to content

Commit cdbdac1

Browse files
committed
Address PR comments
Signed-off-by: Taylor Gray <tylgry@amazon.com>
1 parent 55b0a31 commit cdbdac1

9 files changed

Lines changed: 101 additions & 232 deletions

File tree

e2e-test/kafka-backward-compatibility/QUICKSTART.md

Lines changed: 0 additions & 130 deletions
This file was deleted.

e2e-test/kafka-backward-compatibility/README.md renamed to e2e-test/kafka-buffer-backward-compatibility/README.md

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This test verifies that the current build of Data Prepper can successfully read
88

99
### Phase 1: Write with Released Version
1010
1. Start Kafka container
11-
2. Start **released** Data Prepper from Docker Hub (e.g., `opensearchproject/data-prepper:2.10.0`)
11+
2. Start **released** Data Prepper from Docker Hub (e.g., `opensearchproject/data-prepper:2`)
1212
3. Send 2 test records via HTTP endpoint
1313
4. Records are written to Kafka buffer using the released version's format
1414
5. Stop the released Data Prepper container
@@ -33,23 +33,23 @@ This test verifies that the current build of Data Prepper can successfully read
3333

3434
```bash
3535
# From the repository root
36-
./gradlew :e2e-test:kafka-backward-compatibility:kafkaBackwardCompatibilityTest
36+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:kafkaBufferBackwardCompatibilityTest
3737
```
3838

3939
### Run with Specific Version
4040

4141
You can test backward compatibility with a specific Data Prepper version:
4242

4343
```bash
44-
./gradlew :e2e-test:kafka-backward-compatibility:kafkaBackwardCompatibilityTest \
45-
-PbackwardCompatVersion=2.9.0
44+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:kafkaBufferBackwardCompatibilityTest \
45+
-PreleasedVersion=2.9.0
4646
```
4747

4848
## Test Components
4949

5050
### Docker Containers
5151

52-
1. **Kafka** (`kafka-backward-compat-test`)
52+
1. **Kafka** (`kafka-buffer-backward-compatibility-test`)
5353
- Confluent Kafka 3.6.0
5454
- KRaft mode (no ZooKeeper)
5555
- Port: 9092
@@ -74,16 +74,16 @@ You can test backward compatibility with a specific Data Prepper version:
7474

7575
## What This Tests
7676

77-
**Kafka message format compatibility**
77+
**Kafka message format compatibility**
7878
- Protobuf serialization format
7979
- Message envelope structure
8080
- Field naming and types
8181

82-
**Consumer offset management**
82+
**Consumer offset management**
8383
- Offset commits and reads
8484
- Consumer group handling
8585

86-
**Data integrity**
86+
**Data integrity**
8787
- Messages written by old version can be read by new version
8888
- No data loss or corruption
8989
- Field values preserved correctly
@@ -94,7 +94,7 @@ You can test backward compatibility with a specific Data Prepper version:
9494

9595
```bash
9696
# Kafka logs
97-
docker logs kafka-backward-compat-test
97+
docker logs kafka-buffer-backward-compatibility-test
9898

9999
# Released Data Prepper logs
100100
docker logs data-prepper-writer
@@ -110,30 +110,30 @@ docker logs node-0.example.com
110110

111111
```bash
112112
# Start Kafka manually
113-
./gradlew :e2e-test:kafka-backward-compatibility:startKafkaDockerContainer
113+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:startKafkaDockerContainer
114114

115115
# Start released Data Prepper manually
116-
./gradlew :e2e-test:kafka-backward-compatibility:startReleasedDataPrepperContainer
116+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:startReleasedDataPrepperContainer
117117

118118
# Start current Data Prepper manually
119-
./gradlew :e2e-test:kafka-backward-compatibility:startCurrentDataPrepperContainer
119+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:startCurrentDataPrepperContainer
120120

121121
# Stop all
122-
./gradlew :e2e-test:kafka-backward-compatibility:stopKafkaDockerContainer
123-
./gradlew :e2e-test:kafka-backward-compatibility:stopReleasedDataPrepperContainer
124-
./gradlew :e2e-test:kafka-backward-compatibility:stopCurrentDataPrepperContainer
122+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:stopKafkaDockerContainer
123+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:stopReleasedDataPrepperContainer
124+
./gradlew :e2e-test:kafka-buffer-backward-compatibility:stopCurrentDataPrepperContainer
125125
```
126126

127127
### Check Kafka Topics
128128

129129
```bash
130-
docker exec kafka-backward-compat-test kafka-topics --list --bootstrap-server localhost:9092
130+
docker exec kafka-buffer-backward-compatibility-test kafka-topics --list --bootstrap-server localhost:9092
131131
```
132132

133133
### Query OpenSearch Directly
134134

135135
```bash
136-
curl -k -u admin:admin "https://localhost:9200/backward-compat-test-index/_search?pretty"
136+
curl -k -u admin:admin "https://localhost:9200/kafka-backward-compatibility-test-index/_search?pretty"
137137
```
138138

139139
## Expected Behavior
@@ -142,19 +142,11 @@ When the test passes:
142142
1. Released Data Prepper successfully writes 2 messages to Kafka
143143
2. Current Data Prepper successfully reads both messages from Kafka
144144
3. Both messages appear in OpenSearch with correct content
145-
4. Test completes with ✅ SUCCESS message
146-
147-
## CI/CD Integration
148-
149-
This test should be run:
150-
- ✅ Before releasing new versions
151-
- ✅ When making changes to Kafka buffer serialization
152-
- ✅ When upgrading Kafka client libraries
153-
- ✅ As part of the release candidate verification process
145+
4. Test completes with SUCCESS message
154146

155147
## Notes
156148

157149
- The test uses **unencrypted** Kafka messages for simplicity
158150
- If you need to test encrypted backward compatibility, modify the pipeline configs to enable encryption
159-
- The released version can be configured via `-PbackwardCompatVersion` property
160-
- Default released version is `2.10.0` (configured in `build.gradle`)
151+
- The released version can be configured via `-PreleasedVersion` property
152+
- Default released version is `2` (configured in `build.gradle`)

e2e-test/kafka-backward-compatibility/build.gradle renamed to e2e-test/kafka-buffer-backward-compatibility/build.gradle

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ import com.bmuschko.gradle.docker.tasks.image.DockerPullImage
1818
* IMPORTANT: This test intentionally does NOT use the parent's dataPrepperDockerImage
1919
* because it needs to test backward compatibility with a RELEASED version.
2020
*
21-
* Writer: Uses released opensearchproject/data-prepper:2.10.0
22-
* Reader: Uses locally built :release:docker:docker (always Docker, all Java versions test with docker)
21+
* Writer: Uses released opensearchproject/data-prepper:2 (always Docker, all Java versions test with docker)
22+
* Reader: Uses locally built :release:docker:docker
2323
*/
2424

2525
/**
26-
* Kafka Backward Compatibility End-to-End Test
26+
* Kafka Buffer Backward Compatibility End-to-End Test
2727
*
2828
* This test verifies backward compatibility between Data Prepper versions
2929
* by writing data with a released version and reading with the current build.
3030
*/
3131

32-
def RELEASED_VERSION = project.hasProperty('backwardCompatVersion') ?
33-
project.getProperty('backwardCompatVersion') : '2.10.0'
32+
def RELEASED_VERSION = project.hasProperty('releasedVersion') ?
33+
project.getProperty('releasedVersion') : '2'
3434
def KAFKA_VERSION = '7.8.0'
3535
def WRITER_PIPELINE_YAML = 'writer-pipeline.yaml'
3636
def READER_PIPELINE_YAML = 'reader-pipeline.yaml'
@@ -50,7 +50,7 @@ tasks.register('pullKafkaImage', DockerPullImage) {
5050
tasks.register('createKafkaContainer', DockerCreateContainer) {
5151
dependsOn pullKafkaImage
5252
dependsOn createDataPrepperNetwork
53-
containerName = 'kafka-backward-compat'
53+
containerName = 'kafka-buffer-backward-compatibility'
5454
exposePorts('tcp', [9092, 9093])
5555
hostConfig.portBindings = ['9092:9092', '9093:9093']
5656
hostConfig.network = createDataPrepperNetwork.getNetworkName()
@@ -157,13 +157,13 @@ tasks.register('removeCurrentDataPrepperContainer', DockerRemoveContainer) {
157157
}
158158

159159
// Clean up tasks - remove any existing containers/networks before starting
160-
tasks.register('cleanupKafkaBackwardCompatTest') {
160+
tasks.register('cleanupKafkaBufferBackwardCompatibilityTest') {
161161
group = 'verification'
162162
description = 'Cleans up containers and network from previous test runs'
163163

164164
doLast {
165165
// Clean up containers
166-
['kafka-backward-compat', 'data-prepper-writer', 'data-prepper-reader'].each { containerName ->
166+
['kafka-buffer-backward-compatibility', 'data-prepper-writer', 'data-prepper-reader'].each { containerName ->
167167
try {
168168
exec {
169169
commandLine 'docker', 'stop', containerName
@@ -191,8 +191,10 @@ tasks.register('cleanupKafkaBackwardCompatTest') {
191191
}
192192

193193
// Main test task
194-
tasks.register('kafkaBackwardCompatibilityTest', Test) {
195-
dependsOn cleanupKafkaBackwardCompatTest
194+
tasks.register('kafkaBufferBackwardCompatibilityTest', Test) {
195+
useJUnitPlatform()
196+
197+
dependsOn cleanupKafkaBufferBackwardCompatibilityTest
196198
dependsOn build
197199
dependsOn startOpenSearchDockerContainer
198200
dependsOn startKafkaContainer
@@ -204,18 +206,18 @@ tasks.register('kafkaBackwardCompatibilityTest', Test) {
204206
sleep(20 * 1000)
205207
}
206208

207-
description = 'Runs Kafka backward compatibility end-to-end test'
209+
description = 'Runs Kafka buffer backward compatibility end-to-end test'
208210
group = 'verification'
209211
testClassesDirs = sourceSets.integrationTest.output.classesDirs
210212
classpath = sourceSets.integrationTest.runtimeClasspath
211213

212214
filter {
213-
includeTestsMatching 'org.opensearch.dataprepper.integration.backward.KafkaBackwardCompatibilityTest.*'
215+
includeTestsMatching 'org.opensearch.dataprepper.integration.backward.KafkaBufferBackwardCompatibilityTest.*'
214216
}
215217

216218
// Pass version to test
217-
if (project.hasProperty('backwardCompatVersion')) {
218-
systemProperty 'backwardCompatVersion', project.getProperty('backwardCompatVersion')
219+
if (project.hasProperty('releasedVersion')) {
220+
systemProperty 'releasedVersion', project.getProperty('releasedVersion')
219221
}
220222

221223
finalizedBy stopOpenSearchDockerContainer

0 commit comments

Comments
 (0)