diff --git a/artifacts/appmesh/ingress.yaml b/artifacts/appmesh/ingress.yaml index 188717d2b..b4d69eb25 100644 --- a/artifacts/appmesh/ingress.yaml +++ b/artifacts/appmesh/ingress.yaml @@ -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 @@ -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: @@ -91,7 +95,7 @@ spec: terminationGracePeriodSeconds: 30 containers: - name: ingress - image: "envoyproxy/envoy-alpine:d920944aed67425f91fc203774aebce9609e5d9a" + image: "envoyproxy/envoy-alpine:v1.11.1" securityContext: capabilities: drop: @@ -99,25 +103,20 @@ spec: 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 @@ -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 diff --git a/docs/gitbook/install/flagger-install-on-eks-appmesh.md b/docs/gitbook/install/flagger-install-on-eks-appmesh.md index b8bf41afa..c2326a99a 100644 --- a/docs/gitbook/install/flagger-install-on-eks-appmesh.md +++ b/docs/gitbook/install/flagger-install-on-eks-appmesh.md @@ -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). @@ -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 ``` @@ -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: @@ -125,7 +137,7 @@ Status: Type: MeshActive ``` -### Install Flagger and Grafana +### Install Flagger, Prometheus and Grafana Add Flagger Helm repository: @@ -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 diff --git a/docs/gitbook/usage/appmesh-progressive-delivery.md b/docs/gitbook/usage/appmesh-progressive-delivery.md index 4727be49d..92263b21d 100644 --- a/docs/gitbook/usage/appmesh-progressive-delivery.md +++ b/docs/gitbook/usage/appmesh-progressive-delivery.md @@ -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