admiral

module
v0.0.0-...-f496b69 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2023 License: Apache-2.0

README

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

Docs

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

Directories

Path Synopsis
admiral
pkg/apis/admiral/v1
+k8s:deepcopy-gen=package +groupName=admiral.io
+k8s:deepcopy-gen=package +groupName=admiral.io
pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
pkg/client/clientset/versioned/typed/admiral/model
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
pkg/client/clientset/versioned/typed/admiral/model/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
pkg/client/clientset/versioned/typed/admiral/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
pkg/client/clientset/versioned/typed/admiral/v1/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