| Puppet Version: 6.25.0 Puppet Server Version: 6.0.10 OS Name/Version: Debian GNU/Linux 11 (bullseye) Since puppet-agent has been upgraded from 6.24.0, we get warnings on nodes using a specific configuration involving cataphract/yaml_settings wrapped by trepasi/cassandra. Desired Behavior: work without warnings Actual Behavior: while the catalog is applied properly, warnings are raised for every hash key passed to the values parameter of yaml_settings resource stating a type cast issue. Example: Node manifest includes a contain cassandra and gets parameter via Hiera:
cassandra::config: |
listen_address: "%{facts.networking.ip}" |
broadcast_rpc_address: "%{facts.networking.ip}" |
rpc_address: 0.0.0.0 |
num_tokens: 256 |
auto_bootstrap: true |
cluster_name: "Test Cassandra %{facts.mam_stage}" |
endpoint_snitch: GossipingPropertyFileSnitch |
authenticator: PasswordAuthenticator |
authorizer: CassandraAuthorizer |
seed_provider: |
- class_name: org.apache.cassandra.locator.SimpleSeedProvider |
parameters: |
- seeds: 10.90.21.10,10.90.18.238 |
diagnostic_events_enabled: true
|
Output of puppet agent --test on a node includes the warnings:
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["listen_address"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["broadcast_rpc_address"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["rpc_address"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["num_tokens"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["auto_bootstrap"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["cluster_name"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["endpoint_snitch"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["authenticator"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["authorizer"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["seed_provider"]' |
Warning: #<Puppet::Transaction::Persistence:0x00005598a2c1ebf8>['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0]['resources']['Yaml_settings[cassandra::config]']['parameters']['values']['system_value'][0] contains a hash with an Array key. It will be converted to the String '["diagnostic_events_enabled"]'
|
Debug and trace options does not unveil more relevant information. Contents of the transaction store on the node however changed from:
Yaml_settings[cassandra::config]: |
parameters: |
values: |
system_value: |
- ? - listen_address |
: 10.90.18.238 |
? - broadcast_rpc_address |
: 10.90.18.238 |
? - rpc_address |
: 0.0.0.0 |
? - num_tokens |
: 256 |
? - auto_bootstrap |
: true |
? - cluster_name |
: Test Cassandra qa |
? - endpoint_snitch |
: GossipingPropertyFileSnitch |
? - authenticator |
: PasswordAuthenticator |
? - authorizer |
: CassandraAuthorizer |
? - seed_provider |
: - class_name: org.apache.cassandra.locator.SimpleSeedProvider |
parameters: |
- seeds: 10.90.21.10,10.90.18.238 |
? - diagnostic_events_enabled |
: true
|
with 6.24.0 to:
Yaml_settings[cassandra::config]: |
parameters: |
values: |
system_value: |
- '["listen_address"]': 10.90.18.238 |
'["broadcast_rpc_address"]': 10.90.18.238 |
'["rpc_address"]': 0.0.0.0 |
'["num_tokens"]': 256 |
'["auto_bootstrap"]': true |
'["cluster_name"]': Test Cassandra qa |
'["endpoint_snitch"]': GossipingPropertyFileSnitch |
'["authenticator"]': PasswordAuthenticator |
'["authorizer"]': CassandraAuthorizer |
'["seed_provider"]': |
- class_name: org.apache.cassandra.locator.SimpleSeedProvider |
parameters: |
- seeds: 10.90.21.10,10.90.18.238 |
'["diagnostic_events_enabled"]': true
|
with 6.25.0, which is the only change on the node. Things need to be clarified:
- is this an actual issue involving a poor usage pattern
- could this lead to a future issue
- could the warnings be suppressed if not relevant
|