fix: Make Consul commands conditional on TLS configuration #1345
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.
Fixes #1344
Problem
Consul operator commands in remove_node.yml were hardcoded to use HTTPS and TLS certificates, causing failures when TLS is disabled on the cluster.
Error encountered:
FAILED! => {"attempts": 3, "cmd": ["consul", "operator", "raft",
"list-peers", "-http-addr=https://127.0.0.1:8500",
"-ca-file=/etc/consul/tls/ca.crt"], "msg": "non-zero return code",
"rc": 1, "stderr": "Error initializing client: Error loading CA File:
open /etc/consul/tls/ca.crt: no such file or directory"}
Solution
Made all Consul CLI commands conditionally use TLS based on the consul_tls_enable variable:
Added play-level variables to eliminate code duplication:
Updated four Consul commands to use these variables:
Implementation
Uses Jinja2 templating to check consul_tls_enable | default(false) | bool, defaulting to false if undefined. This ensures backward compatibility and allows the playbook to work with both TLS-enabled and TLS-disabled Consul clusters.
Resolved with: Claude Sonnet 4.5 (Cascade IDE)