[ 
https://issues.apache.org/jira/browse/CASSANDRA-20749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18013715#comment-18013715
 ] 

Stefan Miklosovic commented on CASSANDRA-20749:
-----------------------------------------------

[~dcapwell] I tried to cover "intermediate properties" here (last commit) but I 
got pretty much stuck as covering general case is quite complex.

[https://github.com/apache/cassandra/compare/trunk...smiklosovic:cassandra:CASSANDRA-20749]

 

When we "flatten"" in such a way that all partial paths to some configuration 
are allowed as well, then we need to also parse it differently. I succeeded to 
do that e.g. for "jmx_server_options.jmx_encryption_options" so you can do 
something like this:
{code:java}
jmx_server_options.jmx_encryption_options = {"enabled": true, "cipher_suites": 
["TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"]}

jmx_server_options.jmx_encryption_options.enabled = true{code}
instead of
{code:java}
"jmx_server_options" = "{jmx_encryption_options{"enabled": true, 
"cipher_suites": ["TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"]}}"{code}
I could even do that for 
{code:java}
crypto_provider.parameters = {"fail_on_missing_provider": "false\}
crypto_provider.class_name = MyClass{code}
 

but what I am not able to finish is to do that for "memtable" case. 

If somebody jumped in and finished that (hello [~paulo] ) that would be sweet.

 

I have also addressed your comment one commit eariler.

 

> Allow overriding arbitrary settings via environment variables
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-20749
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20749
>             Project: Apache Cassandra
>          Issue Type: Improvement
>          Components: Local/Config
>            Reporter: Paulo Motta
>            Assignee: Paulo Motta
>            Priority: Normal
>             Fix For: 5.x
>
>          Time Spent: 4h
>  Remaining Estimate: 0h
>
> Allow arbitrary cassandra.yaml settings to be overriden via environment 
> variables. This allows performing runtime overrides to a cassandra node 
> configuration without updating cassandra.yaml, what can be useful to test 
> isolated changes or in docker environments where runtime environment 
> variables can be supplied via the {{--env}} flag.
> This should transparently override arbitrary configuration supported in 
> cassandra.yaml via environment variables loaded during startup matching the 
> format {{{}CASS_{CASSANDRA_YAML_CONFIG_NAME{}}}}. So for example, to override 
> the {{cassandra.yaml}} configuration cdc_enabled, this can be overriden via 
> the environment variable {{{}CASS_CDC_ENABLED{}}}, the cassandra.yaml setting 
> {{key_cache_save_period}} can be overriden via {{CASS_KEY_CACHE_SAVE_PERIOD}} 
> and so on. This should support both simple and complex properties.
> This is analogous to the functionality added by CASSANDRA-17166 to override 
> arbitrary configurations via system properties enabled by the flag 
> {{{}-Dcassandra.config.allow_system_properties{}}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to