Closed moritzschmitz-oviva closed 1 year ago
This issue can be resolved replacing addressSettings
with brokerProperties
, i.e.
kind: ActiveMQArtemis
metadata:
name: artemis-address-settings
spec:
brokerProperties:
- "addressesSettings.#.addressFullMessagePolicy=PAGE"
- "addressesSettings.#.autoCreateAddresses=true"
- "addressesSettings.#.autoCreateQueues=true"
- "addressesSettings.#.deadLetterAddress=DLQ"
- "addressesSettings.#.expiryAddress=ExpiryQueue"
- "addressesSettings.#.maxSizeBytes=1"
- "addressesSettings.#.messageCounterMaxDayCount=10"
- "addressesSettings.#.redeliveryDelay=0"
Hey @brusdev, thanks for the reply!
#
is the index? E.g. "addressesSettings.0.match=jms.queue.smser.#"
?
@moritzschmitz-oviva #
is the match value, i.e. the addresse setting with the match value jms.topic.eventBusBg
- match: jms.topic.eventBusBg
maxDeliveryAttempts: 7
maxRedeliveryDelay: 60000
redeliveryDelay: 1000
can be defined with the following broker properties:
- 'addressesSettings."jms.queue.smser.#".maxDeliveryAttempts=7'
- 'addressesSettings."jms.queue.smser.#".maxRedeliveryDelay=60000'
- 'addressesSettings."jms.queue.smser.#".redeliveryDelay=1000'
@brusdev thanks a lot!
If I may ask one more question: where am I able to find this 'example' in the docs? Or asked differently: how can I transfer this syntax to other broker properties, given that so far I only know how to handle the broker.xml
syntax?
@moritzschmitz-oviva you can retrieve the broker property names for address settings from the getters of the class AddressSettings
for other broker properties see https://activemq.apache.org/components/artemis/documentation/latest/configuration-index.html
@brusdev now I am stuck for securitySettings
. I believe relevant lines in the ConfigurationImpl
are these: https://github.com/apache/activemq-artemis/blob/main/artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java#L2052
So I tried this config:
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".createDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."{{ $client.name }}_client".createDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".deleteDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."{{ $client.name }}_client".deleteDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".createNonDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."{{ $client.name }}_client".createNonDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".deleteNonDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."{{ $client.name }}_client".deleteNonDurableQueue=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".send=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."client".send=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".consume=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."{{ $client.name }}_client".consume=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".createAddress=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."{{ $client.name }}_client".createAddress=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".deleteAddress=true'
- 'securitySettings."jms.topic.{{ $client.name }}.*"."amq".manage=true'
- 'securitySettings."MATCH"."ROLE".createDurableQueue=true'
Didn't have any success with this though.
Correct configuration is this:
- 'securityRoles."{{ $client.name }}.*".amq.createDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".{{ $client.name }}_client.createDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".amq.deleteDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".{{ $client.name }}_client.deleteDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".amq.createNonDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".{{ $client.name }}_client.createNonDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".amq.deleteNonDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".{{ $client.name }}_client.deleteNonDurableQueue=true'
- 'securityRoles."{{ $client.name }}.*".amq.send=true'
- 'securityRoles."{{ $client.name }}.*".client.send=true'
- 'securityRoles."{{ $client.name }}.*".amq.consume=true'
- 'securityRoles."{{ $client.name }}.*".{{ $client.name }}_client.consume=true'
- 'securityRoles."{{ $client.name }}.*".amq.createAddress=true'
- 'securityRoles."{{ $client.name }}.*".{{ $client.name }}_client.createAddress=true'
- 'securityRoles."{{ $client.name }}.*".amq.deleteAddress=true'
- 'securityRoles."{{ $client.name }}.*".amq.manage=true'
EDIT:
- 'securityRoles."MATCH".ROLE.OPERATION_TYPE=true'
Works now!
@moritzschmitz-oviva nice work and thanks for sharing!!!
Describe the bug A clear and concise description of what the bug is.
To Reproduce Apply below
sts.yaml
Platform (please complete the following information):
Expected behavior Configuration to work. Init container should not fail.
Additional context