GitOps your service orchestrations | C2C Community

GitOps your service orchestrations

  • 19 September 2022
  • 10 replies
  • 71 views

Userlevel 7
Badge +32

 

GitOps takes DevOps best practices used for application development (such as version control and CI/CD) and applies them to infrastructure automation. In GitOps, the Git repository serves as the source of truth and the CD pipeline is responsible for building, testing, and deploying the application code and the underlying infrastructure. Mete Atamel, Developer Advocate at Google cloud, in his new blog talk about how to set up a Git-driven development, testing, and deployment pipeline for Workflows using Cloud Build.

Click in the link below to read it more detail:


10 replies

I’ve done a few GitOps implementations, but I’ve tended to use Argo and a tool called Codefresh as they tend to be very portable and work with any K8s system.

Userlevel 7
Badge +65

Thanks for sharing @meteatamel’s post with us @malamin 

I’m so curious to read what our Moderators have to say about Mete’s blog post and @TimPayne’s comment.

@jennworks40, @ahmedtariq1, @Bouchra.abidar, @dineshnithyan what is your opinion? 🤔

Userlevel 7
Badge +32

Thank you too @ilias for pointing out your view on GitOps in-depth regarding @TimPayne response to my post.

GitOps provides an array of benefits, including standardizing workflows, simplifying tool sets, reducing potential variables and errors, increasing developer productivity, and more.

But, as Intuit discovered, there was no purpose-built enterprise toolset for GitOps on Kubernetes, which led them to developing ArgoCD as an internal project.

Put simply, ArgoCD is an easy to use tool that allows development teams to deploy and manage applications without having to learn a lot about Kubernetes, and without needing full access to the Kubernetes system. This hugely simplifies the process of running applications in Kubernetes, ultimately leading to better security and increased developer productivity.

Some popular GitOps tools including ArgoCD, FluxCD and JenkinsX.

GitOps is a software engineering practice that uses a Git repository as its single source of truth. Teams commit declarative configurations into Git, and these configurations are used to create environments needed for the continuous delivery process. There is no manual setup of environments and no use of standalone scripts—everything is defined through the Git repository.

A basic part of the GitOps process is a pull request. New versions of a configuration are introduced via pull request, merged with the main branch in the Git repository, and then the new version is automatically deployed. The Git repository contains a full record of all changes, including all details of the environment at every stage of the process

Argo CD handles the latter stages of the GitOps process, ensuring that new configurations are correctly deployed to a Kubernetes cluster. 

 Argo CD is a Kubernetes-native continuous deployment (CD) tool. Unlike external CD tools that only enable push-based deployments, Argo CD can pull updated code from Git repositories and deploy it directly to Kubernetes resources. It enables developers to manage both infrastructure configuration and application updates in one system.

Codefresh is a complete software supply chain to build, test, deliver, and manage software with integrations so teams can pick best-of-breed tools to support that supply chain. Codefresh unlocks the full enterprise potential of Argo Workflows, Argo CD, Argo Events, and Argo Rollouts and provides a control-plane for managing them at scale .

 

 

 

Userlevel 7
Badge +65

WOW

Thanks, @malamin 

Userlevel 2

Sorry for the late reply on this one. Issues with user accounts and logging on this forum.

 

There is a good introduction to ArgoCD & other Argo related suites here - https://learning.codefresh.io (Unfortunately, it is a pay for course now - was free when I did it). There are some good startup docs on the Argo site - https://argo-cd.readthedocs.io/en/stable/getting_started/

I also created some quick “startup” samples in my own repo - 

https://github.com/tpayne/kubernetes-examples/tree/main/gitops

I looked at FluxCD (AzureArc), Codefresh, ArgoCd and GCP (Cloud Builder). Personally, I’m not a big fan of FluxCD (v1) or Cloud Builder, but each have their own use-cases, I also posted some advanced workflow templates I created.

There are also some docker files flowing around in that repo or one of my other ones that install argo utilities for use in the templates. Unfortunately, the full solution I developed was  done for a customer, so I could only post a few bits from it on my repo.

As I mentioned, ArgoCD is a very powerful suite of tools for doing portable GitOps with deployment, workflow and lots of other capabilities such as canary deployments, auto rollback etc. The autopilot project is the best way to get started with installing it and their is quite a large community base of workflows etc. available.

It is a pain to integrate everything together in the beginning which is where Codefresh comes in, but once you are familiar with the project CRD, you can use an ApplicationSet (with Autopilot) to fully customise your install and use kustomize (Helm) preinstall the configuration/components you want.

Userlevel 7
Badge +32

Thank you so much, @AlexGray  You said very well about ArgoCD and Codefresh-

As I mentioned, ArgoCD is a very powerful suite of tools for doing portable GitOps with deployment, workflow and lots of other capabilities such as canary deployments, auto rollback etc. The autopilot project is the best way to get started with installing it and their is quite a large community base of workflows etc. available.

It is a pain to integrate everything together in the beginning which is where Codefresh comes in, but once you are familiar with the project CRD, you can use an ApplicationSet (with Autopilot) to fully customise your install and use kustomize (Helm) preinstall the configuration/components you want.

 

 

Userlevel 7
Badge +26

Thanks for your answer, @AlexGray!

By the way, did you have any trouble logging in on our forum? Do you think that it’s our fault from our side? If there’s anything that could be done better, please send me a message and let me know. I hope you are not facing difficulties any longer. 

Userlevel 2

 

Thanks for your answer, @AlexGray!

By the way, did you have any trouble logging in on our forum? Do you think that it’s our fault from our side? If there’s anything that could be done better, please send me a message and let me know. I hope you are not facing difficulties any longer. 

Unfortunately, yes, still broken with the user I was originally using, so I setup an alternative email/account instead. It gets into some weird login loop and just never logins in, so I gave up with it and went with this user.

Userlevel 7
Badge +26

 

Thanks for your answer, @AlexGray!

By the way, did you have any trouble logging in on our forum? Do you think that it’s our fault from our side? If there’s anything that could be done better, please send me a message and let me know. I hope you are not facing difficulties any longer. 

Unfortunately, yes, still broken with the user I was originally using, so I setup an alternative email/account instead. It gets into some weird login loop and just never logins in, so I gave up with it and went with this user.

 

HI @AlexGray,

 

Feel free to send me more details in a PM so that I can further investigate the problem. Thanks!

Userlevel 2

 

Thanks for your answer, @AlexGray!

By the way, did you have any trouble logging in on our forum? Do you think that it’s our fault from our side? If there’s anything that could be done better, please send me a message and let me know. I hope you are not facing difficulties any longer. 

Unfortunately, yes, still broken with the user I was originally using, so I setup an alternative email/account instead. It gets into some weird login loop and just never logins in, so I gave up with it and went with this user.

 

HI @AlexGray,

 

Feel free to send me more details in a PM so that I can further investigate the problem. Thanks!

Done

Reply