Hera通过本机Python集成,使Python代码在Argo Workflows上编排变得容易。它允许您完全在Python中构建和提交您的Workflows。
项目描述
Hera
Hera通过本机Python集成,使Python代码在Argo Workflows上编排变得容易。它允许您完全在Python中构建和提交您的Workflows。
查看快速入门指南 以开始使用Hera来编排您的Argo Workflows!
The Argo was constructed by the shipwright Argus,
and its crew were specially protected by the goddess Hera.
PyPI统计
仓库信息
探索代码
Hera概述
步骤钻石
from hera.workflows import Steps, Workflow, script
@script()
def echo(message: str):
print(message)
with Workflow(
generate_name="single-script-",
entrypoint="steps",
) as w:
with Steps(name="steps") as s:
echo(name="A", arguments={"message": "I'm a step"})
with s.parallel():
echo(name="B", arguments={"message": "We're steps"})
echo(name="C", arguments={"message": "in parallel!"})
echo(name="D", arguments={"message": "I'm another step!"})
w.create()
DAG钻石
from hera.workflows import DAG, Workflow, script
@script()
def echo(message: str):
print(message)
with Workflow(
generate_name="dag-diamond-",
entrypoint="diamond",
) as w:
with DAG(name="diamond"):
A = echo(name="A", arguments={"message": "A"})
B = echo(name="B", arguments={"message": "B"})
C = echo(name="C", arguments={"message": "C"})
D = echo(name="D", arguments={"message": "D"})
A >> [B, C] >> D
w.create()
查看示例,了解如何通过Hera构建和提交Argo Workflows!
需求
赫拉需要部署一个Argo服务器到Kubernetes集群中。目前,赫拉假设Argo服务器位于一个身份验证层之后,该层可以使用请求中的Bearer令牌对工作流提交请求进行身份验证。要了解如何将Argo部署到自己的Kubernetes集群,请参考Argo Workflows指南!
在没有身份验证层的情况下提交工作流的另一种选项是使用端口转发到Argo服务器部署,并将工作流提交到localhost:2746
(2746是默认端口,但您可以自由更改)。请参阅Argo Workflows文档以查看端口转发的命令!
注意 由于为ServiceAccounts和Argo自动创建令牌以及在使用Bearer令牌的情况下替换它们已被弃用,因此在使用Kubernetes v1.24+上的Argo Workflows时,必须使用
--auth=server
和/或--auth=client
,以便赫拉能够与Argo服务器通信。
在赫拉中进行身份验证
在赫拉中进行身份验证有几种方法 - 在身份验证教程中了解更多信息 - 现在,如果已安装argo
cli工具,此示例将帮助您快速启动
from hera.workflows import Workflow, Container
from hera.shared import global_config
from hera.auth import ArgoCLITokenGenerator
global_config.host = "http://localhost:2746"
global_config.token = ArgoCLITokenGenerator
with Workflow(generate_name="local-test-", entrypoint="c") as w:
Container(name="c", image="docker/whalesay", command=["cowsay", "hello"])
w.create()
安装
源代码 | 命令 |
---|---|
PyPI | pip install hera |
GitHub仓库 | python -m pip install git+https://github.com/argoproj-labs/hera --ignore-installed |
注意 赫拉进行了名称变更 - 从
hera-workflows
变更为hera
。这在发布的Python包中得到反映。如果您想安装版本低于5.0.0
的版本,您应该执行pip install hera-workflows<5
。赫拉目前为了向后兼容,同时发布到hera
和hera-workflows
。
可选依赖项
yaml
- 通过
hera[yaml]
安装 - PyYAML是必需的,用于
yaml
输出格式,可通过hera.workflows.Workflow.to_yaml(*args, **kwargs)
访问。这可以启用GitOps实践和更轻松的调试。
cli
- 通过
hera[cli]
安装。该[cli]
选项安装了CLI所需的额外依赖项Cappa - CLI旨在启用GitOps实践、更轻松的调试以及与Argo Workflows的更无缝体验。
- CLI是一个实验性功能,可能随时更改! 目前,它仅支持通过
hera generate yaml
生成工作流的YAML文件。有关更多信息,请参阅hera generate yaml --help
。
实验性
- 通过
hera[experimental]
安装。该[experimental]
选项添加了实验性功能所需的依赖项,这些功能尚未毕业为稳定功能。
演示
- KubeCon/ArgoCon EU 2024 - 在Argo中使用赫拉本地编排Python函数
- CNCF TAG App-Delivery @ KubeCon NA 2023 - 使用ArgoCD、Argo Workflows和赫拉自动化数据工作负载的部署
- KubeCon/ArgoCon NA 2023 - 如何使用Argo Workflows和赫拉训练LLM
- KubeCon/ArgoCon EU 2023 - 使用Argo Workflows和赫拉扩展基因疗法
- DoKC Town Hall #2 - 从胶水中解脱出来 - 将PayIt的数据管道迁移到Argo Workflows和赫拉
- Argo Workflows和事件社区会议 2022年6月15日 - 赫拉项目更新
- Argo Workflows和事件社区会议 2021年10月20日 - 赫拉入门演示
博客
- 如何充分利用赫拉进行数据科学
- 使用Great Expectations和Argo Workflows进行数据验证
- 赫拉简介和动机
- Dyno正在使用云原生工具如Argo Workflows和赫拉扩展基因疗法研究
贡献
查看贡献指南!
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发版本
hera_workflows-5.17.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ecaad01c42be4dec41bbaa3f22e727beb7b9ef77c2bb3bd2bda9a070645486c9 |
|
MD5 | b3a23b19d559011ce684674b57d3e946 |
|
BLAKE2b-256 | 959e3a8561f54abbfc64db6d24cad5457048fcf169f16be82591459954a3f0dd |
hera_workflows-5.17.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c2d11fef581161cf08c169fe9557b38b36f9eaf141b6c0ac669bd24ae8adf1c2 |
|
MD5 | a11f7944eb0d2120d2899e57763fd4e6 |
|
BLAKE2b-256 | aa9faa5958f8ff08e833d453f83352da6aec5d7590f3c284ab9a38b66f57d1ba |