Skip to content

Commit 51f1ba0

Browse files
Spawn Trigger Jobs With Owner Reference (#204)
Co-authored-by: Shrinand Thakkar <sthakkar@linkedin.com>
1 parent f6d1dff commit 51f1ba0

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

deploy/samples/retl-job-template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ spec:
1717
image: alpine/k8s:1.33.0
1818
env:
1919
- name: TABLE_TRIGGER_NAME
20-
value: "{{name}}-trigger"
20+
value: "{{trigger}}"
2121
- name: SOURCE_TABLE_NAME
2222
value: "{{offline.table.name}}"
2323
- name: ONLINE_TABLE_NAME

hoptimator-operator/src/main/java/com/linkedin/hoptimator/operator/trigger/TableTriggerReconciler.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
import java.time.Duration;
55
import java.time.OffsetDateTime;
66
import java.time.ZonedDateTime;
7+
import java.util.Collections;
78
import java.util.HashMap;
89
import java.util.List;
910
import java.util.Map;
1011
import java.util.Objects;
1112
import java.util.Optional;
1213
import java.util.Properties;
1314

15+
import io.kubernetes.client.openapi.models.V1OwnerReference;
1416
import org.slf4j.Logger;
1517
import org.slf4j.LoggerFactory;
1618

@@ -221,7 +223,17 @@ private void createJob(String yaml, V1alpha1TableTrigger trigger) throws SQLExce
221223
annotations.put(TRIGGER_TIMESTAMP_KEY, trigger.getStatus().getTimestamp().toString());
222224
Map<String, String> labels = new HashMap<>();
223225
labels.put(TRIGGER_KEY, trigger.getMetadata().getName());
224-
yamlApi.createWithMetadata(yaml, annotations, labels, trigger.getMetadata().getOwnerReferences());
226+
List<V1OwnerReference> ownerReference;
227+
if (trigger.getMetadata().getOwnerReferences() != null && !trigger.getMetadata().getOwnerReferences().isEmpty()) {
228+
ownerReference = trigger.getMetadata().getOwnerReferences();
229+
} else {
230+
ownerReference = Collections.singletonList(new V1OwnerReference()
231+
.apiVersion(trigger.getApiVersion())
232+
.kind(trigger.getKind())
233+
.name(trigger.getMetadata().getName())
234+
.uid(trigger.getMetadata().getUid()));
235+
}
236+
yamlApi.createWithMetadata(yaml, annotations, labels, ownerReference);
225237
}
226238

227239
private ExecutionTime scheduledExecution(V1alpha1TableTrigger object) {

0 commit comments

Comments
 (0)