https://github.com/poseidon/terraform-render-bootstrap
Low-level bootstrap a Kubernetes control plane with Terraform (part of Typhoon)
https://github.com/poseidon/terraform-render-bootstrap
kubernetes terraform terraform-modules
Last synced: about 1 year ago
JSON representation
Low-level bootstrap a Kubernetes control plane with Terraform (part of Typhoon)
- Host: GitHub
- URL: https://github.com/poseidon/terraform-render-bootstrap
- Owner: poseidon
- License: mit
- Created: 2017-05-01T18:18:21.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-10-26T15:53:00.000Z (over 1 year ago)
- Last Synced: 2024-10-29T23:23:08.638Z (over 1 year ago)
- Topics: kubernetes, terraform, terraform-modules
- Language: HCL
- Homepage: https://typhoon.psdn.io/
- Size: 478 KB
- Stars: 103
- Watchers: 9
- Forks: 103
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# terraform-render-bootstrap
[](https://github.com/poseidon/terraform-render-bootstrap/actions/workflows/test.yaml?query=branch%3Amain)
[](https://github.com/sponsors/poseidon)
[](https://fosstodon.org/@typhoon)
`terraform-render-bootstrap` is a Terraform module that renders TLS certificates, static pods, and manifests for bootstrapping a Kubernetes cluster.
## Audience
`terraform-render-bootstrap` is a low-level component of the [Typhoon](https://github.com/poseidon/typhoon) Kubernetes distribution. Use Typhoon modules to create and manage Kubernetes clusters across supported platforms. Use the bootstrap module if you'd like to customize a Kubernetes control plane or build your own distribution.
## Usage
Use the module to declare bootstrap assets. Check [variables.tf](variables.tf) for options and [terraform.tfvars.example](terraform.tfvars.example) for examples.
```hcl
module "bootstrap" {
source = "git::https://github.com/poseidon/terraform-render-bootstrap.git?ref=SHA"
cluster_name = "example"
api_servers = ["node1.example.com"]
etcd_servers = ["node1.example.com"]
}
```
Generate assets in Terraform state.
```sh
terraform init
terraform plan
terraform apply
```
To inspect and write assets locally (e.g. debugging) use the `assets_dist` Terraform output.
```
resource local_file "assets" {
for_each = module.bootstrap.assets_dist
filename = "some-assets/${each.key}"
content = each.value
}
```