diff --git a/salt/elasticfleet/tools/sbin_jinja/so-kafka-fleet-output-policy b/salt/elasticfleet/tools/sbin_jinja/so-kafka-fleet-output-policy index c3cfd34db..7727f7db1 100644 --- a/salt/elasticfleet/tools/sbin_jinja/so-kafka-fleet-output-policy +++ b/salt/elasticfleet/tools/sbin_jinja/so-kafka-fleet-output-policy @@ -5,6 +5,7 @@ # Elastic License 2.0. {% from 'vars/globals.map.jinja' import GLOBALS %} +{% if GLOBALS.role in ['so-manager', 'so-standalone', 'so-managersearch'] %} . /usr/sbin/so-common @@ -33,5 +34,19 @@ if ! echo "$output" | grep -q "so-manager_kafka"; then --arg KAFKA_OUTPUT_VERSION "$KAFKA_OUTPUT_VERSION" \ '{ "name": "grid-kafka", "id": "so-manager_kafka", "type": "kafka", "hosts": [ $MANAGER_IP ], "is_default": false, "is_default_monitoring": false, "config_yaml": "", "ssl": { "certificate_authorities": [ $KAFKACA ], "certificate": $KAFKACRT, "key": $KAFKAKEY, "verification_mode": "full" }, "proxy_id": null, "client_id": "Elastic", "version": $KAFKA_OUTPUT_VERSION, "compression": "none", "auth_type": "ssl", "partition": "round_robin", "round_robin": { "group_events": 1 }, "topics":[{"topic":"%{[event.module]}-securityonion","when":{"type":"regexp","condition":"event.module:.+"}},{"topic":"default-securityonion"}], "headers": [ { "key": "", "value": "" } ], "timeout": 30, "broker_timeout": 30, "required_acks": 1 }' ) - curl -sK /opt/so/conf/elasticsearch/curl.config -L -X POST "localhost:5601/api/fleet/outputs" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d "$JSON_STRING" -fi \ No newline at end of file + curl -sK /opt/so/conf/elasticsearch/curl.config -L -X POST "localhost:5601/api/fleet/outputs" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d "$JSON_STRING" -o /dev/null + refresh_output=$(curl -sK /opt/so/conf/elasticsearch/curl.config -L "http://localhost:5601/api/fleet/outputs" | jq -r .items[].id) + + if ! echo "$refresh_output" | grep -q "so-manager_kafka"; then + echo -e "\nFailed to setup Elastic Fleet output policy for Kafka...\n" + exit 1 + elif echo "$refresh_output" | grep -q "so-manager_kafka"; then + echo -e "\nSuccessfully setup Elastic Fleet output policy for Kafka...\n" + fi + +elif echo "$output" | grep -q "so-manager_kafka"; then + echo -e "\nElastic Fleet output policy for Kafka already exists...\n" +fi +{% else %} +echo -e "\nNo update required...\n" +{% endif %} \ No newline at end of file diff --git a/salt/manager/tools/sbin/soup b/salt/manager/tools/sbin/soup index dd53bcf4a..63df4eb25 100755 --- a/salt/manager/tools/sbin/soup +++ b/salt/manager/tools/sbin/soup @@ -477,14 +477,8 @@ post_to_2.4.70() { } post_to_2.4.80() { - echo -e "\nUpdating Elastic Fleet output policy\n" - so-kafka-fleet-output-policy > /dev/null - output=$(curl -sK /opt/so/conf/elasticsearch/curl.config -L "http://localhost:5601/api/fleet/outputs" | jq -r .items[].id) - if ! echo "$output" | grep -q "so-manager_kafka"; then - fail "Couldn't update Elastic Fleet output policy so-manager_kafka" - else - echo -e "\nSuccessfully updated Elastic Fleet output policy" - fi + echo -e "\nChecking if update to Elastic Fleet output policy is required\n" + so-kafka-fleet-output-policy POSTVERSION=2.4.80 }