33 lines
1.5 KiB
Markdown
33 lines
1.5 KiB
Markdown
# Terraform config for drone
|
|
Drone is a self-hosted Continuous Integration platform. This terraform root module will create a Gitea OAuth2 application, a persistent volume for Drone and installs Drone to a Kubernetes namespace on Lawndale.
|
|
|
|
**This module assumes Lawndale as the hosting environment!**
|
|
|
|
## Provider configurations
|
|
The following providers are used and should be configured before calling `init` or `apply`.
|
|
|
|
### AWS
|
|
AWS is only used for state backend. Check out [AWS Provider config](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#authentication-and-configuration).
|
|
|
|
### Gitea
|
|
Either `GITEA_TOKEN` or `GITEA_USERNAME` and `GITEA_PASSWORD` must be set for authentication.
|
|
|
|
### Kubernetes / Helm
|
|
Drone is provisioned with Helm on a kubernetes cluster.
|
|
|
|
Helm is using the same environment variables as the Kubernetes provider.
|
|
|
|
Set `KUBE_CONFIG_PATH` to use a kubeconfig file, and `KUBE_CTX` to use a different context than set in the kubeconfig.
|
|
|
|
For token auth, set `KUBE_TOKEN` and `KUBE_HOST` environment vars.
|
|
|
|
A PEM-encoded root certificates bundle for TLS authentication can be sourced by setting
|
|
`KUBE_CLUSTER_CA_CERT_DATA`.
|
|
|
|
Sources:
|
|
[Kubernetes](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs#argument-reference)
|
|
[Helm](https://registry.terraform.io/providers/hashicorp/helm/latest/docs)
|
|
|
|
## Persistent volume
|
|
Persistence is supported by [terraform-modules//9p-persistent-volume](git.thomasklein.me/thomasklein/terraform-modules/9p-persistent-volume).
|