Explorar el Código

cast secret in informer updatefunc

Alexander Belanger hace 5 años
padre
commit
351e18c3f6
Se han modificado 1 ficheros con 21 adiciones y 1 borrados
  1. 21 1
      internal/kubernetes/agent.go

+ 21 - 1
internal/kubernetes/agent.go

@@ -683,7 +683,27 @@ func (a *Agent) StreamHelmReleases(conn *websocket.Conn, selectors string) error
 
 	informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
 		UpdateFunc: func(oldObj, newObj interface{}) {
-			obj, _ := decodeRelease(newObj.Data.release)
+			secretObj, ok := newObj.(*v1.Secret)
+
+			if !ok {
+				errorchan <- fmt.Errorf("could not cast to secret")
+				return
+			}
+
+			releaseData, ok := secretObj.Data["release"]
+
+			if !ok {
+				errorchan <- fmt.Errorf("release field not found")
+				return
+			}
+
+			obj, err := decodeRelease(string(releaseData))
+
+			if err != nil {
+				errorchan <- err
+				return
+			}
+
 			msg := Message{
 				EventType: "UPDATE",
 				Object:    obj,