Итак, у меня есть созвездие проектов Terraform. Я только что создал образ определенного приложения, которое в конечном итоге приводит к обновлению тегов в файле auto-vars соответствующего проекта в репозитории Terraform, а затем применяет его, и я заметил, что mtimes действительно дурацкие. Сегодня 28 число. Файл состояния показывает mtime три недели назад (5-е), хотя с тех пор я, вероятно, сделал десятки реальных релизов, в том числе только что обновил их и применил их минуту назад. Это доказывает mtime в файле auto-vars и временные метки в фактических тегах образа Docker (при этом поверив мне на слово, что они были применены вскоре после обновления auto-vars).
$ ls -la
total 56
drwxr-xr-x 3 dustin dustin 4096 May 28 14:38 .
drwxr-xr-x 6 dustin dustin 4096 May 4 12:13 ..
-rw-r--r-- 1 dustin dustin 4300 May 16 12:34 main.tf
-rwxr-xr-x 1 dustin dustin 49 May 4 12:13 run.sh
drwxr-xr-x 4 dustin dustin 4096 May 5 15:30 .terraform
-rw-r--r-- 1 dustin dustin 298 May 28 14:38 terraform.auto.tfvars.json
-rw-r--r-- 1 dustin dustin 1409 May 5 15:30 .terraform.lock.hcl
-rw-r--r-- 1 dustin dustin 17556 May 5 15:29 terraform.tfstate.backup
-rw-r--r-- 1 dustin dustin 196 May 4 12:13 variables.tf
$ ls -la .terraform
total 20
drwxr-xr-x 4 dustin dustin 4096 May 5 15:30 .
drwxr-xr-x 3 dustin dustin 4096 May 28 14:38 ..
drwxr-xr-x 2 dustin dustin 4096 May 5 15:29 modules
drwxr-xr-x 3 dustin dustin 4096 May 5 15:30 providers
-rw-r--r-- 1 dustin dustin 1600 May 5 15:29 terraform.tfstate
$ cat terraform.auto.tfvars.json
{
"taskdefinition-web-fq-docker-image": "326764833890.dkr.ecr.us-east-1.amazonaws.com/workflow-web:eb241c0",
"taskdefinition-app-fq-docker-image": "326764833890.dkr.ecr.us-east-1.amazonaws.com/workflow-api:20230528143624-abca7cf",
"taskdefinition-release-version": "20230528143624-abca7cf"
}
Приложение, которое я только что сделал, показало предпринятые действия:
Plan: 1 to add, 1 to change, 1 to destroy.
module.task-definition.aws_ecs_task_definition.task-definition-default: Destroying... [id=workflow-api-staging]
module.task-definition.aws_ecs_task_definition.task-definition-default: Destruction complete after 1s
module.task-definition.aws_ecs_task_definition.task-definition-default: Creating...
module.task-definition.aws_ecs_task_definition.task-definition-default: Creation complete after 0s [id=workflow-api-staging]
module.load-balancer.module.service.aws_ecs_service.default: Modifying... [id=arn:aws:ecs:us-east-1:326764833890:service/internal-webserver-ssl/staging-workflow-api]
module.load-balancer.module.service.aws_ecs_service.default: Modifications complete after 0s [id=arn:aws:ecs:us-east-1:326764833890:service/internal-webserver-ssl/staging-workflow-api]
Apply complete! Resources: 1 added, 1 changed, 1 destroyed.
Может кто-нибудь объяснить, как Terraform управляет состоянием mtimes? Документация, похоже, не вдается в подробности.
