app-mesh | A secure Multi-Tenant, Cloud Native, Micro Service application management platform | Continuous Deployment library

 by   laoshanxi C++ Version: 2.1.2 License: MIT

kandi X-RAY | app-mesh Summary

app-mesh is a C++ library typically used in Devops, Continuous Deployment, Docker applications. app-mesh has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.
App Mesh is a Multi Tenant, Cloud Native, Micro Service application management platform, used to manage, schedule and monitor applications. Each app can be a specific micro service for service discover or normal app with replication, the app-mesh will guarantee all defined applications running on-time with defined behavior and resources requests. The platform can run as standalone or cluster mode, provide REST APIs, command-line and web-ui. App Mesh is similar with Kubernetes but much light weight, support both container app and native app.
    Support
      Quality
        Security
          License
            Reuse
            Support
              Quality
                Security
                  License
                    Reuse

                      kandi-support Support

                        summary
                        app-mesh has a low active ecosystem.
                        summary
                        It has 112 star(s) with 19 fork(s). There are 3 watchers for this library.
                        summary
                        There were 2 major release(s) in the last 6 months.
                        summary
                        There are 21 open issues and 128 have been closed. On average issues are closed in 164 days. There are no pull requests.
                        summary
                        It has a neutral sentiment in the developer community.
                        summary
                        The latest version of app-mesh is 2.1.2
                        app-mesh Support
                          Best in #Continuous Deployment
                            Average in #Continuous Deployment
                            app-mesh Support
                              Best in #Continuous Deployment
                                Average in #Continuous Deployment

                                  kandi-Quality Quality

                                    summary
                                    app-mesh has no bugs reported.
                                    app-mesh Quality
                                      Best in #Continuous Deployment
                                        Average in #Continuous Deployment
                                        app-mesh Quality
                                          Best in #Continuous Deployment
                                            Average in #Continuous Deployment

                                              kandi-Security Security

                                                summary
                                                app-mesh has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
                                                app-mesh Security
                                                  Best in #Continuous Deployment
                                                    Average in #Continuous Deployment
                                                    app-mesh Security
                                                      Best in #Continuous Deployment
                                                        Average in #Continuous Deployment

                                                          kandi-License License

                                                            summary
                                                            app-mesh is licensed under the MIT License. This license is Permissive.
                                                            summary
                                                            Permissive licenses have the least restrictions, and you can use them in most projects.
                                                            app-mesh License
                                                              Best in #Continuous Deployment
                                                                Average in #Continuous Deployment
                                                                app-mesh License
                                                                  Best in #Continuous Deployment
                                                                    Average in #Continuous Deployment

                                                                      kandi-Reuse Reuse

                                                                        summary
                                                                        app-mesh releases are available to install and integrate.
                                                                        summary
                                                                        Installation instructions are available. Examples and code snippets are not available.
                                                                        app-mesh Reuse
                                                                          Best in #Continuous Deployment
                                                                            Average in #Continuous Deployment
                                                                            app-mesh Reuse
                                                                              Best in #Continuous Deployment
                                                                                Average in #Continuous Deployment
                                                                                  Top functions reviewed by kandi - BETA
                                                                                  kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
                                                                                  Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here
                                                                                  Get all kandi verified functions for this library.
                                                                                  Get all kandi verified functions for this library.

                                                                                  app-mesh Key Features

                                                                                  Long running Short running Periodic long running Cron schedule. Extra init and cleanup commands Available time range in a day and more rich time options Environment variables Health check command to identify app health Pipe input string data to pass data to application Resource (memory & CPU) limitation (cgroup on Linux) to request resources Support Docker container app. ⚡️ JWT authentication for CLI and REST interface ⚡️ LDAP support ⚡️ Role based permission control SSL support (ECDH and secure ciphers) for REST http connection Multi-tenant support. ⚡️ Prometheus Exporter (build-in) ⚡️ Grafana Loki REST service with IPv4/IPv6 support. ⚡️ Consul micro-service cluster management. Collect host/app resource usage Remote run shell commands Download/Upload files interface Hot-update support systemctl reload appmesh Bash completion Reverse proxy Web GUI.

                                                                                  app-mesh Examples and Code Snippets

                                                                                  No Code Snippets are available at this moment for app-mesh.
                                                                                  Community Discussions

                                                                                  Trending Discussions on app-mesh

                                                                                  Simple front end application on EKS via AppMesh
                                                                                  chevron right
                                                                                  AppMesh policy is not available
                                                                                  chevron right

                                                                                  QUESTION

                                                                                  Simple front end application on EKS via AppMesh
                                                                                  Asked 2021-Apr-09 at 18:22

                                                                                  Kindly ask you to help to find out the problem with my configuration. It was done on the scope of AWS WorkShop example just rewrite on another HTTP container. Right now, after implementation of this, everything is up, but when going on NLB getting "no healthy upstream".

                                                                                  Have checked the logs, and see only 503 errors on my Gateway Ingress. Requests are not coming to my pod at all. Where I made mistake in my configuration?

                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: VirtualGateway
                                                                                  metadata:
                                                                                    name: ingress-gw
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    namespaceSelector:
                                                                                      matchLabels:
                                                                                        gateway: shared-gw
                                                                                    podSelector:
                                                                                      matchLabels:
                                                                                        app: ingress-gw
                                                                                    listeners:
                                                                                      - portMapping:
                                                                                          port: 8088
                                                                                          protocol: http
                                                                                    logging:
                                                                                      accessLog:
                                                                                        file:
                                                                                          path: /dev/stdout
                                                                                  ---
                                                                                  apiVersion: apps/v1
                                                                                  kind: Deployment
                                                                                  metadata:
                                                                                    name: httpd-echo-deployment
                                                                                    namespace: shared
                                                                                    labels:
                                                                                      app: httpd-echo1
                                                                                  spec:
                                                                                    replicas: 1
                                                                                    selector:
                                                                                      matchLabels:
                                                                                        app: httpd-echo1
                                                                                    template:
                                                                                      metadata:
                                                                                        labels:
                                                                                          app: httpd-echo1
                                                                                        annotations:
                                                                                          appmesh.k8s.aws/mesh: shared-mesh
                                                                                      spec:
                                                                                        containers:
                                                                                        - name: httpd
                                                                                          image: hashicorp/http-echo
                                                                                          args:
                                                                                            - "-text=test"
                                                                                          ports:
                                                                                          - containerPort: 5678
                                                                                  ---
                                                                                  apiVersion: v1
                                                                                  kind: Service
                                                                                  metadata:
                                                                                    namespace: shared
                                                                                    name: httpd-echo-service
                                                                                    labels:
                                                                                      app: httpd-echo1
                                                                                  spec:
                                                                                    ports:
                                                                                      - name: "http"
                                                                                        port: 5678
                                                                                        targetPort: 5678
                                                                                    selector:
                                                                                      app: httpd-echo1
                                                                                  ---
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: VirtualNode
                                                                                  metadata:
                                                                                    name: shared-virtual-node-1
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    podSelector:
                                                                                      matchLabels:
                                                                                        app: httpd-echo1
                                                                                    listeners:
                                                                                      - portMapping:
                                                                                          port: 5678
                                                                                          protocol: http
                                                                                        healthCheck:
                                                                                          protocol: http
                                                                                          path: '/'
                                                                                          healthyThreshold: 5
                                                                                          unhealthyThreshold: 5
                                                                                          timeoutMillis: 2000
                                                                                          intervalMillis: 5000
                                                                                    serviceDiscovery:
                                                                                      dns:
                                                                                        hostname: httpd-echo1.test.com
                                                                                    logging:
                                                                                      accessLog:
                                                                                        file:
                                                                                          path: /dev/stdout
                                                                                  ---
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: VirtualService
                                                                                  metadata:
                                                                                    name: shared-virtual-service-1
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    awsName: httpd-echo1.test.com
                                                                                    provider:
                                                                                      virtualNode:
                                                                                        virtualNodeRef:
                                                                                          name: shared-virtual-node-1
                                                                                  ---
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: GatewayRoute
                                                                                  metadata:
                                                                                    name: shared-gw-route-1
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    httpRoute:
                                                                                      match:
                                                                                        prefix: "/"
                                                                                      action:
                                                                                        target:
                                                                                          virtualService:
                                                                                            virtualServiceRef:
                                                                                              name: shared-virtual-service-1
                                                                                  ---
                                                                                  apiVersion: v1
                                                                                  kind: Service
                                                                                  metadata:
                                                                                    name: ingress-gw
                                                                                    namespace: shared
                                                                                    annotations:
                                                                                      service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
                                                                                      service.beta.kubernetes.io/aws-load-balancer-subnets : subnet-1,subnet-2,subnet-3
                                                                                      service.beta.kubernetes.io/aws-load-balancer-internal: "false"
                                                                                  spec:
                                                                                    type: LoadBalancer
                                                                                    ports:
                                                                                      - port: 80
                                                                                        targetPort: 8088
                                                                                        name: http
                                                                                    selector:
                                                                                      app: ingress-gw
                                                                                  ---
                                                                                  apiVersion: apps/v1
                                                                                  kind: Deployment
                                                                                  metadata:
                                                                                    name: ingress-gw
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    replicas: 1
                                                                                    selector:
                                                                                      matchLabels:
                                                                                        app: ingress-gw
                                                                                    template:
                                                                                      metadata:
                                                                                        labels:
                                                                                          app: ingress-gw
                                                                                      spec:
                                                                                        containers:
                                                                                          - name: envoy
                                                                                            image: 422531588944.dkr.ecr.eu-south-1.amazonaws.com/aws-appmesh-envoy:v1.16.1.1-prod
                                                                                            ports:
                                                                                              - containerPort: 8088
                                                                                  

                                                                                  ANSWER

                                                                                  Answered 2021-Apr-09 at 18:22

                                                                                  I tried to reproduce the same at my side and it worked fine. There are couple of configuration changes I did to the above yaml.

                                                                                  1. Added the gateway label “gateway: shared-gw“ to the VirtualGateway. Make sure that you have this label in the namespace as well.
                                                                                  2. Corrected the dns hostname. This should be your application clusterIp service name serviceDiscovery: dns: hostname: httpd-echo1.shared.svc.cluster.local

                                                                                  Also, ensure that your Laodbalancer is Active and the target group listener for this LB is showing healthy status

                                                                                  I am adding the updated yaml below. You can try this and see if it works.

                                                                                  ---
                                                                                  apiVersion: v1
                                                                                  kind: Namespace
                                                                                  metadata:
                                                                                    name: shared
                                                                                    labels:
                                                                                      mesh: shared-mesh
                                                                                      gateway: ingress-gw
                                                                                      appmesh.k8s.aws/sidecarInjectorWebhook: enabled
                                                                                  ---
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: Mesh
                                                                                  metadata:
                                                                                    name: shared-mesh
                                                                                  spec:
                                                                                    namespaceSelector:
                                                                                      matchLabels:
                                                                                        mesh: shared-mesh
                                                                                  ---
                                                                                  
                                                                                  apiVersion: apps/v1
                                                                                  kind: Deployment
                                                                                  metadata:
                                                                                    name: httpd-echo1
                                                                                    namespace: shared
                                                                                    labels:
                                                                                      app: httpd-echo1
                                                                                  spec:
                                                                                    replicas: 1
                                                                                    selector:
                                                                                      matchLabels:
                                                                                        app: httpd-echo1
                                                                                    template:
                                                                                      metadata:
                                                                                        labels:
                                                                                          app: httpd-echo1
                                                                                        annotations:
                                                                                          appmesh.k8s.aws/mesh: shared-mesh
                                                                                      spec:
                                                                                        containers:
                                                                                        - name: httpd
                                                                                          image: hashicorp/http-echo
                                                                                          args:
                                                                                            - "-text=test"
                                                                                          ports:
                                                                                          - containerPort: 5678
                                                                                  ---
                                                                                  apiVersion: v1
                                                                                  kind: Service
                                                                                  metadata:
                                                                                    namespace: shared
                                                                                    name: httpd-echo1
                                                                                    labels:
                                                                                      app: httpd-echo1
                                                                                  spec:
                                                                                    ports:
                                                                                      - name: "http"
                                                                                        port: 5678
                                                                                        targetPort: 5678
                                                                                    selector:
                                                                                      app: httpd-echo1
                                                                                  ---
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: VirtualNode
                                                                                  metadata:
                                                                                    name: shared-virtual-node-1
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    podSelector:
                                                                                      matchLabels:
                                                                                        app: httpd-echo1
                                                                                    listeners:
                                                                                      - portMapping:
                                                                                          port: 5678
                                                                                          protocol: http
                                                                                        healthCheck:
                                                                                          protocol: http
                                                                                          path: '/'
                                                                                          healthyThreshold: 5
                                                                                          unhealthyThreshold: 5
                                                                                          timeoutMillis: 2000
                                                                                          intervalMillis: 5000
                                                                                    serviceDiscovery:
                                                                                      dns:
                                                                                        hostname: httpd-echo1.shared.svc.cluster.local
                                                                                    logging:
                                                                                      accessLog:
                                                                                        file:
                                                                                          path: /dev/stdout
                                                                                  ---
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: VirtualService
                                                                                  metadata:
                                                                                    name: shared-virtual-service-1
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    awsName: httpd-echo1.shared.svc.cluster.local
                                                                                    provider:
                                                                                      virtualNode:
                                                                                        virtualNodeRef:
                                                                                          name: shared-virtual-node-1
                                                                                  ---
                                                                                  
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: VirtualGateway
                                                                                  metadata:
                                                                                    name: ingress-gw
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    namespaceSelector:
                                                                                      matchLabels:
                                                                                        gateway: ingress-gw
                                                                                    podSelector:
                                                                                      matchLabels:
                                                                                        app: ingress-gw
                                                                                    listeners:
                                                                                      - portMapping:
                                                                                          port: 8088
                                                                                          protocol: http
                                                                                    logging:
                                                                                      accessLog:
                                                                                        file:
                                                                                          path: /dev/stdout
                                                                                  ---
                                                                                  apiVersion: v1
                                                                                  kind: Service
                                                                                  metadata:
                                                                                    name: ingress-gw
                                                                                    namespace: shared
                                                                                    annotations:
                                                                                      service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
                                                                                  spec:
                                                                                    type: LoadBalancer
                                                                                    ports:
                                                                                      - port: 80
                                                                                        targetPort: 8088
                                                                                        name: http
                                                                                    selector:
                                                                                      app: ingress-gw
                                                                                  ---
                                                                                  apiVersion: apps/v1
                                                                                  kind: Deployment
                                                                                  metadata:
                                                                                    name: ingress-gw
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    replicas: 1
                                                                                    selector:
                                                                                      matchLabels:
                                                                                        app: ingress-gw
                                                                                    template:
                                                                                      metadata:
                                                                                        labels:
                                                                                          app: ingress-gw
                                                                                      spec:
                                                                                        containers:
                                                                                          - name: envoy
                                                                                            image: 422531588944.dkr.ecr.eu-south-1.amazonaws.com/aws-appmesh-envoy:v1.16.1.1-prod
                                                                                            ports:
                                                                                              - containerPort: 8088
                                                                                  ---
                                                                                  apiVersion: appmesh.k8s.aws/v1beta2
                                                                                  kind: GatewayRoute
                                                                                  metadata:
                                                                                    name: shared-gw-route-1
                                                                                    namespace: shared
                                                                                  spec:
                                                                                    httpRoute:
                                                                                      match:
                                                                                        prefix: "/"
                                                                                      action:
                                                                                        target:
                                                                                          virtualService:
                                                                                            virtualServiceRef:
                                                                                              name: shared-virtual-service-1
                                                                                  ---
                                                                                  

                                                                                  Source https://stackoverflow.com/questions/67018506

                                                                                  QUESTION

                                                                                  AppMesh policy is not available
                                                                                  Asked 2019-Jan-21 at 23:16

                                                                                  Trying to add policy to create AppMesh, but can't do it. According to the sample it should look like this:

                                                                                  {
                                                                                      "Version": "2012-10-17",
                                                                                      "Statement": [
                                                                                          {
                                                                                              "Effect": "Allow",
                                                                                              "Action": [
                                                                                                  "appmesh:*"
                                                                                              ],
                                                                                              "Resource": "*"
                                                                                          }
                                                                                      ]
                                                                                  }
                                                                                  

                                                                                  But there is no such service. Do I miss something or AppMesh is not available yet?

                                                                                  ANSWER

                                                                                  Answered 2019-Jan-21 at 23:16

                                                                                  The solution is ridiculous: during preview AppMesh is not available in console, it's available in cli only.

                                                                                  Source https://stackoverflow.com/questions/54258342

                                                                                  Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                                                                                  Vulnerabilities

                                                                                  No vulnerabilities reported

                                                                                  Install app-mesh

                                                                                  The Installation doc introduce how to install App Mesh via docker-compose or native way and setup App Mesh cluster.

                                                                                  Support

                                                                                  Read the DocsREST APICommand linesSecurity
                                                                                  Find more information at:
                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit

                                                                                  Share this Page

                                                                                  share link

                                                                                  Explore Related Topics

                                                                                  Reuse Pre-built Kits with app-mesh

                                                                                  Consider Popular Continuous Deployment Libraries

                                                                                  Try Top Libraries by laoshanxi

                                                                                  LakkaPlaylistTool

                                                                                  by laoshanxiC#

                                                                                  Compare Continuous Deployment Libraries with Highest Support

                                                                                  Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
                                                                                  Find more libraries
                                                                                  Explore Kits - Develop, implement, customize Projects, Custom Functions and Applications with kandi kits​
                                                                                  Save this library and start creating your kit