@@ -31,6 +31,7 @@ var clusterName string
3131var kindVersion = 0.16
3232var container_reg_name = "kind-registry"
3333var container_reg_port = "5001"
34+ var installKnative = true
3435
3536// SetUp creates a local Kind cluster and installs all the relevant Knative components
3637func SetUp (name , kVersion string , installServing , installEventing bool ) error {
@@ -62,22 +63,22 @@ func SetUp(name, kVersion string, installServing, installEventing bool) error {
6263 if err := createKindCluster (); err != nil {
6364 return fmt .Errorf ("creating cluster: %w" , err )
6465 }
65-
66- if installServing {
67- if err := install .Serving (); err != nil {
68- return fmt .Errorf ("install serving: %w" , err )
69- }
70- if err := install .Kourier (); err != nil {
71- return fmt .Errorf ("install kourier: %w" , err )
72- }
73- if err := install .KourierKind (); err != nil {
74- return fmt .Errorf ("configure kourier: %w" , err )
66+ if installKnative {
67+ if installServing {
68+ if err := install .Serving (); err != nil {
69+ return fmt .Errorf ("install serving: %w" , err )
70+ }
71+ if err := install .Kourier (); err != nil {
72+ return fmt .Errorf ("install kourier: %w" , err )
73+ }
74+ if err := install .KourierKind (); err != nil {
75+ return fmt .Errorf ("configure kourier: %w" , err )
76+ }
7577 }
76- }
77-
78- if installEventing {
79- if err := install .Eventing (); err != nil {
80- return fmt .Errorf ("install eventing: %w" , err )
78+ if installEventing {
79+ if err := install .Eventing (); err != nil {
80+ return fmt .Errorf ("install eventing: %w" , err )
81+ }
8182 }
8283 }
8384
@@ -203,23 +204,31 @@ func checkForExistingCluster() error {
203204 fmt .Print ("Knative Cluster kind-" + clusterName + " already installed.\n Delete and recreate [y/N]: " )
204205 fmt .Scanf ("%s" , & resp )
205206 if resp == "y" || resp == "Y" {
206- fmt .Println ("\n Deleting cluster..." )
207- deleteCluster := exec .Command ("kind" , "delete" , "cluster" , "--name" , clusterName )
208- if err := deleteCluster .Run (); err != nil {
209- return fmt .Errorf ("delete cluster: %w" , err )
210- }
211- deleteContainerRegistry := deleteContainerRegistry ()
212- if err := deleteContainerRegistry .Run (); err != nil {
213- return fmt .Errorf ("delete container registry: %w" , err )
214- }
215- if err := createNewCluster (); err != nil {
207+ if err := recreateCluster (); err != nil {
216208 return fmt .Errorf ("new cluster: %w" , err )
217209 }
218- if err := connectLocalRegistry (); err != nil {
219- return fmt .Errorf ("local-registry: %w" , err )
220- }
221210 } else {
222211 fmt .Println ("\n Installation skipped" )
212+ checkKnativeNamespace := exec .Command ("kubectl" , "get" , "namespaces" )
213+ output , err := checkKnativeNamespace .CombinedOutput ()
214+ namespaces := string (output )
215+ if err != nil {
216+ fmt .Println (string (output ))
217+ return fmt .Errorf ("check existing cluster: %w" , err )
218+ }
219+ if strings .Contains (namespaces , "knative" ) {
220+ fmt .Print ("Knative installation already exists.\n Delete and recreate the cluster [y/N]: " )
221+ fmt .Scanf ("%s" , & resp )
222+ if resp == "y" || resp == "Y" {
223+ if err := recreateCluster (); err != nil {
224+ return fmt .Errorf ("new cluster: %w" , err )
225+ }
226+ } else {
227+ fmt .Println ("Skipping installation" )
228+ installKnative = false
229+ return nil
230+ }
231+ }
223232 return nil
224233 }
225234 } else {
@@ -234,6 +243,29 @@ func checkForExistingCluster() error {
234243 return nil
235244}
236245
246+ // recreateCluster recreates a Kind cluster
247+ func recreateCluster () error {
248+ fmt .Println ("\n Deleting cluster..." )
249+ deleteCluster := exec .Command ("kind" , "delete" , "cluster" , "--name" , clusterName )
250+ if err := deleteCluster .Run (); err != nil {
251+ return fmt .Errorf ("delete cluster: %w" , err )
252+ }
253+ deleteContainerRegistry := deleteContainerRegistry ()
254+ if err := deleteContainerRegistry .Run (); err != nil {
255+ return fmt .Errorf ("delete container registry: %w" , err )
256+ }
257+ if err := createNewCluster (); err != nil {
258+ return fmt .Errorf ("new cluster: %w" , err )
259+ }
260+ if err := createLocalRegistry (); err != nil {
261+ return fmt .Errorf ("%w" , err )
262+ }
263+ if err := connectLocalRegistry (); err != nil {
264+ return fmt .Errorf ("local-registry: %w" , err )
265+ }
266+ return nil
267+ }
268+
237269// createNewCluster creates a new Kind cluster
238270func createNewCluster () error {
239271
0 commit comments