Skip to content

Commit

Permalink
Merge branch 'master' into ecs-fargate-secret-json-field
Browse files Browse the repository at this point in the history
  • Loading branch information
SoManyHs authored Nov 13, 2020
2 parents ddc99ec + 3d4df34 commit 7ec4157
Show file tree
Hide file tree
Showing 105 changed files with 6,191 additions and 1,115 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/issue-label-assign.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
{"keywords":["[@aws-cdk/aws-amplify]","[aws-amplify]","[amplify]"],"labels":["@aws-cdk/aws-amplify"],"assignees":["MrArnoldPalmer"]},
{"keywords":["[@aws-cdk/aws-apigateway]","[aws-apigateway]","[apigateway]","[api gateway]","[api-gateway]"],"labels":["@aws-cdk/aws-apigateway"],"assignees":["nija-at"]},
{"keywords":["[@aws-cdk/aws-apigatewayv2]","[aws-apigatewayv2]","[apigatewayv2]","[apigateway v2]","[api-gateway-v2]"],"labels":["@aws-cdk/aws-apigatewayv2"],"assignees":["nija-at"]},
{"keywords":["[@aws-cdk/aws-apigatewayv2-integrations]","[aws-apigatewayv2-integrations]","[apigatewayv2-integrations]","[apigateway v2 integrations]","[api-gateway-v2-integrations]"],"labels":["@aws-cdk/aws-apigatewayv2-integrations"],"assignees":["nija-at"]},
{"keywords":["[@aws-cdk/aws-appconfig]","[aws-appconfig]","[appconfig]","[app config]","[app-config]"],"labels":["@aws-cdk/aws-appconfig"],"assignees":["MrArnoldPalmer"]},
{"keywords":["[@aws-cdk/aws-appflow]","[aws-appflow]","[appflow]","[app flow]","[app-flow]"],"labels":["@aws-cdk/aws-appflow"],"assignees":["skinny85"]},
{"keywords":["[@aws-cdk/aws-applicationautoscaling]","[aws-applicationautoscaling]","[applicationautoscaling]","[application autoscaling]","[application-autoscaling]"],"labels":["@aws-cdk/aws-applicationautoscaling"],"assignees":["NetaNir"]},
Expand Down Expand Up @@ -102,7 +103,9 @@ jobs:
{"keywords":["[@aws-cdk/aws-iot1click]","[aws-iot1click]","[iot1click]","[iot 1click]"],"labels":["@aws-cdk/aws-iot1click"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-iotanalytics]","[aws-iotanalytics]","[iotanalytics]","[iot analytics]","[iot-analytics]"],"labels":["@aws-cdk/aws-iotanalytics"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-iotevents]","[aws-iotevents]","[iotevents]","[iot events]","[iot-events]"],"labels":["@aws-cdk/aws-iotevents"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-iotsitewise]","[aws-iotsitewise]","[iotsitewise]","[iot sitewise]","[iot-sitewise]","[iot-site-wise]",[iot site wise]"],"labels":["@aws-cdk/aws-iotsitewise"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-iotthingsgraph]","[aws-iotthingsgraph]","[iotthingsgraph]","[iot things graph]","[iot-things-graph]"],"labels":["@aws-cdk/aws-iotthingsgraph"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-ivs]","[aws-ivs]","[Interactive Video Service]","[ivs]"],"labels":["@aws-cdk/aws-ivs"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-kendra]","[aws-kendra]","[kendra]"],"labels":["@aws-cdk/aws-kendra"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-kinesis]","[aws-kinesis]","[kinesis]"],"labels":["@aws-cdk/aws-kinesis"],"assignees":["iliapolo"]},
{"keywords":["[@aws-cdk/aws-kinesisanalytics]","[aws-kinesisanalytics]","[kinesisanalytics]","[kinesis analytics]","[kinesis-analytics]"],"labels":["@aws-cdk/aws-kinesisanalytics"],"assignees":["iliapolo"]},
Expand All @@ -120,6 +123,7 @@ jobs:
{"keywords":["[@aws-cdk/aws-mediaconvert]","[aws-mediaconvert]","[mediaconvert]","[media convert]","[media-convert]"],"labels":["@aws-cdk/aws-mediaconvert"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-medialive]","[aws-medialive]","[medialive]","[media live]","[media-live]"],"labels":["@aws-cdk/aws-medialive"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-mediastore]","[aws-mediastore]","[mediastore]","[media store]","[media-store]"],"labels":["@aws-cdk/aws-mediastore"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-mediapackage]","[aws-mediapackage]","[mediapackage]","[media package]","[media-package]"],"labels":["@aws-cdk/aws-mediapackage"],"assignees":["shivlaks"]},
{"keywords":["[@aws-cdk/aws-msk]","[aws-msk]","[msk]"],"labels":["@aws-cdk/aws-msk"],"assignees":["iliapolo"]},
{"keywords":["[@aws-cdk/aws-neptune]","[aws-neptune]","[neptune]"],"labels":["@aws-cdk/aws-neptune"],"assignees":["njlynch"]},
{"keywords":["[@aws-cdk/aws-networkmanager]","[aws-networkmanager]","[networkmanager]","[network manager]","[network-manager]"],"labels":["@aws-cdk/aws-networkmanager"],"assignees":["shivlaks"]},
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file. See [standa
### ⚠ BREAKING CHANGES TO EXPERIMENTAL FEATURES

* **apigatewayv2:** `LambdaProxyIntegration` and `HttpProxyIntegration`
classes have moved to the `@aws-cdk/aws-apigatewayv2-integration` module.
classes have moved to the `@aws-cdk/aws-apigatewayv2-integrations` module.
* **appmesh:** VirtualRouter's Listeners are no longer a struct; use the static factory methods of the `VirtualNodeListener` class to obtain instances of them
* **appmesh:** VirtualRouter accepts a list of listeners instead of a single listener
* **appmesh:** all `fromResourceName()` methods in the AppMesh module have been replaced with `fromResourceAttributes()`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
<!--BEGIN STABILITY BANNER-->
---

![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)

> The APIs of higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.
![cdk-constructs: Stable](https://img.shields.io/badge/cdk--constructs-stable-success.svg?style=for-the-badge)

---
<!--END STABILITY BANNER-->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,17 +259,28 @@ export class AppMeshExtension extends ServiceExtension {
throw new Error('You must add a CloudMap namespace to the ECS cluster in order to use the AppMesh extension');
}

function addListener(protocol: appmesh.Protocol, port: number): appmesh.VirtualNodeListener {
switch (protocol) {
case appmesh.Protocol.HTTP :
return appmesh.VirtualNodeListener.http({ port });

case appmesh.Protocol.HTTP2 :
return appmesh.VirtualNodeListener.http2({ port });

case appmesh.Protocol.GRPC :
return appmesh.VirtualNodeListener.grpc({ port });

case appmesh.Protocol.TCP :
return appmesh.VirtualNodeListener.tcp({ port });
}
}

// Create a virtual node for the name service
this.virtualNode = new appmesh.VirtualNode(this.scope, `${this.parentService.id}-virtual-node`, {
mesh: this.mesh,
virtualNodeName: this.parentService.id,
cloudMapService: service.cloudMapService,
listener: {
portMapping: {
port: containerextension.trafficPort,
protocol: this.protocol,
},
},
listeners: [addListener(this.protocol, containerextension.trafficPort)],
});

// Create a virtual router for this service. This allows for retries
Expand Down Expand Up @@ -326,7 +337,7 @@ export class AppMeshExtension extends ServiceExtension {
// Next update the app mesh config so that the local Envoy
// proxy on this service knows how to route traffic to
// nodes from the other service.
this.virtualNode.addBackends(otherAppMesh.virtualService);
this.virtualNode.addBackend(otherAppMesh.virtualService);
}

private virtualRouterListener(port: number): appmesh.VirtualRouterListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,6 @@
"awscdkio": {
"announce": false
},
"maturity": "experimental",
"stability": "experimental"
}
"maturity": "stable",
"stability": "stable"
}
Original file line number Diff line number Diff line change
Expand Up @@ -274,4 +274,9 @@ export enum ServiceNamespace {
* Comprehend
*/
COMPREHEND = 'comprehend',

/**
* Kafka
*/
KAFKA = 'kafka',
}
25 changes: 11 additions & 14 deletions packages/@aws-cdk/aws-appmesh/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,8 @@ const service = namespace.createService('Svc');

