Skip to content

Eager workflows to support async workflows#1579

Merged
cosmicBboy merged 11 commits into
masterfrom
eager-mode
Aug 25, 2023
Merged

Eager workflows to support async workflows#1579
cosmicBboy merged 11 commits into
masterfrom
eager-mode

Conversation

@cosmicBboy

@cosmicBboy cosmicBboy commented Apr 4, 2023

Copy link
Copy Markdown
Contributor

Fixes flyteorg/flyte#3672

TL;DR

Implement an experimental API for "eager workflows": workflows that enable the use of Python async code.

Type

  • Bug Fix
  • Feature
  • Plugin

Are all requirements met?

  • Code completed
  • Smoke tested
  • Unit tests added
  • Code documentation added
  • Any pending items have an associated Issue

Flytesnacks Example Link

...

Complete description

This PR adds support for @eager workflows. These are similar to @dynamic workflows in that they are flyte tasks that dynamically execute a graph. However, dynamic workflows can only use the materialized inputs to inform the shape of the graph -- at runtime, the flyte backend still gets a statically compiled workflow, but it's one that's compiled at runtime. @eager workflows take this to the other extreme of the static <-> dynamic spectrum.

Under the hood, an @eager "workflow" is actually a task that has access to a FlyteRemote object. This object needs to be configured correctly so that, at run-time, the remote object can authenticate to the configured flyte cluster. The eager workflow then uses this remote object to invoke the tasks that inside the user-defined eager workflow function body to invoke individual task executions.

Testing

Use the following Dockerfile and script to test this feature:

# Dockerfile.eager
FROM python:3.8-slim-buster

WORKDIR /root
ENV VENV /opt/venv
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONPATH /root

RUN apt-get update && apt-get install -y build-essential git

# Install the AWS cli separately to prevent issues with boto being written over
RUN pip3 install awscli

ENV VENV /opt/venv
# Virtual environment
RUN python3 -m venv ${VENV}
ENV PATH="${VENV}/bin:$PATH"

# Install Python dependencies
COPY . /root/
WORKDIR /root

RUN pip install -e .
RUN pip install -e ./plugins/flytekit-deck-standard
RUN pip install scikit-learn pandas

ENV FLYTE_SDK_LOGGING_LEVEL 20

Python script:

# flytekit_eager.py
"""Async workflows prototype."""

import asyncio
import time
from typing import NamedTuple

import pandas as pd
from sklearn.datasets import load_wine
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

from flytekit import workflow, task
from flytekit.configuration import Config, PlatformConfig
from flytekit.experimental import eager
from flytekit.remote import FlyteRemote


class CustomException(Exception): ...

BestModel = NamedTuple("BestModel", model=LogisticRegression, metric=float)


@task
def get_data() -> pd.DataFrame:
    """Get the wine dataset."""
    return load_wine(as_frame=True).frame


@task
def process_data(data: pd.DataFrame) -> pd.DataFrame:
    """Simplify the task from a 3-class to a binary classification problem."""
    return data.assign(target=lambda x: x["target"].where(x["target"] == 0, 1))


@task
def train_model(data: pd.DataFrame, hyperparameters: dict) -> LogisticRegression:
    """Train a model on the wine dataset."""
    features = data.drop("target", axis="columns")
    target = data["target"]
    return LogisticRegression(max_iter=3000, **hyperparameters).fit(features, target)


@task
def evaluate_model(data: pd.DataFrame, model: LogisticRegression) -> float:
    """Train a model on the wine dataset."""
    features = data.drop("target", axis="columns")
    target = data["target"]
    return float(accuracy_score(target, model.predict(features)))


remote = FlyteRemote(
    config=Config.for_sandbox(),
    default_project="flytesnacks",
    default_domain="development",
)

@eager(remote=remote)
async def main() -> BestModel:
    logging.info("STARTING MAIN")
    data = await get_data()
    processed_data = await process_data(data=data)

    # split the data
    try:
        train, test = train_test_split(processed_data, test_size=0.2)
    except Exception as exc:
        raise CustomException(str(exc)) from exc

    models = await asyncio.gather(*[
        train_model(data=train, hyperparameters={"C": x})
        # for x in [0.1, 0.01, 0.001, 0.0001, 0.00001]
        for x in [0.1]
    ])
    results = await asyncio.gather(*[
        evaluate_model(data=test, model=model) for model in models
    ])

    best_model, best_result = None, float("-inf")
    for model, result in zip(models, results):
        if result > best_result:
            best_model, best_result = model, result

    assert best_model is not None, "model cannot be None!"
    return best_model, best_result


