问题标签 [argoproj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
682 浏览

synchronization - 如果 Argo Workflow 已经在运行,如何防止它被重新提交?

用例是我们考虑通过带有 PubSub 的 Argo 事件触发 Argo 工作流。PubSub 不保证一条消息只传递一次。是否有一种简单的方法可以防止工作流在已经运行时再次被触发?

类似于 CronWorkflows的concurrencyPolicy设置。

有一些东西要看 - 让我们假设whalesay工作流程:

我发现了以下两个有希望的问题 - 但我未能提取此问题的解决方案。

0 投票
1 回答
388 浏览

kubernetes - 如何引用在 DAG 外部创建的 sys.stdout 以在带有 withParam 的 DAG 内部使用?

我正在使用 Argo 工作流程。

在 my 中有一个 DAG 步骤,entrypoint它遵循几个正常的步骤。这些步骤之一执行sys.stdout. 一旦进入 DAG 步骤,我希望某些任务能够引用sys.stdout.

我知道如果我们想参考sys.stdout当工作流从一个步骤进入下一步(没有 DAG)时,我们可以做{{steps.step-name.outputs.result}}. 但是,这在 DAG 任务中不起作用。

如何在 DAG 任务中引用 sys.stdout 以便我可以使用它withParam

编辑:

工作流程如下所示:

一般来说,如果third-step有 a ,我们可以通过insys.stdout来引用它。但是,在这种情况下是 DAG,如果其中一个 DAG 任务想要使用 ,则在 DAG 任务中作为参数/参数调用会引发错误。{{steps.step03.outputs.result}}fourth-stepfourth-stepsys.stdout{{steps.step03.outputs.result}}

那么问题是如何正确引用内部DAG 任务sys.stdout生成的?third-stepfourth-step

0 投票
1 回答
18 浏览

argoproj - 引用上一步的输出失败 - 为什么?

我想参考上一步的输出。但由于某种原因,我收到一个错误:

2021/03/09 16:39:35 Failed to create workflow template: templates.main.steps[1].s2 templates.s2-tmp: failed to resolve {{steps.s1.outputs.parameters.param}}

有任何想法吗?

总体而言,设置有效。如果我在步骤 2 中回显一个静态字符串,则 Wf 成功执行 - 步骤 1 回显,步骤 2 回显。但我无法引用上一步的输出:/

0 投票
1 回答
247 浏览

git - 将 git config 传递给 argocd 的最佳方法是什么

我正在运行 argocd 命令

argocd repo add https://gitlab.<mysite>.com/<repo>.git

我得到错误并且是已知的。现在,为避免这种情况,我在 argocd kubernetes pod 中设置 ~/.gitconfig 如下

如何将此配置传递给 argocd 命令?

PS 我已经尝试在 argocd server pod 的 ~/.gitconfig 中写下以上两行

另外,我尝试过以下命令

argocd repo add https://gitlab.<mysite>/<repo>.git --config '[http "https://gitlab.<mysite>.com"] \n proxy = http://www-proxy.<proxy-server>:8080'

0 投票
1 回答
282 浏览

docker - 用户不是管理员,并且无权将主机绑定挂载用于资源

我正在尝试WorkflowTemplate在自定义命名空间中的 kubernetes 集群中运行 argo。这是快速规格。

提交工作流时,它会生成两个容器,main并且wait. 主容器成功完成,但等待容器以以下错误结束。

我很困惑does not have permissions to use host bind mounts,这到底是什么意思?

到目前为止我尝试了什么:

  • clusterrolebinding使用clusterrole/admin-创建serviceaccount:appns:default
  • clusterrolebinding使用clusterrole/cluster-admin-创建serviceaccount:appns:default
  • rolebindingclusterrole/admin-创建serviceaccount:appns:default
  • rolebindingclusterrole/cluster-admin-创建serviceaccount:appns:default
  • 创建了 PSP、clusterrole 和 clusterrolebinding

错误消息仍然相同。问题:

  • 该错误消息实际上是什么意思?
  • 我该如何解决?或者至少解决它。

请随时询问任何进一步的细节。我故意没有粘贴所有的 yaml 以保持简短和集中。我是 Kubernetes 的新手,非常感谢您的建议。

更新:

0 投票
1 回答
1514 浏览

continuous-deployment - Flux v2 是 Argo Flux 的替代品吗

我已经用Flux v2建立了一个持续交付管道(因为 Flux v1 已被弃用),它工作正常。另一方面,我看到 Argo 和 Flux 在 2019 年底开始合并(请查看此链接)。

我想知道 Flux v2 是 Argo-Flux 合并的演变,还是它们是两个独立的 GitOps 实现选项。

我的印象是 Flux v2 非常活跃,所以我想这是一个真正的选择,至少会存在一段时间。但我对 Argo-Flux 一无所知,在那里找不到太多信息。

谢谢!

0 投票
0 回答
78 浏览

argoproj - 如何根据消息值触发不同的模板?

我有两个工作流模板(T1,T2),它们应该由 PubSub 消息触发。到目前为止 - 这行得通。但现在我想根据随消息发送的值触发 T1 xor T2。出于某种原因,我只是不让这个工作。这是我的事件源和传感器:

如果 body.test = "a" 第一个触发器 (T1) 应该被激活,如果 body.test = "b" 第二个 (T2)。

现在,发生的事情是这样的:

  • 如果我发送{"test":"a"}- 只有 T1 被触发 - 好
  • 如果我发送{"test":"b"}- 什么都不会触发 - 不好:/

有任何想法吗?

0 投票
2 回答
845 浏览

argoproj - 如何参数化工作流TempateRef?

我有一个通过 Argo Events 和 PubSub 触发的 WorkflowTemplate “nyc-test-template”。因此,如果我将消息发布{}到 PubSub 主题“argo-events-nyc”,则通过 a 指定的模板workflowTempateRef将启动。这确实工作得很好。现在我想参数化要启动的模板。

我的不工作草稿如下所示:

我想要发生的是这样的:

  • 一条空消息{}将触发“nyc-test-template”
  • 该消息{"wft": "my-template"}将触发“我的模板”

相反,发布空消息会导致传感器抛出错误:

2021-03-29T15:31:16.386441528Z2021/03/29 15:31:16 Failed to parse workflow: error unmarshaling JSON: while decoding JSON: json: unknown field "inputs"

坦白说,上面的 yaml 就是从这个例子中得到了粗略的启发。这并不是有根据的猜测的结果,因为我仍然不了解参数、参数和输入如何交互的机制。

0 投票
0 回答
254 浏览

scala - akka 问题:传出请求流错误 akka.stream.SubscriptionWithCancelException on cachedHostConnectionPoolHttps

我有一个 akka 流流,它向端点发出 get http 请求,并在 minikube 环境中的 kubernetes 上运行,因此在执行过程中失败。它采用源中元素的 id 列表。

日志:

阿卡代码:

应用程序.conf:

该应用程序仅在 minikube 上的 kubernetes 中失败,我不知道是什么原因,我认为它与传出连接有关,但总的来说我没有找到错误的根本原因。这种情况的解决方案是什么或有什么帮助?

0 投票
1 回答
2356 浏览

kubernetes - 自定义环境变量 - argocd

有构建环境变量(https://argoproj.github.io/argo-cd/user-guide/build-environment/),因此可以在 application/helm yaml 文件中注入类似的东西$ARGOCD_APP_NAME,并解析为实际值。

有没有办法我们可以设置自定义环境变量,以便可以在 argocd 应用程序 yaml 文件中解析它?

例如在下面的 argocd 应用程序 yaml 上,需要设置 ENV 值,以便 helm 知道要使用哪些 values.yaml。