docs: private void setPackingConfigs(Config config) {
      List<TopologyAPI.Config.KeyValue> topologyConfig = topology.getTopologyConfig().getKvsList();
  
      // instance default resources are acquired from heron system level config
      this.defaultInstanceResources = new Resource(
          Context.instanceCpu(config),
          Context.instanceRam(config),
          Context.instanceDisk(config));
  
      int paddingPercentage = TopologyUtils.getConfigWithDefault(topologyConfig,
          TOPOLOGY_CONTAINER_PADDING_PERCENTAGE, PackingUtils.DEFAULT_CONTAINER_PADDING_PERCENTAGE);
      ByteAmount ramPadding = TopologyUtils.getConfigWithDefault(topologyConfig,
          TOPOLOGY_CONTAINER_RAM_PADDING, PackingUtils.DEFAULT_CONTAINER_RAM_PADDING);
      double cpuPadding = TopologyUtils.getConfigWithDefault(topologyConfig,
          TOPOLOGY_CONTAINER_CPU_PADDING, PackingUtils.DEFAULT_CONTAINER_CPU_PADDING);
      Resource preliminaryPadding = new Resource(cpuPadding, ramPadding,
          PackingUtils.DEFAULT_CONTAINER_DISK_PADDING);
  
      this.maxNumInstancesPerContainer = TopologyUtils.getConfigWithDefault(topologyConfig,
          TOPOLOGY_CONTAINER_MAX_NUM_INSTANCES, PackingUtils.DEFAULT_MAX_NUM_INSTANCES_PER_CONTAINER);
  
      // container default resources are computed as:
      // max number of instances per container * default instance resources
      double containerDefaultCpu = this.defaultInstanceResources.getCpu()
          * maxNumInstancesPerContainer;
      ByteAmount containerDefaultRam = this.defaultInstanceResources.getRam()
          .multiply(maxNumInstancesPerContainer);
      ByteAmount containerDefaultDisk = this.defaultInstanceResources.getDisk()
          .multiply(maxNumInstancesPerContainer);
  
      double containerCpu = TopologyUtils.getConfigWithDefault(topologyConfig,
          TOPOLOGY_CONTAINER_CPU_REQUESTED, containerDefaultCpu);
      ByteAmount containerRam = TopologyUtils.getConfigWithDefault(topologyConfig,
          TOPOLOGY_CONTAINER_RAM_REQUESTED, containerDefaultRam);
      ByteAmount containerDisk = TopologyUtils.getConfigWithDefault(topologyConfig,
          TOPOLOGY_CONTAINER_DISK_REQUESTED, containerDefaultDisk);
      Resource containerResource = new Resource(containerCpu,
          containerRam, containerDisk);
  
      // finalize padding
      this.padding = PackingUtils.finalizePadding(containerResource,
          preliminaryPadding, paddingPercentage);
  
      // finalize container resources
      this.maxContainerResources = containerResource;
  
      this.componentResourceMap = PackingUtils.getComponentResourceMap(
          TopologyUtils.getComponentParallelism(topology).keySet(),
          TopologyUtils.getComponentRamMapConfig(topology),
          TopologyUtils.getComponentCpuMapConfig(topology),
          TopologyUtils.getComponentDiskMapConfig(topology),
          defaultInstanceResources
      );
    }