赫拉通过本机Python集成,使Python代码在Argo Workflows上易于编排。它允许您完全在Python中构建和提交您的Workflows。
项目描述
赫拉
赫拉通过本机Python集成,使Python代码在Argo Workflows上易于编排。它允许您完全在Python中构建和提交您的Workflows。
查看快速入门指南以开始使用赫拉编排您的Argo Workflows!
The Argo was constructed by the shipwright Argus,
and its crew were specially protected by the goddess Hera.
PyPI统计
仓库信息
探索代码
赫拉概览
步骤钻石
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工作流程!
要求
Hera需要将Argo服务器部署到Kubernetes集群中。目前,Hera假设Argo服务器位于一个可以使用请求中的Bearer token验证工作流程提交请求的认证层之后。要了解如何将Argo部署到自己的Kubernetes集群中,请遵循Argo Workflows指南!
另一种不使用认证层的提交工作流程的选项是使用端口转发到您的Argo服务器部署,并将工作流程提交到localhost:2746
(2746是默认端口,但您可以自由更改)。请参阅Argo Workflows文档以获取端口转发的命令!
注意 由于自动为ServiceAccounts和Argo创建tokens以及使用Bearer tokens的弃用,在Kubernetes v1.24+上设置Argo Workflows时必须使用
--auth=server
和/或--auth=client
,以便Hera能够与Argo服务器通信。
Hera中的认证
在Hera中有几种认证方式 - 在认证教程中了解更多信息 - 现在,如果已安装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安装赫拉 |
GitHub仓库 | python -m pip install git+https://github.com/argoproj-labs/hera --ignore-installed |
注意 Hera经历了名称变更 - 从
hera-workflows
变更为hera
。这在发布的Python包中得到了体现。如果您想安装5.0.0
之前的版本,您应该执行pip install hera-workflows<5
。Hera目前发布到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中使用Hera原生编排Python函数
- CNCF TAG App-Delivery @ KubeCon NA 2023 - 使用ArgoCD、Argo Workflows和Hera自动化数据工作负载的部署
- KubeCon/ArgoCon NA 2023 - 如何使用Argo Workflows和Hera训练LLM
- KubeCon/ArgoCon EU 2023 - 使用Argo Workflows和Hera扩展基因治疗
- DoKC Town Hall #2 - 从胶粘剂中摆脱束缚 - 将PayIt的数据管道迁移到Argo Workflows和Hera
- Argo Workflows和Events社区会议 2022年6月15日 - Hera项目更新
- Argo Workflows和Events社区会议 2021年10月20日 - Hera介绍性演示
博客
- 如何充分利用Hera进行数据科学
- 使用Great Expectations和Argo Workflows进行数据验证
- Hera介绍和动机
- Dyno使用云原生工具(如Argo Workflows和Hera)扩展基因治疗研究
贡献
请参阅贡献指南!
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码发行版
构建发行版
hera-5.17.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4f3edfba67690bf2a1c3d55cfb6a326f7d7a031d8ffef63d8bb09defce8a8b9 |
|
MD5 | 57acfec1f1054d15b185ba65472c0d31 |
|
BLAKE2b-256 | c00023720dd4c1e4a6bfadcf8b397d7e2fbfb96367f05b8a6b64c5864684b14c |
hera-5.17.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 87122edd5b4d8b6955c96c7eed65e5307bb73dfec679ac6657f4d7dbb939489e |
|
MD5 | 97184fb8c56c881548ab0f6efb8c9e3f |
|
BLAKE2b-256 | d435c77d641c41980be3506cb8d775f6372abeece18dbca1852f6522091e8726 |