diff --git a/common/deploy-steps.j2 b/common/deploy-steps.j2 index 769aacd6e9..ad3c7ab3cc 100644 --- a/common/deploy-steps.j2 +++ b/common/deploy-steps.j2 @@ -269,7 +269,11 @@ resources: properties: value: yaql: - expression: $.data.items().orderBy($[0]).first()[1] + # Use a constant string of "bootstrap_server_id" when there are no + # servers in the primary role, such as in the case when all + # Controllers are blacklisted. No server id's will match the string + # which is what we want when all are blacklisted. + expression: switch($.data = {} => "no_bootstrap_server", $.data != {} => $.data.items().orderBy($[0]).first()[1]) data: {get_param: [servers, {{primary_role_name}}]} # Artifacts config and HostPrepConfig is done on all roles, not only diff --git a/releasenotes/notes/default-bootstrap-server-id-eff49ef40bfde414.yaml b/releasenotes/notes/default-bootstrap-server-id-eff49ef40bfde414.yaml new file mode 100644 index 0000000000..56a5f95cab --- /dev/null +++ b/releasenotes/notes/default-bootstrap-server-id-eff49ef40bfde414.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - Previously, when blacklisting all servers of the primary role, the stack + would fail since the bootstrap server id was empty. The value is now + defaulted in case all primary role servers are blacklisted.