A ClusterAction is a function that will be executed against the cluster to mutate its state.
Actions are intended to mirror actions that users of the product can take. We group these actions in a package associated with the tools that users would rely on (glooctl, kubectl..etc).
If you intend to introduce a new action, please follow this approach:
We want to avoid writing custom code that is just used by our tests. The core action should live in a utility package (utils, cli-utils, ...etc)
The ClusterAction that you add should live in the actions package associated with that tool
Example:
If you expanded the functionality that a user would perform via kubectl
ClusterAction is a function that will be executed against the cluster
If it succeeds, it will not return anything
If it fails, it will return an error
A ClusterAction must not panic! It is intended to be a function that can fail