Skip to content

Commit

Permalink
docs: add Argo Rollouts plugin system architecture
Browse files Browse the repository at this point in the history
Signed-off-by: Philipp Plotnikov <[email protected]>
  • Loading branch information
Philipp-Plotnikov committed Apr 25, 2024
1 parent 090809c commit ff35f6f
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ cd rollouts-plugin-trafficrouter-gatewayapi

## Argo Rollouts plugin system architecture

When Argo rollouts controller starts it requests the ConfigMap **argo-rollouts-config** from api server of k8s cluster and if it gets it, it validates its content before putting this ConfigMap in RAM. It is important to understand it happens only at the beginning and only one time, so if you will change **argo-rollouts-config** or you will add it after Argo Rollouts controller you will need to restart Argo Rollouts. Controller uses this config map to understand where specified in argo manifest plugins are. When Argo Rollouts learns their locations it downloads and executes them as seperate RPC servers in the same pod. When controller gets specific events, for example events corresponding to the SetWeight action, it makes specific remote procedure call to the needing RPC server and waits its response. Diagram illustrating the main aspects of architecture is below.

![Argo rollouts plugin system architecture](./images/contributing/argo-rollouts-plugin-system-architecture.png)


## Project dependecies

`go.mod` is used, so the `go build/test` commands automatically install the needed dependencies
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit ff35f6f

Please sign in to comment.