diff --git a/pkg/cmd/openshift-sdn-node/cmd.go b/pkg/cmd/openshift-sdn-node/cmd.go index a790e8937..f90a3a73d 100644 --- a/pkg/cmd/openshift-sdn-node/cmd.go +++ b/pkg/cmd/openshift-sdn-node/cmd.go @@ -2,12 +2,13 @@ package openshift_sdn_node import ( "fmt" - "github.com/spf13/pflag" "io" "os" "path/filepath" "time" + "github.com/spf13/pflag" + "github.com/fsnotify/fsnotify" "github.com/spf13/cobra" "k8s.io/klog/v2" @@ -121,6 +122,10 @@ func (sdn *openShiftSDN) run(c *cobra.Command, errout io.Writer, stopCh chan str <-stopCh time.Sleep(500 * time.Millisecond) // gracefully shut down + err = sdn.deleteConfigFile() + if err != nil { + klog.Errorf("unable to delete sdn cni configuration file: %v", err) + } } // validateAndParse validates the command line options, parses the node diff --git a/pkg/cmd/openshift-sdn-node/sdn.go b/pkg/cmd/openshift-sdn-node/sdn.go index 610dac2f2..84ed508fb 100644 --- a/pkg/cmd/openshift-sdn-node/sdn.go +++ b/pkg/cmd/openshift-sdn-node/sdn.go @@ -2,6 +2,7 @@ package openshift_sdn_node import ( "io/ioutil" + "os" corev1 "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes/scheme" @@ -56,3 +57,8 @@ func (sdn *openShiftSDN) writeConfigFile() error { } `), 0600) } + +func (sdn *openShiftSDN) deleteConfigFile() error { + // Delete CNI config file from disk if it's no longer able to serve CNI requests. + return os.Remove(openshiftCNIFile) +}