private static boolean applyMemoryPercentage(ApplicationContainerCluster cluster, String memoryPercentage) {
        try {
            if (memoryPercentage == null || memoryPercentage.isEmpty()) return false;
            memoryPercentage = memoryPercentage.trim();
            if ( ! memoryPercentage.endsWith("%"))
                throw new IllegalArgumentException("Missing % sign");
            memoryPercentage = memoryPercentage.substring(0, memoryPercentage.length()-1).trim();
            cluster.setMemoryPercentage(Integer.parseInt(memoryPercentage));
            return true;
        }
        catch (NumberFormatException e) {
            throw new IllegalArgumentException("The memory percentage given for nodes in " + cluster +
                                               " must be given as an integer followe by '%'", e);
        }
    }
Add nodes to cluster according to the given containerElement.

Note: DO NOT change allocation behaviour to allow version X and Y of the config-model to allocate a different set
of nodes. Such changes must be guarded by a common condition (e.g. feature flag) so the behaviour can be changed
simultaneously for all active config models.
config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java