-
Notifications
You must be signed in to change notification settings - Fork 882
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
Step Plugins #2685
Comments
I would be very interested in having the ability to use step plugins. In my particular use case I would benefit greatly from a step plugin that can function as a gate based on a metric rule. My application is stateful in the sense that it sense that it maintains large in memory objects that are flushed to disk when certain conditions are met. The application exposes information about the state of these objects as metrics. Based on the metrics I would like the ability to determine if Rollouts is allowed to progress in to a step and replace one or more containers. In short: I would love the ability to gate a step based on metrics. The step would wait until the metrics query returns a positive result and then continue with the step. |
Great talk! I think a great step would be for chatops like you mentioned. I can foresee a template of steps which can then be applied and include their current status. So define your steps like normal but inside of slack for example it would appear as a customizable template where you can click progress and have a live update as it progresses to the next step. A single point to track and progress the rollout |
Hi, it would be useful to have a custom step that waits until a different rollout in a different cluster reaches the same step index. That would allow us to have more than one rollout happen simultaneously and in a synchronized fashion. The rollouts are going to need something like a common multiClusterRolloutId, so that the step can identify the correct rollout. |
Hi again, it would be useful to have the ability to pass data between different steps of a rollout. For example, when we start a verification test, we need to call an API, which returns a test run ID. We need to use that ID in the next step, which will periodically poll the API and wait for the test results to become available. Currently we have no simple way to pass such an ID between steps in a rollout. In addition, we would like Argo Rollouts to preserve a history of previously passed data, so that we can debug previous rollouts when necessary. |
Hello, we would like to have a custom step that allows us to send a notification to Slack. We don't want to use the notifications engine for that purpose, because when using the notifications engine, the rollout will proceed in parallel to the notification. However, we would like the rollout to wait until the notification is confirmed to have been sent. For example, after the "setWeight: 100" step completes, we would like to send a Slack notification and then start the subsequent step. By the way, we can already achieve that by using an inline CustomAnalysisTemplate step that sends the Slack notification, but having a custom step is going to make the code clearer, because sending a notification is not really an "analysis". |
looks like the nginx plugin repo is empty: |
just a rough idea for a use case of a step plugin with gated-rollout Maybe it's possible to use argo rollout not only within kubernetes but to roll out features e.g. also in frontend via toogle/flag activation |
In our case, we often find ourselves deploying multiple A step plugin might be able to help by gating on some API or signal 'metric', or even by just inspecting the set of Rollouts and ensuring their step indices match up... |
This issue is stale because it has been open 60 days with no activity. |
What is left to be done for this feature to go from alpha -> beta
|
Summary
ArgoCon feedback for step plugins, please provide a thumbs up if you find the feature interesting. Even better if you have a use case please post a sample yaml manifest and/or a description of a use case for step plugins.
https://docs.google.com/presentation/d/1B0xfpQaDJeIsE33DQUKgIrIc5XXwA9X6EmE01iKEWjE/edit#slide=id.g22829a73a56_0_61
Use Cases
When would you use this?
Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.
The text was updated successfully, but these errors were encountered: