private void testDescribeConfigsMethod(final Admin client) throws Throwable {
        tryFeature("describeConfigsSupported", testConfig.describeConfigsSupported,
            () -> {
                try {
                    Collection<Node> nodes = client.describeCluster().nodes().get();

                    final ConfigResource configResource = new ConfigResource(
                        ConfigResource.Type.BROKER,
                        nodes.iterator().next().idString()
                    );

                    Map<ConfigResource, Config> brokerConfig =
                        client.describeConfigs(Collections.singleton(configResource)).all().get();

                    if (brokerConfig.get(configResource).entries().isEmpty()) {
                        throw new KafkaException("Expected to see config entries, but got zero entries");
                    }
                } catch (ExecutionException e) {
                    throw e.getCause();
                }
            });
    }
ClientCompatibilityTest is invoked by the ducktape test client_compatibility_features_test.py to validate
client behavior when various broker versions are in use.  It runs various client operations and tests whether they
are supported or not.
tools/src/main/java/org/apache/kafka/tools/ClientCompatibilityTest.java