diff --git a/helm/flowfuse/templates/configmap.yaml b/helm/flowfuse/templates/configmap.yaml index effc9dff..8f0945e5 100644 --- a/helm/flowfuse/templates/configmap.yaml +++ b/helm/flowfuse/templates/configmap.yaml @@ -341,11 +341,11 @@ data: url: {{ ((.Values.forge.expert).service).url }} requestTimeout: {{ .Values.forge.expert.requestTimeout | default 60000 }} {{- $expertBrokerAddress := (((.Values.forge.expert).broker).address) }} - {{- if ((.Values.forge.broker.teamBroker).enabled) }} + {{- if (and .Values.forge.broker.enabled ((.Values.forge.broker.teamBroker).enabled)) }} centralBroker: server: {{ printf "%s:%v" ($expertBrokerAddress | default "expert-broker.flowfuse.com") (((.Values.forge.expert).broker).port | default 8883) }} {{- else if $expertBrokerAddress }} - {{- fail "forge.expert.broker requires the Team Broker to be enabled (forge.broker.teamBroker.enabled=true)" -}} + {{- fail "forge.expert.broker requires the Team Broker to be enabled (forge.broker.enabled=true and forge.broker.teamBroker.enabled=true)" -}} {{- end }} {{- end }} {{- end }} diff --git a/helm/flowfuse/tests/expert_central_broker_test.yaml b/helm/flowfuse/tests/expert_central_broker_test.yaml index 9606b374..8d50d003 100644 --- a/helm/flowfuse/tests/expert_central_broker_test.yaml +++ b/helm/flowfuse/tests/expert_central_broker_test.yaml @@ -41,6 +41,7 @@ tests: - it: should render central broker server when expert is enabled with broker address and port template: configmap.yaml set: + forge.broker.enabled: true forge.broker.teamBroker.enabled: true forge.expert: enabled: true @@ -61,6 +62,7 @@ tests: - it: should render central broker server with custom port template: configmap.yaml set: + forge.broker.enabled: true forge.broker.teamBroker.enabled: true forge.expert: enabled: true @@ -78,6 +80,7 @@ tests: - it: should default the central broker port to 8883 when not provided template: configmap.yaml set: + forge.broker.enabled: true forge.broker.teamBroker.enabled: true forge.expert: enabled: true @@ -104,7 +107,7 @@ tests: port: 1883 asserts: - failedTemplate: - errorMessage: "forge.expert.broker requires the Team Broker to be enabled (forge.broker.teamBroker.enabled=true)" + errorMessage: "forge.expert.broker requires the Team Broker to be enabled (forge.broker.enabled=true and forge.broker.teamBroker.enabled=true)" - it: should fail when expert broker address is set and team broker is explicitly disabled template: configmap.yaml @@ -120,4 +123,37 @@ tests: port: 1883 asserts: - failedTemplate: - errorMessage: "forge.expert.broker requires the Team Broker to be enabled (forge.broker.teamBroker.enabled=true)" + errorMessage: "forge.expert.broker requires the Team Broker to be enabled (forge.broker.enabled=true and forge.broker.teamBroker.enabled=true)" + + - it: should default the central broker server when team broker is enabled and no address is set + template: configmap.yaml + set: + forge.broker.enabled: true + forge.broker.teamBroker.enabled: true + forge.expert: + enabled: true + service: + url: "https://expert.example.com" + token: "expert-token" + asserts: + - matchRegex: + path: data["flowforge.yml"] + pattern: "server: expert-broker\\.flowfuse\\.com:8883" + + - it: should not render central broker when team broker is enabled but broker is disabled + template: configmap.yaml + set: + forge.broker.enabled: false + forge.broker.teamBroker.enabled: true + forge.expert: + enabled: true + service: + url: "https://expert.example.com" + token: "expert-token" + asserts: + - matchRegex: + path: data["flowforge.yml"] + pattern: "expert:" + - notMatchRegex: + path: data["flowforge.yml"] + pattern: "centralBroker:"