private Optional<ConfigChangeAction> findConfigChangeActionForService(Service service,
                                                                          AbstractConfigProducerRoot currentModel,
                                                                          AbstractConfigProducerRoot nextModel,
                                                                          DeployLogger logger) {
        List<ChangesRequiringRestart> changes = findConfigChangesForService(service, currentModel, nextModel, logger)
            .toList();
        if (changes.isEmpty()) {
            return Optional.empty();
        }
        String description = createDescriptionOfConfigChanges(changes.stream());
        ClusterSpec.Id id = service.getHost().spec().membership().isPresent() ?
                            service.getHost().spec().membership().get().cluster().id() :
                            ClusterSpec.Id.from(service.getConfigId());
        return Optional.of(new VespaRestartAction(id, description, service.getServiceInfo()));
    }
Inspects the configuration in the new and old Vespa model to determine which services that require restart
config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidator.java