Просмотр исходного кода

cast secret in informer updatefunc

Alexander Belanger 4 лет назад
Родитель
Сommit
351e18c3f6
1 измененных файлов с 21 добавлено и 1 удалено
  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,