Perhaps the best place to start would be how to map the description in the doc onto pods and services:
• UI: the user inteface that provides a visual dashboard for mutating and querying metadata
• Apollo: the main endpoint for interacting with the server
• PostgreSQL: the database persistence layer where metadata is stored
• Hasura: the GraphQL API that layers on top of Postgres for querying metadata
• GraphQL: the server’s business logic that exposes GraphQL mutations
• Towel: runs utilities that are responsible for server maintenance
• _Scheduler_: schedules and creates new flow runs
• _Zombie Killer_: marks task runs as failed if they fail to heartbeat
• _Lazarus_: reschedules flow runs that maintain an unusual state for a period of time
Can hasura and postgres be in same pod, with postgres container optional, and an init container to do creation and/or upgrade?
If nothing else accesses postgres directly, we could avoid having a service for it.
09/28/2020, 8:25 PM
I have had very good luck moving off from Docker and into Podman, which pretty much rewards moving everything into a pod. Something that I've found helpful is once a pod is setup in Podman, a kube config Pod v1 file can be generated. It's super helpful for lining up deployments and services later.
An example container-by-container example of creating a pod with Prefect server using Podman: