Skip to content

Avoid eager vault lookup for YAML secrets#2172

Open
ideaship wants to merge 1 commit intomainfrom
rl_graceful_non-vault_deployment
Open

Avoid eager vault lookup for YAML secrets#2172
ideaship wants to merge 1 commit intomainfrom
rl_graceful_non-vault_deployment

Conversation

@ideaship
Copy link
Copy Markdown

@ideaship ideaship commented Apr 8, 2026

Add load_yaml_file and reuse it in the CLI paths that read OpenStack, RabbitMQ, Octavia, and database secrets from YAML files.

Several commands called get_vault() before checking whether the file was actually vault-encrypted. In deployments that keep secrets as plain YAML, this produced repeated 'Unable to get ansible vault password' errors for a path that is never needed.

Read the file first and only initialize the vault when the content is encrypted. This removes noisy false-error output during checks and deployments while preserving decryption for encrypted secrets.

AI-assisted: Codex

@ideaship ideaship force-pushed the rl_graceful_non-vault_deployment branch from 9b64454 to 61417df Compare April 8, 2026 09:16
Add load_yaml_file and reuse it in the CLI paths that read
OpenStack, RabbitMQ, Octavia, and database secrets from YAML files.

Several commands called get_vault() before checking whether the file
was actually vault-encrypted. In deployments that keep secrets as
plain YAML, this produced repeated 'Unable to get ansible vault
password' errors for a path that is never needed.

Read the file first and only initialize the vault when the content is
encrypted. This removes noisy false-error output during checks and
deployments while preserving decryption for encrypted secrets.

AI-assisted: Codex
Signed-off-by: Roger Luethi <luethi@osism.tech>
@ideaship ideaship force-pushed the rl_graceful_non-vault_deployment branch from 61417df to d021d66 Compare April 13, 2026 12:42
@ideaship ideaship marked this pull request as ready for review April 13, 2026 12:43
Copy link
Copy Markdown

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • In load_yaml_file, the initial os.path.exists check duplicates existence checks already done in some callers and always logs an error; consider either removing the internal existence check or returning a more specific error to avoid double logging for the same missing file.
  • load_yaml_file currently catches a broad Exception and converts all failures into None; consider narrowing the exception handling (e.g., separate decryption vs. I/O errors) or propagating specific exceptions so callers can distinguish between missing files, decryption errors, and invalid YAML content.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In `load_yaml_file`, the initial `os.path.exists` check duplicates existence checks already done in some callers and always logs an error; consider either removing the internal existence check or returning a more specific error to avoid double logging for the same missing file.
- `load_yaml_file` currently catches a broad `Exception` and converts all failures into `None`; consider narrowing the exception handling (e.g., separate decryption vs. I/O errors) or propagating specific exceptions so callers can distinguish between missing files, decryption errors, and invalid YAML content.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant