Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: strimzi/strimzi-kafka-bridge
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.23.0-rc1
Choose a base ref
...
head repository: strimzi/strimzi-kafka-bridge
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 10,831 additions and 7,766 deletions.
  1. +2 −0 .azure/build-pipeline.yaml
  2. +0 −8 .azure/scripts/container-build.sh
  3. +0 −20 .azure/scripts/container-push.sh
  4. +11 −0 .azure/scripts/install_cosign.sh
  5. +14 −0 .azure/scripts/install_syft.sh
  6. +0 −8 .azure/scripts/java-build.sh
  7. +13 −6 .azure/scripts/push-to-nexus.sh
  8. +3 −3 .azure/templates/jobs/build_container.yaml
  9. +9 −5 .azure/templates/jobs/build_docs.yaml
  10. +8 −15 .azure/templates/jobs/build_java.yaml
  11. +9 −1 .azure/templates/jobs/deploy_java.yaml
  12. +1 −1 .azure/templates/jobs/publish_docs.yaml
  13. +75 −5 .azure/templates/jobs/push_container.yaml
  14. 0 .azure/templates/steps/{setup_asciidoc.yaml → prerequisites/install_asciidoc.yaml}
  15. +3 −0 .azure/templates/steps/prerequisites/install_cosign.yaml
  16. +3 −2 .azure/templates/steps/{setup_docker.yaml → prerequisites/install_docker.yaml}
  17. +11 −0 .azure/templates/steps/prerequisites/install_java.yaml
  18. +3 −0 .azure/templates/steps/prerequisites/install_syft.yaml
  19. +0 −35 .azure/templates/steps/setup_java.yaml
  20. +10 −0 .checkstyle/checkstyle.xml
  21. +6 −6 .github/workflows/codeql-analysis.yml
  22. +0 −42 .travis.yml
  23. +0 −59 .travis/build.sh
  24. +0 −29 HACKING.md → BUILDING.md
  25. +115 −0 CHANGELOG.md
  26. +4 −4 Dockerfile
  27. +5 −3 Makefile
  28. +45 −1 Makefile.docker
  29. +1 −1 Makefile.maven
  30. +63 −11 README.md
  31. +10 −3 bin/docker/dynamic_resources.sh
  32. +0 −173 bin/docker/kafka_bridge_config_generator.sh
  33. +9 −11 bin/docker/kafka_bridge_run.sh
  34. +31 −29 bin/docker/kafka_bridge_tls_prepare_certificates.sh
  35. +11 −0 bin/docker/to_bytes.gawk
  36. +12 −4 config/application.properties
  37. +1 −1 config/log4j2.properties
  38. +9 −0 development-docs/RELEASING.md
  39. +2 −2 development-docs/TESTING.md
  40. +4 −2 documentation/assemblies/assembly-kafka-bridge-config.adoc
  41. +1 −1 documentation/assemblies/assembly-kafka-bridge-overview.adoc
  42. +1 −1 documentation/assemblies/assembly-kafka-bridge-quickstart.adoc
  43. +23 −0 documentation/book/api/.openapi-generator-ignore
  44. +1 −0 documentation/book/api/.openapi-generator/FILES
  45. +1 −0 documentation/book/api/.openapi-generator/VERSION
  46. +1 −0 documentation/book/api/.openapi-generator/openapi.json-generate-apidoc.sha256
  47. +0 −315 documentation/book/api/definitions.adoc
  48. +3,890 −0 documentation/book/api/index.adoc
  49. +0 −32 documentation/book/api/overview.adoc
  50. +0 −1,490 documentation/book/api/paths.adoc
  51. +0 −2 documentation/book/api/security.adoc
  52. +10 −0 documentation/book/api/snippet/GET/http-response.adoc
  53. +11 −0 documentation/book/api/snippet/admin/topics/POST/http-request.adoc
  54. +15 −0 documentation/book/api/snippet/consumers/{groupid}/POST/http-request.adoc
  55. +30 −0 documentation/book/api/snippet/consumers/{groupid}/POST/http-response.adoc
  56. +10 −0 documentation/book/api/snippet/consumers/{groupid}/instances/{name}/DELETE/http-response.adoc
  57. +15 −0 ...entation/book/api/snippet/consumers/{groupid}/instances/{name}/assignments/POST/http-request.adoc
  58. +20 −0 ...ntation/book/api/snippet/consumers/{groupid}/instances/{name}/assignments/POST/http-response.adoc
  59. +17 −0 documentation/book/api/snippet/consumers/{groupid}/instances/{name}/offsets/POST/http-request.adoc
  60. +10 −0 documentation/book/api/snippet/consumers/{groupid}/instances/{name}/offsets/POST/http-response.adoc
  61. +17 −0 documentation/book/api/snippet/consumers/{groupid}/instances/{name}/positions/POST/http-request.adoc
  62. +10 −0 ...mentation/book/api/snippet/consumers/{groupid}/instances/{name}/positions/POST/http-response.adoc
  63. +15 −0 .../book/api/snippet/consumers/{groupid}/instances/{name}/positions/beginning/POST/http-request.adoc
  64. +10 −0 ...book/api/snippet/consumers/{groupid}/instances/{name}/positions/beginning/POST/http-response.adoc
  65. +15 −0 ...tation/book/api/snippet/consumers/{groupid}/instances/{name}/positions/end/POST/http-request.adoc
  66. +10 −0 ...ation/book/api/snippet/consumers/{groupid}/instances/{name}/positions/end/POST/http-response.adoc
  67. +71 −0 documentation/book/api/snippet/consumers/{groupid}/instances/{name}/records/GET/http-response.adoc
  68. +10 −0 ...tion/book/api/snippet/consumers/{groupid}/instances/{name}/subscription/DELETE/http-response.adoc
  69. +24 −0 ...ntation/book/api/snippet/consumers/{groupid}/instances/{name}/subscription/GET/http-response.adoc
  70. +9 −0 ...ntation/book/api/snippet/consumers/{groupid}/instances/{name}/subscription/POST/http-request.adoc
  71. +30 −0 ...tation/book/api/snippet/consumers/{groupid}/instances/{name}/subscription/POST/http-response.adoc
  72. +7 −0 documentation/book/api/snippet/topics/GET/http-response.adoc
  73. +38 −0 documentation/book/api/snippet/topics/{topicname}/GET/http-response.adoc
  74. +17 −0 documentation/book/api/snippet/topics/{topicname}/POST/http-request.adoc
  75. +38 −0 documentation/book/api/snippet/topics/{topicname}/POST/http-response.adoc
  76. +41 −0 documentation/book/api/snippet/topics/{topicname}/partitions/GET/http-response.adoc
  77. +29 −0 documentation/book/api/snippet/topics/{topicname}/partitions/{partitionid}/GET/http-response.adoc
  78. +14 −0 documentation/book/api/snippet/topics/{topicname}/partitions/{partitionid}/POST/http-request.adoc
  79. +38 −0 documentation/book/api/snippet/topics/{topicname}/partitions/{partitionid}/POST/http-response.adoc
  80. +20 −0 ...ation/book/api/snippet/topics/{topicname}/partitions/{partitionid}/offsets/GET/http-response.adoc
  81. +133 −0 documentation/book/api/template/index.mustache
  82. +1 −7 documentation/book/bridge.adoc
  83. BIN documentation/images/kafka-bridge.png
  84. +9 −6 documentation/modules/con-loggers-kafka-bridge.adoc
  85. +1 −1 documentation/modules/con-overview-components-kafka-bridge.adoc
  86. +1 −1 documentation/modules/con-overview-open-api-spec-kafka-bridge.adoc
  87. +9 −1 documentation/modules/con-overview-running-kafka-bridge.adoc
  88. +12 −7 documentation/modules/con-requests-kafka-bridge.adoc
  89. +3 −3 documentation/modules/proc-bridge-committing-consumer-offsets-to-log.adoc
  90. +2 −2 documentation/modules/proc-bridge-deleting-consumer.adoc
  91. +2 −2 documentation/modules/proc-bridge-retrieving-latest-messages-from-consumer.adoc
  92. +7 −7 documentation/modules/proc-bridge-seeking-offsets-for-partition.adoc
  93. +6 −2 documentation/modules/proc-bridge-subscribing-consumer-topics.adoc
  94. +33 −0 documentation/modules/proc-configuring-kafka-bridge-jmx-metrics.adoc
  95. +42 −0 documentation/modules/proc-configuring-kafka-bridge-smr-metrics.adoc
  96. +26 −22 documentation/modules/proc-configuring-kafka-bridge-tracing.adoc
  97. +2 −2 documentation/modules/proc-creating-kafka-bridge-consumer.adoc
  98. +2 −2 documentation/modules/proc-downloading-kafka-bridge.adoc
  99. +4 −4 documentation/modules/proc-producing-messages-from-bridge-topics-partitions.adoc
  100. +6 −2 perftest/README.md
  101. +5 −1 perftest/strimzi-kafka-bridge.jmx
  102. +214 −164 pom.xml
  103. +1 −1 release.version
  104. +1 −1 src/main/assembly/{zip.xml → assembly.xml}
  105. +0 −125 src/main/java/io/strimzi/kafka/bridge/AdminClientEndpoint.java
  106. +53 −118 src/main/java/io/strimzi/kafka/bridge/Application.java
  107. +3 −0 src/main/java/io/strimzi/kafka/bridge/BridgeContentType.java
  108. +0 −55 src/main/java/io/strimzi/kafka/bridge/BridgeEndpoint.java
  109. +0 −57 src/main/java/io/strimzi/kafka/bridge/ConnectionEndpoint.java
  110. +1 −17 src/main/java/io/strimzi/kafka/bridge/ConsumerInstanceId.java
  111. +10 −8 src/main/java/io/strimzi/kafka/bridge/EmbeddedFormat.java
  112. +0 −18 src/main/java/io/strimzi/kafka/bridge/Endpoint.java
  113. +22 −0 src/main/java/io/strimzi/kafka/bridge/Handler.java
  114. +0 −61 src/main/java/io/strimzi/kafka/bridge/JmxCollectorRegistry.java
  115. +183 −0 src/main/java/io/strimzi/kafka/bridge/KafkaBridgeAdmin.java
  116. +231 −0 src/main/java/io/strimzi/kafka/bridge/KafkaBridgeConsumer.java
  117. +104 −0 src/main/java/io/strimzi/kafka/bridge/KafkaBridgeProducer.java
  118. +43 −0 src/main/java/io/strimzi/kafka/bridge/LoggingPartitionsRebalance.java
  119. +0 −72 src/main/java/io/strimzi/kafka/bridge/MetricsReporter.java
  120. +0 −26 src/main/java/io/strimzi/kafka/bridge/NoopPartitionsAssignmentHandle.java
  121. +0 −30 src/main/java/io/strimzi/kafka/bridge/PartitionsAssignmentHandle.java
  122. +0 −17 src/main/java/io/strimzi/kafka/bridge/QoSEndpoint.java
  123. +0 −317 src/main/java/io/strimzi/kafka/bridge/SinkBridgeEndpoint.java
  124. +2 −20 src/main/java/io/strimzi/kafka/bridge/SinkTopicSubscription.java
  125. +0 −119 src/main/java/io/strimzi/kafka/bridge/SourceBridgeEndpoint.java
  126. +1 −1 src/main/java/io/strimzi/kafka/bridge/config/AbstractConfig.java
  127. +63 −7 src/main/java/io/strimzi/kafka/bridge/config/BridgeConfig.java
  128. +60 −0 src/main/java/io/strimzi/kafka/bridge/config/ConfigRetriever.java
  129. +20 −4 src/main/java/io/strimzi/kafka/bridge/config/KafkaConfig.java
  130. +7 −7 src/main/java/io/strimzi/kafka/bridge/converter/MessageConverter.java
  131. +393 −0 src/main/java/io/strimzi/kafka/bridge/http/HttpAdminBridgeEndpoint.java
  132. +0 −365 src/main/java/io/strimzi/kafka/bridge/http/HttpAdminClientEndpoint.java
  133. +315 −223 src/main/java/io/strimzi/kafka/bridge/http/HttpBridge.java
  134. +24 −28 src/main/java/io/strimzi/kafka/bridge/http/HttpBridgeContext.java
  135. +84 −0 src/main/java/io/strimzi/kafka/bridge/http/HttpBridgeEndpoint.java
  136. +1 −1 src/main/java/io/strimzi/kafka/bridge/http/HttpConfig.java
  137. +0 −30 src/main/java/io/strimzi/kafka/bridge/http/HttpEndpoint.java
  138. +19 −50 src/main/java/io/strimzi/kafka/bridge/http/HttpOpenApiOperation.java
  139. +10 −2 src/main/java/io/strimzi/kafka/bridge/http/HttpOpenApiOperations.java
  140. +352 −294 src/main/java/io/strimzi/kafka/bridge/http/HttpSinkBridgeEndpoint.java
  141. +105 −90 src/main/java/io/strimzi/kafka/bridge/http/HttpSourceBridgeEndpoint.java
  142. +11 −12 src/main/java/io/strimzi/kafka/bridge/http/HttpUtils.java
  143. +54 −56 src/main/java/io/strimzi/kafka/bridge/http/converter/HttpBinaryMessageConverter.java
  144. +56 −59 src/main/java/io/strimzi/kafka/bridge/http/converter/HttpJsonMessageConverter.java
  145. +126 −0 src/main/java/io/strimzi/kafka/bridge/http/converter/HttpTextMessageConverter.java
  146. +37 −0 src/main/java/io/strimzi/kafka/bridge/http/converter/JsonDecodeException.java
  147. +37 −0 src/main/java/io/strimzi/kafka/bridge/http/converter/JsonEncodeException.java
  148. +127 −0 src/main/java/io/strimzi/kafka/bridge/http/converter/JsonUtils.java
  149. +9 −31 src/main/java/io/strimzi/kafka/bridge/http/model/HttpBridgeError.java
  150. +3 −21 src/main/java/io/strimzi/kafka/bridge/http/model/HttpBridgeResult.java
  151. +61 −0 src/main/java/io/strimzi/kafka/bridge/metrics/JmxMetricsCollector.java
  152. +61 −0 src/main/java/io/strimzi/kafka/bridge/metrics/MetricsCollector.java
  153. +40 −0 src/main/java/io/strimzi/kafka/bridge/metrics/MetricsType.java
  154. +53 −0 src/main/java/io/strimzi/kafka/bridge/metrics/StrimziMetricsCollector.java
  155. +70 −0 src/main/java/io/strimzi/kafka/bridge/tracing/BridgeContextStorageProvider.java
  156. +4 −4 src/main/java/io/strimzi/kafka/bridge/tracing/NoopTracingHandle.java
  157. +37 −19 src/main/java/io/strimzi/kafka/bridge/tracing/OpenTelemetryHandle.java
  158. +0 −176 src/main/java/io/strimzi/kafka/bridge/tracing/OpenTracingHandle.java
  159. +2 −2 src/main/java/io/strimzi/kafka/bridge/tracing/SpanHandle.java
  160. +0 −6 src/main/java/io/strimzi/kafka/bridge/tracing/TracingConstants.java
  161. +3 −4 src/main/java/io/strimzi/kafka/bridge/tracing/TracingHandle.java
  162. +21 −22 src/main/java/io/strimzi/kafka/bridge/tracing/TracingUtil.java
  163. +1 −0 src/main/resources/META-INF/services/io.opentelemetry.context.ContextStorageProvider
  164. +26 −0 src/main/resources/jmx_metrics_config.yaml
  165. +1 −1 src/main/resources/log4j2.properties
  166. +254 −47 src/main/resources/openapi.json
  167. +0 −1,935 src/main/resources/openapiv2.json
  168. +69 −41 src/test/java/io/strimzi/kafka/bridge/clients/BasicKafkaClient.java
  169. +4 −3 src/test/java/io/strimzi/kafka/bridge/clients/Consumer.java
  170. +33 −34 src/test/java/io/strimzi/kafka/bridge/clients/Producer.java
  171. +79 −0 src/test/java/io/strimzi/kafka/bridge/config/ConfigRetrieverTest.java
  172. +155 −0 src/test/java/io/strimzi/kafka/bridge/config/ConfigTest.java
  173. +15 −9 src/test/java/io/strimzi/kafka/bridge/facades/AdminClientFacade.java
  174. +77 −8 src/test/java/io/strimzi/kafka/bridge/http/AdminClientIT.java
  175. +24 −21 src/test/java/io/strimzi/kafka/bridge/http/ConsumerGeneratedNameIT.java
  176. +223 −79 src/test/java/io/strimzi/kafka/bridge/http/ConsumerIT.java
  177. +229 −26 src/test/java/io/strimzi/kafka/bridge/http/ConsumerSubscriptionIT.java
  178. +33 −33 src/test/java/io/strimzi/kafka/bridge/http/DisablingConsumerProducerIT.java
  179. +106 −45 src/test/java/io/strimzi/kafka/bridge/http/HttpCorsIT.java
  180. +7 −8 src/test/java/io/strimzi/kafka/bridge/http/InvalidProducerIT.java
  181. +94 −27 src/test/java/io/strimzi/kafka/bridge/http/OtherServicesIT.java
  182. +627 −156 src/test/java/io/strimzi/kafka/bridge/http/ProducerIT.java
  183. +95 −76 src/test/java/io/strimzi/kafka/bridge/http/SeekIT.java
  184. +32 −17 src/test/java/io/strimzi/kafka/bridge/http/base/HttpBridgeITAbstract.java
  185. +13 −8 src/test/java/io/strimzi/kafka/bridge/http/services/ConsumerService.java
  186. +73 −0 src/test/java/io/strimzi/kafka/bridge/metrics/JmxMetricsCollectorTest.java
  187. +63 −0 src/test/java/io/strimzi/kafka/bridge/metrics/StrimziMetricsCollectorTest.java
  188. +0 −3 src/test/java/io/strimzi/kafka/bridge/tracing/OpenTelemetryTest.java
  189. +0 −27 src/test/java/io/strimzi/kafka/bridge/tracing/OpenTracingTest.java
  190. +19 −18 src/test/java/io/strimzi/kafka/bridge/tracing/TracingTestBase.java
  191. +15 −0 src/test/resources/application.properties
  192. +1 −1 src/test/resources/log4j2.properties
  193. +1 −0 src/test/resources/wrong.properties
