Uploaded image for project: 'OpenShift GitOps'
  1. OpenShift GitOps
  2. GITOPS-8816

Multi-cluster: Desired manifests and resource tree view

XMLWordPrintable

    • Icon: Feature Feature
    • Resolution: Done
    • Icon: Critical Critical
    • None
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • GITOPS-8810Multi-cluster GitOps - Tech Preview
    • 0% To Do, 0% In Progress, 100% Done

      Feature Overview

      One of the nice things about the Argo CD experience is that you can get a visual representation of your desired state and the difference between live & desired states.

      Additionally, Argo CD gives you insights into your application in form of the resource tree, that visualizes the resources owned by a particular app, any given resources that are owned by those resource and the dependencies between them.

      Goals

      The data used by the Argo CD API & UI server to render these things are stored in Argo CD's Redis cache. In the agent model, the Redis server typically runs on the workload clusters ("spokes"), while the Argo CD API server runs on the control plane cluster ("hub"), so the required data is not available, and these Argo CD core features will not work.

      The goal of this feature is to implement a way to access data stored in the Redis on the spokes from the hub, while adhering to design principle #1: No connection from the hub to the spokes (i.e., not directly accessing any Redis on the spokes).

      Requirements

      Requirements Notes IS MVP
      Desired manifests can be shown through the API (UI and CLI) without access to Redis - Y
      Resource tree can be rendered in the UI without access to Redis - Y
      The diff between desired & live states can be calculated by and shown through the API (UI and CLI) - Y
      No core architectural constraints of either Argo CD or argocd-agent are changed No direct access from hub to spoke is allowed, no changes to Argo CD, no external dependencies Y

      Use Cases

      • As a user of Argo CD with the agent model, I want to be able to see the desired manifests of my Applications, regardless on which spoke they are deployed, as if it would be a local Application
      • As a user of Argo CD with the agent model, I want my Application's resource tree to be visualized in the UI, as if it would be a local Application
      • As a user of Argo CD with the agent model, I want to display any differences between the desired and live states of my Application, as if it would be a local Application

      Out of scope

      • Display of desired manifests, resource tree or diff view when the agent is not connected. We can safely assume these will only work if the agent is connected for now. Access to that data when an agent is not available comes at a later point in time.

      Dependencies

      < Link or at least explain any known dependencies. >

      Background, and strategic fit

      Refer https://docs.google.com/document/d/17mDmWqL_JVvqUL-4mud8g35bBTYHqBil2ljw_yVykH0/edit?

      Assumptions

      < Are there assumptions being made regarding prerequisites and dependencies?>
      < Are there assumptions about hardware, software or people resources?>

      Customer Considerations

      < Are there specific customer environments that need to be considered (such as working with existing h/w and software)?>

      Documentation/QE Considerations

      < What educational or reference material (docs) is required to support this product feature? For users/admins? Other functions (security officers, etc)? >
      < Does this feature have a doc impact? Possible values are: New Content, Updates to existing content, Release Note, or No Doc Impact?>
      < Are there assumptions being made regarding prerequisites and dependencies?>
      < Are there assumptions about hardware, software or people resources?>

      Impact

      < If the feature is ordered with other work, state the impact of this feature on the other work>

      Related Architecture/Technical Documents

      <links>

      Definition of Ready

      • The objectives of the feature are clearly defined and aligned with the business strategy.
      • All feature requirements have been clearly defined by Product Owners.
      • The feature has been broken down into epics.
      • The feature has been stack ranked.
      • Definition of the business outcome is in the Outcome Jira (which must have a parent Jira).

              jgwest Jonathan West
              jfischer@redhat.com Jann Fischer
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: