argoproj-labs / rollout-extension

Argo Rollout visualization in Argo CD Web UI
196 stars 46 forks source link

Unable to view rollout-extension in ArgoCD Web UI #30

Open ajatprabha opened 1 year ago

ajatprabha commented 1 year ago

I have installed ArgoCD using this helm chart. I also, installed ArgoRollouts using this helm chart.

Effective setup is:

ArgoCD Version: v2.4.15+05acf7a
ArgoRollouts Version: v1.3.1
ArgoCD Extensions Controller Version: v0.2.1

I also, added the argo-rollouts extension using

kubectl apply -n <ns> \
    -f https://raw.githubusercontent.com/argoproj-labs/rollout-extension/v0.3.0/manifests/install.yaml

Post these steps I was able to see a More tab in the Rollout object window, however, when I click on it, I see

Screenshot 2022-11-22 at 1 19 53 PM

The error log in dev console is

Screenshot 2022-11-22 at 1 20 52 PM

Is the setup incorrect here? I am however able to use the rollouts kubectl plugin to view rollouts dashboard with command:

kubectl argo rollouts dashboard -n <ns>
INFO[0000] Argo Rollouts Dashboard is now available at http://localhost:3100/rollouts
zachaller commented 1 year ago

Can you share your rollouts config?

ajatprabha commented 1 year ago

Can you share your rollouts config?

Can you elaborate a little on what config you want to take a look at?

The values.yaml used with helm is

controller:
  replicas: 1
  metrics:
    enabled: true
    serviceMonitor:
      enabled: true

The actual service Rollout def (GET: /api/v1/applications/my-service/resource?name=my-service&namespace=default&resourceName=my-service&version=v1alpha1&kind=Rollout&group=argoproj.io) is

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: '{"apiVersion":"argoproj.io/v1alpha1","kind":"Rollout","metadata":{"annotations":{"meta.helm.sh/release-name":"my-service","meta.helm.sh/release-namespace":"default"},"labels":{"app.kubernetes.io/instance":"my-service","app.kubernetes.io/managed-by":"Helm","app.kubernetes.io/name":"service","app.kubernetes.io/version":"1.16.0","helm.sh/chart":"service-1.0.17"},"name":"my-service","namespace":"default"},"spec":{"replicas":1,"revisionHistoryLimit":0,"strategy":{"canary":{"analysis":{"args":[{"name":"namespace","value":"default"},{"name":"instance-name","value":"my-service"},{"name":"http-port","value":"8080"},{"name":"threshold","value":"0.01"}],"templates":[{"templateName":"http-failure-rate"}]},"canaryMetadata":{"annotations":{"role":"canary"},"labels":{"role":"canary"}},"maxSurge":"20%","maxUnavailable":0,"stableMetadata":{"annotations":{"role":"stable"},"labels":{"role":"stable"}},"steps":[{"setWeight":10},{"pause":{"duration":"30s"}},{"setWeight":20},{"pause":{"duration":"30s"}},{"setWeight":50},{"pause":{"duration":"45s"}}]}},"workloadRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"my-service"}}}

      '
    meta.helm.sh/release-name: my-service
    meta.helm.sh/release-namespace: default
    rollout.argoproj.io/revision: '6'
    rollout.argoproj.io/workload-generation: '52'
  creationTimestamp: '2022-11-11T11:18:32Z'
  generation: 3
  labels:
    app.kubernetes.io/instance: my-service
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: service
    app.kubernetes.io/version: 1.16.0
    helm.sh/chart: service-1.0.17
  managedFields:
    - apiVersion: argoproj.io/v1alpha1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            ".": {}
            f:kubectl.kubernetes.io/last-applied-configuration: {}
            f:meta.helm.sh/release-name: {}
            f:meta.helm.sh/release-namespace: {}
          f:labels:
            ".": {}
            f:app.kubernetes.io/instance: {}
            f:app.kubernetes.io/managed-by: {}
            f:app.kubernetes.io/name: {}
            f:app.kubernetes.io/version: {}
            f:helm.sh/chart: {}
        f:spec:
          ".": {}
          f:revisionHistoryLimit: {}
          f:strategy:
            ".": {}
            f:canary:
              ".": {}
              f:analysis:
                ".": {}
                f:args: {}
                f:templates: {}
              f:canaryMetadata:
                ".": {}
                f:annotations:
                  ".": {}
                  f:role: {}
                f:labels:
                  ".": {}
                  f:role: {}
              f:maxSurge: {}
              f:maxUnavailable: {}
              f:stableMetadata:
                ".": {}
                f:annotations:
                  ".": {}
                  f:role: {}
                f:labels:
                  ".": {}
                  f:role: {}
              f:steps: {}
          f:workloadRef:
            ".": {}
            f:apiVersion: {}
            f:kind: {}
            f:name: {}
      manager: argocd-application-controller
      operation: Update
      time: '2022-11-11T11:18:32Z'
    - apiVersion: argoproj.io/v1alpha1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            f:rollout.argoproj.io/revision: {}
            f:rollout.argoproj.io/workload-generation: {}
      manager: rollouts-controller
      operation: Update
      time: '2022-11-11T11:18:32Z'
    - apiVersion: argoproj.io/v1alpha1
      fieldsType: FieldsV1
      fieldsV1:
        f:status:
          ".": {}
          f:HPAReplicas: {}
          f:availableReplicas: {}
          f:blueGreen: {}
          f:canary: {}
          f:conditions: {}
          f:currentPodHash: {}
          f:currentStepHash: {}
          f:currentStepIndex: {}
          f:observedGeneration: {}
          f:phase: {}
          f:readyReplicas: {}
          f:replicas: {}
          f:selector: {}
          f:stableRS: {}
          f:updatedReplicas: {}
          f:workloadObservedGeneration: {}
      manager: rollouts-controller
      operation: Update
      subresource: status
      time: '2022-11-22T09:25:25Z'
  name: my-service
  namespace: default
  resourceVersion: '198691285'
  uid: 198f274a-caaf-44b7-b6c0-d7afc5b568c6
