跳转到主要内容

赫拉通过本机Python集成,使Python代码在Argo Workflows上易于编排。它允许您完全在Python中构建和提交您的Workflows。

项目描述

赫拉

Hera mascot

赫拉通过本机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统计

PyPI Versions

Downloads Downloads/month Downloads/week

仓库信息

License: Apache-2.0 CICD Docs codecov

探索代码

Open in GitHub Codespaces

Open in Gitpod

赫拉概览

步骤钻石

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目前发布到herahera-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]选项添加了用于尚未毕业为稳定功能的实验性功能的依赖。

演示

博客

贡献

请参阅贡献指南

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

hera-5.17.1.tar.gz (288.6 kB 查看哈希值)

上传时间 源代码

构建发行版

hera-5.17.1-py3-none-any.whl (332.9 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面