<p>I am trying to set up ArgoCD, and am unclear on some of its directions. I am a Kubernetes beginner and am experimenting to learn. I've set up my own Kubernetes master and two workers on VMs, and so far so good. (VMs and real k8s because I want to dig in...) Next I've installed ArgoCD and got it to run, according to <a href="https://argoproj.github.io/argo-cd/getting_started/" rel="nofollow noreferrer">https://argoproj.github.io/argo-cd/getting_started/</a>.</p>
<p>Following the instructions led me to run ArgoCD with Port Forwarding. This is a process running on a terminal on the kubernetes master. And it works for me, great.</p>
<p>I would expect people normally want ArgoCD to run without a foreground process, but the ArgoCD instructions and all the various instructables around left me hanging.</p>
<p>What's the next step to have ArgoCD run on its own?</p>

jws
<p>I'm not sure that what you're actually seeing is ArgoCD running as a &quot;foreground process.&quot; The API server is running in a pod. I think what you're seeing in the foreground is <code>kubectl</code> forwarding a port so you can access the ArgoCD API/UI.</p>
<p>In order to avoid running the <code>kubectl</code> port-forward (in the foreground or anywhere else), you need to set up a more &quot;permanent/proper&quot; way of accessing the API.</p>
<p>The <a href="https://argoproj.github.io/argo-cd/getting_started/#3-access-the-argo-cd-api-server" rel="nofollow noreferrer">ArgoCD instructions</a> are a bit brief about how to set up access. But you should try either the LoadBalancer or Ingress approach. It'll probably take a little external research about what those <em>are</em> in the Kubernetes world to understand which is best and how to use it.</p>
<p>For a private cluster, one option is to set up <a href="https://metallb.universe.tf/" rel="nofollow noreferrer">MetalLB</a> on the cluster, in particular see <a href="https://metallb.universe.tf/installation/" rel="nofollow noreferrer">installation</a> then <a href="https://metallb.universe.tf/configuration/" rel="nofollow noreferrer">configuration</a>. Configure the LB with a Layer2 configuration using a private IP range. Then, update ArgoCD with the command provided in the <a href="https://argoproj.github.io/argo-cd/getting_started/#3-access-the-argo-cd-api-server" rel="nofollow noreferrer">ArgoCD instructions</a> for a load balancer. Once all set up, find the Load Balancer assigned IP with <code>kubectl get service -n argocd</code> and the external IP's port 80 should route to an ArgoCD pod IP port 8080.</p>
