@antonio2368 , after https://github.com/ClickHouse/ClickHouse/pull/36258 and https://github.com/ClickHouse/ClickHouse/issues/35465

I tried to test your --force-recovery implementation and failed, totally

when we try to scale down zookeeper cluster from 3 nodes to 1 nodes we need only one keeper node 
`clickhouse-keeper --force-recovery` can't start properly, cause still wait 2 other nodes, even when have only one node in peer list in XML config

```
 <Information> KeeperDispatcher: Server is recovering, will not apply configuration until recovery is finished
```

> Again, keep in mind that such configuration changes are already possible with the Keeper if there is a quorum by just changing the XML.

I can't to do it inside all other keeper nodes, inside Kubernetes

kubernetes operates pods and containers in declarative manner, I see only one opportunity to use
```yaml
          lifecycle:
            preStop: |
              shell script which will rewrite XML config
```
but it doesn't allow us to change XML configs on other pods during scale down

Moreover, we don't have support `reconfigure add` and `reconfigure remove` zookeeper commands and can't remove Pod from Quorum peer list dynamic

So, it makes --force-recovery useless in Kubernetes ;(

@alesapin maybe you could suggest how to run clickhouse-keeper in Kubernetes with scale down operation support?

extern const int NO_ELEMENTS_IN_CONFIG;
    extern const int SUPPORT_IS_DISABLED;
    extern const int LOGICAL_ERROR;
    extern const int INVALID_CONFIG_PARAMETER;
}
namespace
{
#if USE_SSL
void setSSLParams(nuraft::asio_service::options & asio_opts)
{
    const Poco::Util::LayeredConfiguration & config = Poco::Util::Application::instance().config();
    String certificate_file_property = "openSSL.server.certificateFile";
    String private_key_file_property = "openSSL.server.privateKeyFile";
    String root_ca_file_property = "openSSL.server.caConfig";
    if (!config.has(certificate_file_property))
        throw Exception("Server certificate file is not set.", ErrorCodes::NO_ELEMENTS_IN_CONFIG);
    if (!config.has(private_key_file_property))
        throw Exception("Server private key file is not set.", ErrorCodes::NO_ELEMENTS_IN_CONFIG);
    asio_opts.enable_ssl_ = true;
    asio_opts.server_cert_file_ = config.getString(certificate_file_property);
    asio_opts.server_key_file_ = config.getString(private_key_file_property);
    if (config.has(root_ca_file_property))
        asio_opts.root_cert_file_ = config.getString(root_ca_file_property);
    if (config.getBool("openSSL.server.loadDefaultCAFile", false))
        asio_opts.load_default_ca_file_ = true;
    if (config.getString("openSSL.server.verificationMode", "none") == "none")
        asio_opts.skip_verification_ = true;
}
#endif
std::string checkAndGetSuperdigest(const String & user_and_digest)