Skip to content

Commit fd8d643

Browse files
author
Ravi Sankar Penta
committed
Check kubeletArguments["cni-bin-dir"] matches with default path used by OpenShift SDN
- If kubeletArguments["cni-bin-dir"] differs from default openshift sdn, openshift sdn plugin will not be detected by kubelet. Pod setup fails on the node and openshift-node service continuously spams the log.
1 parent bb140ad commit fd8d643

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

pkg/cmd/server/kubernetes/network/sdn_linux.go

+8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package network
22

33
import (
4+
"fmt"
45
"strings"
56

67
kclientv1 "k8s.io/api/core/v1"
@@ -10,6 +11,7 @@ import (
1011
"k8s.io/client-go/tools/record"
1112
kinternalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
1213
kinternalinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion"
14+
kcni "k8s.io/kubernetes/pkg/kubelet/network/cni"
1315
"k8s.io/kubernetes/pkg/proxy/apis/kubeproxyconfig"
1416

1517
configapi "github.com/openshift/origin/pkg/cmd/server/apis/config"
@@ -26,6 +28,12 @@ func NewSDNInterfaces(options configapi.NodeConfig, networkClient networkclient.
2628
internalNetworkInformers networkinformers.SharedInformerFactory,
2729
proxyconfig *kubeproxyconfig.KubeProxyConfiguration) (network.NodeInterface, network.ProxyInterface, error) {
2830

31+
if cniBinPaths, ok := options.KubeletArguments["cni-bin-dir"]; ok && (len(cniBinPaths) > 0) {
32+
if cniBinPaths[0] != kcni.DefaultCNIDir {
33+
return nil, nil, fmt.Errorf("kubeletArguments[\"cni-bin-dir\"] did not match with default CNI binary path used by openshift SDN plugin: %q", kcni.DefaultCNIDir)
34+
}
35+
}
36+
2937
runtimeEndpoint := options.DockerConfig.DockerShimSocket
3038
runtime, ok := options.KubeletArguments["container-runtime"]
3139
if ok && len(runtime) == 1 && runtime[0] == "remote" {

0 commit comments

Comments
 (0)