const node = mesh.addVirtualNode('virtual-node', {
cloudMapService: service,
listener: {
portMapping: {
port: 8081,
protocol: Protocol.HTTP,
},
listeners: [appmesh.VirtualNodeListener.httpNodeListener({
port: 8081,
healthCheck: {
healthyThreshold: 3,
interval: Duration.seconds(5), // minimum
Expand All @@ -153,9 +150,9 @@ const node = mesh.addVirtualNode('virtual-node', {
timeout: Duration.seconds(2), // minimum
unhealthyThreshold: 2,
},
},
})],
accessLog: appmesh.AccessLog.fromFilePath('/dev/stdout'),
})
});
```

Create a `VirtualNode` with the the constructor and add tags.
Expand All @@ -164,11 +161,8 @@ Create a `VirtualNode` with the the constructor and add tags.
const node = new VirtualNode(this, 'node', {
mesh,
cloudMapService: service,
listener: {
portMapping: {
port: 8080,
protocol: Protocol.HTTP,
},
listeners: [appmesh.VirtualNodeListener.httpNodeListener({
port: 8080,
healthCheck: {
healthyThreshold: 3,
interval: Duration.seconds(5), // min
Expand All @@ -177,15 +171,18 @@ const node = new VirtualNode(this, 'node', {
protocol: Protocol.HTTP,
timeout: Duration.seconds(2), // min
unhealthyThreshold: 2,
},
timeout: {
idle: cdk.Duration.seconds(5),
},
},
})],
accessLog: appmesh.AccessLog.fromFilePath('/dev/stdout'),
});

cdk.Tag.add(node, 'Environment', 'Dev');
```