@workflow
def wf() -> BestModel:
    return main()


if __name__ == "__main__":
    print("training model")
    model = asyncio.run(main())
    print(f"trained model: {model}")

Tracking Issue

flyteorg/flyte#3396

Follow-up issue

NA

@codecov

codecov Bot commented May 11, 2023

Copy link
Copy Markdown

Codecov Report

Merging #1579 (b5ffbc3) into master (3370a96) will decrease coverage by 52.68%.
Report is 67 commits behind head on master.
The diff coverage is 13.52%.

@@             Coverage Diff             @@
##           master    #1579       +/-   ##
===========================================
- Coverage   71.03%   18.35%   -52.68%     
===========================================
  Files         336      327        -9     
  Lines       30798    31008      +210     
  Branches     5589     3026     -2563     
===========================================
- Hits        21876     5692    -16184     
- Misses       8375    25236    +16861     
+ Partials      547       80      -467     
Files Changed Coverage Δ
flytekit/clis/sdk_in_container/build.py 0.00% <0.00%> (-94.65%) ⬇️
flytekit/clis/sdk_in_container/constants.py 0.00% <0.00%> (-100.00%) ⬇️
flytekit/clis/sdk_in_container/pyflyte.py 0.00% <0.00%> (-68.27%) ⬇️
flytekit/clis/sdk_in_container/run.py 0.00% <0.00%> (-85.57%) ⬇️
flytekit/clis/sdk_in_container/serialize.py 0.00% <0.00%> (-57.15%) ⬇️
flytekit/configuration/__init__.py 72.41% <0.00%> (+35.03%) ⬆️
flytekit/core/local_cache.py 41.30% <0.00%> (-4.35%) ⬇️
flytekit/core/node_creation.py 0.00% <0.00%> (-62.72%) ⬇️
flytekit/core/python_auto_container.py 34.37% <0.00%> (-22.77%) ⬇️
flytekit/deck/deck.py 29.11% <0.00%> (-23.52%) ⬇️
... and 62 more

... and 271 files with indirect coverage changes

@cosmicBboy cosmicBboy marked this pull request as draft June 29, 2023 21:27
@cosmicBboy cosmicBboy force-pushed the eager-mode branch 3 times, most recently from cd94594 to c432b5e Compare June 30, 2023 21:11
@cosmicBboy cosmicBboy mentioned this pull request Jul 24, 2023
8 tasks
@cosmicBboy cosmicBboy changed the title [WIP] Eager workflows to support async workflows Eager workflows to support async workflows Aug 3, 2023
@cosmicBboy cosmicBboy changed the title Eager workflows to support async workflows [WIP] Eager workflows to support async workflows Aug 3, 2023
@cosmicBboy cosmicBboy changed the title [WIP] Eager workflows to support async workflows Eager workflows to support async workflows Aug 4, 2023
@cosmicBboy cosmicBboy marked this pull request as ready for review August 4, 2023 22:56
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Comment thread flytekit/core/base_task.py Outdated
Comment thread flytekit/experimental/eager_function.py Outdated
Comment thread flytekit/experimental/eager_function.py Outdated
Comment thread flytekit/experimental/eager_function.py
Comment thread flytekit/experimental/eager_function.py
@cosmicBboy

Copy link
Copy Markdown
Contributor Author

@pingsutw please feel free to make the necessary changes.

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
@cosmicBboy cosmicBboy merged commit b072130 into master Aug 25, 2023
@cosmicBboy cosmicBboy deleted the eager-mode branch August 31, 2023 20:54
jeevb pushed a commit that referenced this pull request Sep 20, 2023
* Eager workflows to support async workflows

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* move array node maptask to experimental/__init__.py

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up docs

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* more clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* docs cleanup

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* Update test_eager_workflows.py

* clean up timeout handling

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* fix lint

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

---------

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>
Future-Outlier pushed a commit to Future-Outlier/flytekit that referenced this pull request Oct 3, 2023
* Eager workflows to support async workflows

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* move array node maptask to experimental/__init__.py

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up docs

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* more clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* docs cleanup

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* Update test_eager_workflows.py

