Description of problem
workload create/apply supports setting a handful of string-based workload object values via flags.
Once any of those flag/values have been set, the only way to unset them today is to pass a --file workload.yaml with those properties/values removed and use --update-strategy replace.
For someone who prefers to manage/configure their workload via apps commands/flags or someone unfamiliar with the workload object and/or yaml, this is inconvenient toil.
This initial issue will focus only on the --git* flag subset.
Proposed solution
Enable unsetting of --git* flags by passing an empty string.
swapping one git flag for another:
Given I've created a workload via command such as `tanzu apps workload create my-app --git-repo github.com/foo/bar --git-branch main --limit-cpu 500m`
When I run an update command such as `tanzu apps workload create my-app --git-repo github.com/foo/bar --git-branch "" --git-commit 1234`
Then the "git-branch" value gets removed from my workload object
removing git-repo (should remove all git references since they don't make sense in absence of a repo URL):
Given I've created a workload via command such as `tanzu apps workload create my-app --git-repo github.com/foo/bar --git-branch main`
When I run an update command such as `tanzu apps workload create my-app --git-repo ""
Then the "git-repo" AND "git-branch" property/values get removed from my workload object
help output
Given I'm looking at the output for `tanzu apps workload create/apply --help`
When I view any help line for a flag in the list of flags to be updated as per this issue
Then I see `(to unset, pass empty string "")` appended to the each "--git*" flag description
List of flags to update
- --git-branch
- --git-commit
- --git-repo
- --git-tag
And these already have this feature enabled:
- --service-account
- --sub-path
Additional context
Once we have this in place we can consider making changes to the --git* flag UX as related to the changes made in fluxCD which set precedence order which favors the most discreet reference over lessors (e.g. if a --git-tag and --git-commit are provided, FluxCD will favor the commit).
Description of problem
workload create/applysupports setting a handful of string-based workload object values via flags.Once any of those flag/values have been set, the only way to unset them today is to pass a
--file workload.yamlwith those properties/values removed and use--update-strategy replace.For someone who prefers to manage/configure their workload via apps commands/flags or someone unfamiliar with the workload object and/or yaml, this is inconvenient toil.
This initial issue will focus only on the
--git*flag subset.Proposed solution
Enable unsetting of
--git*flags by passing an empty string.swapping one git flag for another:
removing git-repo (should remove all git references since they don't make sense in absence of a repo URL):
help output
List of flags to update
And these already have this feature enabled:
Additional context
Once we have this in place we can consider making changes to the --git* flag UX as related to the changes made in fluxCD which set precedence order which favors the most discreet reference over lessors (e.g. if a --git-tag and --git-commit are provided, FluxCD will favor the commit).