Skip to content

Commit 60189a2

Browse files
committed
Merge branch 'argoproj:master' into master
Signed-off-by: n888 <drifto@gmail.com>
2 parents 913b203 + 3308401 commit 60189a2

13 files changed

Lines changed: 276 additions & 27 deletions

File tree

.github/workflows/image-reuse.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ jobs:
130130

131131
- name: Build and push container image
132132
id: image
133-
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 #v4.0.0
133+
uses: docker/build-push-action@44ea916f6c540f9302d50c2b1e5a8dc071f15cdf #v4.1.0
134134
with:
135135
context: .
136136
platforms: ${{ inputs.platforms }}

.github/workflows/release.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ jobs:
8484
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
8585

8686
- name: Build and push (controller-image)
87-
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 # v4.0.0
87+
uses: docker/build-push-action@44ea916f6c540f9302d50c2b1e5a8dc071f15cdf # v4.1.0
8888
with:
8989
context: .
9090
platforms: linux/amd64,linux/arm64
@@ -94,7 +94,7 @@ jobs:
9494
sbom: false
9595

9696
- name: Build and push (plugin-image)
97-
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 # v4.0.0
97+
uses: docker/build-push-action@44ea916f6c540f9302d50c2b1e5a8dc071f15cdf # v4.1.0
9898
with:
9999
context: .
100100
target: kubectl-argo-rollouts

