runboat/docs/deployment.plantuml
2022-02-06 19:12:16 +01:00

45 lines
1.1 KiB
Text

@startuml deployment
actor "Runboat UI\n(Browser)" as RunboatUI
component Runboat
interface "WebUI: /builds, /builds/{name}\nSSE: /build-events\nAPI: /docs, /api/v1/...\n(8000)" as API
interface "Runboat Webhook\n/webhooks/github" as Webhook
interface "HTTP\n(80)" as IngressHTTP
actor "Builds UI\n(Browser)" as BuildsUI
component Kubernetes {
collections "Builds\n(Deployment,\nPersistentVolumeClaim,\nJob,\n...)" as Builds
interface "HTTP\n(8069)" as BuildsHTTP
component Ingress
}
interface "Kubernetes API\n(HTTPS)" as K8SAPI
component GitHub
interface "GitHub API\nhttps://api.github.com" as GitHubAPI
interface "Git\nhttps://github.com" as Git
database Postgres
Runboat -- Webhook
API -- Runboat
Git -- GitHub
GitHubAPI -- GitHub
Webhook <-- GitHub : "Events:\npush,\npull_request"
Runboat --> GitHubAPI : "Get Commit Info,\nSend Status updates"
RunboatUI <--> API
Builds - BuildsHTTP
BuildsHTTP <- Ingress
Builds --> Git : "git clone"
Builds -- Postgres
IngressHTTP -- Ingress
BuildsUI --> IngressHTTP
K8SAPI - Kubernetes
Runboat <-> K8SAPI : "kubectl / HTTPS"
@enduml