spec:
  replicas: 3
  revisionHistoryLimit: 0
  strategy:
    canary:
      analysis:
        args:
          - name: namespace
            value: default
          - name: instance-name
            value: my-service
          - name: http-port
            value: '8080'
          - name: threshold
            value: '0.01'
        templates:
          - templateName: http-failure-rate
      canaryMetadata:
        annotations:
          role: canary
        labels:
          role: canary
      maxSurge: 20%
      maxUnavailable: 0
      stableMetadata:
        annotations:
          role: stable
        labels:
          role: stable
      steps:
        - setWeight: 10
        - pause:
            duration: 30s
        - setWeight: 20
        - pause:
            duration: 30s
        - setWeight: 50
        - pause:
            duration: 45s
  workloadRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-service
status:
  HPAReplicas: 3
  availableReplicas: 3
  blueGreen: {}
  canary: {}
  conditions:
    - lastTransitionTime: '2022-11-21T09:33:02Z'
      lastUpdateTime: '2022-11-21T09:33:02Z'
      message: Rollout is paused
      reason: RolloutPaused
      status: 'False'
      type: Paused
    - lastTransitionTime: '2022-11-21T09:33:22Z'
      lastUpdateTime: '2022-11-21T09:33:22Z'
      message: RolloutCompleted
      reason: RolloutCompleted
      status: 'True'
      type: Completed
    - lastTransitionTime: '2022-11-22T09:25:25Z'
      lastUpdateTime: '2022-11-22T09:25:25Z'
      message: Rollout is healthy
      reason: RolloutHealthy
      status: 'True'
      type: Healthy
    - lastTransitionTime: '2022-11-21T09:33:02Z'
      lastUpdateTime: '2022-11-22T09:25:25Z'
      message: ReplicaSet "my-service-7b677b7dc7" has successfully progressed.
      reason: NewReplicaSetAvailable
      status: 'True'
      type: Progressing
    - lastTransitionTime: '2022-11-22T09:25:25Z'
      lastUpdateTime: '2022-11-22T09:25:25Z'
      message: Rollout has minimum availability
      reason: AvailableReason
      status: 'True'
      type: Available
  currentPodHash: 7b677b7dc7
  currentStepHash: 59546c455
  currentStepIndex: 6
  observedGeneration: '3'
  phase: Healthy
  readyReplicas: 3
  replicas: 3
  selector: app.kubernetes.io/instance=my-service,app.kubernetes.io/name=service
  stableRS: 7b677b7dc7
  updatedReplicas: 3
  workloadObservedGeneration: '52'
zachaller commented 1 year ago

Can you try with a the most recent version of the extension?

ajatprabha commented 1 year ago

@zachaller I tried with v0.3.0 only, on the Releases page, it is the latest version. Am I missing something here?

zachaller commented 1 year ago

Nope sorry I was mixing up two issues, issue #33 and this looks like there might still be another issue on v0.3.0 as well will keep this open

dfl-aeb commented 1 year ago

We could fix it by changing the version in the install.yaml file to the new release url: https://github.com/argoproj-labs/rollout-extension/releases/download/v0.3.0/extension.tar

rjanovski commented 1 year ago

it only fails for us when using a workloadRef pointing to another deployment. if using the rollout without an external deployment it works fine.

EHSchmitt4395 commented 1 year ago

edit:

https://github.com/argoproj-labs/rollout-extension/releases/download/v0.3.0/extension.tar

worked , thanks @dfl-aeb

tbernacchi commented 2 weeks ago

I've followed the steps mentioned here but I got this in the UI:

image

I'm not sure what I'm missing. Any ideas?