2 changes: 2 additions & 0 deletions .azure/build-pipeline.yaml
Original file line number Diff line number Diff line change
@@ -16,6 +16,8 @@ stages:
displayName: Java build
jobs:
- template: 'templates/jobs/build_java.yaml'
variables:
STRIMZI_TEST_CONTAINER_LOGGING_ENABLED: false
- stage: docs_build
displayName: Docs build
dependsOn: []
8 changes: 0 additions & 8 deletions .azure/scripts/container-build.sh

This file was deleted.

20 changes: 0 additions & 20 deletions .azure/scripts/container-push.sh

This file was deleted.

11 changes: 11 additions & 0 deletions .azure/scripts/install_cosign.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

readonly VERSION="2.2.0"

ARCH=$1
if [ -z "$ARCH" ]; then
ARCH="amd64"
fi

curl -L https://github.com/sigstore/cosign/releases/download/v${VERSION}/cosign-linux-${ARCH} > cosign && chmod +x cosign
sudo mv cosign /usr/bin/
14 changes: 14 additions & 0 deletions .azure/scripts/install_syft.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -e

readonly VERSION="0.90.0"

ARCH=$1
if [ -z "$ARCH" ]; then
ARCH="amd64"
fi

wget https://github.com/anchore/syft/releases/download/v${VERSION}/syft_${VERSION}_linux_${ARCH}.tar.gz -O syft.tar.gz
tar xf syft.tar.gz -C /tmp
chmod +x /tmp/syft
sudo mv /tmp/syft /usr/bin
8 changes: 0 additions & 8 deletions .azure/scripts/java-build.sh

