diff --git a/Makefile b/Makefile index bc1d3dd30..80d76b22d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,9 @@ +# Pin Strimzi to a known-good release. Must support the Kafka version in +# deploy/dev/kafka.yaml. Avoid "latest" so CI stays deterministic. +STRIMZI_VERSION ?= 1.0.0 +STRIMZI_INSTALL_URL := https://github.com/strimzi/strimzi-kafka-operator/releases/download/$(STRIMZI_VERSION)/strimzi-cluster-operator-$(STRIMZI_VERSION).yaml + install: ./gradlew compileJava installDist @@ -76,20 +81,20 @@ undeploy-flink: deploy-kafka: deploy deploy-flink kubectl create namespace kafka || echo "skipping" - kubectl apply -f "https://strimzi.io/install/latest?namespace=kafka" -n kafka + curl -L "$(STRIMZI_INSTALL_URL)" | sed 's/namespace: .*/namespace: kafka/' | kubectl apply -f - -n kafka sleep 10 # avoid kubectl race condition kubectl wait --for=condition=Established=True crds/kafkas.kafka.strimzi.io kubectl apply -f ./deploy/samples/kafkadb.yaml kubectl apply -f ./deploy/dev/kafka.yaml - kubectl wait kafka.kafka.strimzi.io/one --for=condition=Ready --timeout=10m -n kafka - kubectl wait kafkatopic.kafka.strimzi.io/kafka-database-existing-topic-1 --for=condition=Ready --timeout=10m - kubectl wait kafkatopic.kafka.strimzi.io/kafka-database-existing-topic-2 --for=condition=Ready --timeout=10m + kubectl wait kafka.kafka.strimzi.io/one --for=condition=Ready --timeout=20m -n kafka + kubectl wait kafkatopic.kafka.strimzi.io/kafka-database-existing-topic-1 --for=condition=Ready --timeout=5m + kubectl wait kafkatopic.kafka.strimzi.io/kafka-database-existing-topic-2 --for=condition=Ready --timeout=5m undeploy-kafka: kubectl delete kafkatopic.kafka.strimzi.io --all || echo "skipping" kubectl delete strimzi -n kafka --all || echo "skipping" kubectl delete pvc -l strimzi.io/name=one-kafka -n kafka || echo "skipping" - kubectl delete -f "https://strimzi.io/install/latest?namespace=kafka" -n kafka || echo "skipping" + kubectl delete -f "$(STRIMZI_INSTALL_URL)" -n kafka || echo "skipping" kubectl delete -f ./deploy/samples/kafkadb.yaml || echo "skipping" kubectl delete namespace kafka || echo "skipping" diff --git a/deploy/dev/kafka.yaml b/deploy/dev/kafka.yaml index 7525429e9..02d671acd 100644 --- a/deploy/dev/kafka.yaml +++ b/deploy/dev/kafka.yaml @@ -23,7 +23,7 @@ metadata: labels: strimzi.io/cluster: one spec: - replicas: 3 + replicas: 1 roles: - controller storage: @@ -42,7 +42,7 @@ metadata: labels: strimzi.io/cluster: one spec: - replicas: 3 + replicas: 1 roles: - broker storage: diff --git a/docs/kubernetes/crd-reference.md b/docs/kubernetes/crd-reference.md index a6452f9f9..0d7342ba0 100644 --- a/docs/kubernetes/crd-reference.md +++ b/docs/kubernetes/crd-reference.md @@ -437,7 +437,7 @@ spec: | Field | Type | Required | Description | | --------------- | ------ | :------: | --------------------------------------------------------------------------------- | | `sql` | array | yes | One or more SQL statements run as a single job. | -| `dialect` | enum | | `Flink` (default) or `FlinkBeam`. | +| `dialect` | enum | | `Flink` (default), `FlinkBeam`, or `Spark`. | | `executionMode` | enum | | `Streaming` (default) or `Batch`. | | `configs` | object | | Job-level configuration passed through to the engine. | diff --git a/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1SqlJobSpec.java b/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1SqlJobSpec.java index e590c3173..709356b53 100644 --- a/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1SqlJobSpec.java +++ b/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1SqlJobSpec.java @@ -32,7 +32,7 @@ * SQL job spec */ @ApiModel(description = "SQL job spec") -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-05-19T19:18:59.968Z[Etc/UTC]") +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2026-06-23T18:44:48.199Z[Etc/UTC]") public class V1alpha1SqlJobSpec { public static final String SERIALIZED_NAME_CONFIGS = "configs"; @SerializedName(SERIALIZED_NAME_CONFIGS) @@ -45,7 +45,9 @@ public class V1alpha1SqlJobSpec { public enum DialectEnum { FLINK("Flink"), - FLINKBEAM("FlinkBeam"); + FLINKBEAM("FlinkBeam"), + + SPARK("Spark"); private String value; diff --git a/hoptimator-k8s/src/main/resources/sqljobs.crd.yaml b/hoptimator-k8s/src/main/resources/sqljobs.crd.yaml index 9865e25b0..3a0f042b2 100644 --- a/hoptimator-k8s/src/main/resources/sqljobs.crd.yaml +++ b/hoptimator-k8s/src/main/resources/sqljobs.crd.yaml @@ -44,6 +44,7 @@ spec: enum: - Flink - FlinkBeam + - Spark default: Flink executionMode: description: Streaming or Batch.