If you are using a CI/CD tool, you likely are already familiar with workflows. Generally, workflows are a set of tasks, activities or processes that happen within a specific order. Within Codefresh, a popular workflow is to trigger Codefresh pipelines from Docker image push events. This moves the workflow forward from Continuous Integration to Continuous Deployment.
Images can be promoted from one environment to the other through a variety of ways. One of which is to rename a container image or add a tag to the container image. This change may trigger the Continuous Deployment.
The scenario above details the interaction between the Container Registry, Codefresh, and our Kubernetes Engine. In this case, ArgoCD is responsible for our Continuous Deployment. The desired state of our cluster is defined within Helm Charts. We can set-up a trigger within Codefresh that is responsible to run our Continuous Deployment workflows once the container image is promoted from one environment to another. This workflow makes it possible to take advantage of the Kubernetes deployment features of Codefresh for Continuous Deployment.
In this case, we separate Continuous Integration from Continuous Deployment to adhere to “Separation of Duties”, as often required by Cyber Security Policies. As a result, we could run Continuous Integration in one Codefresh account, and trigger our Continuous Deployment within another account. Alternatively, we could set-up our Continuous Integration within another platform, which then triggers the Continuous Delivery within our Codefresh account.
This GitHub Repository provides the most updated instructions on how this can be configured.