carvel-dev / carvel-dev/ytt

Enable "plain merge" for overlays, in general

Open
#575 0 comments 0 reactions 0 assignees View on GitHub
enhancement priority/unprioritized-backlog
Dominant language
Go
Stars
1.9k
Forks
167
PR merge metrics
No merged PRs in 30d

Description

With:
- #381
- #418

... there is now a general mechanism for accepting a plain YAML file and converting it into an overlay with well-defined semantics:

1. new keys are added (like `@overlay/match missing_ok=True`)
2. existing values are replaced (like `@overlay/replace or_add=True`)

A working name for this overlay strategy is, "plain merge."

**Describe the solution you'd like**
Users may encounter other use-cases where performing this kind of overlay would be useful.

Provide a means for allowing the user to specify this strategy wherever an overlay operation occurs:

1. `@data/values plain=True`
2. `@data/values-schema plain=True`
3. `@overlay/match plain=True` (especially valuable when annotating a document)
4. `overlay.apply(..., plain=True)`

---
Vote on this request

This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.

👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"

We are also happy to receive and review Pull Requests if you want to help working on this issue.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the existing overlay operations and the four entry points named in the issue: @data/values, @data/values-schema, @overlay/match, and overlay.apply(...). Determine how plain merge should be represented consistently across annotation and API forms, then verify that new keys are added and existing values are replaced in each supported path.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.