public CapacityPolicies capacityPoliciesFor(ApplicationId applicationId) {
        String adminClusterNodeArchitecture = PermanentFlags.ADMIN_CLUSTER_NODE_ARCHITECTURE
                .bindTo(flagSource)
                .with(INSTANCE_ID, applicationId.serializedForm())
                .value();
        double logserverMemory = PermanentFlags.LOGSERVER_NODE_MEMORY
                .bindTo(flagSource)
                .with(INSTANCE_ID, applicationId.serializedForm())
                .value();
        double clusterControllerMemory = PermanentFlags.CLUSTER_CONTROLLER_NODE_MEMORY
                .bindTo(flagSource)
                .with(INSTANCE_ID, applicationId.serializedForm())
                .value();
        var tuning = new CapacityPolicies.Tuning(Architecture.valueOf(adminClusterNodeArchitecture),
                                                 logserverMemory, clusterControllerMemory);
        return new CapacityPolicies(zone, exclusivity(), applicationId, tuning);
    }
The number of nodes we should ensure has free capacity for node failures whenever possible
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java