Add a deployment quickstart and diagrams
This commit is contained in:
parent
39b19dbfcc
commit
74dcd2de28
3 changed files with 67 additions and 0 deletions
28
README.md
28
README.md
|
|
@ -72,6 +72,34 @@ For running the controller (runboat itself):
|
||||||
The controller can be run outside the kubernetes cluster or deployed inside it, or even
|
The controller can be run outside the kubernetes cluster or deployed inside it, or even
|
||||||
in a different cluster.
|
in a different cluster.
|
||||||
|
|
||||||
|
## Deployment quickstart
|
||||||
|
|
||||||
|
A typical deployment looks like this.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The wiki has an example
|
||||||
|
[docker-compose](https://github.com/sbidoul/runboat/wiki/example-docker-compose)
|
||||||
|
configuration to get you started with running the runboat controller.
|
||||||
|
|
||||||
|
In that docker compose, you will need to provide configuration parameters for the
|
||||||
|
postgres database and the kubernetes cluster:
|
||||||
|
|
||||||
|
- For postgres: host, port, user, password (the postgres user must exist and have
|
||||||
|
permissions to create databases)
|
||||||
|
- For kubernetes:
|
||||||
|
- The name of the kubernetes namespace where the builds are deployed
|
||||||
|
- A KUBECONFIG for a kubernetes account that can create and delete resources in that
|
||||||
|
namespaces
|
||||||
|
- The name of a kubernetes Storage Class that can allocate Persistent Volumes that are
|
||||||
|
reclaimed on delete.
|
||||||
|
- The DNS domain corresponding to a wildcard DNS entry pointing to the kubernetes
|
||||||
|
ingress (so if your wildcard DNS record is `*.runboat-builds.mydomain.com`, you
|
||||||
|
provide `runboat-builds.mydomain.com`).
|
||||||
|
|
||||||
|
Note that you can deploy Runboat itself as well Postgres inside the same kubernetes
|
||||||
|
cluster, or even a different one, depending on your taste.
|
||||||
|
|
||||||
## Kubernetes resources
|
## Kubernetes resources
|
||||||
|
|
||||||
All resources to be deployed in kubernetes for a build are in
|
All resources to be deployed in kubernetes for a build are in
|
||||||
|
|
|
||||||
39
docs/deployment.plantuml
Normal file
39
docs/deployment.plantuml
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
@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 "/webhooks/github" as Webhook
|
||||||
|
|
||||||
|
interface "HTTP\n(80)" as IngressHTTP
|
||||||
|
actor "Builds UI\n(Browser)" as BuildsUI
|
||||||
|
component Kubernetes {
|
||||||
|
collections "Builds\n(Deployment,\nPersistentVolumeClaim,\n...)" as Builds
|
||||||
|
interface "HTTP\n(8069)" as BuildsHTTP
|
||||||
|
component Ingress
|
||||||
|
}
|
||||||
|
interface "Kubernetes API\n(HTTPS)" as K8SAPI
|
||||||
|
|
||||||
|
database Postgres
|
||||||
|
|
||||||
|
component GitHub
|
||||||
|
|
||||||
|
Webhook - Runboat
|
||||||
|
API -- Runboat
|
||||||
|
|
||||||
|
GitHub -> Webhook
|
||||||
|
|
||||||
|
RunboatUI <--> API
|
||||||
|
|
||||||
|
K8SAPI - Kubernetes
|
||||||
|
|
||||||
|
Runboat <-> K8SAPI : "kubectl / HTTPS"
|
||||||
|
|
||||||
|
Builds - BuildsHTTP
|
||||||
|
BuildsHTTP <- Ingress
|
||||||
|
Builds -- Postgres
|
||||||
|
IngressHTTP -- Ingress
|
||||||
|
BuildsUI --> IngressHTTP
|
||||||
|
|
||||||
|
@enduml
|
||||||
BIN
docs/deployment/deployment.png
Normal file
BIN
docs/deployment/deployment.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
Loading…
Reference in a new issue