Skip to content

Commit ecc5f36

Browse files
committed
argo client to 3.3.8 official version
1 parent 799d3e6 commit ecc5f36

File tree

6 files changed

+88
-64
lines changed

6 files changed

+88
-64
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ allprojects {
5252
repositories {
5353
maven {
5454
name = "Argo Client Java GitHub Packages"
55-
url = uri("https://maven.pkg.github.com/argoproj-labs/argo-client-java")
55+
url = uri("https://maven.pkg.github.com/argoproj/argo-client-java")
5656
credentials {
5757
username = project.findProperty("gpr.user")?.toString() ?: System.getenv("GITHUB_ACTOR")
5858
password = project.findProperty("gpr.key")?.toString() ?: System.getenv("GITHUB_TOKEN")

scenariorun/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
55

66
dependencies {
7-
implementation("io.argoproj.workflow:argo-client-java:v3.0.1")
7+
implementation("io.argoproj.workflow:argo-client-java:v3.3.8")
88
implementation("com.squareup.retrofit2:retrofit:2.9.0")
99
implementation("com.squareup.retrofit2:converter-scalars:2.9.0")
1010

scenariorun/src/main/kotlin/com/cosmotech/scenariorun/workflow/argo/ArgoWorkflowService.kt

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ import io.argoproj.workflow.Configuration
1818
import io.argoproj.workflow.apis.ArchivedWorkflowServiceApi
1919
import io.argoproj.workflow.apis.InfoServiceApi
2020
import io.argoproj.workflow.apis.WorkflowServiceApi
21-
import io.argoproj.workflow.models.NodeStatus
22-
import io.argoproj.workflow.models.Workflow
23-
import io.argoproj.workflow.models.WorkflowCreateRequest
24-
import io.argoproj.workflow.models.WorkflowList
25-
import io.argoproj.workflow.models.WorkflowStatus
26-
import io.argoproj.workflow.models.WorkflowStopRequest
21+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1NodeStatus
22+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1Workflow
23+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1WorkflowCreateRequest
24+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1WorkflowList
25+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1WorkflowStatus
26+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1WorkflowStopRequest
2727
import io.kubernetes.client.util.ObjectAccessor.namespace
2828
import java.lang.StringBuilder
2929
import java.security.cert.X509Certificate
@@ -96,7 +96,10 @@ internal class ArgoWorkflowService(
9696
}
9797
}
9898

99-
private fun getWorkflowStatus(workflowId: String, workflowName: String): WorkflowStatus? {
99+
private fun getWorkflowStatus(
100+
workflowId: String,
101+
workflowName: String
102+
): IoArgoprojWorkflowV1alpha1WorkflowStatus? {
100103
return try {
101104
this.getActiveWorkflow(workflowId, workflowName).status
102105
} catch (apiException: ApiException) {
@@ -110,8 +113,11 @@ internal class ArgoWorkflowService(
110113
}
111114
}
112115

113-
private fun getActiveWorkflow(workflowId: String, workflowName: String): Workflow {
114-
var workflow: Workflow? = null
116+
private fun getActiveWorkflow(
117+
workflowId: String,
118+
workflowName: String
119+
): IoArgoprojWorkflowV1alpha1Workflow {
120+
var workflow: IoArgoprojWorkflowV1alpha1Workflow? = null
115121
try {
116122
// Workflows are auto-archived and auto-deleted more frequently
117123
// (as soon as they succeed or after a TTL).
@@ -138,7 +144,7 @@ internal class ArgoWorkflowService(
138144
return workflow
139145
}
140146

141-
private fun getWorkflowLogs(workflow: Workflow): Map<String, String> {
147+
private fun getWorkflowLogs(workflow: IoArgoprojWorkflowV1alpha1Workflow): Map<String, String> {
142148
val workflowId = workflow.metadata.uid
143149
val logsMap: MutableMap<String, String> = mutableMapOf()
144150
if (workflowId != null) {
@@ -161,7 +167,7 @@ internal class ArgoWorkflowService(
161167
}
162168

163169
private fun getCumulatedSortedLogs(
164-
nodes: Map<String, NodeStatus>,
170+
nodes: Map<String, IoArgoprojWorkflowV1alpha1NodeStatus>,
165171
logsMap: Map<String, String>,
166172
child: String? = null
167173
): String {
@@ -184,7 +190,7 @@ internal class ArgoWorkflowService(
184190
executionTimeout: Int?
185191
): ScenarioRun {
186192
val body =
187-
WorkflowCreateRequest()
193+
IoArgoprojWorkflowV1alpha1WorkflowCreateRequest()
188194
.workflow(
189195
buildWorkflow(csmPlatformProperties, scenarioRunStartContainers, executionTimeout))
190196

@@ -225,7 +231,7 @@ internal class ArgoWorkflowService(
225231
labelSelector: String,
226232
artifactNameFilter: String
227233
): List<WorkflowStatusAndArtifact> {
228-
var workflowList: WorkflowList? = null
234+
var workflowList: IoArgoprojWorkflowV1alpha1WorkflowList? = null
229235
try {
230236
// Workflows are auto-archived and auto-deleted more frequently
231237
// (as soon as they succeed or after a TTL).
@@ -235,7 +241,7 @@ internal class ArgoWorkflowService(
235241
workflowList =
236242
newServiceApiInstance<ArchivedWorkflowServiceApi>(this.apiClient)
237243
.archivedWorkflowServiceListArchivedWorkflows(
238-
labelSelector, null, null, null, null, null, null, null, null)
244+
labelSelector, null, null, null, null, null, null, null, null, null)
239245
logger.trace("workflowList: {}", workflowList)
240246
} catch (e: ApiException) {
241247
val logMessage =
@@ -355,14 +361,14 @@ internal class ArgoWorkflowService(
355361
}
356362

357363
override fun stopWorkflow(scenarioRun: ScenarioRun): ScenarioRunStatus {
358-
var workflow = Workflow()
364+
var workflow = IoArgoprojWorkflowV1alpha1Workflow()
359365
try {
360366
workflow =
361367
newServiceApiInstance<WorkflowServiceApi>(this.apiClient)
362368
.workflowServiceStopWorkflow(
363369
csmPlatformProperties.argo.workflows.namespace,
364370
scenarioRun.workflowName,
365-
WorkflowStopRequest())
371+
IoArgoprojWorkflowV1alpha1WorkflowStopRequest())
366372
} catch (e: ApiException) {
367373
System.err.println("Exception when calling WorkflowServiceApi#workflowServiceStopWorkflow")
368374
System.err.println("Status code: " + e.code)
@@ -375,7 +381,7 @@ internal class ArgoWorkflowService(
375381

376382
private fun buildScenarioRunStatusFromWorkflowStatus(
377383
scenarioRun: ScenarioRun,
378-
workflowStatus: WorkflowStatus?
384+
workflowStatus: IoArgoprojWorkflowV1alpha1WorkflowStatus?
379385
): ScenarioRunStatus {
380386
return ScenarioRunStatus(
381387
id = scenarioRun.id,

scenariorun/src/main/kotlin/com/cosmotech/scenariorun/workflow/argo/WorkflowBuilders.kt

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ import com.cosmotech.api.config.CsmPlatformProperties
66
import com.cosmotech.scenariorun.CSM_DAG_ROOT
77
import com.cosmotech.scenariorun.domain.ScenarioRunContainer
88
import com.cosmotech.scenariorun.domain.ScenarioRunStartContainers
9-
import io.argoproj.workflow.models.ArchiveStrategy
10-
import io.argoproj.workflow.models.Artifact
11-
import io.argoproj.workflow.models.DAGTask
12-
import io.argoproj.workflow.models.DAGTemplate
13-
import io.argoproj.workflow.models.Metadata
14-
import io.argoproj.workflow.models.Outputs
15-
import io.argoproj.workflow.models.Template
16-
import io.argoproj.workflow.models.Workflow
17-
import io.argoproj.workflow.models.WorkflowSpec
9+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1ArchiveStrategy
10+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1Artifact
11+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1DAGTask
12+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1DAGTemplate
13+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1Metadata
14+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1Outputs
15+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1Template
16+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1Workflow
17+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1WorkflowSpec
1818
import io.kubernetes.client.custom.Quantity
1919
import io.kubernetes.client.openapi.models.V1Container
2020
import io.kubernetes.client.openapi.models.V1EmptyDirVolumeSource
@@ -36,7 +36,9 @@ private const val VOLUME_DATASETS_PATH = "/mnt/scenariorun-data"
3636
private const val VOLUME_PARAMETERS_PATH = "/mnt/scenariorun-parameters"
3737
private const val CSM_ARGO_WORKFLOWS_TIMEOUT = 28800
3838

39-
internal fun buildTemplate(scenarioRunContainer: ScenarioRunContainer): Template {
39+
internal fun buildTemplate(
40+
scenarioRunContainer: ScenarioRunContainer
41+
): IoArgoprojWorkflowV1alpha1Template {
4042
var envVars: MutableList<V1EnvVar>? = null
4143
if (scenarioRunContainer.envVars != null) {
4244
envVars = mutableListOf()
@@ -69,21 +71,21 @@ internal fun buildTemplate(scenarioRunContainer: ScenarioRunContainer): Template
6971
}
7072

7173
val template =
72-
Template()
74+
IoArgoprojWorkflowV1alpha1Template()
7375
.name(scenarioRunContainer.name)
74-
.metadata(Metadata().labels(scenarioRunContainer.labels))
76+
.metadata(IoArgoprojWorkflowV1alpha1Metadata().labels(scenarioRunContainer.labels))
7577
.container(container)
7678
.addVolumesItem(V1Volume().emptyDir(V1EmptyDirVolumeSource()).name("out"))
7779

7880
val artifacts =
7981
scenarioRunContainer.artifacts?.map {
80-
Artifact()
82+
IoArgoprojWorkflowV1alpha1Artifact()
8183
.name(it.name)
8284
.path("/var/csmoutput/${it.path}")
83-
.archive(ArchiveStrategy().none(Object()))
85+
.archive(IoArgoprojWorkflowV1alpha1ArchiveStrategy().none(Object()))
8486
}
8587
if (!artifacts.isNullOrEmpty()) {
86-
template.outputs(Outputs().artifacts(artifacts))
88+
template.outputs(IoArgoprojWorkflowV1alpha1Outputs().artifacts(artifacts))
8789
}
8890

8991
return template
@@ -93,7 +95,7 @@ internal fun buildWorkflowSpec(
9395
csmPlatformProperties: CsmPlatformProperties,
9496
startContainers: ScenarioRunStartContainers,
9597
executionTimeout: Int?
96-
): WorkflowSpec {
98+
): IoArgoprojWorkflowV1alpha1WorkflowSpec {
9799
val nodeSelector = mutableMapOf("kubernetes.io/os" to "linux")
98100
if (startContainers.nodeLabel != null) {
99101
nodeSelector[csmPlatformProperties.argo.workflows.nodePoolLabel] = startContainers.nodeLabel
@@ -104,7 +106,7 @@ internal fun buildWorkflowSpec(
104106
templates.add(entrypointTemplate)
105107

106108
var workflowSpec =
107-
WorkflowSpec()
109+
IoArgoprojWorkflowV1alpha1WorkflowSpec()
108110
.imagePullSecrets(
109111
csmPlatformProperties
110112
.argo
@@ -128,16 +130,18 @@ internal fun buildWorkflow(
128130
startContainers: ScenarioRunStartContainers,
129131
executionTimeout: Int?
130132
) =
131-
Workflow()
133+
IoArgoprojWorkflowV1alpha1Workflow()
132134
.metadata(
133135
V1ObjectMeta()
134136
.generateName(startContainers.generateName ?: CSM_DEFAULT_WORKFLOW_NAME)
135137
.labels(startContainers.labels))
136138
.spec(buildWorkflowSpec(csmPlatformProperties, startContainers, executionTimeout))
137139

138-
private fun buildEntrypointTemplate(startContainers: ScenarioRunStartContainers): Template {
139-
val dagTemplate = Template().name(CSM_DAG_ENTRYPOINT)
140-
val dagTasks: MutableList<DAGTask> = mutableListOf()
140+
private fun buildEntrypointTemplate(
141+
startContainers: ScenarioRunStartContainers
142+
): IoArgoprojWorkflowV1alpha1Template {
143+
val dagTemplate = IoArgoprojWorkflowV1alpha1Template().name(CSM_DAG_ENTRYPOINT)
144+
val dagTasks: MutableList<IoArgoprojWorkflowV1alpha1DAGTask> = mutableListOf()
141145
var previousContainer: ScenarioRunContainer? = null
142146
for (container in startContainers.containers) {
143147
var dependencies: List<String>? = null
@@ -148,12 +152,16 @@ private fun buildEntrypointTemplate(startContainers: ScenarioRunStartContainers)
148152
} else {
149153
if (previousContainer != null) dependencies = listOf(previousContainer.name)
150154
}
151-
val task = DAGTask().name(container.name).template(container.name).dependencies(dependencies)
155+
val task =
156+
IoArgoprojWorkflowV1alpha1DAGTask()
157+
.name(container.name)
158+
.template(container.name)
159+
.dependencies(dependencies)
152160
dagTasks.add(task)
153161
previousContainer = container
154162
}
155163

156-
dagTemplate.dag(DAGTemplate().tasks(dagTasks))
164+
dagTemplate.dag(IoArgoprojWorkflowV1alpha1DAGTemplate().tasks(dagTasks))
157165

158166
return dagTemplate
159167
}

scenariorun/src/test/kotlin/com/cosmotech/scenariorun/workflow/argo/WorkflowBuildersTests.kt

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package com.cosmotech.scenariorun.workflow.argo
55
import com.cosmotech.api.config.CsmPlatformProperties
66
import com.cosmotech.scenariorun.domain.ScenarioRunContainer
77
import com.cosmotech.scenariorun.domain.ScenarioRunStartContainers
8-
import io.argoproj.workflow.models.DAGTask
8+
import io.argoproj.workflow.models.IoArgoprojWorkflowV1alpha1DAGTask
99
import io.kubernetes.client.custom.Quantity
1010
import io.kubernetes.client.openapi.models.V1EnvVar
1111
import io.kubernetes.client.openapi.models.V1ObjectMeta
@@ -226,32 +226,34 @@ class WorkflowBuildersTests {
226226
workflowSpec.templates?.find { template -> template.name.equals("entrypoint") }
227227
val expected =
228228
listOf(
229-
DAGTask().name("fetchDatasetContainer-1").template("fetchDatasetContainer-1"),
230-
DAGTask()
229+
IoArgoprojWorkflowV1alpha1DAGTask()
230+
.name("fetchDatasetContainer-1")
231+
.template("fetchDatasetContainer-1"),
232+
IoArgoprojWorkflowV1alpha1DAGTask()
231233
.name("fetchScenarioParametersContainer")
232234
.template("fetchScenarioParametersContainer"),
233-
DAGTask()
235+
IoArgoprojWorkflowV1alpha1DAGTask()
234236
.name("applyParametersContainer")
235237
.template("applyParametersContainer")
236238
.dependencies(
237239
listOf("fetchDatasetContainer-1", "fetchScenarioParametersContainer")),
238-
DAGTask()
240+
IoArgoprojWorkflowV1alpha1DAGTask()
239241
.name("validateDataContainer")
240242
.template("validateDataContainer")
241243
.dependencies(listOf("applyParametersContainer")),
242-
DAGTask()
244+
IoArgoprojWorkflowV1alpha1DAGTask()
243245
.name("sendDataWarehouseContainer")
244246
.template("sendDataWarehouseContainer")
245247
.dependencies(listOf("validateDataContainer")),
246-
DAGTask()
248+
IoArgoprojWorkflowV1alpha1DAGTask()
247249
.name("preRunContainer")
248250
.template("preRunContainer")
249251
.dependencies(listOf("validateDataContainer")),
250-
DAGTask()
252+
IoArgoprojWorkflowV1alpha1DAGTask()
251253
.name("runContainer")
252254
.template("runContainer")
253255
.dependencies(listOf("preRunContainer")),
254-
DAGTask()
256+
IoArgoprojWorkflowV1alpha1DAGTask()
255257
.name("postRunContainer")
256258
.template("postRunContainer")
257259
.dependencies(listOf("runContainer")),
@@ -269,32 +271,34 @@ class WorkflowBuildersTests {
269271
workflowSpec.templates?.find { template -> template.name.equals("entrypoint") }
270272
val expected =
271273
listOf(
272-
DAGTask().name("fetchDatasetContainer-1").template("fetchDatasetContainer-1"),
273-
DAGTask()
274+
IoArgoprojWorkflowV1alpha1DAGTask()
275+
.name("fetchDatasetContainer-1")
276+
.template("fetchDatasetContainer-1"),
277+
IoArgoprojWorkflowV1alpha1DAGTask()
274278
.name("fetchScenarioParametersContainer")
275279
.template("fetchScenarioParametersContainer")
276280
.dependencies(listOf("fetchDatasetContainer-1")),
277-
DAGTask()
281+
IoArgoprojWorkflowV1alpha1DAGTask()
278282
.name("applyParametersContainer")
279283
.template("applyParametersContainer")
280284
.dependencies(listOf("fetchScenarioParametersContainer")),
281-
DAGTask()
285+
IoArgoprojWorkflowV1alpha1DAGTask()
282286
.name("validateDataContainer")
283287
.template("validateDataContainer")
284288
.dependencies(listOf("applyParametersContainer")),
285-
DAGTask()
289+
IoArgoprojWorkflowV1alpha1DAGTask()
286290
.name("sendDataWarehouseContainer")
287291
.template("sendDataWarehouseContainer")
288292
.dependencies(listOf("validateDataContainer")),
289-
DAGTask()
293+
IoArgoprojWorkflowV1alpha1DAGTask()
290294
.name("preRunContainer")
291295
.template("preRunContainer")
292296
.dependencies(listOf("sendDataWarehouseContainer")),
293-
DAGTask()
297+
IoArgoprojWorkflowV1alpha1DAGTask()
294298
.name("runContainer")
295299
.template("runContainer")
296300
.dependencies(listOf("preRunContainer")),
297-
DAGTask()
301+
IoArgoprojWorkflowV1alpha1DAGTask()
298302
.name("postRunContainer")
299303
.template("postRunContainer")
300304
.dependencies(listOf("runContainer")),
@@ -337,10 +341,16 @@ class WorkflowBuildersTests {
337341
workflowSpec.templates?.find { template -> template.name.equals("entrypoint") }
338342
val expected =
339343
listOf(
340-
DAGTask().name("Diamond-A").template("Diamond-A"),
341-
DAGTask().name("Diamond-B").template("Diamond-B").dependencies(listOf("Diamond-A")),
342-
DAGTask().name("Diamond-C").template("Diamond-C").dependencies(listOf("Diamond-A")),
343-
DAGTask()
344+
IoArgoprojWorkflowV1alpha1DAGTask().name("Diamond-A").template("Diamond-A"),
345+
IoArgoprojWorkflowV1alpha1DAGTask()
346+
.name("Diamond-B")
347+
.template("Diamond-B")
348+
.dependencies(listOf("Diamond-A")),
349+
IoArgoprojWorkflowV1alpha1DAGTask()
350+
.name("Diamond-C")
351+
.template("Diamond-C")
352+
.dependencies(listOf("Diamond-A")),
353+
IoArgoprojWorkflowV1alpha1DAGTask()
344354
.name("Diamond-D")
345355
.template("Diamond-D")
346356
.dependencies(listOf("Diamond-B", "Diamond-C")),

scripts/argo/port_binding_argo.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
kubectl -n phoenix port-forward deployment/argo-server 2746:2746
1+
kubectl -n phoenix port-forward deployment/argo-argo-workflows-server 2746:2746

0 commit comments

Comments
 (0)