Giter Site home page Giter Site logo

arijitvt / admiral Goto Github PK

View Code? Open in Web Editor NEW

This project forked from istio-ecosystem/admiral

0.0 0.0 0.0 29.41 MB

Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh

License: Apache License 2.0

Shell 3.23% Go 96.12% Makefile 0.65%

admiral's Introduction

CircleCI codecov

Admiral provides automatic configuration and service discovery for multicluster Istio service mesh

Istio has a very robust set of multi-cluster capabilities. Managing this configuration across multiple clusters at scale is challenging. Admiral takes an opinionated view on this configuration and provides automatic provisioning and syncing across clusters.

Admiral defines two custom resources, the Dependency and GlobalTrafficPolicy, which are used to configure ServiceEntries, VirtualServices, and DestinationRules on each cluster for each cross-cluster service. This removes the complexity for developers and mesh operators.

alt text

Admiral Demo

Who uses Admiral?

Organizations below are officially using Admiral. Please send a PR with your organization name if you are using Admiral.

Blogs and Presentations

Collaboration and Communication

Admiral Slack Channel - Note: This channel is under Istio slack org, please fill out this form to get access to Istio slack.

Contributing

Refer to Contributing doc

Release Cadence

Details can be found here

Admiral sequence diagram

sequenceDiagram
		autonumber 1
    Service/VirtualService Handler->>+Rollout/Deployment Handler: Add/Update/Delete events
    loop
			autonumber 1
			GTP Handler->>GTP Handler: Add/Update/Delete events
    end
		autonumber 1
    GTP Handler ->> ServiceEntry Handler: Add/Update
		loop
				autonumber 1
        Rollout/Deployment Handler->>Rollout/Deployment Handler: Add/Delete events of rollout/deployment
    end
		autonumber 1
		Rollout/Deployment Handler->>ServiceEntry Handler: Add/Update
    autonumber 2
    ServiceEntry Handler->>RemoteControllers: Fetch All Cluster Controllers
		rect rgb(255, 255, 220)
	    loop
		    ServiceEntry Handler->>K8sAPI 1..N: For each cluster, get corresponding service object
				K8sAPI 1..N-->>ServiceEntry Handler: Continue if service does not exist for deployment/rollout
				K8sAPI 1..N-->>ServiceEntry Handler: Build list of source services
	    end
		end
	  rect rgb(255, 255, 220)
	    loop
				ServiceEntry Handler->>K8sAPI 1..N: Derive SE from each service in the list
				ServiceEntry Handler->>GTP Cache: Derive DR from GTP
			  rect rgb(204, 255, 204)
			    loop
				    ServiceEntry Handler->>K8sAPI 1..N: Add/Update SE/DR in source clusters
					end
		    end
	    end
		end

    ServiceEntry Handler->>DependencyCache: Fetch dependent clusters
		rect rgb(204, 255, 204)
	    loop
				ServiceEntry Handler->>K8sAPI 1..N: Add/Update SE/DR in dependent clusters
			end
		end
Loading

admiral's People

Contributors

aattuluri avatar josephpeacock avatar shriramsharma avatar jwebb49 avatar vrushalijoshi avatar nirvanagit avatar mengying-li avatar pnovotnak avatar vinay-g avatar asushanthk avatar adilfulara avatar frankmariette avatar wejson avatar gaopan233 avatar kpharasi avatar rdkr avatar nickborysov avatar saradhis avatar levaitamas avatar yaron-idan avatar sivathiru1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.