From ef5311a0e8be63f3d65685763d8e055600af2551 Mon Sep 17 00:00:00 2001
From: Uzair Ali <72073401+uzaxirr@users.noreply.github.com>
Date: Mon, 6 Jan 2025 10:14:29 +0530
Subject: [PATCH] validation check for CNI and cluster type (#362)

---
 civo/kubernetes/resource_kubernetes_cluster.go | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/civo/kubernetes/resource_kubernetes_cluster.go b/civo/kubernetes/resource_kubernetes_cluster.go
index 7f9f7e5..9e18b67 100644
--- a/civo/kubernetes/resource_kubernetes_cluster.go
+++ b/civo/kubernetes/resource_kubernetes_cluster.go
@@ -518,6 +518,13 @@ func resourceKubernetesClusterDelete(ctx context.Context, d *schema.ResourceData
 
 func customizeDiffKubernetesCluster(ctx context.Context, d *schema.ResourceDiff, meta interface{}) error {
 
+	// Check if cluster type is talos and CNI is cilium
+	if clusterType, ok := d.GetOk("cluster_type"); ok && clusterType.(string) == "talos" {
+		if cni, ok := d.GetOk("cni"); ok && cni.(string) == "cilium" {
+			return fmt.Errorf("cilium CNI is not supported with Talos cluster type. Please use flannel CNI instead")
+		}
+	}
+
 	// Check if kubernetes version string is correct
 	if kubeVersion, ok := d.GetOk("kubernetes_version"); ok {
 		version := kubeVersion.(string)