aws-app-mesh-controller-for-k8s

module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2019 License: Apache-2.0

README

AWS App Mesh Controller For K8s

AWS App Mesh Controller For K8s is a controller to help manage AppMesh resources for a Kubernetes cluster. The controller watches custom resources for changes and reflects those changes into the App Mesh API. It is accompanied by the deployment of three custom resource definitions (CRDs): meshes, virtualnodes, and virtualservices. These map to App Mesh API objects which the controller manages for you.

Getting started

Check out the example application, and read the design.

To begin using it in your cluster, follow the install instructions.

Custom Resource Examples

First, create a Mesh resource, which will trigger the controller to create a Mesh via the App Mesh API. Then, define VirtualServices for each application that you want to route traffic to, and finally create VirtualNodes for each Deployment that will make up that Application.

Mesh

apiVersion: appmesh.k8s.aws/v1beta1
kind: Mesh
metadata:
  name: my-mesh

Virtual Node

apiVersion: appmesh.k8s.aws/v1beta1
kind: VirtualNode
metadata:
  name: my-app-a
  namespace: prod
spec:
  meshName: my-mesh
  listeners:
    - portMapping:
        port: 9000
        protocol: http
  serviceDiscovery:
    dns:
      hostName: my-app-a.prod.svc.cluster.local
  backends:
    - virtualService:
        virtualServiceName: my-svc-a

Virtual Service

apiVersion: appmesh.k8s.aws/v1beta1
kind: VirtualService
metadata:
  name: my-svc-a
  namespace: prod
spec:
  meshName: my-mesh
  routes:
    - name: route-to-svc-a
      http:
        match:
          prefix: /
        action:
          weightedTargets:
            - virtualNodeName: 
              weight: 1

Integrations

Security disclosures

If you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions here or email AWS security directly.

Contributing

Contributions welcome! Please read our guidelines and Code of Conduct.

License

This library is licensed under the Apache 2.0 License.

Directories

Path Synopsis
cmd
pkg
apis/appmesh/v1beta1
Package v1beta1 is the v1beta1 version of the API.
Package v1beta1 is the v1beta1 version of the API.
aws
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/appmesh/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/appmesh/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL