diff --git a/apps/workspace-engine/pkg/jobagents/argo/argoapp_test.go b/apps/workspace-engine/pkg/jobagents/argo/argoapp_test.go index dda21c281..d4fdb76c7 100644 --- a/apps/workspace-engine/pkg/jobagents/argo/argoapp_test.go +++ b/apps/workspace-engine/pkg/jobagents/argo/argoapp_test.go @@ -336,8 +336,8 @@ func TestPlan_HasChanges(t *testing.T) { require.NoError(t, err) assert.True(t, result.HasChanges) assert.NotEmpty(t, result.ContentHash) - assert.Equal(t, current[0], result.Current) - assert.Equal(t, proposed[0], result.Proposed) + assert.Contains(t, result.Current, "replicas: 1") + assert.Contains(t, result.Proposed, "replicas: 3") } func TestPlan_NoChanges(t *testing.T) { diff --git a/apps/workspace-engine/pkg/jobagents/argo/argocd_plan.go b/apps/workspace-engine/pkg/jobagents/argo/argocd_plan.go index d6fcec7f5..7d7e84fb6 100644 --- a/apps/workspace-engine/pkg/jobagents/argo/argocd_plan.go +++ b/apps/workspace-engine/pkg/jobagents/argo/argocd_plan.go @@ -12,6 +12,7 @@ import ( "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1" "github.com/charmbracelet/log" + sigsyaml "sigs.k8s.io/yaml" "workspace-engine/pkg/jobagents/types" "workspace-engine/pkg/oapi" ) @@ -190,8 +191,8 @@ func (p *ArgoCDPlanner) Plan( sort.Strings(currentManifests) sort.Strings(proposedManifests) - current := strings.Join(currentManifests, "---\n") - proposed := strings.Join(proposedManifests, "---\n") + current := strings.Join(jsonManifestsToYAML(currentManifests), "---\n") + proposed := strings.Join(jsonManifestsToYAML(proposedManifests), "---\n") hasChanges := current != proposed contentHash := sha256.Sum256([]byte(current + proposed)) @@ -205,3 +206,16 @@ func (p *ArgoCDPlanner) Plan( CompletedAt: &completedAt, }, nil } + +func jsonManifestsToYAML(manifests []string) []string { + result := make([]string, 0, len(manifests)) + for _, m := range manifests { + y, err := sigsyaml.JSONToYAML([]byte(m)) + if err != nil { + result = append(result, m) + continue + } + result = append(result, string(y)) + } + return result +}