Skip to content

Commit d3dc599

Browse files
Extend Status of Pipeline CRD to include Mapping of External Jobs and Also added JobType in spec
1 parent 50e4f13 commit d3dc599

6 files changed

Lines changed: 220 additions & 7 deletions

File tree

‎hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1Pipeline.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
* A set of objects that work together to deliver data.
3232
*/
3333
@ApiModel(description = "A set of objects that work together to deliver data.")
34-
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-05-21T02:31:00.123Z[Etc/UTC]")
34+
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-06T18:26:35.462Z[Etc/UTC]")
3535
public class V1alpha1Pipeline implements io.kubernetes.client.common.KubernetesObject {
3636
public static final String SERIALIZED_NAME_API_VERSION = "apiVersion";
3737
@SerializedName(SERIALIZED_NAME_API_VERSION)

‎hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1PipelineList.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* PipelineList is a list of Pipeline
3333
*/
3434
@ApiModel(description = "PipelineList is a list of Pipeline")
35-
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-05-21T02:31:00.123Z[Etc/UTC]")
35+
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-06T18:26:35.462Z[Etc/UTC]")
3636
public class V1alpha1PipelineList implements io.kubernetes.client.common.KubernetesListObject {
3737
public static final String SERIALIZED_NAME_API_VERSION = "apiVersion";
3838
@SerializedName(SERIALIZED_NAME_API_VERSION)

‎hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1PipelineSpec.java‎

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@
2828
* Pipeline spec.
2929
*/
3030
@ApiModel(description = "Pipeline spec.")
31-
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-05-21T02:31:00.123Z[Etc/UTC]")
31+
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-06T18:26:35.462Z[Etc/UTC]")
3232
public class V1alpha1PipelineSpec {
33+
public static final String SERIALIZED_NAME_JOB_TYPE = "jobType";
34+
@SerializedName(SERIALIZED_NAME_JOB_TYPE)
35+
private String jobType;
36+
3337
public static final String SERIALIZED_NAME_SQL = "sql";
3438
@SerializedName(SERIALIZED_NAME_SQL)
3539
private String sql;
@@ -39,6 +43,29 @@ public class V1alpha1PipelineSpec {
3943
private String yaml;
4044

4145

46+
public V1alpha1PipelineSpec jobType(String jobType) {
47+
48+
this.jobType = jobType;
49+
return this;
50+
}
51+
52+
/**
53+
* The type of job this pipeline might trigger.
54+
* @return jobType
55+
**/
56+
@javax.annotation.Nullable
57+
@ApiModelProperty(value = "The type of job this pipeline might trigger.")
58+
59+
public String getJobType() {
60+
return jobType;
61+
}
62+
63+
64+
public void setJobType(String jobType) {
65+
this.jobType = jobType;
66+
}
67+
68+
4269
public V1alpha1PipelineSpec sql(String sql) {
4370

4471
this.sql = sql;
@@ -94,20 +121,22 @@ public boolean equals(Object o) {
94121
return false;
95122
}
96123
V1alpha1PipelineSpec v1alpha1PipelineSpec = (V1alpha1PipelineSpec) o;
97-
return Objects.equals(this.sql, v1alpha1PipelineSpec.sql) &&
124+
return Objects.equals(this.jobType, v1alpha1PipelineSpec.jobType) &&
125+
Objects.equals(this.sql, v1alpha1PipelineSpec.sql) &&
98126
Objects.equals(this.yaml, v1alpha1PipelineSpec.yaml);
99127
}
100128

101129
@Override
102130
public int hashCode() {
103-
return Objects.hash(sql, yaml);
131+
return Objects.hash(jobType, sql, yaml);
104132
}
105133

106134

107135
@Override
108136
public String toString() {
109137
StringBuilder sb = new StringBuilder();
110138
sb.append("class V1alpha1PipelineSpec {\n");
139+
sb.append(" jobType: ").append(toIndentedString(jobType)).append("\n");
111140
sb.append(" sql: ").append(toIndentedString(sql)).append("\n");
112141
sb.append(" yaml: ").append(toIndentedString(yaml)).append("\n");
113142
sb.append("}");

‎hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/models/V1alpha1PipelineStatus.java‎

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,28 @@
2020
import com.google.gson.annotations.SerializedName;
2121
import com.google.gson.stream.JsonReader;
2222
import com.google.gson.stream.JsonWriter;
23+
import com.linkedin.hoptimator.k8s.models.V1alpha1PipelineStatusJobs;
2324
import io.swagger.annotations.ApiModel;
2425
import io.swagger.annotations.ApiModelProperty;
2526
import java.io.IOException;
27+
import java.util.HashMap;
28+
import java.util.List;
29+
import java.util.Map;
2630

2731
/**
2832
* Pipeline status.
2933
*/
3034
@ApiModel(description = "Pipeline status.")
31-
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-05-21T02:31:00.123Z[Etc/UTC]")
35+
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-06T18:26:35.462Z[Etc/UTC]")
3236
public class V1alpha1PipelineStatus {
3337
public static final String SERIALIZED_NAME_FAILED = "failed";
3438
@SerializedName(SERIALIZED_NAME_FAILED)
3539
private Boolean failed;
3640

41+
public static final String SERIALIZED_NAME_JOBS = "jobs";
42+
@SerializedName(SERIALIZED_NAME_JOBS)
43+
private Map<String, V1alpha1PipelineStatusJobs> jobs = null;
44+
3745
public static final String SERIALIZED_NAME_MESSAGE = "message";
3846
@SerializedName(SERIALIZED_NAME_MESSAGE)
3947
private String message;
@@ -66,6 +74,37 @@ public void setFailed(Boolean failed) {
6674
}
6775

6876

77+
public V1alpha1PipelineStatus jobs(Map<String, V1alpha1PipelineStatusJobs> jobs) {
78+
79+
this.jobs = jobs;
80+
return this;
81+
}
82+
83+
public V1alpha1PipelineStatus putJobsItem(String key, V1alpha1PipelineStatusJobs jobsItem) {
84+
if (this.jobs == null) {
85+
this.jobs = new HashMap<>();
86+
}
87+
this.jobs.put(key, jobsItem);
88+
return this;
89+
}
90+
91+
/**
92+
* External jobs that this pipeline triggers.
93+
* @return jobs
94+
**/
95+
@javax.annotation.Nullable
96+
@ApiModelProperty(value = "External jobs that this pipeline triggers.")
97+
98+
public Map<String, V1alpha1PipelineStatusJobs> getJobs() {
99+
return jobs;
100+
}
101+
102+
103+
public void setJobs(Map<String, V1alpha1PipelineStatusJobs> jobs) {
104+
this.jobs = jobs;
105+
}
106+
107+
69108
public V1alpha1PipelineStatus message(String message) {
70109

71110
this.message = message;
@@ -122,13 +161,14 @@ public boolean equals(Object o) {
122161
}
123162
V1alpha1PipelineStatus v1alpha1PipelineStatus = (V1alpha1PipelineStatus) o;
124163
return Objects.equals(this.failed, v1alpha1PipelineStatus.failed) &&
164+
Objects.equals(this.jobs, v1alpha1PipelineStatus.jobs) &&
125165
Objects.equals(this.message, v1alpha1PipelineStatus.message) &&
126166
Objects.equals(this.ready, v1alpha1PipelineStatus.ready);
127167
}
128168

129169
@Override
130170
public int hashCode() {
131-
return Objects.hash(failed, message, ready);
171+
return Objects.hash(failed, jobs, message, ready);
132172
}
133173

134174

@@ -137,6 +177,7 @@ public String toString() {
137177
StringBuilder sb = new StringBuilder();
138178
sb.append("class V1alpha1PipelineStatus {\n");
139179
sb.append(" failed: ").append(toIndentedString(failed)).append("\n");
180+
sb.append(" jobs: ").append(toIndentedString(jobs)).append("\n");
140181
sb.append(" message: ").append(toIndentedString(message)).append("\n");
141182
sb.append(" ready: ").append(toIndentedString(ready)).append("\n");
142183
sb.append("}");
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
/*
2+
* Kubernetes
3+
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
4+
*
5+
* The version of the OpenAPI document: v1.21.1
6+
*
7+
*
8+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9+
* https://openapi-generator.tech
10+
* Do not edit the class manually.
11+
*/
12+
13+
14+
package com.linkedin.hoptimator.k8s.models;
15+
16+
import java.util.Objects;
17+
import java.util.Arrays;
18+
import com.google.gson.TypeAdapter;
19+
import com.google.gson.annotations.JsonAdapter;
20+
import com.google.gson.annotations.SerializedName;
21+
import com.google.gson.stream.JsonReader;
22+
import com.google.gson.stream.JsonWriter;
23+
import io.swagger.annotations.ApiModel;
24+
import io.swagger.annotations.ApiModelProperty;
25+
import java.io.IOException;
26+
import java.time.OffsetDateTime;
27+
28+
/**
29+
* V1alpha1PipelineStatusJobs
30+
*/
31+
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2025-08-06T18:26:35.462Z[Etc/UTC]")
32+
public class V1alpha1PipelineStatusJobs {
33+
public static final String SERIALIZED_NAME_URL = "url";
34+
@SerializedName(SERIALIZED_NAME_URL)
35+
private String url;
36+
37+
public static final String SERIALIZED_NAME_WATERMARK = "watermark";
38+
@SerializedName(SERIALIZED_NAME_WATERMARK)
39+
private OffsetDateTime watermark;
40+
41+
42+
public V1alpha1PipelineStatusJobs url(String url) {
43+
44+
this.url = url;
45+
return this;
46+
}
47+
48+
/**
49+
* Get url
50+
* @return url
51+
**/
52+
@javax.annotation.Nullable
53+
@ApiModelProperty(value = "")
54+
55+
public String getUrl() {
56+
return url;
57+
}
58+
59+
60+
public void setUrl(String url) {
61+
this.url = url;
62+
}
63+
64+
65+
public V1alpha1PipelineStatusJobs watermark(OffsetDateTime watermark) {
66+
67+
this.watermark = watermark;
68+
return this;
69+
}
70+
71+
/**
72+
* Get watermark
73+
* @return watermark
74+
**/
75+
@javax.annotation.Nullable
76+
@ApiModelProperty(value = "")
77+
78+
public OffsetDateTime getWatermark() {
79+
return watermark;
80+
}
81+
82+
83+
public void setWatermark(OffsetDateTime watermark) {
84+
this.watermark = watermark;
85+
}
86+
87+
88+
@Override
89+
public boolean equals(Object o) {
90+
if (this == o) {
91+
return true;
92+
}
93+
if (o == null || getClass() != o.getClass()) {
94+
return false;
95+
}
96+
V1alpha1PipelineStatusJobs v1alpha1PipelineStatusJobs = (V1alpha1PipelineStatusJobs) o;
97+
return Objects.equals(this.url, v1alpha1PipelineStatusJobs.url) &&
98+
Objects.equals(this.watermark, v1alpha1PipelineStatusJobs.watermark);
99+
}
100+
101+
@Override
102+
public int hashCode() {
103+
return Objects.hash(url, watermark);
104+
}
105+
106+
107+
@Override
108+
public String toString() {
109+
StringBuilder sb = new StringBuilder();
110+
sb.append("class V1alpha1PipelineStatusJobs {\n");
111+
sb.append(" url: ").append(toIndentedString(url)).append("\n");
112+
sb.append(" watermark: ").append(toIndentedString(watermark)).append("\n");
113+
sb.append("}");
114+
return sb.toString();
115+
}
116+
117+
/**
118+
* Convert the given object to string with each line indented by 4 spaces
119+
* (except the first line).
120+
*/
121+
private String toIndentedString(Object o) {
122+
if (o == null) {
123+
return "null";
124+
}
125+
return o.toString().replace("\n", "\n ");
126+
}
127+
128+
}
129+

‎hoptimator-k8s/src/main/resources/pipelines.crd.yaml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ spec:
3939
yaml:
4040
description: The objects that make up the pipeline.
4141
type: string
42+
jobType:
43+
description: The type of job this pipeline might trigger.
44+
type: string
4245
required:
4346
status:
4447
description: Pipeline status.
@@ -53,6 +56,17 @@ spec:
5356
message:
5457
description: Error or success message, for information only.
5558
type: string
59+
jobs:
60+
type: object
61+
description: External jobs that this pipeline triggers.
62+
additionalProperties:
63+
type: object
64+
properties:
65+
watermark:
66+
type: string
67+
format: date-time
68+
url:
69+
type: string
5670
subresources:
5771
status: {}
5872
additionalPrinterColumns:

0 commit comments

Comments
 (0)