This file was deleted.

19 changes: 13 additions & 6 deletions .azure/scripts/push-to-nexus.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
#!/usr/bin/env bash

set -e

echo "Build reason: ${BUILD_REASON}"
echo "Source branch: ${BRANCH}"

GPG_TTY=$(tty)
export GPG_TTY
function cleanup() {
rm -rf signing.gpg
gpg --delete-keys
gpg --delete-secret-keys
}

# Run the cleanup on failure / exit
trap cleanup EXIT

echo "$GPG_SIGNING_KEY" | base64 -d > signing.gpg
export GPG_TTY=$(tty)
echo $GPG_SIGNING_KEY | base64 -d > signing.gpg
gpg --batch --import signing.gpg

GPG_EXECUTABLE=gpg mvn $MVN_ARGS -DskipTests -s ./.azure/scripts/settings.xml -P ossrh verify deploy

rm -rf signing.gpg
gpg --delete-keys
gpg --delete-secret-keys
cleanup
6 changes: 3 additions & 3 deletions .azure/templates/jobs/build_container.yaml
Original file line number Diff line number Diff line change
@@ -11,10 +11,10 @@ jobs:
timeoutInMinutes: 60
# Base system
pool:
vmImage: 'Ubuntu-20.04'
vmImage: 'Ubuntu-22.04'
# Pipeline steps
steps:
- template: '../steps/setup_docker.yaml'
- template: '../steps/prerequisites/install_docker.yaml'
- task: DownloadPipelineArtifact@2
inputs:
source: '${{ parameters.artifactSource }}'
@@ -26,7 +26,7 @@ jobs:
runId: '${{ parameters.artifactRunId }}'
- bash: tar -xvf target.tar
displayName: "Untar the target directory"
- bash: ".azure/scripts/container-build.sh"
- bash: "make docker_build docker_save"
env:
DOCKER_BUILDKIT: 1
BUILD_REASON: $(Build.Reason)
14 changes: 9 additions & 5 deletions .azure/templates/jobs/build_docs.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
jobs:
- job: 'build_docs'
displayName: 'Build Docs'
strategy:
matrix:
'java-17':
image: 'Ubuntu-22.04'
jdk_version: '17'
# Strategy for the job
# Set timeout for jobs
timeoutInMinutes: 60
# Base system
pool:
vmImage: 'Ubuntu-20.04'
vmImage: $(image)
# Variables
variables:
MVN_CACHE_FOLDER: $(HOME)/.m2/repository
@@ -15,11 +20,10 @@ jobs:
steps:
# Get cached Maven repository
- template: "../steps/maven_cache.yaml"
- template: '../steps/setup_java.yaml'
- template: '../steps/prerequisites/install_java.yaml'
parameters:
JDK_PATH: '/usr/lib/jvm/java-11-openjdk-amd64'
JDK_VERSION: '11'
- template: '../steps/setup_asciidoc.yaml'
JDK_VERSION: $(jdk_version)
- template: '../steps/prerequisites/install_asciidoc.yaml'
- bash: "make docu_html docu_htmlnoheader"
displayName: "Build docs"
env:
23 changes: 8 additions & 15 deletions .azure/templates/jobs/build_java.yaml
Original file line number Diff line number Diff line change
@@ -4,16 +4,10 @@ jobs:
# Strategy for the job
strategy:
matrix:
'java-11':
image: 'Ubuntu-20.04'
jdk_version: '11'
jdk_path: '/usr/lib/jvm/java-11-openjdk-amd64'
main_build: 'true'
'java-17':
image: 'Ubuntu-20.04'
image: 'Ubuntu-22.04'
jdk_version: '17'
jdk_path: '/usr/lib/jvm/java-17-openjdk-amd64'
main_build: 'false'
main_build: 'true'
# Set timeout for jobs
timeoutInMinutes: 60
# Base system
@@ -27,21 +21,20 @@ jobs:
steps:
# Get cached Maven repository
- template: "../steps/maven_cache.yaml"
- template: '../steps/setup_java.yaml'
- template: '../steps/prerequisites/install_java.yaml'
parameters:
JDK_PATH: $(jdk_path)
JDK_VERSION: $(jdk_version)
- bash: "make spotbugs"
displayName: "Spotbugs"
env:
MVN_ARGS: "-e -V -B"
- bash: ".azure/scripts/java-build.sh"
- bash: "make java_verify"
displayName: "Build & Test Java"
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
TESTCONTAINERS_RYUK_DISABLED: "TRUE"
TESTCONTAINERS_CHECKS_DISABLE: "TRUE"
MVN_ARGS: "-e -V -B"
- bash: "make spotbugs"
displayName: "Spotbugs"
env:
MVN_ARGS: "-e -V -B"
# We have to TAR the target directory to maintain the permissions of
# the files which would otherwise change when downloading the artifact
10 changes: 9 additions & 1 deletion .azure/templates/jobs/deploy_java.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
jobs:
- job: 'deploy_java'
displayName: 'Deploy Java'
# Strategy for the job
strategy:
matrix:
'java-17':
image: 'Ubuntu-22.04'
jdk_version: '17'
main_build: 'true'
# Set timeout for jobs
timeoutInMinutes: 60
# Base system
pool:
vmImage: 'Ubuntu-20.04'
vmImage: 'Ubuntu-22.04'
# Pipeline steps
steps:
- template: '../steps/prerequisites/install_java.yaml'
- task: DownloadPipelineArtifact@2
inputs:
source: '${{ parameters.artifactSource }}'
2 changes: 1 addition & 1 deletion .azure/templates/jobs/publish_docs.yaml
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ jobs:
timeoutInMinutes: 60
# Base system
pool:
vmImage: 'Ubuntu-20.04'
vmImage: 'Ubuntu-22.04'
# Pipeline steps
steps:
- task: DownloadPipelineArtifact@2
80 changes: 75 additions & 5 deletions .azure/templates/jobs/push_container.yaml
Original file line number Diff line number Diff line change
@@ -5,10 +5,12 @@ jobs:
timeoutInMinutes: 60
# Base system
pool:
vmImage: 'Ubuntu-20.04'
vmImage: 'Ubuntu-22.04'
# Pipeline steps
steps:
- template: '../steps/setup_docker.yaml'
- template: '../steps/prerequisites/install_docker.yaml'
- template: "../steps/prerequisites/install_cosign.yaml"
- template: "../steps/prerequisites/install_syft.yaml"
- ${{ each arch in parameters.architectures }}:
- task: DownloadPipelineArtifact@2
inputs:
@@ -19,14 +21,82 @@ jobs:
pipeline: '${{ parameters.artifactPipeline }}'
runVersion: '${{ parameters.artifactRunVersion }}'
runId: '${{ parameters.artifactRunId }}'
- bash: ".azure/scripts/container-push.sh"
# Push containers and their manifests
- bash: "docker login -u $DOCKER_USER -p $DOCKER_PASS $DOCKER_REGISTRY"
displayName: "Login to container registry"
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
DOCKER_USER: $(QUAY_USER)
DOCKER_PASS: $(QUAY_PASS)
DOCKER_REGISTRY: "quay.io"
- bash: "make docker_delete_manifest"
displayName: "Delete existing container manifest"
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
DOCKER_REGISTRY: "quay.io"
DOCKER_ORG: "strimzi"
DOCKER_TAG: '${{ parameters.dockerTag }}'
ARCHITECTURES: ${{ join(' ', parameters.architectures) }}
displayName: "Tag & Push container"
- ${{ each arch in parameters.architectures }}:
- bash: make docker_load docker_tag docker_push docker_amend_manifest docker_delete_archive
displayName: "Push the ${{ arch }} containers and create manifest"
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
DOCKER_REGISTRY: "quay.io"
DOCKER_ORG: "strimzi"
DOCKER_TAG: '${{ parameters.dockerTag }}'
DOCKER_ARCHITECTURE: ${{ arch }}
- bash: "make docker_push_manifest"
displayName: "Push container manifest"
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
DOCKER_REGISTRY: "quay.io"
DOCKER_ORG: "strimzi"
DOCKER_TAG: '${{ parameters.dockerTag }}'
- bash: "make docker_sign_manifest"
displayName: "Sign container manifest"
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
BUILD_ID: $(Build.BuildId)
BUILD_COMMIT: $(Build.SourceVersion)
DOCKER_REGISTRY: "quay.io"
DOCKER_ORG: "strimzi"
DOCKER_TAG: '${{ parameters.dockerTag }}'
COSIGN_PASSWORD: $(COSIGN_PASSWORD)
COSIGN_PRIVATE_KEY: $(COSIGN_PRIVATE_KEY)
# SBOMs generation, packaging, and signing
- ${{ each arch in parameters.architectures }}:
- bash: make docker_sbom
displayName: "Generate SBOMs for ${{ arch }} container"
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
DOCKER_REGISTRY: "quay.io"
DOCKER_ORG: "strimzi"
DOCKER_TAG: '${{ parameters.dockerTag }}'
DOCKER_ARCHITECTURE: ${{ arch }}
COSIGN_PASSWORD: $(COSIGN_PASSWORD)
COSIGN_PRIVATE_KEY: $(COSIGN_PRIVATE_KEY)
- bash: tar -z -C ./sbom/ -cvpf sbom.tar.gz ./
displayName: "Tar the SBOM files"
- publish: $(System.DefaultWorkingDirectory)/sbom.tar.gz
artifact: SBOMs-${{ parameters.dockerTag }}
displayName: "Publish the SBOM files"
# push the SBOMs to container registry only for releases
- ${{ each arch in parameters.architectures }}:
- bash: make docker_push_sbom
displayName: "Push SBOMs for ${{ arch }} container"
condition: startsWith(variables['build.sourceBranch'], 'refs/heads/release-')
env:
BUILD_REASON: $(Build.Reason)
BRANCH: $(Build.SourceBranch)
DOCKER_REGISTRY: "quay.io"
DOCKER_ORG: "strimzi"
DOCKER_TAG: '${{ parameters.dockerTag }}'
DOCKER_ARCHITECTURE: ${{ arch }}
COSIGN_PASSWORD: $(COSIGN_PASSWORD)
COSIGN_PRIVATE_KEY: $(COSIGN_PRIVATE_KEY)
File renamed without changes.
3 changes: 3 additions & 0 deletions .azure/templates/steps/prerequisites/install_cosign.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
steps:
- bash: ".azure/scripts/install_cosign.sh"
displayName: "Install cosign"
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Steps needed for local Docker installation
steps:
- task: DockerInstaller@0
displayName: Docker Installer
displayName: Install Docker
inputs:
dockerVersion: 20.10.8
# Versions can be found from https://download.docker.com/linux/static/stable/x86_64/
dockerVersion: 24.0.5
releaseType: stable
- bash: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
11 changes: 11 additions & 0 deletions .azure/templates/steps/prerequisites/install_java.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Step to configure JAVA on the agent
parameters:
- name: JDK_VERSION
default: '17'
steps:
- task: JavaToolInstaller@0
inputs:
versionSpec: $(JDK_VERSION)
jdkArchitectureOption: 'x64'
jdkSourceOption: 'PreInstalled'
displayName: 'Configure Java'
3 changes: 3 additions & 0 deletions .azure/templates/steps/prerequisites/install_syft.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
steps:
- bash: ".azure/scripts/install_syft.sh"
displayName: "Install Syft"
Loading