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.
- Running Kubernetes cluster
kubectlis installed locally
- Istio installed on Kubernetes cluster
Install crds, operator, and rbac configuration in Kubernetes cluster:
$ kubectl apply -f https://raw.githubusercontent.com/servicemeshinterface/smi-adapter-istio/master/deploy/crds/crds.yaml $ kubectl apply -f https://raw.githubusercontent.com/servicemeshinterface/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
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.