-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
docs: Add CI/CD example for building Argo Workflows using Argo Workflows - Fixes #8591 #13895
base: main
Are you sure you want to change the base?
Conversation
…ows - Fixes argoproj#8591 Signed-off-by: Wesley Scholl <[email protected]>
argoproj#8591 Signed-off-by: Wesley Scholl <[email protected]>
…low - Fixes argoproj#8591 Signed-off-by: Wesley Scholl <[email protected]>
For review: @alexec @terrytangyuan @sarabala1979 @caelan-io Thanks |
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 great but my main concern is how difficult it is to maintain this in this repo
I'm not sure how this adds any complexity or burden when there are more than 50 examples in this repo. The lack of documentation/example for CI/CD use case, makes this a much-needed addition, as described in the linked issue. |
I would like this to make it clear that it isn't a useful CI/CD for workflows, as it doesn't build everything and doesn't run all of the e2e tests. It doesn't build the controller. It also feels like we should demonstrate a proper DAG, rather than running the whole thing in series. Build and test the components in parallel. I'm also not sure that workflows is a good thing to demonstrate this on, as it's pretty peculiar and demonstrates bad practice - e.g. the argo-cli you build in the earlier test isn't the one under test in e2e. @tico24 did a talk at argocon about doing the whole thing, including fixing some of this https://www.youtube.com/watch?v=q2jAPJHfubA On the other hand, it would be good to have something in here. Perhaps explain the scope of what is going on and the caveats better in the example. This isn't like most of the other examples in there - the readme section of it is longer than most of the other actual examples in total, so I'm not sure all comparisons apply. |
I agree it would be good to have something in here considering that the last Argo workflows survery had CI/CD was the top use case and yet this repo lack an example for that. Like other examples (which are not meant to be full-fledged solutions), this is a great starting point... |
The example is a bit long, but it includes all the requirements from #8591. Would be it easier to maintain if it was split into separate CI and CD Thanks for reviewing, this is the first CI/CD pipeline I've ever built. I want to modify this example to make it fully functional. For instance, adding this line to build the controller: make controller kit STATIC_FILES=false The workflow can implement a DAG to run all of the e2e tests in parallel and use the As for the scope and caveats, should more comments be added to the example to explain each step in the workflow? |
…support - Fixes argoproj#8591 - Added test matrix to cover all E2E test cases. - Introduced a DAG for parallel test execution to optimize runtime. - Updated workflow steps for improved parallelism. - Refactored code to use generic templates, reducing duplication and overall code length. - Enhanced code readability by adding detailed comments. - Added build step for the controller. Signed-off-by: Wesley Scholl <[email protected]>
…rgoproj#8591 Signed-off-by: Wesley Scholl <[email protected]>
@terrytangyuan @Joibel @mubarak-j @alexec This PR has been updated:
|
I am kind of thinking to create argoproj-lab repo to keep e2e CI/CD configuration for end user like product which implemented on top argo workflow. |
@wesleyscholl Thanks for contributing this usecase. But just examble is not enough. Community is looking full fetch e2e product. You demo this in upcoming community meeting. Do you like to contribute? |
Sure as long as there's a way to maintain and test it continuously going forward. |
I can demo for the upcoming community meeting (12/18) and I'm interested in contributing to a full-fledged e2e CI/CD product. A CI/CD extension/plugin that integrates with Argo Workflows sounds very interesting. I can also help with the maintenance and tests. |
Hi @wesleyscholl - thanks a lot for developing this example! I agree with @mubarak-j that it's definitely needed. Looking forward to reviewing it further myself. Happy to have you join us at our last community meeting of the year next Weds, Dec 18 @ 10a PST. 🙌 I have added you to the agenda and we will record the meeting and publish to YouTube afterwards. Please feel free to message me in CNCF Slack if you have any questions ahead of the meeting. |
A detailed example for implementing CI/CD pipelines to build Argo Workflows using Argo Workflows
Fixes #8591
Motivation
This issue was more than 2 years old and I wanted to contribute to the project. I also work with Argo Workflows everyday and I'm CAPA certified (Certified Argo Project Associate).
Modifications
WorkflowTemplate
example includes:CI
WorkflowTemplate
WorkflowEventBinding
WorkflowTemplate
WorkflowTemplate
WorkflowTemplate
WorkflowTemplate
WorkflowTemplate
WorkflowTemplate
Pipeline
WorkflowTemplate
CD
WorkflowTemplate
kustomize edit set image
WorkflowTemplate
WorkflowTemplate
WorkflowTemplate
Documentation & Configuration
WorkflowEventBinding
ServiceAccount
$ARGO_TOKEN
- Bearer Authorization forWorkflowEventBinding
Secret
WorkflowEventBinding
Role
RoleBinding
theRole
to theServiceAccount
forWorkflowEventBinding
RoleBinding
Secret
Secret
Secret
NetworkPolicy
Verification
Thoroughly tested the workflow:
Workflow steps
clone-repo
build-cli
create-exec-image
create-cli-image
run-tests
run-coverage
prepare-deploy-to-cluster-e2e-test
approval
docker-tag-push
update-manifests
commit-manifests
start-argocd-sync