pull/32482/merge
Vignesh 2 days ago committed by GitHub
commit 2d67c68463
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -204,18 +204,16 @@ func annotateAndMerge(files map[string]string) (string, error) {
if strings.TrimSpace(doc) == "" {
continue
}
manifests, err := kio.ParseAll(doc)
manifest, err := kyaml.Parse(doc)
if err != nil {
return "", fmt.Errorf("parsing %s: %w", fname, err)
}
for _, manifest := range manifests {
if err := manifest.PipeE(kyaml.SetAnnotation(filenameAnnotation, fname)); err != nil {
return "", fmt.Errorf("annotating %s: %w", fname, err)
}
combinedManifests = append(combinedManifests, manifest)
}
}
}
merged, err := kio.StringAll(combinedManifests)
if err != nil {
@ -234,13 +232,13 @@ func annotateAndMerge(files map[string]string) (string, error) {
// group), so that merging results from different invocations does not collide
// on the same synthetic key.
func splitAndDeannotate(postrendered, fallbackPrefix string) (map[string]string, error) {
manifests, err := kio.ParseAll(postrendered)
docs := releaseutil.SplitManifests(postrendered)
manifestsByFilename := make(map[string][]*kyaml.RNode)
for i := 0; i < len(docs); i++ {
manifest, err := kyaml.Parse(docs[fmt.Sprintf("manifest-%d", i)])
if err != nil {
return nil, fmt.Errorf("error parsing YAML: %w", err)
}
manifestsByFilename := make(map[string][]*kyaml.RNode)
for i, manifest := range manifests {
meta, err := manifest.GetMeta()
if err != nil {
return nil, fmt.Errorf("getting metadata: %w", err)

@ -1704,7 +1704,7 @@ data:
{
name: "invalid yaml input",
input: "invalid: yaml: content:",
expectedError: "error parsing YAML: MalformedYAMLError",
expectedError: "error parsing YAML:",
},
{
name: "manifest without filename annotation",
@ -1799,6 +1799,33 @@ data:
}
}
func TestRenderResources_PostRenderer_ListAnchorRoundTrip(t *testing.T) {
cfg := actionConfigFixture(t)
ch := buildChartWithTemplates([]*common.File{{
Name: "templates/list.yaml",
ModTime: time.Now(),
Data: []byte(`apiVersion: v1
kind: List
items:
- apiVersion: v1
kind: ConfigMap
metadata:
name: cm-a
data: &shared
key: value
- apiVersion: v1
kind: ConfigMap
metadata:
name: cm-b
data: *shared`),
}})
_, buf, _, err := cfg.renderResources(t.Context(), ch, nil, "test-release", "", false, false, false, &mockPostRenderer{}, false, false, false, PostRenderStrategyCombined)
require.NoError(t, err)
assert.Contains(t, buf.String(), "name: cm-a")
assert.Contains(t, buf.String(), "name: cm-b")
}
func TestRenderResources_PostRenderer_Success(t *testing.T) {
cfg := actionConfigFixture(t)
@ -1915,7 +1942,7 @@ func TestRenderResources_PostRenderer_SplitError(t *testing.T) {
mockPR, false, false, false, PostRenderStrategyCombined,
)
assert.ErrorContains(t, err, "error while parsing post rendered output: error parsing YAML: MalformedYAMLError:")
assert.ErrorContains(t, err, "error while parsing post rendered output: error parsing YAML:")
}
func TestRenderResources_PostRenderer_Integration(t *testing.T) {

Loading…
Cancel
Save