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

Add describe-env-dependencies command #207

Closed

Conversation

cbosss
Copy link
Contributor

@cbosss cbosss commented Sep 29, 2017

Fix #201 Add describe-env-dependencies to expose the stack dependencies within an environment

This commit also allows users to output their dependencies using the DOT language, which can be used to graph the dependencies using programs like Graphwiz.

Couple questions:

  1. Thoughts on the name of the command? Would something simpler like graph be more user friendly?
  2. Is it possible to include a picture in the docs? Something like this is good motivation to use a command: dependencies

@b-t-g
Copy link
Contributor

b-t-g commented Sep 29, 2017

Wow, not even 12 hours after I posted my issue! I'll want to play around with this on a few existing environments that I have on top of a standard code review to get a better feel for how it works.

Regarding your first bullet point, I think since describe has a relatively consistent meaning in Sceptre (and the aws cli in general), that desecribe-env-dependencies is not the best name. Off the top of my head, something like output-dependency-graph may be better, but I haven't yet convinced myself that it is the best name either.

I'll look into how to get pictures into the docs, it seems doable in principle, but I don't know how to do it right now.

Thanks for the PR!

@theseanything
Copy link
Contributor

@cboss24 Thanks for PR. Could you give some specific use cases for this? I'm reluctant to merge as this seems to add a bit of complexity (API changes etc) for low benefit to Sceptre's core functionality.

@cbosss
Copy link
Contributor Author

cbosss commented Oct 3, 2017

Two main uses cases I see:

  1. Dev: You have a stack in your environment that is slow to CRUD (elasticsearch, RDS...). A graph command would help you determine if the stack you are iterating on will cascade changes to that slow stack. A graph command might even help you simplify your dependency graph to minimize or eliminate cascading changes to that slow stack.

  2. Prod: You are releasing a new change to PROD. You know which stacks will be directly changed from manual inspection of the commit. However, you would have to manually inspect the code base to determine how those stack changes will propagate to the rest of the environment. A graph command would make this information available in a automated / graphical way.

I disagree that this is not core Sceptre functionality. One of Sceptre's killer features is the ability to automatically detect dependencies and orchestrate the stack commands around those dependencies. In my opinion this change is simply enhancing this core feature.

Let me know what you think!

@cbosss
Copy link
Contributor Author

cbosss commented Oct 15, 2017

@theseanything @b-t-g any thoughts on this PR?

… the stack dependencies within an environment

This commit also allows users to output their dependencies using the DOT language, which can be used
to graph the dependencies using programs like Graphwiz.
@cbosss cbosss force-pushed the feature/describe-env-dependencies branch from ed42ceb to 8090f5d Compare October 16, 2017 01:13
@theseanything
Copy link
Contributor

Sorry for the delay @cboss24. I agree it is an enhancement, but not fundamental to Sceptre functionality. For the sake of project maintainability - I feel this is something we are going to have to leave out.

We are a looking at maybe introducing the ability to extend sceptre by adding custom cli commands/functionality as plugins which can be pip installable - this may be a good candidate for that.

@cbosss cbosss deleted the feature/describe-env-dependencies branch December 19, 2017 23:30
@cbosss cbosss restored the feature/describe-env-dependencies branch December 19, 2017 23:31
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.

3 participants