* clean up timeout handling

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* fix lint

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

---------

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Future Outlier <eric901201@gmai.com>
def _outputs_interface(self) -> Dict[Any, Variable]:
return self.interface.outputs # type: ignore

def _output_to_literal_map(self, native_outputs, exec_ctx):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

type hint


return _literal_models.LiteralMap(literals=literals), native_outputs_as_map

def _write_decks(self, native_inputs, native_outputs_as_map, ctx, new_user_params):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

type hint

return task_def

def loader_args(self, settings: SerializationSettings, task: PythonAutoContainerTask) -> List[str]: # type:ignore
from flytekit.core.python_function_task import PythonFunctionTask

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the previous code was buggy, but replacement might need an error. might be where it's coming from.

"""
Returns the name of the task.
"""
if self.instantiated_in and self.instantiated_in not in self._name:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we document here the situation when this is necessary? python function tasks in general don't need this field right? cuz typically functions are declared at the module level and when we traverse those py files, we know where we're at.

Comment thread flytekit/core/tracker.py
module = import_module_from_file(self._instantiated_in, self._module_file)

def _candidate_name_matches(candidate) -> bool:
if not hasattr(candidate, "name") or not hasattr(self, "name"):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we add a comment as to when is this the case?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not all the attributes in the module will have a name attr

Comment thread flytekit/core/tracker.py
logger.debug(f"Looking for LHS for {self} from {self._instantiated_in}")
m = _importlib.import_module(self._instantiated_in)
m = importlib.import_module(self._instantiated_in)
for k in dir(m):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

previously if this loop didn't raise anything we would just raise an exception on line 96. Can you elaborate on the circumstances in which we want to keep going? is it just to support the case when the task is in main?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct, this happens because eager workflows are just using a FlyteRemote object to execute tasks that are in the namespace at execution time. All the logic below is to try to load the module from the _module_file, hence we cannot find an exact match because the task functions are no longer equal to the equivalent functions in main

Comment thread flytekit/core/tracker.py
return False
return candidate.name == self.name

for k in dir(module):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are we looking for an exact object match here? why can't we just do object id equality if that's the case?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because module here is now a different module from main, task/dynamic/workflow functions can no longer be identified via equality checks.

Comment thread flytekit/core/tracker.py
_mod_sanitizer = _ModuleSanitizer()


def _task_module_from_callable(f: Callable):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we type hint this and add a small comment for what the three things are? also why is this only for Callable? because all tasks are callable?

Comment thread flytekit/core/promise.py
else:
return None
return cast(LocallyExecutable, entity).local_execute(child_ctx, **kwargs)
return cast(LocallyExecutable, entity).local_execute(ctx, **kwargs)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need this change?

