Идвам да напомня да внимаваме с terraform state – дали ще е drift или ще забравим да си сложим versioning на s3 bucket-а, който пази terraform state-а.
И също така, че ако тестваме нещо (както аз като създавам ASG в AWS) и трябва да го затрием няколко пъти вместо да изтрием ресурса и да направим drift между state и actual state правим:
❯ terraform destroy -target=module.REDACTED.aws_autoscaling_group.REDACTED
И да не забравяме като си правим плановете да ги output-ваме във файл:
❯ terraform plan -destroy -out destroy.tfplan
❯ terraform apply destroy.tfplan
Така ако стане някакво разминаване между плана и изпълението му (например работите няколко човека върху тази среда) ще избегнете много проблеми.
Edit- присетих се, че в transportapi си бях добавил terraform plan/apply по горния начин като alias:
alias tp="terraform plan -destroy -out destroy.tfplan"
alias ta="terraform apply destroy.tfplan"
Така всичко става доста лесно. А ако искате нещо по-sophisticated можете да си напишете един bash скрипт, който да добавите в tp/ta за да има допълнителен safety net за да не затриете някой prod среда, например.
Leave a Reply