You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: .github/pull_request_template.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@ Checklist:
2
2
3
3
*[ ] Either (a) I've created an [enhancement proposal](https://github.com/argoproj/argo-rollouts/issues/new/choose) and discussed it with the community, (b) this is a bug fix, or (c) this is a chore.
4
4
*[ ] The title of the PR is (a) [conventional](https://www.conventionalcommits.org/en/v1.0.0/) with a list of types and scopes found [here](https://github.com/argoproj/argo-rollouts/blob/master/.github/workflows/pr-title-check.yml), (b) states what changed, and (c) suffixes the related issues number. E.g. `"fix(controller): Updates such and such. Fixes #1234"`.
5
-
*[ ] I've signed my commits with [DCO](https://github.com/argoproj/argoproj)
5
+
*[ ] I've signed my commits with [DCO](https://github.com/argoproj/argoproj/blob/main/community/CONTRIBUTING.md#legal)
6
6
*[ ] I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
7
7
*[ ] My builds are green. Try syncing with master if they are not.
8
-
*[ ] My organization is added to [USERS.md](https://github.com/argoproj/argo-rollouts/blob/master/USERS.md).
8
+
*[ ] My organization is added to [USERS.md](https://github.com/argoproj/argo-rollouts/blob/master/USERS.md).
There are two methods of installing and using an argo rollouts plugin. The first method is to mount up the plugin executable
14
16
into the rollouts controller container. The second method is to use a HTTP(S) server to host the plugin executable.
@@ -18,9 +20,9 @@ into the rollouts controller container. The second method is to use a HTTP(S) se
18
20
There are a few ways to mount the plugin executable into the rollouts controller container. Some of these will depend on your
19
21
particular infrastructure. Here are a few methods:
20
22
21
-
* Using an init container to download the plugin executable
22
-
* Using a Kubernetes volume mount with a shared volume such as NFS, EBS, etc.
23
-
* Building the plugin into the rollouts controller container
23
+
- Using an init container to download the plugin executable
24
+
- Using a Kubernetes volume mount with a shared volume such as NFS, EBS, etc.
25
+
- Building the plugin into the rollouts controller container
24
26
25
27
Then you can use the configmap to point to the plugin executable file location. Example:
26
28
@@ -37,6 +39,19 @@ data:
37
39
38
40
### Using a HTTP(S) server to host the plugin executable
39
41
42
+
!!! warning "Installing a plugin with http(s)"
43
+
44
+
Depending on which method you use to install and the plugin, there are some things to be aware of.
45
+
The rollouts controller will not start if it can not download or find the plugin executable. This means that if you are using
46
+
a method of installation that requires a download of the plugin and the server hosting the plugin for some reason is not available and the rollouts
47
+
controllers pod got deleted while the server was down or is coming up for the first time, it will not be able to start until
48
+
the server hosting the plugin is available again.
49
+
50
+
Argo Rollouts will download the plugin at startup only once but if the pod is deleted it will need to download the plugin again on next startup. Running
51
+
Argo Rollouts in HA mode can help a little with this situation because each pod will download the plugin at startup. So if a single pod gets
52
+
deleted during a server outage, the other pods will still be able to take over because there will already be a plugin executable available to it. It is the
53
+
responsibility of the Argo Rollouts administrator to define the plugin installation method considering the risks of each approach.
54
+
40
55
Argo Rollouts supports downloading the plugin executable from a HTTP(S) server. To use this method, you will need to
41
56
configure the controller via the `argo-rollouts-config` configmap and set `pluginLocation` to a http(s) url. Example:
42
57
@@ -52,23 +67,15 @@ data:
52
67
sha256: "dac10cbf57633c9832a17f8c27d2ca34aa97dd3d" #optional sha256 checksum of the plugin executable
53
68
```
54
69
55
-
## Some words of caution
70
+
## List of Available Plugins (alphabetical order)
56
71
57
-
Depending on which method you use to install and the plugin, there are some things to be aware of.
58
-
The rollouts controller will not start if it can not download or find the plugin executable. This means that if you are using
59
-
a method of installation that requires a download of the plugin and the server hosting the plugin for some reason is not available and the rollouts
60
-
controllers pod got deleted while the server was down or is coming up for the first time, it will not be able to start until
61
-
the server hosting the plugin is available again.
72
+
If you have created a plugin, please submit a PR to add it to this list.
62
73
63
-
Argo Rollouts will download the plugin at startup only once but if the pod is deleted it will need to download the plugin again on next startup. Running
64
-
Argo Rollouts in HA mode can help a little with this situation because each pod will download the plugin at startup. So if a single pod gets
65
-
deleted during a server outage, the other pods will still be able to take over because there will already be a plugin executable available to it. It is the
66
-
responsibility of the Argo Rollouts administrator to define the plugin installation method considering the risks of each approach.
- The application is an OpenSearch plugin designed for use with the Argo Rollouts plugin system. This plugin enables the integration of OpenSearch metrics into Argo Rollouts, allowing for advanced metric analysis and monitoring during application rollouts.
0 commit comments