smi-adapter-istio

module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2019 License: MIT

README

smi-adapter-istio

This is a Kubernetes operator which implements the Service Mesh Interface(SMI) Traffic Split, Traffic Access Control and Traffic Specs APIs to work with Istio. The Traffic Metrics part of the SMI spec is implemented in the smi-metrics repo.

Tools or humans may set up and use this operator after installing Istio to do things like:

  • orchestrate canary releases for new versions of software or more generally manage traffic shifting over time for applications
  • define which services are allowed to send traffic to another service (and even a route on a service) or more generally define access control policies for applications

SMI defines a set of CRDs that allow for a common set of interfaces to build on top of when building tooling or working with service mesh implementations like Istio. This project builds logic around those commonly defined CRDs to work specifically with Istio.

Getting Started

Prerequesites
  • Running Kubernetes cluster
  • kubectl is installed locally
  • Istio installed on Kubernetes cluster
Install operator

Install crds, operator, and rbac configuration in Kubernetes cluster:

$ kubectl apply -f https://raw.githubusercontent.com/deislabs/smi-adapter-istio/master/deploy/crds/crds.yaml
$ kubectl apply -f https://raw.githubusercontent.com/deislabs/smi-adapter-istio/master/deploy/operator-and-rbac.yaml

Check that the operator has been deployed:
```bash
$ kubectl get pods -n istio-system -l name=smi-adapter-istio
NAME                                      READY     STATUS      RESTARTS   AGE
smi-adapter-istio-5ffcm8fqm               1/1       Running     0          20s
Deploy SMI custom resources for managing traffic to services
  • See how to use this project for traffic splitting here
  • See how to use this project to restrict service to service communication here
  • See how to use Flagger and this project to do canary deploys here

Contributing

Please refer to CONTRIBUTING.md for more information on contributing to this repository and setting up your development environment.

Find information for building and pushing your own operator image here.

More detailed instructions for developing against the operator can be found here.

Directories

Path Synopsis
cmd
pkg
apis/networking/v1alpha3
Package v1alpha3 contains API Schema definitions for the networking v1alpha3 API group +k8s:deepcopy-gen=package,register +groupName=networking.istio.io Package v1alpha3 contains API Schema definitions for the networking v1alpha3 API group +k8s:deepcopy-gen=package,register +groupName=networking.istio.io
Package v1alpha3 contains API Schema definitions for the networking v1alpha3 API group +k8s:deepcopy-gen=package,register +groupName=networking.istio.io Package v1alpha3 contains API Schema definitions for the networking v1alpha3 API group +k8s:deepcopy-gen=package,register +groupName=networking.istio.io
apis/rbac/v1alpha1
Package v1alpha1 contains API Schema definitions for the rbac v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=rbac.istio.io Package v1alpha1 contains API Schema definitions for the rbac v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=rbac.istio.io
Package v1alpha1 contains API Schema definitions for the rbac v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=rbac.istio.io Package v1alpha1 contains API Schema definitions for the rbac v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=rbac.istio.io

Jump to

Keyboard shortcuts

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