Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Permit enabling plugins for certain projects + domains #484

Closed
2 of 13 tasks
katrogan opened this issue Aug 25, 2020 · 4 comments
Closed
2 of 13 tasks

[Feature] Permit enabling plugins for certain projects + domains #484

katrogan opened this issue Aug 25, 2020 · 4 comments
Assignees
Labels
enhancement New feature or request untriaged This issues has not yet been looked at by the Maintainers
Milestone

Comments

@katrogan
Copy link
Contributor

Motivation: Why do you think this is important?
Currently an enabled plugin is applied for all matching task types. This poses several problems. As part of the process for deploying and testing new plugins, there is no means to gradually introduce one plugin implementation as a replacement for a given task type. Furthermore, sometimes individual users are interested in one implementation vs another (e.g. k8s array tasks vs batch for having access to credentials).

Goal: What should the final outcome look like, ideally?
Alternate plugin implementations for a task type should be configurable via a project+domain whitelist. e.g.

tasks:
  task-plugins:
    enabled-plugins:
    - container
    - aws_array
    configurable-plugins:
    - k8s-array:
      - production:
        - my_project
        - my_other_project

In this example, all projects+domains will always have the container plugin enabled. However, the container_array implementation will default to the aws batch plugin. In the case of executions running in the production domain for my_project or my_other_project the container_array plugin used will be k8s-array since it is registered for the same task type.

Describe alternatives you've considered
Another means of permitting split testing for a replacement plugin implementation could include a percentage-based traffic split. However this is non-deterministic which leads to confusing behavior for customer teams.

Flyte component

  • Overall
  • Flyte Setup and Installation scripts
  • Flyte Documentation
  • Flyte communication (slack/email etc)
  • FlytePropeller
  • FlyteIDL (Flyte specification language)
  • Flytekit (Python SDK)
  • FlyteAdmin (Control Plane service)
  • FlytePlugins
  • DataCatalog
  • FlyteStdlib (common libraries)
  • FlyteConsole (UI)
  • Other

[Optional] Propose: Link/Inline
This change will require updating WranglePluginsAndGenerateFinalList and plugin selection in ResolvePlugin

Additional context
This is to facilitate testing out improvements to the k8s array plugin.

Is this a blocker for you to adopt Flyte
N/A

@katrogan katrogan added enhancement New feature or request untriaged This issues has not yet been looked at by the Maintainers k8s-array labels Aug 25, 2020
@katrogan
Copy link
Contributor Author

@EngHabu @kumare3 mind reviewing?
cc @migueltol22

@kumare3
Copy link
Contributor

kumare3 commented Aug 25, 2020

@katrogan thank you for filing this issue, this makes sense to me. The intention of WranglePluginsAndGenerateFinalList was to allow much complex configuration, and eventually also supporting optional roll-outs

@katrogan katrogan added this to the 0.8.0 milestone Sep 2, 2020
@katrogan katrogan self-assigned this Sep 2, 2020
@EngHabu
Copy link
Contributor

EngHabu commented Sep 11, 2020

I'm 💯 behind the proposal you outlined here instead of the approach outlined above.
The basic principle is: system-level configs live next to the component they configure, project/wf/user specific config live in Admin DB (manipulatable by privileged users/admins)

@katrogan
Copy link
Contributor Author

@EngHabu thanks! since the other issue encapsulates this one, I'll close this out and use the linked issue for tracking work items

eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 6, 2022
Signed-off-by: Daniel Rammer <[email protected]>

Signed-off-by: Daniel Rammer <[email protected]>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 20, 2022
* Fixed PATH for gcloud

Signed-off-by: Prafulla Mahindrakar <[email protected]>

* Removed curl installation in mnist classifier

Signed-off-by: Prafulla Mahindrakar <[email protected]>
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Dec 20, 2022
eapolinario pushed a commit to eapolinario/flyte that referenced this issue Aug 9, 2023
Signed-off-by: Daniel Rammer <[email protected]>

Signed-off-by: Daniel Rammer <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request untriaged This issues has not yet been looked at by the Maintainers
Projects
None yet
Development

No branches or pull requests

3 participants