Viper: produce a perms error for config file #13350
Merged
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.
This updates Viper to a version containing
DataDog/viper#26 which returns a permissions
error if the config file cannot be read due to a permissions problem.
Previously this implementation unconditionally returned a "not found"
error which produced a deceptive message for the user.
Motivation
Better error messages
Possible Drawbacks / Trade-offs
This gets us deeper into our dependency on our fork of Viper.
Describe how to test/QA your changes
Run an agent in a situation where its configuration is inaccessible due to permissions errors (such as
chmod 000 /etc/datadog-agent/datadog.yaml
). You should seedo this on both WIndows and linux/mac.
Reviewer's Checklist
Triage
milestone is set.major_change
label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.changelog/no-changelog
label has been applied.qa/skip-qa
label is not applied.team/..
label has been applied, indicating the team(s) that should QA this change.need-change/operator
andneed-change/helm
labels have been applied.k8s/<min-version>
label, indicating the lowest Kubernetes version compatible with this feature.