awslabs / seed-farmer

Seed-Farmer is an orchestration tool that works with AWS CodeSeeder and acts as an orchestration tool modeled after GitOps deployments. It has a CommandLine Interface based in Python, leverages modular code deployments defined by declarative manifests, and includes change detection and deployment optimization.
https://seed-farmer.readthedocs.io/en/latest/
Apache License 2.0
43 stars 14 forks source link

[FEATURE] Add mocking modules and outputs #530

Open zaremb opened 3 months ago

zaremb commented 3 months ago

Is your feature request related to a problem? Please describe. Quite often I do not need entire set of modules, just couple of them. However, right now I need to have all of the modules deployed. Otherwise, some dependent modules will fail due to missing outputs.

Describe the solution you'd like A way to mock modules and their outputs, something similar to how terragrunt works with stacks and outputs: https://terragrunt.gruntwork.io/docs/features/execute-terraform-commands-on-multiple-modules-at-once/#unapplied-dependency-and-mock-outputs. Ideally I would have a way to "turn off" real deployment of a module and used mocked outputs.

Describe alternatives you've considered Right now, I need to add additional parameter to each module, and then in each deployspec and if statement to disable deployment and set up mock values.

dgraeber commented 3 months ago

Can you not mock out modules by changing / using manifests that reference static content?

dgraeber commented 3 months ago

We can explore the ability to pass in some dummy moduledata and its ramifications. To support mocking a module or aws service is not possible as we do not have a means to mock out AWS services across all possible languages and deployment types in such an infrastructure.

NOTE: the utility of using dummy moduledata is limited in that the actual usage of any of those values is moot since the underlying resources do not actually exist (see the first part of this comment).