Files
terraform-app-drone/runner.tf
Tamas Kiss 0610bb40a7
All checks were successful
continuous-integration/drone/push Build is passing
feat: add docker runner and set runner dashboards
2022-11-28 20:36:44 +01:00

114 lines
2.9 KiB
HCL

resource "helm_release" "drone_runner_docker" {
name = "runner-docker"
chart = "drone-runner-docker"
repository = "https://charts.drone.io"
version = "0.6.0"
namespace = kubernetes_namespace.server.metadata.0.name
create_namespace = false
values = [jsonencode({
serviceAccount = {
create = true
}
}),
jsonencode({
env = {
DRONE_SERVER_HOST = "https://${local.drone_domain}"
DRONE_RPC_HOST = "${helm_release.drone_server.name}.${helm_release.drone_server.namespace}.svc.cluster.local:8080"
DRONE_RPC_PROTO = "http"
DRONE_UI_USERNAME = local.runner_dashboard_user
}
}),
jsonencode({
dind = {
resources = {
requests = {
cpu = "250m"
memory = "1G"
"ephemeral-storage" = upper(local.runner_cache_size)
}
limits = {
cpu = "1"
memory = "3G"
"ephemeral-storage" = upper(local.runner_cache_size)
}
}
}
}),
jsonencode({
ingress = {
enabled = false
}
}),
jsonencode({
gc = {
enabled = true
env = {
GC_INTERVAL = local.runner_gc_interval
GC_CACHE = "${lower(local.runner_cache_size)}b"
}
}
}),
]
set_sensitive {
name = "env.DRONE_RPC_SECRET"
value = random_password.drone_rpc_secret.result
}
set_sensitive {
name = "env.DRONE_UI_PASSWORD"
value = random_password.runner_dashboard.result
}
}
resource "helm_release" "drone_runner_kube" {
name = "runner-kube"
chart = "drone-runner-kube"
repository = "https://charts.drone.io"
version = "0.1.10"
namespace = kubernetes_namespace.server.metadata.0.name
create_namespace = false
values = [jsonencode({
rbac = {
buildNamespaces = [
kubernetes_namespace.jobs.metadata.0.name
]
}
}),
jsonencode({
env = {
DRONE_SERVER_HOST = "https://${local.drone_domain}"
DRONE_RPC_HOST = "${helm_release.drone_server.name}.${helm_release.drone_server.namespace}.svc.cluster.local:8080"
DRONE_RPC_PROTO = "http"
DRONE_NAMESPACE_DEFAULT = kubernetes_namespace.jobs.metadata.0.name
DRONE_UI_USERNAME = local.runner_dashboard_user
}
}),
jsonencode({
resources = {
requests = {
cpu = "100m"
memory = "50Mi"
}
limits = {
cpu = "300m"
memory = "200Mi"
}
}
}),
jsonencode({
ingress = {
enabled = false
}
})
]
set_sensitive {
name = "env.DRONE_RPC_SECRET"
value = random_password.drone_rpc_secret.result
}
set_sensitive {
name = "env.DRONE_UI_PASSWORD"
value = random_password.runner_dashboard.result
}
}