Наткнулся на странное поведение терраформа с dynamodb базой. Периодически, при коллективной работе (Mac + Linux разные версии либ или ещё из-за чего-то ещё), из динамо не убираются записи локов, при этом тераформ лок как бы даже и снимает. Появляется следующая ошибка:
Что надо сделать:
<REDION> — aws регион, где хранится стейт (к примеру eu-west-2)
<DYNAMO_TABLE> — имя таблицы в DynamoDB (к примеру terraform-lock)
<BUCKET> — название бакета s3 (к примеру aws-cloud-infrastructure)
<KEY> — ключ стейта в бакете (к прмиеру eks/staging/state)
1) чекаем нашу динамоДБ
aws --region <REDION> dynamodb get-item --table-name <DYNAMO_TABLE> --key '{ "LockID": { "S": "<BUCKET>/<KEY>-md5" } }'
Мы получим примерно такой ответ:
{
"Item": {
"Digest": {
"S": "846403546c510f4d26b5b93117be39f3"
},
"LockID": {
"S": "aws-cloud-infrastructure/eks/staging/state-md5"
}
}
}
теперь нам необходимо удалить этот хеш с бд
aws --region <REDION> dynamodb delete-item --table-name <DYNAMO_TABLE> --key '{ "LockID": { "S": "<BUCKET>/<KEY>-md5" } }'
Терь всё работает. И не ругается на странные хеши.