Skip to content

Commit 0cace43

Browse files
authored
Merge pull request #3617 from afbjorklund/defaults
Enable CNI for alternative runtimes
2 parents 6e1b9d0 + 73dd006 commit 0cace43

File tree

10 files changed

+43
-26
lines changed

10 files changed

+43
-26
lines changed

Diff for: cmd/minikube/cmd/config/validations.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ minikube stop
149149
150150
and then start minikube again with the following flags:
151151
152-
minikube start --container-runtime=containerd --docker-opt containerd=/var/run/containerd/containerd.sock --network-plugin=cni`)
152+
minikube start --container-runtime=containerd --docker-opt containerd=/var/run/containerd/containerd.sock`)
153153
}
154154

155155
return nil

Diff for: cmd/minikube/cmd/start.go

+17-3
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,21 @@ func runStart(cmd *cobra.Command, args []string) {
204204
cmdutil.MaybeReportErrorAndExit(err)
205205
}
206206

207+
selectedContainerRuntime := viper.GetString(containerRuntime)
208+
selectedNetworkPlugin := viper.GetString(networkPlugin)
209+
selectedEnableDefaultCNI := viper.GetBool(enableDefaultCNI)
210+
211+
// default network plugin (cni)
212+
r, err := cruntime.New(cruntime.Config{Type: selectedContainerRuntime})
213+
if err == nil && r.DefaultCNI() {
214+
if !cmd.Flags().Changed(networkPlugin) {
215+
selectedNetworkPlugin = "cni"
216+
if !cmd.Flags().Changed(enableDefaultCNI) {
217+
selectedEnableDefaultCNI = true
218+
}
219+
}
220+
}
221+
207222
selectedKubernetesVersion := viper.GetString(kubernetesVersion)
208223
if strings.Compare(selectedKubernetesVersion, "") == 0 {
209224
selectedKubernetesVersion = constants.DefaultKubernetesVersion
@@ -226,7 +241,6 @@ func runStart(cmd *cobra.Command, args []string) {
226241
}
227242
}
228243

