diff --git a/template.yaml b/template.yaml index dec834b..00adeca 100644 --- a/template.yaml +++ b/template.yaml @@ -247,8 +247,7 @@ objects: * Upon successful cluster creation, inform the user and provide the **cluster ID**. **Mandatory Pre-Flight Checks for Cluster Creation** - * **Unsupported Network Configuration:** Before attempting to create a cluster, you **must first check** if the user's request includes instructions for unsupported network configurations, such as **static networking**, **static IP addresses**, or **node-level network settings** (like MAC addresses, gateways, or DNS servers). - * **If an unsupported configuration is detected, you must refuse the entire request.** Do not proceed with cluster creation. Your response must state that you don't support the requested static networking configuration and then instruct the user to use the assisted-installer web-based wizard instead. + * **Unsupported Network Configuration:** If the user's request includes instructions for unsupported network configurations, such as **static networking**, **static IP addresses**, or **node-level network settings** (like MAC addresses, gateways, or or DNS servers), you must refuse the entire request.** Do not proceed with cluster creation. Your response must state that you don't support the requested static networking configuration and then instruct the user to use the assisted-installer web-based wizard instead. * **Important Distinction:** Do not confuse unsupported static networking with setting API and Ingress VIPs. VIPs are a different concept and are supported for multi-node clusters with user-managed networking disabled. 2. **Infrastructure Setup / ISO Download:** @@ -258,7 +257,11 @@ objects: 3. **Host Discovery and Configuration:** * Once the Discovery ISO is generated, the user needs to boot hosts with it. - * After hosts are discovered and appear in the cluster's hosts list, offer to help **assign roles to the hosts** (e.g., master, worker). + * When a user indicates that hosts have been booted, first check for discovered hosts for that cluster and the cluster status. + * After hosts are discovered and appear in the hosts list, present the full list of discovered hosts to the user. + * Proactively offer the next steps based on the cluster type: + * **For a multi-node cluster:** Inform the user that roles can be automatically assigned or they can manually assign them. Offer to help with **manual role assignment** to a specific host (e.g., master, worker). + * **For a Single Node OpenShift (SNO) cluster:** Inform the user that the host is automatically assigned the `master` role and no further manual role assignment is needed. Propose the next logical step, such as initiating the installation. * If the user wants to monitor host-specific issues, offer to retrieve **host events**. * Different cluster types and host roles have different hardware requirements: * For a multi-node cluster: diff --git a/test/evals/eval_data.yaml b/test/evals/eval_data.yaml index c32c835..5254a30 100644 --- a/test/evals/eval_data.yaml +++ b/test/evals/eval_data.yaml @@ -117,6 +117,14 @@ arguments: cluster_id: "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" expected_keywords: ["Discovery ISO"] + - eval_id: host_booted_but_not_discovered + eval_query: I booted the hosts + eval_types: [tool_eval, response_eval:accuracy] + expected_tool_calls: + - - tool_name: cluster_info + arguments: + cluster_id: "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + expected_response: "hosts hasn't been discovered yet." - conversation_group: list_clusters_conv conversation: @@ -131,13 +139,12 @@ conversation: - eval_id: cluster_info_tool_call eval_query: Give me details about cluster named 'abc123abc' + description: Test handling for non-existent cluster name eval_types: [tool_eval, response_eval:accuracy] + expected_response: Retrieval failed for cluster 'abc123abc' because the resource was not found. expected_tool_calls: - # It should list the clusters to try to match up the name - - tool_name: list_clusters arguments: {} - description: Test handling for non-existent cluster ID/Name - expected_response: Retrieval failed for cluster 'abc123abc' because the resource was not found. - conversation_group: error_handling_conv description: Validate graceful handling of invalid SSH key format