Flyte Versions Save

Scalable and flexible workflow orchestration platform that seamlessly unifies data, ML and analytics stacks.

v1.10.7-b2

3 months ago

Flyte v1.10.7-b2 Release

Pre-release testing.

v1.10.7-b1

3 months ago

Flyte v1.10.7-b1 Release

Pre-release testing.

v1.10.7-b0

4 months ago

Flyte v1.10.7-b0 Release

Beta release.

v1.10.6

5 months ago

Flyte 1.10.6 Release

Due to a mishap in the move to the monorepo, we ended up generating the git tags between 1.10.1 to 1.10.5, so in order to decrease the confusion we decided to skip those patch versions and go straight to the next available version.

We've shipped a ton of stuff in this patch release, here are some of the highlights.

GPU Accelerators

You'll be able to get more fine-grained in the use GPU Accelerators in your tasks. Here are some examples:

No preference of GPU accelerator to use:

@task(limits=Resources(gpu="1"))
def my_task() -> None:
    ...

Schedule on a specific GPU accelerator:

from flytekit.extras.accelerators import T4


@task(
    limits=Resources(gpu="1"),
    accelerator=T4,
)
def my_task() -> None:
    ...

Schedule on a Multi-instance GPU (MIG) accelerator with no preference of partition size:

from flytekit.extras.accelerators import A100


@task(
    limits=Resources(gpu="1"),
    accelerator=A100,
)
def my_task() -> None:
    ...

Schedule on a Multi-instance GPU (MIG) accelerator with a specific partition size:

from flytekit.extras.accelerators import A100


@task(
    limits=Resources(gpu="1"),
    accelerator=A100.partition_1g_5gb,
)
def my_task() -> None:
    ...

Schedule on an unpartitioned Multi-instance GPU (MIG) accelerator:

from flytekit.extras.accelerators import A100


@task(
    limits=Resources(gpu="1"),
    accelerator=A100.unpartitioned,
)
def my_task() -> None:
    ...

Improved support for Ray logs

https://github.com/flyteorg/flyte/pull/4266 opens the door for RayJob logs to be persisted.

In https://github.com/flyteorg/flyte/pull/4397 we added support for a link to a Ray dashboard to show up in the task card.

Updated grafana dashboards

We updated the official grafana dashboards in https://github.com/flyteorg/flyte/pull/4382.

Support for Azure AD

A new version of our stow fork added support for Azure AD in https://github.com/flyteorg/stow/pull/9.

Full changelog:

New Contributors

v1.10.6-b0

5 months ago

Flyte v1.10.6-b0 Release

Beta release.

v1.10.0

6 months ago

Flyte v1.10.0 Release

This release marks the move to the (monorepo](https://github.com/flyteorg/flyte/pull/4014). From now on the development of backend components is going to be done in the Flyte main repo.

Flyte Agents are also getting a major lift. They are not only more performant, but we're also announcing support for a variety of agents, including Airflow, Memverge, Snowflake, Databricks.

Programmatically consuming inputs and outputs using flyteremote became a lot easier with the introduction of code snippets directly in the UI. For example, notice the small blurbs below inputs and outputs in the side panel:

Usage snippet

You'll now be able to use offloaded types in eager workflows.

More ergonomic improvements to pyflyte, including the inclusion of a progress bar, the ability to activate launchplans, and the ability to interact with gate nodes in local executions.

And much more. Here's the exhaustive list of changes:

Flytekit

Flyteadmin

  • Fixed bug for incorrect name (#4175)
  • Add version control for ArrayNode eventing (#4165)
  • Update golang experimental dep (#4177)
  • Add Additional gRPC service handler hook (#4171)
  • Handle batched TaskExecutionEvent reasons (#615)
  • Lint flyteadmin/auth/handlers_test.go
  • #patch Update FromWorkflowModel API (#617)
  • add codespell: config, workflow and have typos fixed (#4054)
  • Handle batched TaskExecutionEvent reasons (#615)
  • Update FromWorkflowModel API (#617)
  • Update boilerplate version (#605)
  • Reduce a warning to info (#612)
  • Logout hook plugin (#611)
  • Expire flyte_idt cookie at logout (#610)
  • Use configured domain on expired cookies (#608)
  • Fix list named entities (#609)
  • Merge pull request from GHSA-r847-6w6h-r8g4
  • Update boilerplate version (#604)
  • Handle grpc error explicitly (#602)
  • Introduce pre redirect hook plugin during auth callback (#601)
  • Add default cluster pool assignments to config (#600)
  • Implement Sandbox notifications processor and publisher (#595)

Flytepropeller

  • [Extended Resources] GPU Accelerators (#4172)
  • [Monorepo] Enable proxy-authorization in admin client (#4189)
  • (monorepo--importing-flyteidl-452) Add version control for ArrayNode eventing (#4165)
  • Update golang experimental dep (#4177)
  • Moving from flytepropeller - Adding flags for ignore-retry-cause and default-max-attempts (#4153)
  • [Monorepo] Rename flyteidl (#4166)
  • Revert add supported task types for agent service by default for task types (#4162)
  • reverting to parallelism increases only on non-terminal phase updates (#624)
  • Add k8s events to task phase updates (#600)
  • Ray log links (#620)
  • Add supportTaskTypes for agentservice without write it in config twice. (#612)
  • Bump flytestdlib version (#619)
  • added check for invalid argument code on node event recording failure (#613)
  • start informerFactory by default. (#614)
  • bumped flyteplugins to v1.1.23 (#616)
  • fixing boilerplate (#617)
  • Supporting using arraynode as a subnode (#606)
  • fixing max parallelism (#611)
  • adding controller-runtime manager metrics handler to http endpoint (#607)
  • pulled latest boilerplate (#609)
  • Move caching to node executor for fast cache hits (#485)

Flyteplugins

  • Update the item only if it exists in the cache (#4117)
  • [Extended Resources] GPU Accelerators (#4172)
  • Implement Spark pod template overrides (#4183)
  • Support Evaluator in Kubeflow TensorFlow Training Operator (#4168)
  • Agent Get Pending Message (#4106)
  • Moving from flytepropeller - Adding flags for ignore-retry-cause and default-max-attempts (#4153)
  • change to tf job worker spec (#4169)
  • Return ResourceWrapper without pointer (#4115)
  • Revert add supported task types for agent service by default for task types (#4162)
  • Plugin changes for plumbing k8s events into TaskExecutionEvent (#406)
  • Fix flyteplugins lint errors
  • add codespell: config, workflow and have typos fixed (#4054)
  • Add supportTaskTypes for agentservice without write it in config twice. (#398)
  • Create a FileOutput reader if the agent produce file output (#391)
  • Bump flytestdlib version (#404)
  • feat: Dask add pod template support (#374)
  • Mark webapi task failure as retry limit exceeded (#392)
  • Make rendering template in agent client temporary (#395)
  • enable secrets in non-python k8s tasks (#401)
  • Rename agent chart (#4019)
  • Fix resources requests for AWS Batch plugin (#400)
  • Transition to Queue if the JobCondition is empty (#387)
  • Fix databricks plugin test Naming Error (#393)
  • Updating boilerplate to lock golangci-lint version (#394)
  • Fix double http in the Spark Driver UI Link (#389)
  • Render task template in the agent client (#384)

Flyteconsole

  • show correct details panel io (#820)
  • resume form should support all known types (#819)
  • optional list arg is causing ui launch form to white screen (#817)
  • breadcrumb dropdown render (#815)
  • switching projects doesn't respect domain value (#814)
  • invalid item in dropdown (#809)
  • flyte decks height (#813)

datacatalog

  • b5a958f Refactoring profile handler into entrypoints (#113)

v1.9.1

8 months ago

Flyte v1.9.1 Patch Release

Change routing in single binary. https://github.com/flyteorg/flyte/pull/3978

v1.9.0

9 months ago

Flyte v1.9.0 Release

In this release we're announcing two experimental features, namely (1) ArrayNode map tasks, and (2) Execution Tags.

ArrayNode map tasks

ArrayNodes are described more fully in RFC 3346, but the summary is that ArrayNode map tasks are a drop-in replacement for regular map tasks, the only difference being the submodule used to import the map_task function. More explicitly, let's say you have this code:

from typing import List
from flytekit import map_task, task, workflow

@task
def t(a: int) -> int:
    ...
    
@workflow
def wf(xs: List[int]) -> List[int]:
    return map_task(t)(a=xs)

In order to switch to using array node map tasks you should import map_task from the flytekit.experimental module like so:

from typing import List
from flytekit import task, workflow
from flytekit.experimental import map_task

@task
def t(a: int) -> int:
    ...
    
@workflow
def wf(xs: List[int]) -> List[int]:
    return map_task(t)(a=xs)

Execution tags

Execution tags allow users to can discover their executions and other flyte entities more easily, by creating smarter groupings. The feature is described in this RFC.

As mentioned before, this feature is shipped in an experimental capacity, the idea being that we're going to incorporate the feedback of the community as we iterate. More work is expected to give prominence to the feature in flyteconsole, in the meanwhile, the feature is supported via Remote.

Flytekit

Flyteadmin

Flyteplugins

Flytepropeller

Flyteconsole

New Contributors

v1.8.0

10 months ago

Flyte v1.8.0 Release

Flytekit

Flyteadmin

Flytepropeller

Flyteplugins

Flyteconsole