229-
selectedContainerRuntime := viper.GetString(containerRuntime)
230244
kubernetesConfig := cfg.KubernetesConfig{
231245
KubernetesVersion: selectedKubernetesVersion,
232246
NodeIP: ip,
@@ -239,11 +253,11 @@ func runStart(cmd *cobra.Command, args []string) {
239253
FeatureGates: viper.GetString(featureGates),
240254
ContainerRuntime: selectedContainerRuntime,
241255
CRISocket: viper.GetString(criSocket),
242-
NetworkPlugin: viper.GetString(networkPlugin),
256+
NetworkPlugin: selectedNetworkPlugin,
243257
ServiceCIDR: viper.GetString(serviceCIDR),
244258
ExtraOptions: extraOptions,
245259
ShouldLoadCachedImages: shouldCacheImages,
246-
EnableDefaultCNI: viper.GetBool(enableDefaultCNI),
260+
EnableDefaultCNI: selectedEnableDefaultCNI,
247261
}
248262

249263
// Write profile cluster configuration to file

Diff for: deploy/addons/gvisor/README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ When starting minikube, specify the following flags, along with any additional d
77

88
```shell
99
$ minikube start --container-runtime=containerd \
10-
--docker-opt containerd=/var/run/containerd/containerd.sock \
11-
--network-plugin=cni --enable-default-cni
10+
--docker-opt containerd=/var/run/containerd/containerd.sock
1211
```
1312

1413
### Enabling gVisor

Diff for: docs/alternative_runtimes.md

+5-16
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
To use [rkt](https://github.com/coreos/rkt) as the container runtime run:
44

55
```shell
6-
$ minikube start \
7-
--network-plugin=cni \
8-
--enable-default-cni \
9-
--container-runtime=rkt
6+
$ minikube start --container-runtime=rkt
107
```
118

129

@@ -15,19 +12,15 @@ $ minikube start \
1512
To use [CRI-O](https://github.com/kubernetes-incubator/cri-o) as the container runtime, run:
1613

1714
```shell
18-
$ minikube start \
19-
--network-plugin=cni \
20-
--enable-default-cni \
21-
--container-runtime=cri-o
15+
$ minikube start --container-runtime=cri-o
2216
```
2317

2418
Or you can use the extended version:
2519

2620
```shell
27-
$ minikube start \
21+
$ minikube start --container-runtime=cri-o \
2822
--network-plugin=cni \
2923
--enable-default-cni \
30-
--container-runtime=cri-o \
3124
--cri-socket=/var/run/crio/crio.sock \
3225
--extra-config=kubelet.container-runtime=remote \
3326
--extra-config=kubelet.container-runtime-endpoint=unix:///var/run/crio/crio.sock \
@@ -39,19 +32,15 @@ $ minikube start \
3932
To use [containerd](https://github.com/containerd/containerd) as the container runtime, run:
4033

4134
```shell
42-
$ minikube start \
43-
--network-plugin=cni \
44-
--enable-default-cni \
45-
--container-runtime=containerd
35+
$ minikube start --container-runtime=containerd
4636
```
4737

4838
Or you can use the extended version:
4939

5040
```shell
51-
$ minikube start \
41+
$ minikube start --container-runtime=containerd \
5242
--network-plugin=cni \
5343
--enable-default-cni \
54-
--container-runtime=containerd \
5544
--cri-socket=/run/containerd/containerd.sock \
5645
--extra-config=kubelet.container-runtime=remote \
5746
--extra-config=kubelet.container-runtime-endpoint=unix:///run/containerd/containerd.sock \

Diff for: docs/contributors/minikube_iso.md

-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ The bootable ISO image will be available in `out/minikube.iso`.
3939
```shell
4040
$ ./out/minikube start \
4141
--container-runtime=rkt \
42-
--network-plugin=cni \
43-
--enable-default-cni \
4442
--iso-url=file://$GOPATH/src/k8s.io/minikube/out/minikube.iso
4543
```
4644

Diff for: pkg/minikube/cruntime/containerd.go

+5
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ func (r *Containerd) SocketPath() string {
4141
return "/run/containerd/containerd.sock"
4242
}
4343

44+
// DefaultCNI returns whether to use CNI networking by default
45+
func (r *Containerd) DefaultCNI() bool {
46+
return true
47+
}
48+
4449
// Active returns if containerd is active on the host
4550
func (r *Containerd) Active() bool {
4651
err := r.Runner.Run("systemctl is-active --quiet service containerd")

Diff for: pkg/minikube/cruntime/crio.go

+5
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ func (r *CRIO) SocketPath() string {
4141
return "/var/run/crio/crio.sock"
4242
}
4343

44+
// DefaultCNI returns whether to use CNI networking by default
45+
func (r *CRIO) DefaultCNI() bool {
46+
return true
47+
}
48+
4449
// Available returns an error if it is not possible to use this runtime on a host
4550
func (r *CRIO) Available() error {
4651
return r.Runner.Run("command -v crio")

Diff for: pkg/minikube/cruntime/cruntime.go

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ type Manager interface {
4949
KubeletOptions() map[string]string
5050
// SocketPath returns the path to the socket file for a given runtime
5151
SocketPath() string
52+
// DefaultCNI returns whether to use CNI networking by default
53+
DefaultCNI() bool
5254

5355
// Load an image idempotently into the runtime on a host
5456
LoadImage(string) error

Diff for: pkg/minikube/cruntime/docker.go

+5
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ func (r *Docker) SocketPath() string {
4040
return r.Socket
4141
}
4242

43+
// DefaultCNI returns whether to use CNI networking by default
44+
func (r *Docker) DefaultCNI() bool {
45+
return false
46+
}
47+
4348
// Available returns an error if it is not possible to use this runtime on a host
4449
func (r *Docker) Available() error {
4550
_, err := exec.LookPath("docker")

Diff for: test/integration/util/util.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -207,9 +207,9 @@ func (m *MinikubeRunner) Start() {
207207
// TODO(tstromberg): Deprecate this in favor of making it possible for tests to define explicit flags.
208208
switch r := m.Runtime; r {
209209
case "containerd":
210-
opts = "--container-runtime=containerd --network-plugin=cni --enable-default-cni --docker-opt containerd=/var/run/containerd/containerd.sock"
210+
opts = "--container-runtime=containerd --docker-opt containerd=/var/run/containerd/containerd.sock"
211211
case "crio":
212-
opts = "--container-runtime=crio --network-plugin=cni --enable-default-cni"
212+
opts = "--container-runtime=crio"
213213
}
214214
m.RunCommand(fmt.Sprintf("start %s %s %s --alsologtostderr --v=5", m.StartArgs, m.Args, opts), true)
215215

0 commit comments

Comments
 (0)