The listeners property can be left blank and added later with the `node.addListeners()` method. The `healthcheck` property is optional but if specifying a listener, the `portMappings` must contain at least one property.
The `listeners` property can be left blank and added later with the `node.addListener()` method. The `healthcheck` and `timeout` properties are optional but if specifying a listener, the `port` must be added.

## Adding a Route

Expand Down
1 change: 1 addition & 0 deletions packages/@aws-cdk/aws-appmesh/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export * from './virtual-node';
export * from './virtual-router';
export * from './virtual-router-listener';
export * from './virtual-service';
export * from './virtual-node-listener';
export * from './virtual-gateway';
export * from './virtual-gateway-listener';
export * from './gateway-route';
Expand Down
38 changes: 0 additions & 38 deletions packages/@aws-cdk/aws-appmesh/lib/shared-interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,44 +68,6 @@ export interface HealthCheck {
readonly unhealthyThreshold?: number;
}

/**
* Port mappings for resources that require these attributes, such as VirtualNodes and Routes
*/
export interface PortMapping {
/**
* Port mapped to the VirtualNode / Route
*
* @default 8080
*/
readonly port: number;

/**
* Protocol for the VirtualNode / Route, only GRPC, HTTP, HTTP2, or TCP is supported
*
* @default HTTP
*/
readonly protocol: Protocol;
}

/**
* Represents the properties needed to define healthy and active listeners for nodes
*/
export interface VirtualNodeListener {
/**
* Array of PortMappingProps for the listener
*
* @default - HTTP port 8080
*/
readonly portMapping?: PortMapping;

/**
* Health checking strategy upstream nodes should use when communicating with the listener
*
* @default - no healthcheck
*/
readonly healthCheck?: HealthCheck;
}

/**
* All Properties for Envoy Access logs for mesh endpoints
*/
Expand Down
Loading

0 comments on commit 7ec4157

Please sign in to comment.