docs: @VisibleForTesting
    Config updateNumContainersIfNeeded(Config initialConfig,
                                       TopologyAPI.Topology initialTopology,
                                       PackingPlan packingPlan) {
  
      int configNumStreamManagers = TopologyUtils.getNumContainers(initialTopology);
      int packingNumStreamManagers = packingPlan.getContainers().size();
  
      if (configNumStreamManagers == packingNumStreamManagers) {
        return initialConfig;
      }
  
      Config.Builder newConfigBuilder = Config.newBuilder()
          .putAll(initialConfig)
          .put(Key.NUM_CONTAINERS, packingNumStreamManagers + 1)
          .put(Key.TOPOLOGY_DEFINITION,
              cloneWithNewNumContainers(initialTopology, packingNumStreamManagers));
  
      String packingClass = Context.packingClass(config);
      LOG.warning(String.format("The packing plan (generated by %s) calls for a different number of "
              + "containers (%d) than what was explicitly set in the topology configs (%d). "
              + "Overriding the configs to specify %d containers. When using %s do not explicitly "
              + "call config.setNumStmgrs(..) or config.setNumWorkers(..).",
          packingClass, packingNumStreamManagers, configNumStreamManagers,
          packingNumStreamManagers, packingClass));
  
      return newConfigBuilder.build();
    }