Repository: kedro-org/kedro

Issue:
Make it possible to create project from config without providing `add_ons` or `example_pipeline`
## Description
Creating a project from config without providing `add_ons` or `example_pipeline` fails.

## Context
`config.yml`:

```yaml
project_name: My First Kedro Project
repo_name: testing-kedro
python_package: test_kedro
```
By itself, this doesn't work - throws the following error:
```
kedro.framework.cli.utils.KedroCliError: example_pipeline, add_ons not found in config file.
Run with --verbose to see the full exception
```
I would assume these would use the default values if not provided.

## Expected behaviour
The above config yaml is valid and so project creation should succeed.

Discussion:

Patch:
diff --git a/kedro/framework/cli/starters.py b/kedro/framework/cli/starters.py
index 638616c9..6c976d58 100644
--- a/kedro/framework/cli/starters.py
+++ b/kedro/framework/cli/starters.py
@@ -708,10 +708,20 @@ def _validate_config_file_against_prompts(
     """
     if config is None:
         raise KedroCliError("Config file is empty.")
+    additional_keys = {"tools": "none", "example_pipeline": "no"}
     missing_keys = set(prompts) - set(config)
-    if missing_keys:
+    missing_mandatory_keys = missing_keys - set(additional_keys)
+    if missing_mandatory_keys:
         click.echo(yaml.dump(config, default_flow_style=False))
-        raise KedroCliError(f"{', '.join(missing_keys)} not found in config file.")
+        raise KedroCliError(
+            f"{', '.join(missing_mandatory_keys)} not found in config file."
+        )
+    for key, default_value in additional_keys.items():
+        if key in missing_keys:
+            click.secho(
+                f"The `{key}` key not found in the config file, default value '{default_value}' is being used.",
+                fg="yellow",
+            )
 
     if "output_dir" in config and not Path(config["output_dir"]).exists():
         raise KedroCliError(


Test patch:
diff --git a/tests/framework/cli/test_starters.py b/tests/framework/cli/test_starters.py
index d8111256..ff79531f 100644
--- a/tests/framework/cli/test_starters.py
+++ b/tests/framework/cli/test_starters.py
@@ -630,6 +630,20 @@ class TestNewFromConfigFileValid:
         _assert_template_ok(result, **config)
         _clean_up_project(Path("./my-project"))
 
+    def test_config_with_no_tools_example(self, fake_kedro_cli):
+        """Test project created from config."""
+        config = {
+            "project_name": "My Project",
+            "repo_name": "my-project",
+            "python_package": "my_project",
+        }
+        _write_yaml(Path("config.yml"), config)
+        result = CliRunner().invoke(
+            fake_kedro_cli, ["new", "-v", "--config", "config.yml"]
+        )
+        _assert_template_ok(result, **config)
+        _clean_up_project(Path("./my-project"))
+
 
 @pytest.mark.usefixtures("chdir_to_tmp")
 class TestNewFromConfigFileInvalid: