Relationships Diagram
This diagram shows the high-level relationships between components of Armada and third-party softwares.
For a more detailed view of Armada, see the Scheduler Architecture Doc.
Armada Client
This is the comonent that is used by users to submit jobs to Armada, using gRPC. Current languages supported are:
- Go
- Python
- C#
Ingester Loops
All data-flows in armada are controlled by Pulsar. This means that all data is first written to Pulsar, and then ingested into the appropriate database. The ingester loops are the components that read data from Pulsar and write it to the appropriate database.
There are 3 ingester loops:
- Event Ingester: This ingests data from Pulsar into Redis.
- Lookout Ingester: This ingests data from Pulsar into Postgres.
- Scheduler Ingester: This ingests data from Pulsar into Postgres.
Scheduler
The scheduler is the component that is responsible for scheduling jobs.
It receives data from the ingester loops, and then uses that data to schedule jobs. Its decisions are then fed back to Pulsar, allowing the process to repeat.
Armada Executor Components
These are the components that run on each k8s cluster that executes jobs.
It includes:
- Armada Executor: The main component of the executor. It is responsible for the execution of jobs on the cluster.
- Binoculars: A component that reads logs from the k8s API.
Lookout
Lookout is made of 2 components:
- Lookout API: This is the component that acts as a gateway to the lookout database. It is a gRPC API.
- Lookout UI: This is the component that is used by users to query the state of jobs. It is a web UI.