Anyone who builds a lot of Argo workflows knows that after a while you end up reusing the same basic steps over and over again. While Argo Workflows has a great mechanism to prevent duplicate work, with templates, these templates have mostly stayed in people’s private repositories and haven’t been shared with the broader community.
Today, Codefresh is taking the initiative to donate a large number of Argo workflow templates and kickstart the Codefresh Hub for Argo, a place for the Argo community to consume and share Argo Workflows templates.
A central place for all your Argo Workflow Templates
Our goals for designing the Codefresh Hub for Argo are the following:
- Allow people to find easily useful steps and flows for building even more awesome workflow
- Offer the confidence that a template is safe to use
- Enable all organizations to share their templates with the community
- Help the Argo community grow faster by knowledge reuse
By releasing the Codefresh Hub for Argo today we are also focusing on several other important features such as interoperability, versioning, discoverability
and security. Let’s see these features in turn.
Support any architecture and any Operating System
At the heart of every Argo Workflow template are containers. Several teams want to use Argo Workflows on x86, Arm, Linux, and Windows with the same ease. The Codefresh Hub for Argo supports all of these architectures and OSes. You can contribute workflows in any architecture and Operating System.
Versioning of all Argo Workflow Templates
Each workflow template is versioned and can be referenced by specific versions. The Codefresh Hub provides a clear structure for both owners and consumers to pick and use the versions that make sense for their use cases. Users can also use multiple versions to test changes without fully upgrading.
Built-in Image checks and Security Scanning
The release lifecycle for contributing workflow templates includes automated image scanning before they are merged into the main branch of templates. Both users and contributors can be confident the images they are using are safe to use.
Pod RBAC Conditions
Templates in the Codefresh Hub must specify their required permissions which are then enforced within Kubernetes. Using default permissions is considered an anti-pattern for workflow templates and they are not supported out of the box. Defining clear permissions creates a clear contract between consumers and their templates.
Integrated Changelog to stay up-to-date with all updates
All workflow templates include their own changelog.
Support Multiple Tasks per Template
Each workflow template can be made of a set of templates. The Codefresh Hub for Argo encourages contributors to group related tasks into a single workflow. This makes it easier for users to run single-purpose tasks that are closely related.
Use containers as the executable environment
Workflow tasks often involve complex scripts with dependencies that have to be installed manually, wasting valuable execution time. The Codefresh Hub for Argo takes a modern approach. Template owners are encouraged to maintain all the logic for their task within the images used in the template. While this approach to building custom images is well understood an powerful, it’s often difficult for maintainers because they have to constantly roll new images.
The Codefresh Hub for Argo solves this by supporting the build flows as part of the contribution. This allows contributors to simply focus on their step logic rather than building Container images. Open a Pull Request and allow the automated build and test process to package the template for the community with minimal effort on your part.
We are open to contributions
This is a community-driven project. We have taken care of the boring job of maintaining the Codefresh Hub for Argo. Now it is up to you to bring your
templates and share them with the community.
Contribute Certified Templates
While every contributed template goes through security scanning and follows an RBAC model for permissions, contributors can also go through a deeper process to get their template certified. Certified plugins pass additional validation and documentation quality standards.
Certified templates mean that contributors go above and beyond the minimum requirements of publishing a template.
How to contribute an Argo Template
You can contribute your own Argo Workflow Template today by opening a Pull Request on the Codefresh Hub for Argo repo.
Get started by copying our starter template. The community can also open PRs on existing templates to add their own improvements.
Use Codefresh Hub for Argo in your own workflows
Go to codefresh.io/argo/hub to find and start using templates today!