Skip to content

Commit ec44f8d

Browse files
authored
Merge branch 'master' into fix-stablers-scaledown
2 parents 958336c + 5f59344 commit ec44f8d

26 files changed

+1150
-374
lines changed

.github/pull_request_template.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Checklist:
22

33
* [ ] 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.
44
* [ ] 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)
66
* [ ] I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
77
* [ ] 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).

.github/workflows/gh-pages.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
with:
2525
python-version: 3.x
2626
- name: Set up Go
27-
uses: actions/setup-go@v5.0.2
27+
uses: actions/setup-go@v5.1.0
2828
with:
2929
go-version: '1.22'
3030
- name: build

.github/workflows/go.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
runs-on: ubuntu-latest
2828
steps:
2929
- name: Set up Go
30-
uses: actions/setup-go@v5.0.2
30+
uses: actions/setup-go@v5.1.0
3131
with:
3232
go-version: ${{ env.GOLANG_VERSION }}
3333
- name: Checkout code
@@ -42,7 +42,7 @@ jobs:
4242
runs-on: ubuntu-latest
4343
steps:
4444
- name: Set up Go
45-
uses: actions/setup-go@v5.0.2
45+
uses: actions/setup-go@v5.1.0
4646
with:
4747
go-version: ${{ env.GOLANG_VERSION }}
4848
id: go
@@ -72,7 +72,7 @@ jobs:
7272
- name: Checkout code
7373
uses: actions/checkout@v4
7474
- name: Setup Golang
75-
uses: actions/setup-go@v5.0.2
75+
uses: actions/setup-go@v5.1.0
7676
with:
7777
go-version: ${{ env.GOLANG_VERSION }}
7878
# k8s codegen generates files into GOPATH location instead of the GitHub git checkout location

.github/workflows/image-reuse.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
if: ${{ github.ref_type != 'tag'}}
7070

7171
- name: Setup Golang
72-
uses: actions/setup-go@v5.0.2 # v3.5.0
72+
uses: actions/setup-go@v5.1.0 # v3.5.0
7373
with:
7474
go-version: ${{ inputs.go-version }}
7575

@@ -79,7 +79,7 @@ jobs:
7979
cosign-release: 'v2.2.0'
8080

8181
- uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0
82-
- uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
82+
- uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
8383

8484
- name: Setup tags for container image as a CSV type
8585
run: |

.github/workflows/release.yaml

+5-5
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,15 @@ jobs:
9090
token: ${{ secrets.GITHUB_TOKEN }}
9191

9292
- name: Setup Golang
93-
uses: actions/setup-go@v5.0.2 # v4.0.1
93+
uses: actions/setup-go@v5.1.0 # v4.0.1
9494
with:
9595
go-version: ${{ env.GOLANG_VERSION }}
9696

9797
- name: Set up QEMU
9898
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0
9999

100100
- name: Set up Docker Buildx
101-
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
101+
uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
102102

103103
- name: Generate release artifacts
104104
run: |
@@ -107,7 +107,7 @@ jobs:
107107
make manifests IMAGE_TAG=${{ github.ref_name }}
108108
109109
- name: Draft release
110-
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v0.1.15
110+
uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v0.1.15
111111
with:
112112
tag_name: ${{ github.event.inputs.tag }}
113113
draft: true
@@ -163,7 +163,7 @@ jobs:
163163
token: ${{ secrets.GITHUB_TOKEN }}
164164

165165
- name: Setup Golang
166-
uses: actions/setup-go@v5.0.2 # v4.0.0
166+
uses: actions/setup-go@v5.1.0 # v4.0.0
167167
with:
168168
go-version: ${{ env.GOLANG_VERSION }}
169169

@@ -212,7 +212,7 @@ jobs:
212212
/tmp/sbom.tar.gz
213213
214214
- name: Upload SBOM and signature assets
215-
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v0.1.15
215+
uses: softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v0.1.15
216216
env:
217217
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
218218
with:

.github/workflows/testing.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
runs-on: ubuntu-latest
4242
steps:
4343
- name: Set up Go
44-
uses: actions/setup-go@v5.0.2
44+
uses: actions/setup-go@v5.1.0
4545
with:
4646
go-version: ${{ env.GOLANG_VERSION }}
4747
id: go
@@ -91,7 +91,7 @@ jobs:
9191
runs-on: ubuntu-latest
9292
steps:
9393
- name: Set up Go
94-
uses: actions/setup-go@v5.0.2
94+
uses: actions/setup-go@v5.1.0
9595
with:
9696
go-version: '1.22'
9797
- uses: actions/checkout@v4
@@ -165,7 +165,7 @@ jobs:
165165
- test-e2e
166166
steps:
167167
- name: Set up Go
168-
uses: actions/setup-go@v5.0.2
168+
uses: actions/setup-go@v5.1.0
169169
with:
170170
go-version: ${{ env.GOLANG_VERSION }}
171171
id: go

