Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AWS App Mesh integration #107

Merged
merged 16 commits into from
Mar 20, 2019
Merged

AWS App Mesh integration #107

merged 16 commits into from
Mar 20, 2019

Conversation

stefanprodan
Copy link
Member

@stefanprodan stefanprodan commented Mar 16, 2019

Add suport for AWS EKS App Mesh

  • create/update App Mesh virtual nodes and virtual services
  • implement canary rollout with progressive traffic weight (App Mesh has no A/B testing support)
  • implement HTTP success rate metric check based on Envoy stats
  • add service mesh provider flag -mesh-provider=appmesh

Example:

apiVersion: flagger.app/v1alpha3
kind: Canary
metadata:
  name: frontend
spec:
  targetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: frontend
  service:
    port: 9898
    # App Mesh reference
    meshName: global.appmesh-system
  canaryAnalysis:
    interval: 10s
    threshold: 10
    maxWeight: 50
    stepWeight: 5
    # App Mesh Prometheus checks
    metrics:
    - name: envoy_cluster_upstream_rq
      # minimum req success rate (non 5xx responses)
      # percentage (0-100)
      threshold: 99
      interval: 1m

Test infra: https://github.com/stefanprodan/appmesh-eks
Fix: #97

@codecov-io
Copy link

codecov-io commented Mar 16, 2019

Codecov Report

Merging #107 into master will increase coverage by 0.77%.
The diff coverage is 61.69%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #107      +/-   ##
==========================================
+ Coverage   56.57%   57.34%   +0.77%     
==========================================
  Files          16       17       +1     
  Lines        1810     2049     +239     
==========================================
+ Hits         1024     1175     +151     
- Misses        627      698      +71     
- Partials      159      176      +17
Impacted Files Coverage Δ
pkg/controller/observer.go 43.83% <0%> (-9.5%) ⬇️
pkg/router/factory.go 0% <0%> (ø) ⬆️
pkg/controller/controller.go 6.96% <0%> (-0.05%) ⬇️
pkg/controller/scheduler.go 37.61% <12.5%> (-2.02%) ⬇️
pkg/controller/deployer.go 59.11% <50%> (+0.66%) ⬆️
pkg/router/appmesh.go 78.01% <78.01%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 802c087...d7e111b. Read the comment docs.

@stefanprodan stefanprodan changed the title [WIP] AWS App Mesh integration AWS App Mesh integration Mar 19, 2019
@stefanprodan stefanprodan merged commit 436656e into master Mar 20, 2019
@stefanprodan stefanprodan deleted the appmesh branch March 20, 2019 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants