-
Notifications
You must be signed in to change notification settings - Fork 16
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
Formal CD primitive and mechanism #33
Comments
Since bob is CI and CD is kind of messy we think it could be cool to use an artifact-store that triggers something like Spinnaker, ArgoCD or Tekton. Spinnaker supports different cloud providers and ArgoCD and Tekton support only Kubernetes. Spinnaker could be triggered by webhook. |
How does the CD currently works? This means that similar to the UI and artifact-store CD could be something plugable to bob via webhook and also provide an opinionated service that could do it? |
There is no formally defined way to do CD as of now. Like you said an artifact-store could be implemented to do CD when given a container image for example. But my thoughts were to formally have a CD mechanism:
|
Is a |
If I understood correctly, an option is to have a new primitive |
Exactly. A step can have maybe a key "deploys" which points to a dir with manifests or something and ships it off the the deployer to do the real thing. Like we have artifact stores and resource providers we need another service abstracting the things like AWS CodeDeploy or ArgoCD etc. And that has the api contract with Bob like I described. It's all my thoughts, more opinions most welcome! |
I'm trying to visualize it
Somethings I like about it:
Questions:
|
Yes essentially a
Like we have resource-git and artifact-local more as like a reference implementations rather than opinionated ones, we can have one implementing the deployment spec based on something like Argo/Spinnaker etc. That implies we should have the deployment spec first. 😅
yes, also i dont think it needs webhook, Bob should call the service with the payload like it does for artifact stores in a step.
Bob is more of a free from orchestration platform, sort of geared towards CI but you should be able to express your needs on it freely; it gives you building primitives rather than a finished product, much like Clojure. That also implies that its not a Getting started quickly thing but some assembly required, like Clojure again; geared towards special needs teams like platform teams and/or people building CI/CD/orchestration tooling. Bob is aiming to simplify this complexity at the core. Have a look at the talk, I go a bit into it 😄 |
specially about:
once someone chooses something like Argo/Tekton etc you need to abide by its opinions like k8s. Bob aims to be a decoupling mechanism between all of these established but opinionated tooling allowing you to plug and play like legos. |
Makes sense, it also provides the freedom to try different CD or have multiple running, in case of deprecating one of them or wanting extra redundancy. I will spend some time understanding better the existing primitives Resource, Artifact, Pipeline and come with some ideas.
I would ask,
|
Bob should be able to deliver code in a de-coupled way akin to fetching resource or uploading artifacts.
The text was updated successfully, but these errors were encountered: