Skip to content
An operator that manages Istio deployments on Kubernetes
Branch: master
Clone or download
matyix Merge pull request #129 from banzaicloud/istio11-rewrite-probe
Support rewriteAppHTTPProbe configuration
Latest commit a4debb5 Mar 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Add first version of CircleCI config.yaml Feb 14, 2019
.github
cmd/manager
config support rewriteAppHTTPProbe configuration Mar 12, 2019
docs add rbac.yml to multi-cluster example Mar 5, 2019
hack operator-sdk -> kubebuilder Feb 4, 2019
pkg Merge branch 'master' into istio11-rewrite-probe Mar 12, 2019
scripts dockerfile & makefile changes Feb 18, 2019
.editorconfig
.gitignore dockerfile & makefile changes Feb 18, 2019
.golangci.yml
.licensei.toml
CODE_OF_CONDUCT.md Prepering the operator for the community release Feb 19, 2019
CONTRIBUTING.md Prepering the operator for the community release Feb 19, 2019
Dockerfile dockerfile & makefile changes Feb 18, 2019
Dockerfile.dev
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
PROJECT
README.md

README.md

Docker Automated build CircleCI Go Report Card license

Istio-operator

Istio-operator is a Kubernetes operator to deploy and manage Istio resources for a Kubernetes cluster.

Overview

Istio is an open platform to connect, manage, and secure microservices and it is emerging as the standard for building service meshes on Kubernetes. It is built out on multiple components and a rather complex deployment scheme (around 14 Helm subcharts and 50+ CRDs). Installing, upgrading and operating these components requires deep understanding of Istio and Helm (the standard/supported way of deploying Istio).

The goal of the Istio-operator is to automate and simplify these and enable popular service mesh use cases (multi cluster federation, canary releases, resource reconciliation, etc) by introducing easy higher level abstractions.

Istio Operator

Motivation

At Banzai Cloud we are building a Kubernetes distribution and platform, Pipeline and operate Istio clusters for our customers. While we were comfortably operating Istio using the standard Helm deployments on 6 cloud providers and on-premise with Pipeline, recently our customers were asking for multi-cloud service mesh deployments. This required lots of configurations, manual interventions during scaling or removing clusters from the mesh and become an operational burden. Pipeline automates the whole Kubernetes experience (from creating clusters, centralized logging, federated monitoring, multi-dimensional autoscaling, disaster recovery, security scans, etc) and we needed a way to automagically operate Istio.

At the same time there is a huge interest in the Istio community for an operator, but due to resource constraints and the need of supporting Helm, building one it was discarded. There were several initiatives to simplify Istio:

however, none of these gave a full solution to automate the Istio experience and make it consumable for the wider audience. Our motivation is to build an open source solution and a community which drives the innovation and features of this operator.

If you are willing to kickstart your Istio experience using Pipeline, check out the free developer beta:

Installation

The operator (master branch) installs the 1.0.5 version of Istio, and can run on Minikube v0.33.1+ and Kubernetes 1.10.0+.

As a pre-requisite it needs a Kubernetes cluster (you can create one using Pipeline).

  1. Set KUBECONFIG pointing towards your cluster
  2. Run make deploy (deploys the operator in the istio-system namespace to the cluster)
  3. Set your Istio configurations in a Kubernetes custom resource (sample: config/samples/istio_v1beta1_istio.yaml) and run this command to deploy the Istio components:
kubectl create -n istio-system -f config/samples/istio_v1beta1_istio.yaml

Multi-cluster federation

Check out the multi-cluster federation docs.

Development

Check out the developer docs.

Issues, feature requests and roadmap

Please note that the Istio operator is under heavy development and new releases might introduce breaking changes. We are striving to keep backward compatibility as much as possible while adding new features at a fast pace. Issues, new features or bugs are tracked on the projects GitHub page - please feel free to add yours!

To track some of the significant features and future items from the roadmap please visit the roadmap doc.

Contributing

If you find this project useful here's how you can help:

  • Send a pull request with your new features and bug fixes
  • Help new users with issues they may encounter
  • Support the development of this project and star this repo!

License

Copyright (c) 2017-2019 Banzai Cloud, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.