diff --git a/pkg/cluster/kube_client.go b/pkg/cluster/kube_client.go index 9de0130..9e3722b 100644 --- a/pkg/cluster/kube_client.go +++ b/pkg/cluster/kube_client.go @@ -1,6 +1,7 @@ package cluster import ( + "bytes" "context" "encoding/json" "fmt" @@ -238,6 +239,13 @@ func (cc *KubeClusterClient) DiffStructured( ) } + // Strip everything before the initial "{"; kubectl can insert arbitrary warnings, etc. + // that can cause the result to not be valid JSON. + jsonStart := bytes.Index(rawResults, []byte("{")) + if jsonStart > 0 { + rawResults = rawResults[jsonStart:] + } + results := diff.Results{} if err := json.Unmarshal(rawResults, &results); err != nil { return nil, err diff --git a/pkg/version/version.go b/pkg/version/version.go index 273ef28..ea85fdf 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -1,4 +1,4 @@ package version // Version stores the current kubeapply version. -const Version = "0.0.26" +const Version = "0.0.27"