Skip to content

Commit

Permalink
Merge pull request #319 from weaveworks/appmesh-docs
Browse files Browse the repository at this point in the history
Update App Mesh install docs
  • Loading branch information
stefanprodan authored Oct 3, 2019
2 parents e3801cb + 6b0856a commit 434acbb
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 45 deletions.
37 changes: 16 additions & 21 deletions artifacts/appmesh/ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ data:
- address:
socket_address:
address: 0.0.0.0
port_value: 80
port_value: 8080
filter_chains:
- filters:
- name: envoy.http_connection_manager
Expand Down Expand Up @@ -48,11 +48,15 @@ data:
connect_timeout: 0.30s
type: strict_dns
lb_policy: round_robin
http2_protocol_options: {}
hosts:
- socket_address:
address: podinfo.test
port_value: 9898
load_assignment:
cluster_name: podinfo
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: podinfo.test
port_value: 9898
admin:
access_log_path: /dev/null
address:
Expand Down Expand Up @@ -91,33 +95,28 @@ spec:
terminationGracePeriodSeconds: 30
containers:
- name: ingress
image: "envoyproxy/envoy-alpine:d920944aed67425f91fc203774aebce9609e5d9a"
image: "envoyproxy/envoy-alpine:v1.11.1"
securityContext:
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICE
command:
- /usr/bin/dumb-init
- --
args:
- /usr/local/bin/envoy
- --base-id 30
- --v2-config-only
args:
- -l
- $loglevel
- -c
- /config/envoy.yaml
- --base-id
- "1234"
ports:
- name: admin
containerPort: 9999
protocol: TCP
- name: http
containerPort: 80
protocol: TCP
- name: https
containerPort: 443
containerPort: 8080
protocol: TCP
livenessProbe:
initialDelaySeconds: 5
Expand Down Expand Up @@ -151,11 +150,7 @@ spec:
- protocol: TCP
name: http
port: 80
targetPort: 80
- protocol: TCP
name: https
port: 443
targetPort: 443
targetPort: http
type: LoadBalancer
---
apiVersion: appmesh.k8s.aws/v1beta1
Expand Down
56 changes: 33 additions & 23 deletions docs/gitbook/install/flagger-install-on-eks-appmesh.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,6 @@ The App Mesh integration with EKS is made out of the following components:
* Admission controller - injects the Envoy sidecar and assigns Kubernetes pods to App Mesh virtual nodes
* Metrics server - Prometheus instance that collects and stores Envoy's metrics

Prerequisites:

* jq
* homebrew
* openssl
* kubectl
* AWS CLI (default region us-west-2)

### Create a Kubernetes cluster

In order to create an EKS cluster you can use [eksctl](https://eksctl.io).
Expand All @@ -40,6 +32,8 @@ Create an EKS cluster:
```bash
eksctl create cluster --name=appmesh \
--region=us-west-2 \
--nodes 3 \
--node-volume-size=120 \
--appmesh-access
```

Expand Down Expand Up @@ -98,21 +92,39 @@ kubectl -n kube-system top pods

### Install the App Mesh components

Run the App Mesh installer:
Create the `appmesh-system` namespace:

```bash
curl -fsSL https://git.io/get-app-mesh-eks.sh | bash -
```sh
kubectl create ns appmesh-system
```

Apply the App Mesh CRDs:

```sh
kubectl apply -f https://raw.githubusercontent.com/aws/eks-charts/master/stable/appmesh-controller/crds/crds.yaml
```

The installer does the following:
Add the EKS repository to Helm:

```sh
helm repo add eks https://aws.github.io/eks-charts
```

* creates the `appmesh-system` namespace
* generates a certificate signed by Kubernetes CA
* registers the App Mesh mutating webhook
* deploys the App Mesh webhook in `appmesh-system` namespace
* deploys the App Mesh CRDs
* deploys the App Mesh controller in `appmesh-system` namespace
* creates a mesh called `global`
Install the App Mesh CRD controller:

```sh
helm upgrade -i appmesh-controller eks/appmesh-controller \
--wait --namespace appmesh-system
```

Install the App Mesh admission controller:

```sh
helm upgrade -i appmesh-inject eks/appmesh-inject \
--wait --namespace appmesh-system \
--set mesh.create=true \
--set mesh.name=global
```

Verify that the global mesh is active:

Expand All @@ -125,7 +137,7 @@ Status:
Type: MeshActive
```

### Install Flagger and Grafana
### Install Flagger, Prometheus and Grafana

Add Flagger Helm repository:

Expand Down Expand Up @@ -156,10 +168,8 @@ You can enable **Slack** notifications with:

```bash
helm upgrade -i flagger flagger/flagger \
--reuse-values \
--namespace=appmesh-system \
--set crd.create=false \
--set meshProvider=appmesh \
--set metricsServer=http://prometheus.appmesh:9090 \
--set slack.url=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK \
--set slack.channel=general \
--set slack.user=flagger
Expand Down
2 changes: 1 addition & 1 deletion docs/gitbook/usage/appmesh-progressive-delivery.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ The App Mesh specific settings are:
```yaml
service:
port: 9898
meshName: global.appmesh-system
meshName: global
backends:
- backend1.test
- backend2.test
Expand Down

0 comments on commit 434acbb

Please sign in to comment.