USERS.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
## Who uses Argo Rollouts?
2+
23
Organizations below are **officially** using Argo Rollouts. Please send a PR with your organization name if you are using Argo Rollouts.
34

45
1. [Ada](https://www.ada.cx)
@@ -11,6 +12,7 @@ Organizations below are **officially** using Argo Rollouts. Please send a PR wit
1112
1. [Bucketplace](https://www.bucketplace.co.kr/)
1213
1. [BukuKas](https://bukukas.co.id/)
1314
1. [Calm](https://www.calm.com/)
15+
1. [CarGurus](https://www.cargurus.com/)
1416
1. [CircleCI](https://circleci.com/)
1517
1. [Cloudflare](https://cloudflare.com/)
1618
1. [Codefresh](https://codefresh.io/)
@@ -25,6 +27,7 @@ Organizations below are **officially** using Argo Rollouts. Please send a PR wit
2527
1. [Gllue](https://gllue.com)
2628
1. [Groww](https://groww.in/)
2729
1. [HashiCorp](https://www.hashicorp.com/)
30+
1. [Hepsiburada](https://hepsiburada.com/)
2831
1. [Ibotta](https://home.ibotta.com/)
2932
1. [Intuit](https://www.intuit.com/)
3033
1. [New Relic](https://newrelic.com/)
@@ -49,7 +52,7 @@ Organizations below are **officially** using Argo Rollouts. Please send a PR wit
4952
1. [Spotify](https://www.spotify.com/)
5053
1. [Synamedia](https://www.synamedia.com)
5154
1. [TBC Bank](https://tbcbank.ge/)
52-
2. [Trustly](https://www.trustly.com/)
55+
1. [Trustly](https://www.trustly.com/)
5356
1. [Tuhu](https://www.tuhu.cn/)
5457
1. [Twilio SendGrid](https://sendgrid.com)
5558
1. [Ubie](https://ubie.life/)

docs/analysis/plugins.md

+30-23
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
# Metric Plugins
22

3-
!!! important
4-
Available since v1.5 - Status: Alpha
3+
!!! warning "Alpha Feature (Since 1.5.0)"
54

6-
Argo Rollouts supports getting analysis metrics via 3rd party plugin system. This allows users to extend the capabilities of Rollouts
5+
This is an experimental, [alpha-quality](https://github.com/argoproj/argoproj/blob/main/community/feature-status.md#alpha)
6+
feature that allows you to support metric providers that are not natively supported.
7+
8+
Argo Rollouts supports getting analysis metrics via 3rd party [plugin system](../plugins.md). This allows users to extend the capabilities of Rollouts
79
to support metric providers that are not natively supported. Rollout's uses a plugin library called
810
[go-plugin](https://github.com/hashicorp/go-plugin) to do this. You can find a sample plugin
911
here: [rollouts-plugin-metric-sample-prometheus](https://github.com/argoproj-labs/rollouts-plugin-metric-sample-prometheus)
1012

11-
## Using a Metric Plugin
13+
## Installing
1214

1315
There are two methods of installing and using an argo rollouts plugin. The first method is to mount up the plugin executable
1416
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
1820
There are a few ways to mount the plugin executable into the rollouts controller container. Some of these will depend on your
1921
particular infrastructure. Here are a few methods:
2022

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
2426

2527
Then you can use the configmap to point to the plugin executable file location. Example:
2628

@@ -37,6 +39,19 @@ data:
3739
3840
### Using a HTTP(S) server to host the plugin executable
3941
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+
4055
Argo Rollouts supports downloading the plugin executable from a HTTP(S) server. To use this method, you will need to
4156
configure the controller via the `argo-rollouts-config` configmap and set `pluginLocation` to a http(s) url. Example:
4257

@@ -52,23 +67,15 @@ data:
5267
sha256: "dac10cbf57633c9832a17f8c27d2ca34aa97dd3d" #optional sha256 checksum of the plugin executable
5368
```
5469

55-
## Some words of caution
70+
## List of Available Plugins (alphabetical order)
5671

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.
6273

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.
74+
### [rollouts-plugin-metric-opensearch](https://github.com/argoproj-labs/rollouts-plugin-metric-opensearch)
6775

68-
## List of Available Plugins (alphabetical order)
76+
- 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.
77+
78+
### [rollouts-plugin-metric-sample-prometheus](https://github.com/argoproj-labs/rollouts-plugin-metric-sample-prometheus)
6979

70-
#### Add Your Plugin Here
71-
* If you have created a plugin, please submit a PR to add it to this list.
72-
#### [rollouts-plugin-metric-sample-prometheus](https://github.com/argoproj-labs/rollouts-plugin-metric-sample-prometheus)
73-
* This is just a sample plugin that can be used as a starting point for creating your own plugin.
74-
It is not meant to be used in production. It is based on the built-in prometheus provider.
80+
- This is just a sample plugin that can be used as a starting point for creating your own plugin.
81+
It is not meant to be used in production. It is based on the built-in prometheus provider.

0 commit comments

Comments
 (0)