mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-12-24 11:51:13 +08:00
feat: optimize code
This commit is contained in:
@@ -36,7 +36,8 @@ func readDatagramPacket(r io.Reader, b []byte) (*datagramPacket, error) {
|
||||
return nil, err
|
||||
}
|
||||
dataLength := binary.BigEndian.Uint16(b[:2])
|
||||
if _, err = io.ReadFull(r, b[:dataLength]); err != nil && (err != io.ErrUnexpectedEOF || err != io.EOF) {
|
||||
_, err = io.ReadFull(r, b[:dataLength])
|
||||
if err != nil && (err != io.ErrUnexpectedEOF || err != io.EOF) {
|
||||
return nil, err
|
||||
}
|
||||
return &datagramPacket{DataLength: dataLength, Data: b[:dataLength]}, nil
|
||||
|
||||
@@ -30,7 +30,8 @@ func (c *ConnectOptions) addCleanUpResourceHandler(clientset *kubernetes.Clients
|
||||
<-stopChan
|
||||
log.Info("prepare to exit, cleaning up")
|
||||
dns.CancelDNS()
|
||||
if err := c.dhcp.ReleaseIpToDHCP(c.usedIPs...); err != nil {
|
||||
err := c.dhcp.ReleaseIpToDHCP(c.usedIPs...)
|
||||
if err != nil {
|
||||
log.Errorf("failed to release ip to dhcp, err: %v", err)
|
||||
}
|
||||
cancel()
|
||||
@@ -54,28 +55,30 @@ func Cleanup(s os.Signal) {
|
||||
|
||||
// vendor/k8s.io/kubectl/pkg/polymorphichelpers/rollback.go:99
|
||||
func updateServiceRefCount(serviceInterface v12.ServiceInterface, name string, increment int) {
|
||||
if err := retry.OnError(retry.DefaultRetry, func(err error) bool {
|
||||
return !k8serrors.IsNotFound(err)
|
||||
}, func() error {
|
||||
service, err := serviceInterface.Get(context.TODO(), name, v1.GetOptions{})
|
||||
if err != nil {
|
||||
log.Errorf("update ref-count failed, increment: %d, error: %v", increment, err)
|
||||
err := retry.OnError(
|
||||
retry.DefaultRetry,
|
||||
func(err error) bool { return !k8serrors.IsNotFound(err) },
|
||||
func() error {
|
||||
service, err := serviceInterface.Get(context.TODO(), name, v1.GetOptions{})
|
||||
if err != nil {
|
||||
log.Errorf("update ref-count failed, increment: %d, error: %v", increment, err)
|
||||
return err
|
||||
}
|
||||
curCount := 0
|
||||
if ref := service.GetAnnotations()["ref-count"]; len(ref) > 0 {
|
||||
curCount, err = strconv.Atoi(ref)
|
||||
}
|
||||
p, _ := json.Marshal([]interface{}{
|
||||
map[string]interface{}{
|
||||
"op": "replace",
|
||||
"path": "/metadata/annotations/ref-count",
|
||||
"value": strconv.Itoa(curCount + increment),
|
||||
},
|
||||
})
|
||||
_, err = serviceInterface.Patch(context.TODO(), config.ConfigMapPodTrafficManager, types.JSONPatchType, p, v1.PatchOptions{})
|
||||
return err
|
||||
}
|
||||
curCount := 0
|
||||
if ref := service.GetAnnotations()["ref-count"]; len(ref) > 0 {
|
||||
curCount, err = strconv.Atoi(ref)
|
||||
}
|
||||
p, _ := json.Marshal([]interface{}{
|
||||
map[string]interface{}{
|
||||
"op": "replace",
|
||||
"path": "/metadata/annotations/ref-count",
|
||||
"value": strconv.Itoa(curCount + increment),
|
||||
},
|
||||
})
|
||||
_, err = serviceInterface.Patch(context.TODO(), config.ConfigMapPodTrafficManager, types.JSONPatchType, p, v1.PatchOptions{})
|
||||
return err
|
||||
}); err != nil {
|
||||
if err != nil {
|
||||
log.Errorf("update ref count error, error: %v", err)
|
||||
} else {
|
||||
log.Info("update ref count successfully")
|
||||
|
||||
@@ -33,13 +33,13 @@ func NewDHCPManager(client corev1.ConfigMapInterface, namespace string, cidr *ne
|
||||
// todo optimize dhcp, using mac address, ip and deadline as unit
|
||||
func (d *DHCPManager) InitDHCP() error {
|
||||
configMap, err := d.client.Get(context.Background(), config.ConfigMapPodTrafficManager, metav1.GetOptions{})
|
||||
if err == nil && configMap != nil {
|
||||
if err == nil {
|
||||
if _, found := configMap.Data[config.KeyEnvoy]; !found {
|
||||
_, err = d.client.Patch(
|
||||
context.Background(),
|
||||
configMap.Name,
|
||||
types.MergePatchType,
|
||||
[]byte(fmt.Sprintf("{\"data\":{\"%s\":\"%s\"}}", config.KeyEnvoy, "")),
|
||||
[]byte(fmt.Sprintf(`{"data":{"%s":"%s"}}`, config.KeyEnvoy, "")),
|
||||
metav1.PatchOptions{},
|
||||
)
|
||||
return err
|
||||
@@ -121,7 +121,8 @@ func (d *DHCPManager) updateDHCPConfigMap(f func(*ipallocator.Range) error) erro
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err = dhcp.Restore(d.cidr, []byte(cm.Data[config.KeyDHCP])); err != nil {
|
||||
err = dhcp.Restore(d.cidr, []byte(cm.Data[config.KeyDHCP]))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err = f(dhcp); err != nil {
|
||||
|
||||
@@ -77,22 +77,26 @@ func InjectVPNAndEnvoySidecar(factory cmdutil.Factory, clientset v12.ConfigMapIn
|
||||
b, _ := json.Marshal(restorePatch)
|
||||
mesh.AddMeshContainer(templateSpec, nodeID, c)
|
||||
helper := pkgresource.NewHelper(object.Client, object.Mapping)
|
||||
ps := []P{{
|
||||
Op: "replace",
|
||||
Path: "/" + strings.Join(append(path, "spec"), "/"),
|
||||
Value: templateSpec.Spec,
|
||||
}, {
|
||||
Op: "replace",
|
||||
Path: "/metadata/annotations/probe",
|
||||
Value: b,
|
||||
}}
|
||||
ps := []P{
|
||||
{
|
||||
Op: "replace",
|
||||
Path: "/" + strings.Join(append(path, "spec"), "/"),
|
||||
Value: templateSpec.Spec,
|
||||
},
|
||||
{
|
||||
Op: "replace",
|
||||
Path: "/metadata/annotations/probe",
|
||||
Value: b,
|
||||
},
|
||||
}
|
||||
bytes, err := json.Marshal(append(ps, removePatch...))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = helper.Patch(object.Namespace, object.Name, types.JSONPatchType, bytes, &metav1.PatchOptions{})
|
||||
if err != nil {
|
||||
log.Warnf("error while remove probe of resource: %s %s, ignore, err: %v", object.Mapping.GroupVersionKind.GroupKind().String(), object.Name, err)
|
||||
log.Warnf("error while path resource: %s %s, err: %v", object.Mapping.GroupVersionKind.GroupKind().String(), object.Name, err)
|
||||
return err
|
||||
}
|
||||
|
||||
RollbackFuncList = append(RollbackFuncList, func() {
|
||||
|
||||
@@ -311,7 +311,8 @@ func Ping(targetIP string) (bool, error) {
|
||||
if err != nil {
|
||||
return false, nil
|
||||
}
|
||||
if _, err = conn.WriteTo(data, &net.IPAddr{IP: net.ParseIP(targetIP)}); err != nil {
|
||||
_, err = conn.WriteTo(data, &net.IPAddr{IP: net.ParseIP(targetIP)})
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
@@ -486,7 +487,7 @@ func IsPortListening(port int) bool {
|
||||
if err != nil {
|
||||
return true
|
||||
} else {
|
||||
listener.Close()
|
||||
_ = listener.Close()
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user