Skip to content

Commit df68a0c

Browse files
authored
Adds a command line flag to set k8s version (#239)
* adds a command line flag to set k8s version Signed-off-by: Paul S. Schweigert <[email protected]> * linting Signed-off-by: Paul S. Schweigert <[email protected]> * fixing the lint for real this time Signed-off-by: Paul S. Schweigert <[email protected]>
1 parent 86fd3ee commit df68a0c

File tree

5 files changed

+37
-14
lines changed

5 files changed

+37
-14
lines changed

internal/command/flags.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
)
2222

2323
var name string
24+
var kubernetesVersion string
2425

2526
func clusterNameOption(targetCmd *cobra.Command, flagDefault string) {
2627
targetCmd.Flags().StringVarP(
@@ -31,3 +32,12 @@ func clusterNameOption(targetCmd *cobra.Command, flagDefault string) {
3132
fmt.Sprintf("%s cluster name to be used by kn-quickstart", targetCmd.Name()),
3233
)
3334
}
35+
36+
func kubernetesVersionOption(targetCmd *cobra.Command, flagDefault string) {
37+
targetCmd.Flags().StringVarP(
38+
&kubernetesVersion,
39+
"kubernetes-version",
40+
"k",
41+
flagDefault,
42+
"kubernetes version to use (1.x.y)")
43+
}

internal/command/kind.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ func NewKindCommand() *cobra.Command {
2828
Short: "Quickstart with Kind",
2929
RunE: func(cmd *cobra.Command, args []string) error {
3030
fmt.Println("Running Knative Quickstart using Kind")
31-
return kind.SetUp(name)
31+
return kind.SetUp(name, kubernetesVersion)
3232
},
3333
}
3434
// Set kindCmd options
3535
clusterNameOption(kindCmd, "knative")
36+
kubernetesVersionOption(kindCmd, "")
3637

3738
return kindCmd
3839
}

internal/command/minikube.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ func NewMinikubeCommand() *cobra.Command {
3030
Short: "Quickstart with Minikube",
3131
RunE: func(cmd *cobra.Command, args []string) error {
3232
fmt.Println("Running Knative Quickstart using Minikube")
33-
return minikube.SetUp(name)
33+
return minikube.SetUp(name, kubernetesVersion)
3434
},
3535
}
3636
// Set minikubeCmd options
3737
clusterNameOption(minikubeCmd, "knative")
38+
kubernetesVersionOption(minikubeCmd, "")
3839
return minikubeCmd
3940
}

pkg/kind/kind.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,12 @@ var clusterName string
3131
var kindVersion = 0.11
3232

3333
// SetUp creates a local Kind cluster and installs all the relevant Knative components
34-
func SetUp(name string) error {
34+
func SetUp(name, kVersion string) error {
3535
start := time.Now()
3636
clusterName = name
37+
if kVersion != "" {
38+
kubernetesVersion = "v" + kVersion
39+
}
3740

3841
if err := createKindCluster(); err != nil {
3942
return fmt.Errorf("creating cluster: %w", err)

pkg/minikube/minikube.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,17 @@ import (
2929

3030
var clusterName string
3131
var kubernetesVersion = "1.23.4"
32+
var clusterVersionOverride bool
3233
var minikubeVersion = 1.25
3334

3435
// SetUp creates a local Minikube cluster and installs all the relevant Knative components
35-
func SetUp(name string) error {
36+
func SetUp(name, kVersion string) error {
3637
start := time.Now()
3738
clusterName = name
39+
if kVersion != "" {
40+
kubernetesVersion = kVersion
41+
clusterVersionOverride = true
42+
}
3843

3944
if err := createMinikubeCluster(); err != nil {
4045
return fmt.Errorf("creating cluster: %w", err)
@@ -152,16 +157,19 @@ func checkForExistingCluster() error {
152157
// createNewCluster creates a new Minikube cluster
153158
func createNewCluster() error {
154159
fmt.Println("☸ Creating Minikube cluster...")
155-
fmt.Println("\nBy default, using the standard minikube driver for your system")
156-
fmt.Println("If you wish to use a different driver, please configure minikube using")
157-
fmt.Print(" minikube config set driver <your-driver>\n\n")
158-
159-
// If minikube config kubernetes-version exists, use that instead of our default
160-
getMinikubeVersion := exec.Command("minikube", "config", "get", "kubernetes-version")
161-
out, err := getMinikubeVersion.Output()
162-
// if the command returns a config, then use that for the kubernetes version
163-
if err == nil {
164-
kubernetesVersion = strings.TrimRight(string(out), "\n")
160+
161+
if !clusterVersionOverride {
162+
fmt.Println("\nUsing the standard minikube driver for your system")
163+
fmt.Println("If you wish to use a different driver, please configure minikube using")
164+
fmt.Print(" minikube config set driver <your-driver>\n\n")
165+
166+
// If minikube config kubernetes-version exists, use that instead of our default
167+
getMinikubeVersion := exec.Command("minikube", "config", "get", "kubernetes-version")
168+
out, err := getMinikubeVersion.Output()
169+
// if the command returns a config, then use that for the kubernetes version
170+
if err == nil {
171+
kubernetesVersion = strings.TrimRight(string(out), "\n")
172+
}
165173
}
166174

167175
// create cluster and wait until ready

0 commit comments

Comments
 (0)