To prawda, istnieje komenda terraform graph
, która w połączniku z narzędziem graphviz
daje możliwość wygenerowania grafu. Notabene, jest to zalecane podejście. Niestety to podejście było dla mnie niewystarczające, ponieważ mój graf był dość duży, co za tym idzie, poruszanie się po nim było naprawdę trudne/irytujące. Potrzebowałem czegoś więcej.
Moja pierwsza próba to Blast Radius. Niestety, bez sukcesu, każda próba kończyła się błędem. Dodatkowo, wygląda na to, że Blast Radius nie jest już utrzymywany – ostatni commit to styczeń 2020.
Kolejna próba to Rover. Strzał w dziesiątkę!
Generowanie grafu
Aby otrzymać interaktywny graf obiektów, należy:
- wygenerować plan komendą
terraform plan -out plan.out
- przekształcić plan do formatu json komendą
terraform show -json plan.out > plan.json
-
uruchomić kontener komendą
docker run --rm -it -p 9000:9000 -v $(pwd)/plan.json:/src/plan.json im2nguyen/rover:latest -planJSONPath=plan.json
- w przeglądarce wpisać adres
http://localhost:9000/
, aby otrzymać graf - to wszystko!
Na koniec wspomnę, iż plan, o którym mowa wyżej, należy wygenerować w środowisku Linux, aby działał poprawnie.