[
https://issues.apache.org/jira/browse/CASSANDRA-20749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18013715#comment-18013715
]
Stefan Miklosovic edited comment on CASSANDRA-20749 at 8/13/25 3:22 PM:
------------------------------------------------------------------------
[~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.
was (Author: smiklosovic):
[~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]