{"id":20882036,"url":"https://github.com/weaveworks/eks-appmesh-profile","last_synced_at":"2025-05-12T17:31:18.908Z","repository":{"id":54612837,"uuid":"212549431","full_name":"weaveworks/eks-appmesh-profile","owner":"weaveworks","description":"AWS App Mesh eksctl profile","archived":false,"fork":false,"pushed_at":"2022-10-13T13:39:56.000Z","size":20383,"stargazers_count":10,"open_issues_count":2,"forks_count":9,"subscribers_count":44,"default_branch":"master","last_synced_at":"2024-05-02T00:55:20.990Z","etag":null,"topics":["aws-app-mesh","eksctl","flagger","fluxcd","gitops","kubernetes"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weaveworks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2019-10-03T10:08:59.000Z","updated_at":"2023-03-12T09:35:37.000Z","dependencies_parsed_at":"2022-08-13T21:31:13.819Z","dependency_job_id":null,"html_url":"https://github.com/weaveworks/eks-appmesh-profile","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Feks-appmesh-profile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Feks-appmesh-profile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Feks-appmesh-profile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveworks%2Feks-appmesh-profile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weaveworks","download_url":"https://codeload.github.com/weaveworks/eks-appmesh-profile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225144724,"owners_count":17427855,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-app-mesh","eksctl","flagger","fluxcd","gitops","kubernetes"],"created_at":"2024-11-18T07:28:43.448Z","updated_at":"2024-11-18T07:28:44.211Z","avatar_url":"https://github.com/weaveworks.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# eks-appmesh-profile\n\nThis repository is an [eksctl profile](https://eksctl.io/usage/experimental/gitops-flux/)\nfor deploying the App Mesh Kubernetes [components](https://github.com/aws/eks-charts)\nalong with monitoring and [progressive delivery](https://flagger.app) tooling on an EKS cluster. \n\n## Install\n\nCreate an EKS cluster named `appmesh`:\n\n```sh\neksctl create cluster --name=appmesh \\\n--region=us-west-2 \\\n--nodes 2 \\\n--node-volume-size=120 \\\n--appmesh-access\n```\n\nThe above command will create a two nodes cluster with App Mesh IAM policy attached to the EKS node instance role.\n\nCreate a repository on GitHub and run the `enable repo` and `enable profile` commands\n(replace `GHUSER` and `GHREPO` values with your own):\n\n```sh\nexport GHUSER=username\nexport GHREPO=repo\nexport EKSCTL_EXPERIMENTAL=true\n\neksctl enable repo \\\n--cluster=appmesh \\\n--region=us-west-2 \\\n--git-url=git@github.com:${GHUSER}/${GHREPO} \\\n--git-user=${GHUSER} \\\n--git-email=${GHUSER}@users.noreply.github.com\n```\n\nThe command `eksctl enable repo` takes an existing EKS cluster and an empty repository \nand sets up a GitOps pipeline.\n\nAfter the command finishes installing [Flux](https://github.com/fluxcd/flux) and [Helm Operator](https://github.com/fluxcd/flux),\nyou will be asked to add Flux's deploy key to your GitHub repository.\nOnce that is done, Flux will be able to pick up changes in the repository and deploy them to the cluster.\n\n```sh\neksctl enable profile appmesh \\\n--cluster=appmesh \\\n--region=us-west-2 \\\n--git-url=git@github.com:${GHUSER}/${GHREPO} \\\n--git-user=fluxcd \\\n--git-email=${GHUSER}@users.noreply.github.com\n```\n\nThe command `eksctl enable profile appmesh` installs the App Mesh control plane on this cluster,\nand adds its manifests to the configured repository.\n\nList the installed components:\n\n```\n$ kubectl get helmreleases --all-namespaces\n\nNAMESPACE        NAME                 RELEASE              STATUS     MESSAGE                  AGE\nappmesh-system   appmesh-controller   appmesh-controller   DEPLOYED   helm install succeeded   1m\nappmesh-system   appmesh-inject       appmesh-inject       DEPLOYED   helm install succeeded   1m\nappmesh-system   appmesh-prometheus   appmesh-prometheus   DEPLOYED   helm install succeeded   1m\nappmesh-system   appmesh-grafana      appmesh-grafana      DEPLOYED   helm install succeeded   1m\nappmesh-system   flagger              flagger              DEPLOYED   helm install succeeded   1m\nkube-system      metrics-server       metrics-server       DEPLOYED   helm install succeeded   1m\n```\n\nVerify that the mesh has been created and it's active:\n\n```\n$ kubectl describe mesh\n\nName:         appmesh\nAPI Version:  appmesh.k8s.aws/v1beta1\nKind:         Mesh\nSpec:\n  Service Discovery Type:  dns\nStatus:\n  Mesh Condition:\n    Status: True\n    Type:   MeshActive\n```\n\nAccess the Grafana dashboards with:\n\n```sh\nkubectl -n appmesh-system port-forward svc/appmesh-grafana 3000:3000\n```\n\nOpen your browser and navigate to `localhost:3000`.\n\n![AWS App Mesh: Control Plane](https://user-images.githubusercontent.com/3797675/68316268-da565300-00c1-11ea-96b5-20634fed2c46.png)\n![AWS App Mesh: Data Plane](https://user-images.githubusercontent.com/3797675/68325902-0c23e580-00d3-11ea-8f2a-f10f972fe0ac.png)\n\n## Get in touch\n\n[Create an issue](https://github.com/weaveworks/eks-appmesh-profile/issues/new), or\nlogin to [Weave Community Slack (#eksctl)][slackchan] ([signup][slackjoin]).\n\n[slackjoin]: https://slack.weave.works/\n[slackchan]: https://weave-community.slack.com/messages/eksctl/\n\nWeaveworks follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a Weaveworks project maintainer, or Alexis Richardson (alexis@weave.works).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweaveworks%2Feks-appmesh-profile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweaveworks%2Feks-appmesh-profile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweaveworks%2Feks-appmesh-profile/lists"}