Skip to content

Commit 2ceec0d

Browse files
afbjorklundbalopat
authored andcommitted
Add config parameter for the cri socket path (#3154)
* Add config parameter for the cri socket path Closes #3153 * Remove stray newline, when not using criSocket * Add the --cri-socket parameter to configuration Also fix the syntax for CRI-O, adding unix://
1 parent 3deef53 commit 2ceec0d

File tree

5 files changed

+32
-3
lines changed

5 files changed

+32
-3
lines changed

cmd/minikube/cmd/start.go

+3
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ const (
5757
kubernetesVersion = "kubernetes-version"
5858
hostOnlyCIDR = "host-only-cidr"
5959
containerRuntime = "container-runtime"
60+
criSocket = "cri-socket"
6061
networkPlugin = "network-plugin"
6162
hypervVirtualSwitch = "hyperv-virtual-switch"
6263
kvmNetwork = "kvm-network"
@@ -220,6 +221,7 @@ func runStart(cmd *cobra.Command, args []string) {
220221
DNSDomain: viper.GetString(dnsDomain),
221222
FeatureGates: viper.GetString(featureGates),
222223
ContainerRuntime: viper.GetString(containerRuntime),
224+
CRISocket: viper.GetString(criSocket),
223225
NetworkPlugin: viper.GetString(networkPlugin),
224226
ServiceCIDR: pkgutil.DefaultServiceCIDR,
225227
ExtraOptions: extraOptions,
@@ -398,6 +400,7 @@ func init() {
398400
startCmd.Flags().StringSliceVar(&insecureRegistry, "insecure-registry", nil, "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.")
399401
startCmd.Flags().StringSliceVar(&registryMirror, "registry-mirror", nil, "Registry mirrors to pass to the Docker daemon")
400402
startCmd.Flags().String(containerRuntime, "", "The container runtime to be used")
403+
startCmd.Flags().String(criSocket, "", "The cri socket path to be used")
401404
startCmd.Flags().String(kubernetesVersion, constants.DefaultKubernetesVersion, "The kubernetes version that the minikube VM will use (ex: v1.2.3)")
402405
startCmd.Flags().String(networkPlugin, "", "The name of the network plugin")
403406
startCmd.Flags().String(featureGates, "", "A set of key=value pairs that describe feature gates for alpha/experimental features.")

docs/alternative_runtimes.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ Or you can use the extended version:
2424
```shell
2525
$ minikube start \
2626
--network-plugin=cni \
27+
--cri-socket=/var/run/crio/crio.sock \
2728
--extra-config=kubelet.container-runtime=remote \
28-
--extra-config=kubelet.container-runtime-endpoint=/var/run/crio/crio.sock \
29-
--extra-config=kubelet.image-service-endpoint=/var/run/crio/crio.sock
29+
--extra-config=kubelet.container-runtime-endpoint=unix:///var/run/crio/crio.sock \
30+
--extra-config=kubelet.image-service-endpoint=unix:///var/run/crio/crio.sock
3031
```
3132

3233
### Using containerd
@@ -44,6 +45,7 @@ Or you can use the extended version:
4445
```shell
4546
$ minikube start \
4647
--network-plugin=cni \
48+
--cri-socket=/run/containerd/containerd.sock \
4749
--extra-config=kubelet.container-runtime=remote \
4850
--extra-config=kubelet.container-runtime-endpoint=unix:///run/containerd/containerd.sock \
4951
--extra-config=kubelet.image-service-endpoint=unix:///run/containerd/containerd.sock

pkg/minikube/bootstrapper/kubeadm/kubeadm.go

+22
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,24 @@ func SetContainerRuntime(cfg map[string]string, runtime string) map[string]strin
239239
return cfg
240240
}
241241

242+
func GetCRISocket(path string, runtime string) string {
243+
if path != "" {
244+
glog.Infoln("Container runtime interface socket provided, using path.")
245+
return path
246+
}
247+
248+
switch runtime {
249+
case "crio", "cri-o":
250+
path = "/var/run/crio/crio.sock"
251+
case "containerd":
252+
path = "/run/containerd/containerd.sock"
253+
default:
254+
path = ""
255+
}
256+
257+
return path
258+
}
259+
242260
// NewKubeletConfig generates a new systemd unit containing a configured kubelet
243261
// based on the options present in the KubernetesConfig.
244262
func NewKubeletConfig(k8s config.KubernetesConfig) (string, error) {
@@ -352,6 +370,8 @@ func generateConfig(k8s config.KubernetesConfig) (string, error) {
352370
return "", errors.Wrap(err, "parsing kubernetes version")
353371
}
354372

373+
criSocket := GetCRISocket(k8s.CRISocket, k8s.ContainerRuntime)
374+
355375
// parses a map of the feature gates for kubeadm and component
356376
kubeadmFeatureArgs, componentFeatureArgs, err := ParseFeatureArgs(k8s.FeatureGates)
357377
if err != nil {
@@ -372,6 +392,7 @@ func generateConfig(k8s config.KubernetesConfig) (string, error) {
372392
KubernetesVersion string
373393
EtcdDataDir string
374394
NodeName string
395+
CRISocket string
375396
ExtraArgs []ComponentExtraArgs
376397
FeatureArgs map[string]bool
377398
NoTaintMaster bool
@@ -383,6 +404,7 @@ func generateConfig(k8s config.KubernetesConfig) (string, error) {
383404
KubernetesVersion: k8s.KubernetesVersion,
384405
EtcdDataDir: "/data/minikube", //TODO(r2d4): change to something else persisted
385406
NodeName: k8s.NodeName,
407+
CRISocket: criSocket,
386408
ExtraArgs: extraComponentConfig,
387409
FeatureArgs: kubeadmFeatureArgs,
388410
NoTaintMaster: false, // That does not work with k8s 1.12+

pkg/minikube/bootstrapper/kubeadm/templates.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ networking:
3838
etcd:
3939
dataDir: {{.EtcdDataDir}}
4040
nodeName: {{.NodeName}}
41-
{{range .ExtraArgs}}{{.Component}}:{{range $i, $val := printMapInOrder .Options ": " }}
41+
{{if .CRISocket}}criSocket: {{.CRISocket}}
42+
{{end}}{{range .ExtraArgs}}{{.Component}}:{{range $i, $val := printMapInOrder .Options ": " }}
4243
{{$val}}{{end}}
4344
{{end}}{{if .FeatureArgs}}featureGates: {{range $i, $val := .FeatureArgs}}
4445
{{$i}}: {{$val}}{{end}}

pkg/minikube/config/types.go

+1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ type KubernetesConfig struct {
6363
APIServerIPs []net.IP
6464
DNSDomain string
6565
ContainerRuntime string
66+
CRISocket string
6667
NetworkPlugin string
6768
FeatureGates string
6869
ServiceCIDR string

0 commit comments

Comments
 (0)