jeevb added a commit that referenced this pull request Nov 1, 2023
* pip through to container

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move around

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add asserts

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* delete bad line

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* switch to abc and add support for gpu unpartitioned

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add Azure-specific headers when uploading to blob storage (#1784)

* Add Azure-specific headers when uploading to blob storage

Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>

* Add comment about HTTP 201 check

Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>

---------

Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add async delete function in base_agent (#1800)

Signed-off-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add support for execution name prefixes (#1803)

Signed-off-by: troychiu <y.troychiu@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Remove ref in output (#1794)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Inherit directly from DataClassJsonMixin instead of using @dataclass_json for improved static type checking (#1801)

* Inherit directly from DataClassJsonMixin instead of @dataclass_json for improved static type checking

As it says in the dataclasses-json README: https://github.com/lidatong/dataclasses-json/blob/89578cb9ebed290e70dba8946bfdb68ff6746755/README.md?plain=1#L111-L129, we can use inheritance for improved static type checking; this one change eliminates something like 467 pyright errors from the flytekit module

Signed-off-by: Matthew Hoffman <matthew@protopia.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Async file sensor (#1790)

---------
Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Eager workflows to support async workflows (#1579)

* Eager workflows to support async workflows

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* move array node maptask to experimental/__init__.py

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up docs

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* more clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* docs cleanup

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* Update test_eager_workflows.py

* clean up timeout handling

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* fix lint

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

---------

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Enable SecretsManager.get to load and return bytes (#1798)

* fix secretsmanager

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

* fix lint issue

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

* add doc

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

* fix github check

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

---------

Signed-off-by: Yue Shang <s.yue3074@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Batch upload flyte directory (#1806)

* Batch upload flyte directory

Signed-off-by: Kevin Su <pingsutw@apache.org>

* Update get method

Signed-off-by: Kevin Su <pingsutw@apache.org>

* Move batch size to type engine

Signed-off-by: Kevin Su <pingsutw@apache.org>

* comment

Signed-off-by: Kevin Su <pingsutw@apache.org>

* update comment

Signed-off-by: Kevin Su <pingsutw@apache.org>

* Update flytekit/core/type_engine.py

Co-authored-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com>

* Add test

Signed-off-by: Kevin Su <pingsutw@apache.org>

---------

Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Better error messaging for overrides (#1807)

- using incorrect type of overrides
 - using incorrect type for resources
 - using promises in overrides

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Run remote Launchplan from `pyflyte run` (#1785)

* Beautified pyflyte run even for every task and workflow

- identify a task or a workflow
- task or workflow help menus show types and use rich to beautify

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* one more improvement

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated command

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated formatting

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* bug fixed in types

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* lint

Signed-off-by: Kevin Su <pingsutw@apache.org>

---------

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add is none function (#1757)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Dynamic workflow should not throw nested task warning (#1812)

Signed-off-by: oliverhu <khu@linkedin.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add a manual image building GH action (#1816)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* catch abfs protocol in data_persistence.py/get_filesystem and set anon to False (#1813)

Signed-off-by: Jan Fiedler <jan.fiedler@kineo.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* None doesnt work

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* unpartitioned selector

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Fix list of annotated structured dataset (#1817)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Support the flytectl config.yaml admin.clientSecretEnvVar option in flytekit (#1819)

* Support the flytectl config.yaml admin.clientSecretEnvVar option in flytekit

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>

* remove helper of getting env var.

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>

* refactor variable name.

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>

---------

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Async agent delete function for while loop case (#1802)

Signed-off-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* refactor

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fix docs warnings (#1827)

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Fix extract_task_module (#1829)

---------

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Feat: Add type support for pydantic BaseModels (#1660)

Signed-off-by: Adrian Rumpold <a.rumpold@gmail.com>
Signed-off-by: Arthur <atte.book@gmail.com>
Signed-off-by: wirthual <wirthra@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: eduardo apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add test for unspecified mig

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add support for overriding accelerator

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanup

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move from core to extras

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanup

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Make FlyteRemote slightly more copy/pastable (#1830)

Signed-off-by: Katrina Rogan <katroganGH@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Pyflyte meta inputs (#1823)

* Re-orgining pyflyte run

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Pyflyte beautified and simplified

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* fixed unit test

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Added Launch options

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* lint fix

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* test fix

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* fixing docs failure

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

---------

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Use mashumaro to serialize/deserialize dataclass (#1735)

Signed-off-by: HH <hhcs9527@gmail.com>
Signed-off-by: hhcs9527 <hhcs9527@gmail.com>
Signed-off-by: Matthew Hoffman <matthew@protopia.ai>
Co-authored-by: Matthew Hoffman <matthew@protopia.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Databricks Agent (#1797)

Signed-off-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Prometheus metrics (#1815)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Pyflyte register optionally activates schedule (#1832)

* Pyflyte register auto activates schedule

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* comment addressed

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

---------

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Remove versions 3.9 and 3.10 (#1831)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Snowflake agent (#1799)

Signed-off-by: hhcs9527 <hhcs9527@gmail.com>
Signed-off-by: HH <hhcs9527@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Update agent metric name (#1835)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* MemVerge MMCloud Agent (#1821)

Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add download badges in readme (#1836)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Eager local entrypoint and support for offloaded types (#1833)

* implement eager workflow local entrypoint, support offloaded types

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* wip local entrypoint

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* add tests

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* add local entrypoint tests

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update eager unit tests, delete test script

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up tests

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* remove push step

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

---------

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* update requirements and add snowflake agent to api reference (#1838)

* update requirements and add snowflake agent to api reference

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* update requirements

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove versions

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove tensorflow-macos

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* lint

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* downgrade sphinxcontrib-youtube package

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

---------

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Fix: Make sure decks created in elastic task workers are transferred to parent process (#1837)

* Transfer decks created in the worker process to the parent process

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Add test for decks in elastic tasks

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Update plugins/flytekit-kf-pytorch/flytekitplugins/kfpytorch/task.py

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Update plugins/flytekit-kf-pytorch/flytekitplugins/kfpytorch/task.py

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

---------

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add accept grpc (#1841)

* add accept grpc

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* unpin setup.py grpc

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Revert "add accept grpc"

This reverts commit 2294592.

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* default headers interceptor

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* setup.py

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fmt

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move prometheus-client import

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

---------

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>
Co-authored-by: Jeev B <jeevb@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Feat: Enable `flytekit` to authenticate with proxy in front of FlyteAdmin (#1787)

* Introduce authenticator engine and make proxy auth work

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Use proxy authed session for client credentials flow

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Don't use authenticator engine but do proxy authentication via existing external command authenticator

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Add docstring to AuthenticationHTTPAdapter

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Address todo in docstring

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Create blank session if none provided

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Create blank session if none provided in get_token

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Refresh proxy creds in session when not existing without triggering 401

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Add test for get_session

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Move auth helper test into existing module

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Move auth helper test into existing module

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Add test for upgrade_channel_to_proxy_authenticated

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Auth helper tests without use of responses package

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Feat: Add plugin for generating GCP IAP ID tokens via external command (#1795)

* Add external command plugin to generate id tokens for identity aware proxy

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Retrieve desktop app client secret from gcp secret manager

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Remove comments

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Introduce a command group that allows adding a command to generate service account id tokens later

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Document how to use plugin and deploy Flyte with IAP

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Minor corrections README.md

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

---------

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Use proxy auth'ed session for device code auth flow

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Fix token client tests

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Make poll token endpoint test more specific

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Make test_client_creds_authenticator test work and more specific

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Make test_client_creds_authenticator_with_custom_scopes test work and more specific

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Implement subcommand to generate id tokens for service accounts

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Test id token generation from service accounts

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Fix plugin requirements

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Document usage of generate-service-account-id-token subcommand

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Document alternative ways to obtain service account id tokens

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

---------

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* bump flyteidl

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* make requirements

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fix failing tests

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move gpu accelerator to flyteidl.core.Resources

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Use ResourceExtensions for extended resources

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanup

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Switch to using ExtendedResources in TaskTemplate

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanups

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* update flyteidl

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Replace _core_task imports with tasks_pb2

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* less verbose definitions

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Attempt at less confusing syntax

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Streamline UX

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Run make fmt

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

---------

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>
Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>
Signed-off-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: troychiu <y.troychiu@gmail.com>
Signed-off-by: Matthew Hoffman <matthew@protopia.ai>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Yue Shang <s.yue3074@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: oliverhu <khu@linkedin.com>
Signed-off-by: Jan Fiedler <jan.fiedler@kineo.ai>
Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>
Signed-off-by: Adrian Rumpold <a.rumpold@gmail.com>
Signed-off-by: Arthur <atte.book@gmail.com>
Signed-off-by: wirthual <wirthra@gmail.com>
Signed-off-by: eduardo apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: Katrina Rogan <katroganGH@gmail.com>
Signed-off-by: HH <hhcs9527@gmail.com>
Signed-off-by: hhcs9527 <hhcs9527@gmail.com>
Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>
Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Co-authored-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Co-authored-by: Victor Delépine <vctr.delepine@gmail.com>
Co-authored-by: Future-Outlier <eric901201@gmail.com>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Yi Chiu <114708546+troychiu@users.noreply.github.com>
Co-authored-by: Matthew Hoffman <matthew@protopia.ai>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Niels Bantilan <niels.bantilan@gmail.com>
Co-authored-by: Yue Shang <138256885+ysysys3074@users.noreply.github.com>
Co-authored-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com>
Co-authored-by: Ketan Umare <16888709+kumare3@users.noreply.github.com>
Co-authored-by: Keqiu Hu <khu@linkedin.com>
Co-authored-by: Jan Fiedler <89976021+fiedlerNr9@users.noreply.github.com>
Co-authored-by: Chao-Heng Lee <chaohengstudent@gmail.com>
Co-authored-by: Samhita Alla <aallasamhita@gmail.com>
Co-authored-by: Arthur Böök <49250723+ArthurBook@users.noreply.github.com>
Co-authored-by: Katrina Rogan <katroganGH@gmail.com>
Co-authored-by: Po Han(Hank) Huang <hhcs9527@gmail.com>
Co-authored-by: Edwin Yu <92917168+edwinyyyu@users.noreply.github.com>
Co-authored-by: Fabio M. Graetz, Ph.D <fabiograetz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
ringohoffman pushed a commit to ringohoffman/flytekit that referenced this pull request Nov 24, 2023
* pip through to container

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move around

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add asserts

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* delete bad line

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* switch to abc and add support for gpu unpartitioned

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add Azure-specific headers when uploading to blob storage (flyteorg#1784)

* Add Azure-specific headers when uploading to blob storage

Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>

* Add comment about HTTP 201 check

Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>

---------

Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add async delete function in base_agent (flyteorg#1800)

Signed-off-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add support for execution name prefixes (flyteorg#1803)

Signed-off-by: troychiu <y.troychiu@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Remove ref in output (flyteorg#1794)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Inherit directly from DataClassJsonMixin instead of using @dataclass_json for improved static type checking (flyteorg#1801)

* Inherit directly from DataClassJsonMixin instead of @dataclass_json for improved static type checking

As it says in the dataclasses-json README: https://github.com/lidatong/dataclasses-json/blob/89578cb9ebed290e70dba8946bfdb68ff6746755/README.md?plain=1#L111-L129, we can use inheritance for improved static type checking; this one change eliminates something like 467 pyright errors from the flytekit module

Signed-off-by: Matthew Hoffman <matthew@protopia.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Async file sensor (flyteorg#1790)

---------
Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Eager workflows to support async workflows (flyteorg#1579)

* Eager workflows to support async workflows

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* move array node maptask to experimental/__init__.py

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up docs

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* more clean up

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* docs cleanup

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* Update test_eager_workflows.py

* clean up timeout handling

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* fix lint

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

---------

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Enable SecretsManager.get to load and return bytes (flyteorg#1798)

* fix secretsmanager

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

* fix lint issue

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

* add doc

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

* fix github check

Signed-off-by: Yue Shang <s.yue3074@gmail.com>

---------

Signed-off-by: Yue Shang <s.yue3074@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Batch upload flyte directory (flyteorg#1806)

* Batch upload flyte directory

Signed-off-by: Kevin Su <pingsutw@apache.org>

* Update get method

Signed-off-by: Kevin Su <pingsutw@apache.org>

* Move batch size to type engine

Signed-off-by: Kevin Su <pingsutw@apache.org>

* comment

Signed-off-by: Kevin Su <pingsutw@apache.org>

* update comment

Signed-off-by: Kevin Su <pingsutw@apache.org>

* Update flytekit/core/type_engine.py

Co-authored-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com>

* Add test

Signed-off-by: Kevin Su <pingsutw@apache.org>

---------

Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Better error messaging for overrides (flyteorg#1807)

- using incorrect type of overrides
 - using incorrect type for resources
 - using promises in overrides

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Run remote Launchplan from `pyflyte run` (flyteorg#1785)

* Beautified pyflyte run even for every task and workflow

- identify a task or a workflow
- task or workflow help menus show types and use rich to beautify

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* one more improvement

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated command

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated formatting

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* bug fixed in types

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Updated

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* lint

Signed-off-by: Kevin Su <pingsutw@apache.org>

---------

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add is none function (flyteorg#1757)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Dynamic workflow should not throw nested task warning (flyteorg#1812)

Signed-off-by: oliverhu <khu@linkedin.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add a manual image building GH action (flyteorg#1816)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* catch abfs protocol in data_persistence.py/get_filesystem and set anon to False (flyteorg#1813)

Signed-off-by: Jan Fiedler <jan.fiedler@kineo.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* None doesnt work

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* unpartitioned selector

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Fix list of annotated structured dataset (flyteorg#1817)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Support the flytectl config.yaml admin.clientSecretEnvVar option in flytekit (flyteorg#1819)

* Support the flytectl config.yaml admin.clientSecretEnvVar option in flytekit

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>

* remove helper of getting env var.

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>

* refactor variable name.

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>

---------

Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Async agent delete function for while loop case (flyteorg#1802)

Signed-off-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* refactor

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fix docs warnings (flyteorg#1827)

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Fix extract_task_module (flyteorg#1829)

---------

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Feat: Add type support for pydantic BaseModels (flyteorg#1660)

Signed-off-by: Adrian Rumpold <a.rumpold@gmail.com>
Signed-off-by: Arthur <atte.book@gmail.com>
Signed-off-by: wirthual <wirthra@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: eduardo apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add test for unspecified mig

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add support for overriding accelerator

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanup

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move from core to extras

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanup

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Make FlyteRemote slightly more copy/pastable (flyteorg#1830)

Signed-off-by: Katrina Rogan <katroganGH@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Pyflyte meta inputs (flyteorg#1823)

* Re-orgining pyflyte run

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Pyflyte beautified and simplified

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* fixed unit test

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* Added Launch options

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* lint fix

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* test fix

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* fixing docs failure

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

---------

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Use mashumaro to serialize/deserialize dataclass (flyteorg#1735)

Signed-off-by: HH <hhcs9527@gmail.com>
Signed-off-by: hhcs9527 <hhcs9527@gmail.com>
Signed-off-by: Matthew Hoffman <matthew@protopia.ai>
Co-authored-by: Matthew Hoffman <matthew@protopia.ai>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Databricks Agent (flyteorg#1797)

Signed-off-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Prometheus metrics (flyteorg#1815)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Pyflyte register optionally activates schedule (flyteorg#1832)

* Pyflyte register auto activates schedule

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

* comment addressed

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>

---------

Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Remove versions 3.9 and 3.10 (flyteorg#1831)

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Snowflake agent (flyteorg#1799)

Signed-off-by: hhcs9527 <hhcs9527@gmail.com>
Signed-off-by: HH <hhcs9527@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Update agent metric name (flyteorg#1835)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* MemVerge MMCloud Agent (flyteorg#1821)

Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Add download badges in readme (flyteorg#1836)

Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Eager local entrypoint and support for offloaded types (flyteorg#1833)

* implement eager workflow local entrypoint, support offloaded types

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* wip local entrypoint

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* add tests

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* add local entrypoint tests

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update eager unit tests, delete test script

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* clean up tests

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* update ci

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

* remove push step

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>

---------

Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* update requirements and add snowflake agent to api reference (flyteorg#1838)

* update requirements and add snowflake agent to api reference

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* update requirements

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove versions

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* remove tensorflow-macos

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* lint

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

* downgrade sphinxcontrib-youtube package

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

---------

Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Fix: Make sure decks created in elastic task workers are transferred to parent process (flyteorg#1837)

* Transfer decks created in the worker process to the parent process

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Add test for decks in elastic tasks

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Update plugins/flytekit-kf-pytorch/flytekitplugins/kfpytorch/task.py

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Update plugins/flytekit-kf-pytorch/flytekitplugins/kfpytorch/task.py

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

---------

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* add accept grpc (flyteorg#1841)

* add accept grpc

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* unpin setup.py grpc

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Revert "add accept grpc"

This reverts commit 2294592.

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* default headers interceptor

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* setup.py

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fixes

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fmt

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move prometheus-client import

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

---------

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>
Co-authored-by: Jeev B <jeevb@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Feat: Enable `flytekit` to authenticate with proxy in front of FlyteAdmin (flyteorg#1787)

* Introduce authenticator engine and make proxy auth work

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Use proxy authed session for client credentials flow

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Don't use authenticator engine but do proxy authentication via existing external command authenticator

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Add docstring to AuthenticationHTTPAdapter

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Address todo in docstring

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Create blank session if none provided

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Create blank session if none provided in get_token

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Refresh proxy creds in session when not existing without triggering 401

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Add test for get_session

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Move auth helper test into existing module

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Move auth helper test into existing module

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Add test for upgrade_channel_to_proxy_authenticated

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Auth helper tests without use of responses package

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Feat: Add plugin for generating GCP IAP ID tokens via external command (flyteorg#1795)

* Add external command plugin to generate id tokens for identity aware proxy

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Retrieve desktop app client secret from gcp secret manager

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Remove comments

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Introduce a command group that allows adding a command to generate service account id tokens later

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Document how to use plugin and deploy Flyte with IAP

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Minor corrections README.md

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

---------

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Use proxy auth'ed session for device code auth flow

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Fix token client tests

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Make poll token endpoint test more specific

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Make test_client_creds_authenticator test work and more specific

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Make test_client_creds_authenticator_with_custom_scopes test work and more specific

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Implement subcommand to generate id tokens for service accounts

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Test id token generation from service accounts

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Fix plugin requirements

Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>

* Document usage of generate-service-account-id-token subcommand

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

* Document alternative ways to obtain service account id tokens

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>

---------

Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* bump flyteidl

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* make requirements

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* fix failing tests

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* move gpu accelerator to flyteidl.core.Resources

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Use ResourceExtensions for extended resources

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanup

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Switch to using ExtendedResources in TaskTemplate

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* cleanups

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* update flyteidl

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Replace _core_task imports with tasks_pb2

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* less verbose definitions

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Attempt at less confusing syntax

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Streamline UX

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

* Run make fmt

Signed-off-by: Jeev B <jeevb@users.noreply.github.com>

---------

Signed-off-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Signed-off-by: Jeev B <jeevb@users.noreply.github.com>
Signed-off-by: Victor Delépine <victor.delepine@wayve.ai>
Signed-off-by: Future Outlier <eric901201@gmai.com>
Signed-off-by: troychiu <y.troychiu@gmail.com>
Signed-off-by: Matthew Hoffman <matthew@protopia.ai>
Signed-off-by: Niels Bantilan <niels.bantilan@gmail.com>
Signed-off-by: Yue Shang <s.yue3074@gmail.com>
Signed-off-by: Kevin Su <pingsutw@apache.org>
Signed-off-by: Ketan Umare <ketan.umare@gmail.com>
Signed-off-by: oliverhu <khu@linkedin.com>
Signed-off-by: Jan Fiedler <jan.fiedler@kineo.ai>
Signed-off-by: Chao-Heng Lee <chaohengstudent@gmail.com>
Signed-off-by: Adrian Rumpold <a.rumpold@gmail.com>
Signed-off-by: Arthur <atte.book@gmail.com>
Signed-off-by: wirthual <wirthra@gmail.com>
Signed-off-by: eduardo apolinario <eapolinario@users.noreply.github.com>
Signed-off-by: Katrina Rogan <katroganGH@gmail.com>
Signed-off-by: HH <hhcs9527@gmail.com>
Signed-off-by: hhcs9527 <hhcs9527@gmail.com>
Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
Signed-off-by: Fabio Graetz <fabiograetz@googlemail.com>
Signed-off-by: Fabio Grätz <fabiogratz@googlemail.com>
Co-authored-by: Yee Hing Tong <wild-endeavor@users.noreply.github.com>
Co-authored-by: Victor Delépine <vctr.delepine@gmail.com>
Co-authored-by: Future-Outlier <eric901201@gmail.com>
Co-authored-by: Future Outlier <eric901201@gmai.com>
Co-authored-by: Yi Chiu <114708546+troychiu@users.noreply.github.com>
Co-authored-by: Matthew Hoffman <matthew@protopia.ai>
Co-authored-by: Kevin Su <pingsutw@apache.org>
Co-authored-by: Niels Bantilan <niels.bantilan@gmail.com>
Co-authored-by: Yue Shang <138256885+ysysys3074@users.noreply.github.com>
Co-authored-by: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com>
Co-authored-by: Ketan Umare <16888709+kumare3@users.noreply.github.com>
Co-authored-by: Keqiu Hu <khu@linkedin.com>
Co-authored-by: Jan Fiedler <89976021+fiedlerNr9@users.noreply.github.com>
Co-authored-by: Chao-Heng Lee <chaohengstudent@gmail.com>
Co-authored-by: Samhita Alla <aallasamhita@gmail.com>
Co-authored-by: Arthur Böök <49250723+ArthurBook@users.noreply.github.com>
Co-authored-by: Katrina Rogan <katroganGH@gmail.com>
Co-authored-by: Po Han(Hank) Huang <hhcs9527@gmail.com>
Co-authored-by: Edwin Yu <92917168+edwinyyyu@users.noreply.github.com>
Co-authored-by: Fabio M. Graetz, Ph.D <fabiograetz@googlemail.com>
Co-authored-by: Fabio Grätz <fabiogratz@googlemail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Eager mode: enable awaitable execution graphs in Flyte

4 participants