0

I have a very basic question about Argo. Apologies if this is triggering.

From my understanding, Argo is an extension to the Kubernetes API via being a "Resource" i.e it is invoked by "kubectl argo xyz" i.e endpoint is argo. instead of the endpoint being a pod etc. Each resource has objects. In the case of pods it is containers. In the case of argo resource, it is yaml files which has docker containers/script/dag/task etc.

I initiate

kubectl create ns argo

kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/quick-start-postgres.yaml

and when i try

kubectl create ns argo

i see 4-5 pods already running.

is the same word argo being used for a new namespace (group of resources) AND the argo extension for a reason? moroever, when i used kubectl apply -n argo -f was it just creating a new resource argo with that yaml file?

So, three entities exist here - argo ns, argo resource, argo api (not used till now, no argo yaml used either with workflow/dag/task defined..)?

What exactly is https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/quick-start-postgres.yaml having?

enter image description here

David Maze
  • 130,717
  • 29
  • 175
  • 215

2 Answers2

1

Argo Workflows is an operator, it's a daemon you deploy into your cluster so it has to run actual code. And the only way you do that is with a pod.

coderanger
  • 52,400
  • 4
  • 52
  • 75
  • Pls correct me if I'm wrong. Pod is a resource, Argo is a Custom Resource. Also resources can use another resource i.e Argo, a resource, uses Pod. The Argo Yaml -> https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/quick-start-postgres.yaml. Is the config file for argo daemon that is deployed to cluster? which is also a resource since we use kubectl apply which only works on resources? – Shivam Anand Jun 29 '22 at 09:02
  • Sorry for another text, kubectl apply argo... thats the CRD and the new type of yaml submitted to argo CLI is the Controller..i.e declared final state needed.... these two constitute the "operator" which is invisible, but formed of these two? – Shivam Anand Jun 29 '22 at 09:13
  • I think you've got the idea. Operators generally have two parts. First is the custom API types (CRDs, Custom Resource Definitions) which add new types to the Kubernetes API. On their own, these types don't do anything, they are just rows in a database. But the second half is a controller which reads that data from the API and does "something" with it. For Argo Workflows, the "something" is setting up Job objects and whatnot for the whole workflow run process. But the controllers are separate from that, running in the background as a daemon. – coderanger Jun 29 '22 at 19:45
0

https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/quick-start-postgres.yaml can help you quickly install argo to your k8s cluster so you can use the exact functionality of the argo workflow. You can use the corresponding crd workflow, workflowTemplate, etc.

ice coffee
  • 93
  • 6