in pkg/cni/conf/confmanager.go [121:155]
func (mgr *Manager) insertCNIPluginConf() error {
file, err := findMasterPlugin(mgr.cniConfDir, mgr.cniConfFile)
if err != nil {
return err
}
ext := filepath.Ext(file)
var rawList map[string]interface{}
if ext == ".conflist" {
rawList, err = mgr.managePluginFromConfList(file)
if err != nil {
return err
}
} else {
rawList, err = mgr.managePluginFromConf(file)
if err != nil {
return err
}
}
newBytes, err := json.MarshalIndent(rawList, "", " ")
if err != nil {
return fmt.Errorf("failed to marshal bytes into json: %w, bytes: %s", err, string(newBytes))
}
tmpFile := filepath.Join(mgr.cniConfDir, mgr.cniConfFileTemp)
err = os.WriteFile(tmpFile, newBytes, 0644)
if err != nil {
return fmt.Errorf("failed to write to tmp file: %w", err)
}
err = os.Rename(tmpFile, filepath.Join(mgr.cniConfDir, mgr.cniConfFile))
if err != nil {
return fmt.Errorf("failed to rename file: %w", err)
}
return nil
}