Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/istio-ecosystem/admiral
Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh
https://github.com/istio-ecosystem/admiral
admiral automation clusters configuration istio k8s microservices multi-cluster multicluster service-discovery service-mesh
Last synced: 4 days ago
JSON representation
Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh
- Host: GitHub
- URL: https://github.com/istio-ecosystem/admiral
- Owner: istio-ecosystem
- License: apache-2.0
- Created: 2019-08-22T17:53:04.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-15T20:14:44.000Z (24 days ago)
- Last Synced: 2024-10-17T06:39:52.757Z (23 days ago)
- Topics: admiral, automation, clusters, configuration, istio, k8s, microservices, multi-cluster, multicluster, service-discovery, service-mesh
- Language: Go
- Homepage:
- Size: 29.6 MB
- Stars: 587
- Watchers: 26
- Forks: 79
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-istio - Admiral - Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh. (Configuration)
- awesome-repositories - istio-ecosystem/admiral - Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh (Go)
README
[//]: # (Build Status)
[![CircleCI](https://circleci.com/gh/istio-ecosystem/admiral/tree/master.svg?style=svg)](https://circleci.com/gh/istio-ecosystem/admiral/tree/master)
[//]: # (Code Coverage)
[![codecov](https://codecov.io/gh/istio-ecosystem/admiral/branch/master/graph/badge.svg)](https://codecov.io/gh/istio-ecosystem/admiral)
[//]: # (usage)
**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](./docs/Architecture.md#dependency) and [GlobalTrafficPolicy](./docs/Architecture.md#global-traffic-policy), 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](./docs/diagrams/admiral.svg)
[Admiral Demo](https://www.youtube.com/watch?v=cwQpt1t287c)
## [Docs](./docs/Index.md)
## Who uses Admiral?
Organizations below are **officially** using Admiral. Please send a PR with your organization name if you are using Admiral.
* [Intuit](https://www.intuit.com/)
## Blogs and Presentations
* [Multicluster Istio configuration and service discovery using Admiral](https://istio.io/blog/2020/multi-cluster-mesh-automation/)
* [Stitching a Service Mesh Across Hundreds of Discrete Networks](https://www.youtube.com/watch?v=EWyNbBn1vns)
* [Scaling Service Mesh to an Enterprise Microservices Ecosystem](https://apiworld2019aidevworld2019.sched.com/event/SLIQ/pro-talk-scaling-service-mesh-to-an-enterprise-microservices-ecosystem)
* [Admiral – Enabling Multi-Cluster Mesh](https://www.meetup.com/San-Diego-Cloud-Native-Computing-Meetup/events/262826967/)
[//]: # (support)
## Collaboration and Communication
[Admiral Slack Channel](https://istio.slack.com/archives/CT3F18T08)
`Note:` This channel is under Istio slack org, please fill out this [form](https://docs.google.com/forms/d/e/1FAIpQLSfdsupDfOWBtNVvVvXED6ULxtR4UIsYGCH_cQcRr0VcG1ZqQQ/viewform) to get access to Istio slack.
## Local Development
Refer to [Local Development Setup](./CONTRIBUTING.md#setting-up-for-local-development)## Contributing
Refer to [Contributing doc](./CONTRIBUTING.md)## Release Cadence
Details can be found [here](./docs/Processes.md)
## Admiral Sequence Diagram
### Legend:
SE - [Istio ServiceEntry](https://istio.io/latest/docs/reference/config/networking/service-entry/)VS - [Istio VirtualService](https://istio.io/latest/docs/reference/config/networking/virtual-service/)
DR - [Istio DestinationRule](https://istio.io/latest/docs/reference/config/networking/destination-rule/)
K8s API - [Kubernetes API Server](https://kubernetes.io/docs/concepts/overview/kubernetes-api/)
GTP - [Admiral GlobalTrafficPolicy](https://github.com/istio-ecosystem/admiral/blob/master/docs/Architecture.md#global-traffic-policy)
```mermaid
sequenceDiagram
autonumber 1
Service/VirtualService Handler->>+Rollout/Deployment Handler: Add/Update/Delete events
autonumber 1
GTP/OutlierDetection Handler->>Update All Resources: Add/Update
autonumber 1
DependencyRecord Handler->>Update All Resources: Add/Update
autonumber 1
Rollout/Deployment Handler->>Update All Resources: Add/Updateautonumber 2
Update All Resources->>RemoteControllers: Fetch All Cluster Controllers
rect rgb(255, 255, 220)
loop
Update All Resources->>K8sAPI 1..N: For each cluster, get corresponding service object
K8sAPI 1..N-->>Update All Resources: Continue if service does not exist for deployment/rollout
K8sAPI 1..N-->>Update All Resources: Build list of source services
end
end
rect rgb(255, 255, 220)
loop
Update All Resources->>K8sAPI 1..N: Derive SE from each service in the list
Update All Resources->>GTP/OutlierDetection Cache: Derive DR from GTP/OutlierDetection
rect rgb(204, 255, 204)
loop
Update All Resources->>K8sAPI 1..N: Add/Update SE/DR/VS in source clusters
Update All Resources->>DynamoDB: Add/Update WorkloadData for source clusters
end
end
end
endUpdate All Resources->>DependencyCache: Fetch dependent clusters
rect rgb(204, 255, 204)
loop
Update All Resources->>K8sAPI 1..N: Add/Update SE/DR/VS in dependent clusters
Update All Resources->>DynamoDB: Add/Update WorkloadData for dependent clusters
end
end
```# Core contributors
- [Anil Attuluri](https://github.com/aattuluri)
- [Anubhav Aeron](https://github.com/nirvanagit)
- [Shriram Sharma](https://github.com/shriramsharma)
- [Kartikeya Pharasi](https://github.com/kpharasi)
- [Vinay Gonuguntla](https://github.com/vinay-g)
- [Vrushali Joshi](https://github.com/vrushalijoshi)
- [Viraj Kulkarni](https://github.com/virajrk)
- [Ryan Tay](https://github.com/rtay1188)
- [Punakshi Chaand](https://github.com/Punakshi)
- [Pankaj Sikka](https://github.com/psikka1)