-
Notifications
You must be signed in to change notification settings - Fork 264
Add --resolvertype flag to rerun a resolver based pipelinerun #2615
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Add --resolvertype flag supporting hub, git, http, cluster, bundle and remote resolver type - Implement special remote resolver that finds latest PipelineRun with any resolver type and rerun it - If --resolvertype flag value is except remote, filters pipelinerun by that resolver type - Integrate --resolvertype with existing --last flag functionality - With --resolvertype and --last flags pipeline name is optional - With --last flag pipeline name is optional - Add validation: resolvertype requires pipeline name except for remote type - Support all flag combinations: --resolvertype only, --last only, both together - Include the unit tests closes: tektoncd#2422 Signed-off-by: Shiv Verma <[email protected]>
32a46eb
to
da400b4
Compare
/assign @chmouel @divyansh42 |
return opt.runWithResolverOnly(cs, pipelineName) | ||
} | ||
|
||
func (opt *startOptions) runWithResolverOnly(_ *cli.Clients, pipelineName string) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all those methods have a lot of duplications.. any way to streamline this ? by extracting it to a helper method like createObjectMeta(lastPipelineRun, prefixName)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure, I update it by extracting those in a helper function
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
/retest |
/assign |
|
||
// Validate resolvertype values | ||
if opt.ResolverType != "" { | ||
validResolvers := []string{"hub", "git", "http", "cluster", "bundles", "remote"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
change to "bundle" resolver and not bundles
docs/cmd/tkn_pipeline_start.md
Outdated
--pipeline-timeout string timeout for PipelineRun | ||
--pod-template string local or remote file containing a PodTemplate definition | ||
--prefix-name string specify a prefix for the PipelineRun name (must be lowercase alphanumeric characters) | ||
--resolvertype string resolver type for remote pipelines (hub, git, http, cluster, bundles, remote) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if I am not wrong this is "bundle" resolver and not bundles
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I checked the documents and saw pipelineRef.resolver
is bundles
, should we change it bundle
?
docs/man/man1/tkn-pipeline-start.1
Outdated
|
||
.PP | ||
\fB\-\-resolvertype\fP="" | ||
resolver type for remote pipelines (hub, git, http, cluster, bundles, remote) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bundle and not bundles
return opt.runWithResolverOnly(cs, pipelineName) | ||
} | ||
|
||
func (opt *startOptions) runWithResolverOnly(_ *cli.Clients, pipelineName string) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
Re-run the last PipelineRun that used git resolver | ||
tkn pipeline start --last --resolvertype=git -n bar |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no pipeline name given
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here, pipeline name is optional
pkg/cmd/pipeline/start_test.go
Outdated
test.AssertOutput(t, expected, got) | ||
} | ||
|
||
func TestPipelineStart_WithResolver(t *testing.T) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is testing specifically with git resolver so should be named WithGitResolver
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This PR implements following
-resolvertype
flag supporting hub, git, http, cluster, bundle and remote resolver type--resolvertype
flag value is except remote, filters pipelinerun by that resolver type--resolvertype
with existing--last
flag functionality--resolvertype and
--last` flags pipeline name is optional--last
flag pipeline name is optional--resolvertype
only,--last
only, both togethercloses: #2422
Changes
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:
make check
make generated
See the contribution guide
for more details.
Release Notes