docs/analysis/datadog.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ spec:
2323
apiVersion: v2
2424
interval: 5m
2525
query: |
26-
sum:requests.error.count{service:{{args.service-name}}} /
27-
sum:requests.request.count{service:{{args.service-name}}}
26+
sum:requests.error.rate{service:{{args.service-name}}}
2827
```
2928
3029
The field `apiVersion` refers to the API version of Datadog (v1 or v2). Default value is `v1` if this is omitted.
3130

3231
!!! note
33-
Datadog is moving away from the legacy v1 API. Rate limits imposed by Datadog are therefore stricter when using v1. It is recommended to switch to v2 soon. If you switch to v2, you will not need to change any other field aside from `apiVersion`.
32+
Datadog is moving away from the legacy v1 API. Rate limits imposed by Datadog are therefore stricter when using v1. It is recommended to switch to v2 soon. If you switch to v2, you will not be able to use formulas (operations between individual queries).
3433

3534
Datadog api and app tokens can be configured in a kubernetes secret in argo-rollouts namespace.
3635

docs/features/specification.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,18 @@ spec:
151151
requiredDuringSchedulingIgnoredDuringExecution: {}
152152
preferredDuringSchedulingIgnoredDuringExecution:
153153
weight: 1 # Between 1 - 100
154+
155+
# activeMetadata will be merged and updated in-place into the ReplicaSet's spec.template.metadata
156+
# of the active pods. +optional
157+
activeMetadata:
158+
labels:
159+
role: active
160+
161+
# Metadata which will be attached to the preview pods only during their preview phase.
162+
# +optional
163+
previewMetadata:
164+
labels:
165+
role: preview
154166

155167
# Canary update strategy
156168
canary:

docs/features/traffic-management/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@ Service Meshes fill this missing functionality in Kubernetes. They introduce new
1616

1717
## How does Argo Rollouts enable traffic management?
1818

19-
Argo Rollouts enables traffic management by manipulating the Service Mesh resources to match the intent of the Rollout. Argo Rollouts currently supports the following service meshes:
19+
Argo Rollouts enables traffic management by manipulating the Service Mesh resources to match the intent of the Rollout. Argo Rollouts currently supports the following traffic providers:
2020

2121
- [AWS ALB Ingress Controller](alb.md)
2222
- [Ambassador Edge Stack](ambassador.md)
2323
- [Apache APISIX](apisix.md)
2424
- [Google Cloud](google-cloud.md)
2525
- [Gateway API](plugins.md)
2626
- [Istio](istio.md)
27+
- [Kong Ingress](kong.md)
2728
- [Nginx Ingress Controller](nginx.md)
2829
- [Service Mesh Interface (SMI)](smi.md)
2930
- [Traefik Proxy](traefik.md)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Kong Ingress
2+
3+
With the introduction of the Kubernetes Gateway API it is now possible to use Argo Rollouts with all compliant implementations that support it. The integration is available with the [Argo Rollouts Gateway API plugin](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/) currently hosted in Argo Labs.
4+
5+
Useful resources:
6+
7+
* [The Gateway API specification](https://gateway-api.sigs.k8s.io/)
8+
* [Support of the Gateway API in Kong](https://docs.konghq.com/kubernetes-ingress-controller/latest/concepts/gateway-api/)
9+
* [Argo Rollouts Plugin capabilities](../plugins/)
10+
* [Plugin for the Gateway API](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi)
11+
12+
The process involves the following steps:
13+
14+
1. Installing the Gateway API CRDs in your cluster
15+
1. Installing Kong and enabling the Gateway API support feature
16+
1. Creating a GatewayClass and Gateway resources
17+
1. Installing Argo Rollouts + gateway API plugin in the cluster
18+
1. Defining a Rollout that takes advantage of the plugin
19+
20+
For a full application that includes all manifests see the [plugin example](https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/tree/main/examples/kong).
21+
22+

docs/getting-started/appmesh/index.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@ respectively. In addition, there is a virtual-service named `rollout-demo-vsvc`
5757
virtual-router CR named `rollout-demo-vrouter`. This virtual-router need have at least one route with action to forward
5858
traffic to the canary and stable virtual-nodes. Initially weight for canary is set to 0% while for stable it is 100%.
5959
During rollout, controller will modify the weights on route(s) based on the configuraiton defined in
60-
`steps[N].setWeight`.
60+
`steps[N].setWeight`.
61+
62+
The canary and stable services are configured to be headless. This is necessary to allow App Mesh to properly handle
63+
conneciton pooling as pods are reassigned from canary to stable.
6164

6265
To summarize, run the following commands to deploy a service:
6366

@@ -69,8 +72,8 @@ To summarize, run the following commands to deploy a service:
6972
* A rollout
7073

7174
```shell
72-
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/appmesh/canary-service.yaml
73-
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/docs/getting-started/appmesh/canary-rollout.yaml
75+
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/examples/appmesh/canary-service.yaml
76+
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/master/examples/appmesh/canary-rollout.yaml
7477
```
7578
## 2. Verify service
7679

examples/appmesh/canary-service.yaml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ metadata:
3939
name: my-svc-canary
4040
namespace: argo-examples
4141
spec:
42+
clusterIP: None
4243
ports:
4344
- port: 80
4445
targetPort: http
@@ -55,6 +56,7 @@ metadata:
5556
name: my-svc-stable
5657
namespace: argo-examples
5758
spec:
59+
clusterIP: None
5860
ports:
5961
- port: 80
6062
targetPort: http
@@ -114,11 +116,12 @@ spec:
114116
rollouts-pod-template-hash: canary-tbd
115117
listeners:
116118
- portMapping:
117-
port: 80
119+
port: 8080
118120
protocol: http
119121
serviceDiscovery:
120122
dns:
121123
hostname: my-svc-canary.argo-examples.svc.cluster.local
124+
responseType: ENDPOINTS
122125

123126
---
124127
apiVersion: appmesh.k8s.aws/v1beta2
@@ -133,11 +136,12 @@ spec:
133136
rollouts-pod-template-hash: stable-tbd
134137
listeners:
135138
- portMapping:
136-
port: 80
139+
port: 8080
137140
protocol: http
138141
serviceDiscovery:
139142
dns:
140143
hostname: my-svc-stable.argo-examples.svc.cluster.local
144+
responseType: ENDPOINTS
141145

142146
---
143147
apiVersion: appmesh.k8s.aws/v1beta2
@@ -176,8 +180,8 @@ spec:
176180
containers:
177181
- name: wrk
178182
image: argoproj/load-tester:latest
179-
command:
183+
command:
180184
- /bin/sh
181-
- -c
185+
- -c
182186
- -x
183187
- "while true; do wrk -t10 -c40 -d2m -s report.lua http://my-svc.argo-examples/color; jq -e '.errors_ratio <= 0.35 and .latency_avg_ms < 100' report.json; done"

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ require (
1717
github.com/golang/mock v1.6.0
1818
github.com/golang/protobuf v1.5.3
1919
github.com/grpc-ecosystem/grpc-gateway v1.16.0
20-
github.com/hashicorp/go-plugin v1.4.9
20+
github.com/hashicorp/go-plugin v1.4.10
2121
github.com/influxdata/influxdb-client-go/v2 v2.12.3
2222
github.com/juju/ansiterm v1.0.0
2323
github.com/machinebox/graphql v0.2.2
@@ -29,11 +29,11 @@ require (
2929
github.com/prometheus/common v0.42.0
3030
github.com/prometheus/common/sigv4 v0.1.0
3131
github.com/servicemeshinterface/smi-sdk-go v0.5.0
32-
github.com/sirupsen/logrus v1.9.2
32+
github.com/sirupsen/logrus v1.9.3
3333
github.com/soheilhy/cmux v0.1.5
3434
github.com/spaceapegames/go-wavefront v1.8.1
3535
github.com/spf13/cobra v1.7.0
36-
github.com/stretchr/testify v1.8.3
36+
github.com/stretchr/testify v1.8.4
3737
github.com/tj/assert v0.0.3
3838
github.com/valyala/fasttemplate v1.2.2
3939
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,8 @@ github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrj
397397
github.com/hashicorp/go-hclog v0.14.1 h1:nQcJDQwIAGnmoUWp8ubocEX40cCml/17YkF6csQLReU=
398398
github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
399399
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
400-
github.com/hashicorp/go-plugin v1.4.9 h1:ESiK220/qE0aGxWdzKIvRH69iLiuN/PjoLTm69RoWtU=
401-
github.com/hashicorp/go-plugin v1.4.9/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s=
400+
github.com/hashicorp/go-plugin v1.4.10 h1:xUbmA4jC6Dq163/fWcp8P3JuHilrHHMLNRxzGQJ9hNk=
401+
github.com/hashicorp/go-plugin v1.4.10/go.mod h1:6/1TEzT0eQznvI/gV2CM29DLSkAK/e58mUWKVsPaph0=
402402
github.com/hashicorp/go-retryablehttp v0.5.1/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
403403
github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ=
404404
github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
@@ -632,8 +632,8 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
632632
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
633633
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
634634
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
635-
github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y=
636-
github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
635+
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
636+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
637637
github.com/slack-go/slack v0.12.1 h1:X97b9g2hnITDtNsNe5GkGx6O2/Sz/uC20ejRZN6QxOw=
638638
github.com/slack-go/slack v0.12.1/go.mod h1:hlGi5oXA+Gt+yWTPP0plCdRKmjsDxecdHxYQdlMQKOw=
639639
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
@@ -672,8 +672,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
672672
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
673673
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
674674
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
675-
github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
676-
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
675+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
676+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
677677
github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk=
678678
github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk=
679679
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 h1:nrZ3ySNYwJbSpD6ce9duiP+QkD3JuLCcWkdaehUS/3Y=

0 commit comments

Comments
 (0)