feat: Prevent lambda-promtail from recompiling on every plan #17987
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
Currently, if you deploy lambda-promtail using the provided Terraform code, every time you run
terraform plan
, the golang binary will be recompiled and you will never have a clean plan. Ideally, the binary should only be recompiled if the code actually changes compared to the lastapply
.If the code was just a single file, we could use a hash of the script as the
trigger
, but we have too many files to make hashing feasible. Terraform won't let you hash every file in a folder natively, you'd have to add a third-party module or write a script yourself.So instead, I've added a new variable,
lambda_code_version
, which if set, will be used as thetrigger
for determining when the code should be recompiled. I've added an example to the README.Special notes for your reviewer:
n/a
Checklist
CONTRIBUTING.md
guide (required)feat
PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.docs/sources/setup/upgrade/_index.md
deprecated-config.yaml
anddeleted-config.yaml
files respectively in thetools/deprecated-config-checker
directory. Example PR