In #86101 we added a warning if bootstrapping was incorrectly configured (and in #92744 we changed it to be emitted every 12h). The logic introduced doesn't take account of `discovery.type: single-node`, so explicitly-single-node clusters will always emit this warning even though they are correctly configured.

Relates https://github.com/elastic/elasticsearch/issues/58393.
server/src/test/java/org/elasticsearch/cluster/coordination/ClusterBootstrapServiceTests.java
final AtomicBoolean bootstrapped = new AtomicBoolean();
        ClusterBootstrapService clusterBootstrapService = new ClusterBootstrapService(
            Settings.builder()
                .putList(INITIAL_MASTER_NODES_SETTING.getKey(), localNode.getName(), otherNode1.getName(), otherNode2.getName())
                .build(),
            transportService,
            () -> List.of(otherNode1, otherNode2, extraNode),
            () -> false,
            vc -> {
                assertTrue(bootstrapped.compareAndSet(false, true));
                assertThat(vc.getNodeIds(), not(hasItem(extraNode.getId())));
            }
        );
        transportService.start();
        clusterBootstrapService.onFoundPeersUpdated();
        deterministicTaskQueue.runAllTasks();
        assertTrue(bootstrapped.get());
    }
    public void testBootstrapsAutomaticallyWithSingleNodeDiscovery() {
        final Settings.Builder settings = Settings.builder()
            .put(DiscoveryModule.DISCOVERY_TYPE_SETTING.getKey(), DiscoveryModule.SINGLE_NODE_DISCOVERY_TYPE)
            .put(NODE_NAME_SETTING.getKey(), localNode.getName());
        final AtomicBoolean bootstrapped = new AtomicBoolean();
        ClusterBootstrapService clusterBootstrapService = new ClusterBootstrapService(
            settings.build(),
            transportService,
            Collections::emptyList,
            () -> false,
            vc -> {
                assertTrue(bootstrapped.compareAndSet(false, true));