code: def cluster_info(cpu, cfg):
      
      cpus = cpu.cpu_count
      pods_per_core = cfg.doc.find("pods-per-core")
      pods_per_core_int = int(pods_per_core.value) if pods_per_core else PODS_PER_CORE
      cfg_max_pods = cfg.doc.find("max-pods")
      cfg_max_pods_int = int(cfg_max_pods.value) if cfg_max_pods else MAX_PODS
      calc_max_pods = cpus * pods_per_core_int
  
      return {
          "cpu_count": cpus,
          "pods_per_core": pods_per_core_int,
          "pods_per_core_customized": bool(pods_per_core),
          "max_pods": min(cfg_max_pods_int, calc_max_pods),
          "max_pods_customized": bool(cfg_max_pods)
      }
docs: Collects fact for each host
  
      Collects the cpu and node configuration facts to be used by the rule.
  
      Arguments:
          cpu (CpuInfo): Parser object for the cpu info.
          cfg (NodeConfig): Parser object for the node configuration.
  
      Returns:
          dict: Dictionary of fact information including the keys
          ``cpu_count``, ``pods_per_core_int``, ``pods_per_core_customized``,
          ``max_pods``, and ``max_pods_customized``.