Argo Rollout visualization in Argo CD Web UI

Rollout Extension

The project introduces the Argo Rollout dashboard into the Argo CD Web UI.

image

Quick Start

kubectl apply -n argocd \
    -f https://raw.githubusercontent.com/argoproj-labs/rollout-extension/v0.1.0/manifests/install.yaml
Comments
  • Something went wrong with Extension for Rollout

    Something went wrong with Extension for Rollout

    I'm using argocd version: v2.1.6

    Getting the following error when trying to see the rollout details "Something went wrong with Extension for Rollout" image

    in the rollout service it looks ok, but not in the extension image

    In the extension container I dont see any error

    I1103 16:28:41.790412       1 request.go:665] Waited for 1.029562587s due to client-side throttling, not priority and fairness, request: GET:https://10.1.0.1:443/apis/node.k8s.io/v1?timeout=32s
    2021-11-03T16:28:42.193Z	INFO	setup	starting manager
    2021-11-03T16:28:42.194Z	INFO	controller.argocdextension	Starting EventSource	{"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "source": "kind source: /, Kind="}
    2021-11-03T16:28:42.194Z	INFO	controller.argocdextension	Starting Controller	{"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension"}
    2021-11-03T16:28:42.295Z	INFO	controller.argocdextension	Starting workers	{"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "worker count": 1}
    2021-11-03T16:28:42.295Z	INFO	controller.argocdextension	Sources has not been downloaded yet, redownloading...	{"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "name": "argo-rollouts", "namespace": "gitops"}
    2021-11-03T16:28:42.896Z	INFO	controller.argocdextension	Successfully downloaded all sources.	{"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "name": "argo-rollouts", "namespace": "gitops"}
    2021-11-03T16:28:42.915Z	INFO	controller.argocdextension	Sources already downloaded.	{"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "name": "argo-rollouts", "namespace": "gitops"}
    

    am I missing something?

  • Something went wrong with Extension for Rollout

    Something went wrong with Extension for Rollout

    Re: https://github.com/argoproj-labs/rollout-extension/issues/30

    I am also having the same problem:

    Screenshot 2022-12-03 at 3 40 03 PM

    ArgoCD details:

    {
        "Version": "v2.5.3+0c7de21",
        "BuildDate": "2022-11-28T16:51:33Z",
        "GitCommit": "0c7de210ae66bf631cc4f27ee1b5cdc0d04c1c96",
        "GitTreeState": "clean",
        "GoVersion": "go1.18.8",
        "Compiler": "gc",
        "Platform": "linux/amd64",
        "KustomizeVersion": "v4.5.7 2022-08-02T16:35:54Z",
        "HelmVersion": "v3.10.1+g9f88ccb",
        "KubectlVersion": "v0.24.2",
        "JsonnetVersion": "v0.18.0"
    }
    

    ArgoCDExtension argo-rollouts manifest:

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCDExtension
    metadata:
      finalizers:
        - extensions-finalizer.argocd.argoproj.io
      labels:
        app.kubernetes.io/instance: argocd-int
      name: argo-rollouts
      namespace: argocd
    spec:
      sources:
        - web:
            url: >-
              https://github.com/argoproj-labs/rollout-extension/releases/download/v0.2.1/extension.tar
    

    Argo rollouts is kustomized and applied as a base with no modifications from https://github.com/argoproj/argo-rollouts//manifests/cluster-install?version=v1.3.1

    The Rollout manifest is quite minimal for canary config:

      strategy:
        canary:
          maxSurge: 100%
          maxUnavailable: 25%
    

    Full manifest with REDACTED details:

    apiVersion: argoproj.io/v1alpha1
    kind: Rollout
    metadata:
      annotations: {}
      labels:
        app: REDACTED
        app.kubernetes.io/instance: REDACTED
      name: REDACTED
      namespace: int
    spec:
      replicas: 5
      selector:
        matchLabels:
          app: REDACTED
      strategy:
        canary:
          maxSurge: 100%
          maxUnavailable: 25%
      template:
        metadata:
          labels:
            app: REDACTED
        spec:
          containers:
            - env: [...]
              image: 'REDACTED'
              name: REDACTED
              ports:
                - containerPort: 3000
                  name: http
                  protocol: TCP
              readinessProbe:
                tcpSocket:
                  port: 3000
              resources:
                limits:
                  cpu: '1'
                  memory: 512Mi
                requests:
                  cpu: 500m
                  memory: 200Mi
            - command:
                - /cloud_sql_proxy
                - '-ip_address_types=PRIVATE'
                - '-log_debug_stdout'
                - >-
                  -instances=REDACTED
                - '-structured_logs'
                - '-use_http_health_check'
              image: 'gcr.io/cloudsql-docker/gce-proxy:1.33.1'
              name: cloud-sql-proxy
              resources:
                requests:
                  cpu: '1'
                  memory: 2Gi
              securityContext:
                runAsNonRoot: true
          initContainers: []
          serviceAccountName: cloud-sql-proxy
          terminationGracePeriodSeconds: 30
    
  • Extension UI

    Extension UI "More" tab not appearing after opening another resource's details view

    This issue may be similar to #1, #5 and some others.

    Browser: Brave Browser 1.45.123 (tested on Chrome as well, version 107.0.5304.110 (Official Build) (x86_64)) ArgoCD version: v2.4.14+029be59.dirty Argo Rollouts version: v1.3.1 (using rollouts helm chart v2.21.1) Argo Extension Controller version: v0.2.1 Argo Rollout Extension version: v0.3.0

    Rollouts extension installed by adding the file source (https://github.com/argoproj-labs/rollout-extension/releases/download/v0.3.0/extension.tar) to our argocd helm chart values file under server.extensions.contents.url

    Description of issue: When clicking on the rollout resource the first time after refreshing or opening the application in the argoCD UI, the More tab shows up. However, after opening another resource (by clicking on the tile in the application page) and returning the the rollout resource view, the More tab doesn't show up.

    Replication steps:

    1. Open the rollout resource's detailed view
    2. Return back to the application's tile view by clicking on the empty space outside of the details page that pops out from the right side of the screen
    3. Open another resource's detailed view
    4. Return back to the application's tile view by clicking on the empty space outside of the details page that pops out from the right side of the screen
    5. Open the rollout resource's detailed view, the More tab won't appear next to Logs

    Errors that pop up in the browser console during step 3 above:

    GET https://argocd.sbx.scheduleengine.net/extensions/resources/argoproj.io/AnalysisTemplate/ui/extensions.js net::ERR_ABORTED 404
    
    Refused to execute script from 'https://argocd.sbx.scheduleengine.net/extensions/resources/argoproj.io/AnalysisTemplate/ui/extensions.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled.
    

    image

    Temporary solution: Refreshing the current application page or reopening it from the Applications page and opening the rollout resource detailed view page before opening other resources.

    Please let me know if more details are needed to help with this.

  • fix: access undefined spec.template when using workloadRef

    fix: access undefined spec.template when using workloadRef

    Fix the issue https://github.com/argoproj-labs/rollout-extension/issues/2 When Rollout uses workloadRef, the spec.template is undefined, this will prevent the page from being crashed. However, the containers's name are not going to display, we need to parse the Deployment from source tree in order to get the containers information.

  • Rollout Extension v0.2.0 Release Manifest Incorrect URL

    Rollout Extension v0.2.0 Release Manifest Incorrect URL

    v0.2.0 release manifests/install.yaml has the incorrect URL.

    - url: https://github.com/argoproj-labs/rollout-extension/releases/download/v0.1.0/extension.tar
    + url: https://github.com/argoproj-labs/rollout-extension/releases/download/v0.2.0/extension.tar
    
  • More details tab is not coming up under rollout

    More details tab is not coming up under rollout

    Hi @alexmt @rbreeze,

    We had installed the rollout extension but there is no "More tab" is visible under the in-progress canary rollout.

    image

    logs from argo-extension container:

    ➜ Downloads argo -n argocd logs pod/argocd-server-g2r3r -c argocd-extensions -f 2021-10-20T07:47:26.846Z INFO setup starting manager 2021-10-20T07:47:26.847Z INFO controller.argocdextension Starting EventSource {"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "source": "kind source: /, Kind="} 2021-10-20T07:47:26.847Z INFO controller.argocdextension Starting Controller {"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension"} 2021-10-20T07:47:26.949Z INFO controller.argocdextension Starting workers {"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "worker count": 1} 2021-10-20T07:48:19.600Z INFO controller.argocdextension Sources has not been downloaded yet, redownloading... {"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "name": "argo-rollouts", "namespace": "argocd"} 2021-10-20T07:48:20.553Z INFO controller.argocdextension Successfully downloaded all sources. {"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "name": "argo-rollouts", "namespace": "argocd"} 2021-10-20T07:48:20.575Z INFO controller.argocdextension Sources already downloaded. {"reconciler group": "argoproj.io", "reconciler kind": "ArgoCDExtension", "name": "argo-rollouts", "namespace": "argocd"}

    The canary rollout includes 3 steps (scale rollout to 50%, then wait indefinitely for operator intervention, and after promote-full, scale to 100%).

    ArgoCD version : 2.0.5

    Can you please guide us - if we missed something here?

  • Parse workloadRef from tree so we can populate containers

    Parse workloadRef from tree so we can populate containers

    This way, the container view is not empty (when using workloadRef).

    Continuation of: https://github.com/argoproj-labs/rollout-extension/pull/18

    LE: this doesn't work, as the ApplicationTree stores only metadata, not the Deployment spec. Fetching it would be an additional backend call (https://github.com/argoproj/argo-cd/blob/master/ui/src/app/shared/services/applications-service.ts#L275). However, for this call we need to know the "applicationNamespace" which is also not exposed to the extension.

  • Fix Canary Parser

    Fix Canary Parser

    Rollouts Extension fails when Canary steps are not defined or when steps is an empty list:

    steps is null example

    spec:
      strategy:
        canary:
          maxSurge: 1
          maxUnavailable: 1
    

    steps is an empty list example:

    spec:
      strategy:
        canary:
          maxSurge: 1
          maxUnavailable: 1
          steps: []
    

    Tested with https://github.com/argoproj/argo-rollouts/blob/master/examples/rollout-rolling-update.yaml

    Closes #2

  • Fix Canary Parser

    Fix Canary Parser

    Rollouts Extension fails when Canary steps are not defined or when steps is an empty list:

    steps is null example

    spec:
      strategy:
        canary:
          maxSurge: 1
          maxUnavailable: 1
    

    steps is an empty list example:

    spec:
      strategy:
        canary:
          maxSurge: 1
          maxUnavailable: 1
          steps: []
    

    Tested with https://github.com/argoproj/argo-rollouts/blob/master/examples/rollout-rolling-update.yaml

    Closes #2

  • Non-admin users in Argo CD Cannot see the

    Non-admin users in Argo CD Cannot see the "MORE" tab

    image

    The MORE tab is only visible to admins. I see no documentation of required RBAC to use this extension. Please provide it so I don't have to reverse-engineer.

  • Unable to view rollout-extension in ArgoCD Web UI

    Unable to view rollout-extension in ArgoCD Web UI

    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
    
  • Crash in ArgoCD

    Crash in ArgoCD

    When I click the more tab on a rollout, I get the following stack trace.

    Browser: Chrome Mac OS ArgoCD: v2.3.3+07ac038 Argo Rollouts: v1.2.0+08cf10e ArgoRolloutExtension: main branch

    Something went wrong!
    
    Consider submitting an issue [here](https://github.com/argoproj/argo-cd/issues/new?labels=bug&template=bug_report.md).
    
    
    Stacktrace:
    
    TypeError: Cannot read properties of undefined (reading 'name')
        at anchor (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:54:342605)
        at qo (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:404:57924)
        at ga (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:404:104163)
        at cl (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:404:96711)
        at al (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:404:96636)
        at Qa (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:404:93666)
        at https://argocd.core-services.rr.mu/main.c7ea22e999b3805bc676.js:404:45314
        at t.unstable_runWithPriority (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:412:3844)
        at zr (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:404:45023)
        at Gr (https://argocd.core-services.r.m/main.c7ea22e999b3805bc676.js:404:45259)
    
  • Extension summary doesn't reflect the latest progress(actual weight)/data.

    Extension summary doesn't reflect the latest progress(actual weight)/data.

    it stucks at 0 actual weight

    Screen Shot 2022-04-13 at 22 36 28

    What we tried

    • we fresh page of our argoCD, no luck
    • we have a standalone argo rollout deployment as well, we compared the data with the one in the extension, apparently, the extension doesn't show the up-to-date/correct data in the summary session.

    Background

    • we are at ArgoCD v2.3.3
    • we are at ArgoRollout v1.2.0
    • we are at ArgoRolloutExtension v main-branch
Argo CD ApplicationSet Controller

The ApplicationSet controller manages multiple Argo CD Applications as a single ApplicationSet unit, supporting deployments to large numbers of clusters, deployments of large monorepos, and enabling secure Application self-service.

Dec 14, 2022
Automatic container image update for Argo CD

Argo CD Image Updater Introduction Argo CD Image Updater is a tool to automatically update the container images of Kubernetes workloads which are mana

Dec 25, 2022
A Kubernetes operator for managing Argo CD clusters.

Argo CD Operator A Kubernetes operator for managing Argo CD clusters. Documentation See the documentation for installation and usage of the operator.

Dec 14, 2022
Support for extending Argo CD

Argo CD Extensions To enable Extensions for your Argo CD cluster will require just a single kubectl apply. Here we provide a way to extend Argo CD suc

Dec 20, 2022
Argo-CD Autopilot
Argo-CD Autopilot

Introduction New users to GitOps and Argo CD are not often sure how they should structure their repos, add applications, promote apps across environme

Jan 6, 2023
Hera is a Python framework for constructing and submitting Argo Workflows.

Hera is an Argo Workflows Python SDK. Hera aims to make workflow construction and submission easy and accessible to everyone! Hera abstracts away workflow setup details while still maintaining a consistent vocabulary with Argo Workflows.

Dec 31, 2022
A series of controllers for configuring namespaces to accomodate Argo

argo-controller A series of controllers for configuring namespaces to accomodate Argo. ArgoCD TBD Argo Workflows Make a service account in every names

Jan 4, 2022
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes.
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes.

What is Argo Workflows? Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Argo Workflow

Dec 10, 2021
A Go dependency graph visualization tool
A Go dependency graph visualization tool

godepgraph godepgraph is a program for generating a dependency graph of Go packages. Install go get github.com/kisielk/godepgraph Use For basic usage

Jan 7, 2023
:rocket: Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.) in the browser
:rocket: Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.) in the browser

Statsviz Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.). Import "github.com/arl/statsviz" Register statsviz

Jan 3, 2023
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

The open-source platform for monitoring and observability. Grafana allows you to query, visualize, alert on and understand your metrics no matter wher

Jan 3, 2023
Callgraph analysis and visualization for Go
Callgraph analysis and visualization for Go

Gocyto A Go SSA callgraph builder and visualizer, by @protolambda. Features: output to generic Cytoscape JSON format. (list of nodes, list of edges) o

Nov 3, 2022
A golang framework helps gopher to build a data visualization and admin panel in ten minutes
A golang framework helps gopher to build a data visualization and admin panel in ten minutes

the missing golang data admin panel builder tool. Documentation | 中文介绍 | DEMO | 中文DEMO | Twitter | Forum Inspired by laravel-admin Preface GoAdmin is

Dec 30, 2022
Tool for shell commands execution, visualization and alerting. Configured with a simple YAML file.
Tool for shell commands execution, visualization and alerting. Configured with a simple YAML file.

Sampler. Visualization for any shell command. Sampler is a tool for shell commands execution, visualization and alerting. Configured with a simple YAM

Dec 28, 2022
pprof is a tool for visualization and analysis of profiling data

Introduction pprof is a tool for visualization and analysis of profiling data. pprof reads a collection of profiling samples in profile.proto format a

Jan 8, 2023
gProfiler combines multiple sampling profilers to produce unified visualization of what your CPU
gProfiler combines multiple sampling profilers to produce unified visualization of what your CPU

gProfiler combines multiple sampling profilers to produce unified visualization of what your CPU is spending time on, displaying stack traces of your processes across native programs1 (includes Golang), Java and Python runtimes, and kernel routines.

Dec 27, 2022
gosivy - Another visualization tool for Go process metrics
gosivy - Another visualization tool for Go process metrics

gosivy Another visualization tool for Go process metrics. Gosivy tracks Go process's metrics and plot their evolution over time right into your termin

Nov 27, 2022
🚀Statsview is a real-time Golang runtime stats visualization profiler
🚀Statsview is a real-time Golang runtime stats visualization profiler

Statsview is a real-time Golang runtime stats visualization profiler. It is built top on another open-source project, go-echarts, which helps statsview to show its graphs on the browser.

Dec 29, 2022
gosivy - Real-time visualization tool for Go process metrics
 gosivy - Real-time visualization tool for Go process metrics

Gosivy tracks Go process's metrics and plot their evolution over time right into your terminal, no matter where it's running on. It helps you understand how your application consumes the resources.

Nov 27, 2022
Interactive Terraform visualization. State and configuration explorer.
Interactive Terraform visualization. State and configuration explorer.

Rover - Terraform Visualizer Rover is a Terraform visualizer. In order to do this, Rover: generates a plan file and parses the configuration in the ro

Jan 9, 2023