argoproj / argo-rollouts

Progressive Delivery for Kubernetes
https://argo-rollouts.readthedocs.io/
Apache License 2.0
2.79k stars 874 forks source link

Argo Dashboard can't load any workload: api/v1/rollouts/argocd/info/watch problem #3833

Open adrien-barret opened 2 months ago

adrien-barret commented 2 months ago

Checklist:

Describe the bug

Rollout is working properly and we can see from the cli the correct informations about existing rollouts.

NAME                                         KIND        STATUS     AGE    INFO
⟳ myapp-service                            Rollout     ✔ Healthy  10m    
└──# revision:1                                                            
   └──⧉ myapp-service-8869           ReplicaSet  ✔ Healthy  10m    stable
      ├──□ myapp-service-8869-gg958  Pod         ✔ Running  10m    ready:1/1
      └──□ myapp-service-8869-b9gqr  Pod         ✔ Running  8m59s  ready:1/1

The problem is that the dashboard (deployed with helm version) doesn't show anything. I tried to deploy it in debug level but the only log I have is from my browser console: Firefox can’t establish a connection to the server at http://localhost:31000/api/v1/rollouts/argocd/info/watch. seem to come from this function:

function fromEventSource(url: string): Observable<string> {
    return Observable.create((observer: Observer<any>) => {
        let eventSource = new EventSource(url);
        eventSource.onmessage = (msg) => observer.next(msg.data);
        eventSource.onerror = (e) => () => {
            observer.error(e);
        };

        const interval = setInterval(() => {
            if (eventSource && eventSource.readyState === ReadyState.CLOSED) {
                observer.error('connection got closed unexpectedly');
            }
        }, 500);
        return () => {
            clearInterval(interval);
            eventSource.close();
            eventSource = null;
        };
    });
}

To Reproduce

helm install argo-rollouts argo/argo-rollouts --version 2.37.6 -n argocd -f values.yaml

values.yaml:

metrics:
  enabled: true
controller:
  logging:
    level: debug
  clusterAccess: true

dashboard:
  enabled: true
  logging:
    level: debug

serviceAccount:
  create: true
  name: argo-rollouts

providerRBAC:
  # -- Toggles addition of provider-specific RBAC rules to the controller Role and ClusterRole
  enabled: true
  # providerRBAC.enabled must be true in order to toggle the individual providers
  providers:
    smi: false
    ambassador: false
    awsLoadBalancerController: false
    awsAppMesh: false
    traefik: true
    apisix: false
    contour: false
    glooPlatform: false
    gatewayAPI: true

rbac:
  create: true
  namespaced: false
  clusterRole: true

The behavior is the same if it's argo-rollouts or argocd namespace

Expected behavior

see my rollouts in the dashboad like this: image

Screenshots

image

Version

helm 2.37.6 rollouts: v1.7.2 osx version: Sonoma 14.6.1 Floorp browser (Firefox) version: 11.17.7

Logs

# Paste the logs from the rollout controller

# Logs for the entire controller:

Found 2 pods, using pod/argo-rollouts-7cddf7cdb9-bwcqz time="2024-09-13T19:46:19Z" level=info msg="Argo Rollouts starting" version=v1.7.2+59e5bd3 time="2024-09-13T19:46:19Z" level=info msg="Creating event broadcaster" time="2024-09-13T19:46:19Z" level=info msg="Setting up event handlers" time="2024-09-13T19:46:19Z" level=info msg="Setting up experiments event handlers" time="2024-09-13T19:46:19Z" level=info msg="Setting up analysis event handlers" time="2024-09-13T19:46:19Z" level=info msg="Leaderelection get id argo-rollouts-7cddf7cdb9-bwcqz_01bc134d-632e-4cea-8ab2-ad24e811a80f" time="2024-09-13T19:46:19Z" level=info msg="Starting Healthz Server at 0.0.0.0:8080" time="2024-09-13T19:46:19Z" level=info msg="attempting to acquire leader lease argocd/argo-rollouts-controller-lock..." time="2024-09-13T19:46:19Z" level=info msg="Starting Metric Server at 0.0.0.0:8090" time="2024-09-13T19:46:19Z" level=info msg="New leader elected: argocd-rollouts-argo-rollouts-65d4c48b76-fmdkk_a6fd6c2a-d70d-402c-99ce-fb8781bdc756"


# Logs for a specific rollout:
nothing than what I have above

Message from the maintainers:

Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

mzupan commented 2 months ago

I'm seeing the same thing with EKS/cilium. Things broke when I removed aws-node and installed cilium. See how I can re-create it via

https://github.com/argoproj/argo-rollouts/issues/3660#issuecomment-2351689464

Desolar1um commented 1 month ago

Hello @mzupan, running into a similar case to whats mentioned in both of these issues.

We had no issues until now, but today the watch call on only 1 namespace fails 100% of the time. I was on rollouts v1.6.5, and have moved to 1.7.2 but seen no improvement. image

mzupan commented 1 month ago

@Desolar1um i haven't put much time into it.. if you run it via the argo cli it works

paivin-dn commented 1 month ago

Does someone know how to fix this problem?

mztnnrt commented 3 weeks ago

We also have same problem.

In the first place and background that we have, we'd like to access via Ingress, Currently we search how to it. Before it, we try to install with kustomize based the below PR, but it's didn't work well.

mztnnrt commented 3 weeks ago

We used this reference.

After below command, loading disappeared, and UI is displayed.

kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/basic/rollout.yaml
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/basic/service.yaml
Desolar1um commented 3 weeks ago

I tried that and it still doens't work for me. My namespace already has 10 rollouts in it, and I used to be able to view it in the dashboard. One day the watch it just stopped working...

mzupan commented 2 days ago

@Desolar1um if you are in AWS make sure you aren't fronted with a ELB