Skip to content

Commit ed98677

Browse files
authored
Fix various issues (see description) (#89)
* Expand ConfigProvider to load from a namespace * Fix snakeyaml issue * sqljob update
1 parent 0e19953 commit ed98677

File tree

58 files changed

+133
-164
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+133
-164
lines changed

deploy/samples/demodb.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,3 @@ spec:
4848
- Modify
4949
connector: |
5050
connector = blackhole
51-

deploy/sqljobs.crd.yaml

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

generate-models.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ docker run \
1111
ghcr.io/kubernetes-client/java/crd-model-gen:v1.0.6 \
1212
/generate.sh -o "$(pwd)/hoptimator-k8s" -n "" -p "com.linkedin.hoptimator.k8s" \
1313
-u "$(pwd)/hoptimator-k8s/src/main/resources/databases.crd.yaml" \
14+
-u "$(pwd)/hoptimator-k8s/src/main/resources/engines.crd.yaml" \
1415
-u "$(pwd)/hoptimator-k8s/src/main/resources/jobtemplates.crd.yaml" \
1516
-u "$(pwd)/hoptimator-k8s/src/main/resources/pipelines.crd.yaml" \
17+
-u "$(pwd)/hoptimator-k8s/src/main/resources/sqljobs.crd.yaml" \
18+
-u "$(pwd)/hoptimator-k8s/src/main/resources/subscriptions.crd.yaml" \
1619
-u "$(pwd)/hoptimator-k8s/src/main/resources/tabletemplates.crd.yaml" \
1720
-u "$(pwd)/hoptimator-k8s/src/main/resources/views.crd.yaml" \
18-
-u "$(pwd)/hoptimator-k8s/src/main/resources/subscriptions.crd.yaml" \
19-
-u "$(pwd)/hoptimator-k8s/src/main/resources/engines.crd.yaml" \
2021
&& echo "done."

gradle/libs.versions.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@ avro = "org.apache.avro:avro:1.10.2"
44
calcite-avatica = "org.apache.calcite.avatica:avatica:1.23.0"
55
calcite-core = "org.apache.calcite:calcite-core:1.34.0"
66
calcite-server = "org.apache.calcite:calcite-server:1.34.0"
7+
commons-cli = "commons-cli:commons-cli:1.4"
78
flink-clients = "org.apache.flink:flink-clients:1.18.1"
89
flink-connector-base = "org.apache.flink:flink-connector-base:1.18.1"
10+
flink-connector-kafka = "org.apache.flink:flink-sql-connector-kafka:3.2.0-1.18"
11+
flink-connector-mysql-cdc = "com.ververica:flink-sql-connector-mysql-cdc:2.3.0"
912
flink-core = "org.apache.flink:flink-core:1.18.1"
1013
flink-csv = "org.apache.flink:flink-csv:1.18.1"
1114
flink-jdbc = "org.apache.flink:flink-sql-jdbc-driver-bundle:1.18.1"
@@ -15,8 +18,6 @@ flink-table-api-java-bridge = "org.apache.flink:flink-table-api-java-bridge:1.18
1518
flink-table-common = "org.apache.flink:flink-table-common:1.18.1"
1619
flink-table-planner = "org.apache.flink:flink-table-planner_2.12:1.18.1"
1720
flink-table-runtime = "org.apache.flink:flink-table-runtime:1.18.1"
18-
flink-connector-kafka = "org.apache.flink:flink-sql-connector-kafka:3.2.0-1.18"
19-
flink-connector-mysql-cdc = "com.ververica:flink-sql-connector-mysql-cdc:2.3.0"
2021
gson = "com.google.code.gson:gson:2.9.0"
2122
jackson = "com.fasterxml.jackson.core:jackson-core:2.14.1"
2223
jackson-dataformat-yaml = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.14.1"
@@ -27,8 +28,8 @@ kubernetes-client = "io.kubernetes:client-java:16.0.2"
2728
kubernetes-extended-client = "io.kubernetes:client-java-extended:16.0.2"
2829
slf4j-simple = "org.slf4j:slf4j-simple:1.7.30"
2930
slf4j-api = "org.slf4j:slf4j-api:1.7.30"
31+
snakeyaml = "org.yaml:snakeyaml:1.33"
3032
sqlline = "sqlline:sqlline:1.12.0"
31-
commons-cli = "commons-cli:commons-cli:1.4"
3233
quidem = "net.hydromatic:quidem:0.11"
3334
venice = "com.linkedin.venice:venice-common:0.4.376"
3435
venice-client = "com.linkedin.venice:venice-thin-client:0.4.376"

hoptimator-api/src/main/java/com/linkedin/hoptimator/ConfigProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44

55
public interface ConfigProvider {
66

7-
Properties loadConfig() throws Exception;
7+
Properties loadConfig(String namespace) throws Exception;
88
}

hoptimator-flink-adapter/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ plugins {
66

77
dependencies {
88
implementation project(':hoptimator-catalog')
9-
implementation project(':hoptimator-models')
9+
implementation project(':hoptimator-k8s')
1010
implementation project(':hoptimator-operator')
1111
implementation libs.kubernetesClient
1212
implementation libs.kubernetesExtendedClient

hoptimator-flink-adapter/src/main/java/com/linkedin/hoptimator/operator/flink/FlinkControllerProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.linkedin.hoptimator.operator.flink;
22

3-
import com.linkedin.hoptimator.models.V1alpha1SqlJob;
4-
import com.linkedin.hoptimator.models.V1alpha1SqlJobList;
3+
import com.linkedin.hoptimator.k8s.models.V1alpha1SqlJob;
4+
import com.linkedin.hoptimator.k8s.models.V1alpha1SqlJobList;
55
import com.linkedin.hoptimator.operator.ControllerProvider;
66
import com.linkedin.hoptimator.operator.Operator;
77

hoptimator-flink-adapter/src/main/java/com/linkedin/hoptimator/operator/flink/FlinkStreamingSqlJobReconciler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import com.linkedin.hoptimator.catalog.Resource;
44
import com.linkedin.hoptimator.catalog.flink.FlinkStreamingSqlJob;
5+
import com.linkedin.hoptimator.k8s.models.V1alpha1SqlJob;
6+
import com.linkedin.hoptimator.k8s.models.V1alpha1SqlJobSpec.DialectEnum;
7+
import com.linkedin.hoptimator.k8s.models.V1alpha1SqlJobSpec.ExecutionModeEnum;
8+
import com.linkedin.hoptimator.k8s.models.V1alpha1SqlJobStatus;
59
import com.linkedin.hoptimator.operator.Operator;
6-
import com.linkedin.hoptimator.models.V1alpha1SqlJob;
7-
import com.linkedin.hoptimator.models.V1alpha1SqlJobSpec.DialectEnum;
8-
import com.linkedin.hoptimator.models.V1alpha1SqlJobSpec.ExecutionModeEnum;
9-
import com.linkedin.hoptimator.models.V1alpha1SqlJobStatus;
1010

1111
import io.kubernetes.client.extended.controller.reconciler.Reconciler;
1212
import io.kubernetes.client.extended.controller.reconciler.Request;

hoptimator-jdbc/src/main/java/com/linkedin/hoptimator/jdbc/SystemPropertiesConfigProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
public class SystemPropertiesConfigProvider implements ConfigProvider {
88

9-
public Properties loadConfig() {
9+
public Properties loadConfig(String namespace) {
1010
return System.getProperties();
1111
}
1212
}

hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sConfigProvider.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,19 @@ public class K8sConfigProvider implements ConfigProvider {
1414

1515
public static final String HOPTIMATOR_CONFIG_MAP = "hoptimator-configmap";
1616

17-
public Properties loadConfig() throws SQLException {
18-
Map<String, String> topLevelConfigs = loadTopLevelConfig(HOPTIMATOR_CONFIG_MAP);
17+
public Properties loadConfig(String namespace) throws SQLException {
18+
Map<String, String> topLevelConfigs = loadTopLevelConfig(HOPTIMATOR_CONFIG_MAP, namespace);
1919
Properties p = new Properties();
2020
p.putAll(topLevelConfigs);
2121
return p;
2222
}
2323

2424
// Load top-level config map properties
25-
private Map<String, String> loadTopLevelConfig(String configMapName) throws SQLException {
25+
private Map<String, String> loadTopLevelConfig(String configMapName, String namespace) throws SQLException {
2626
K8sApi<V1ConfigMap, V1ConfigMapList> configMapApi = new K8sApi<>(K8sContext.currentContext(), K8sApiEndpoints.CONFIG_MAPS);
27-
return configMapApi.get(configMapName).getData();
27+
if (namespace == null || namespace.isEmpty()) {
28+
return configMapApi.get(configMapName).getData();
29+
}
30+
return configMapApi.get(namespace, configMapName).getData();
2831
}
2932
}

0 commit comments

Comments
 (0)