Skip to content

Commit

Permalink
Added support to set retry-policy on App Mesh routes
Browse files Browse the repository at this point in the history
A retry policy enables clients to protect themselves from intermittent
network failures or server-side failures. With retry policy definition
user can control the retry logic used by Envoy proxies.

This change includes

1. Update aws-go-sdk v1.23.18
2. Update VirtualService CRD definition to capture retry-policy via
3. Update controller to reconcile retry-policy with App Mesh resource
  • Loading branch information
kiranmeduri committed Sep 17, 2019
1 parent b701ef4 commit a0935b4
Show file tree
Hide file tree
Showing 13 changed files with 286 additions and 389 deletions.
17 changes: 17 additions & 0 deletions deploy/all.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,23 @@ spec:
type: string
weight:
type: integer
retryPolicy:
type: object
properties:
perRetryTimeoutMillis:
type: integer
maxRetries:
type: integer
httpRetryEvents:
type: array
items:
type: string
tcpRetryEvents:
type: array
items:
type: string
enum:
- 'connection-error'
tcp:
type: object
properties:
Expand Down
39 changes: 1 addition & 38 deletions deploy/controller-deployment.yaml.template
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: appmesh-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
Expand All @@ -27,36 +22,4 @@ spec:
image: ${AWS_ACCOUNT}.dkr.ecr.${AWS_REGION}.amazonaws.com/amazon/app-mesh-controller:latest
imagePullPolicy: Always
ports:
- containerPort: 10555
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: app-mesh-sa
namespace: appmesh-system
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: app-mesh-controller
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["*"]
- apiGroups: ["appmesh.k8s.aws"]
resources: ["meshes", "virtualnodes", "virtualservices", "meshes/status", "virtualnodes/status", "virtualservices/status"]
verbs: ["*"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: app-mesh-controller-binding
subjects:
- kind: ServiceAccount
name: app-mesh-sa
namespace: appmesh-system
apiGroup: ""
roleRef:
kind: ClusterRole
name: app-mesh-controller
apiGroup: ""
- containerPort: 10555
60 changes: 0 additions & 60 deletions deploy/mesh-definition.yaml

This file was deleted.

138 changes: 0 additions & 138 deletions deploy/virtual-node-definition.yaml

This file was deleted.

Loading

0 comments on commit a0935b4

Please sign in to comment.