https://github.com/mastodon/terraform-ovh-k8s
Module to create a managed k8s cluster in OVH
https://github.com/mastodon/terraform-ovh-k8s
Last synced: about 1 month ago
JSON representation
Module to create a managed k8s cluster in OVH
- Host: GitHub
- URL: https://github.com/mastodon/terraform-ovh-k8s
- Owner: mastodon
- Created: 2024-05-08T20:36:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-25T10:17:47.000Z (about 1 month ago)
- Last Synced: 2025-08-30T05:42:29.713Z (about 1 month ago)
- Language: HCL
- Size: 25.4 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mastodon Terraform - OVHCloud Kubernetes Cluster
Terraform module for creating a managed kubernetes cluster in OVHCloud.
## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0.0 |
| [ovh](#requirement\_ovh) | ~> 2.5.0 |## Providers
| Name | Version |
|------|---------|
| [ovh](#provider\_ovh) | 2.5.0 |## Modules
No modules.
## Resources
| Name | Type |
|------|------|
| [ovh_cloud_project_kube.cluster](https://registry.terraform.io/providers/ovh/ovh/latest/docs/resources/cloud_project_kube) | resource |
| [ovh_cloud_project_kube_nodepool.node_pool](https://registry.terraform.io/providers/ovh/ovh/latest/docs/resources/cloud_project_kube_nodepool) | resource |
| [ovh_cloud_project_kube_oidc.oidc](https://registry.terraform.io/providers/ovh/ovh/latest/docs/resources/cloud_project_kube_oidc) | resource |## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [cluster\_name](#input\_cluster\_name) | Name of the cluster to create. | `string` | n/a | yes |
| [cluster\_version](#input\_cluster\_version) | Kubelet version to use when creating the cluster. | `string` | n/a | yes |
| [network\_openstack\_id](#input\_network\_openstack\_id) | Openstack ID of the private network in which the cluster should be placed. | `string` | n/a | yes |
| [node\_pools](#input\_node\_pools) | Node pools to create for the cluster. |list(object({| `[]` | no |
flavor_name = string
nodes = number
min_nodes = optional(number, 0)
max_nodes = optional(number, 0)
name = optional(string, "")
availability_zones = optional(list(string), [])
monthly_billed = optional(bool, false)
template = optional(
object({
annotations = optional(map(any), {})
labels = optional(map(any), {})
finalizers = optional(list(string), [])
unschedulable = optional(bool, false)
taints = optional(list(object({
effect = string
key = string
value = string
})), [])
}),
null
)
}))
| [oidc\_client\_id](#input\_oidc\_client\_id) | OIDC client ID to give the cluster for login. | `string` | `""` | no |
| [oidc\_groups\_claim](#input\_oidc\_groups\_claim) | Groups to include in the OIDC claim. | `list(string)` | `[]` | no |
| [oidc\_groups\_prefix](#input\_oidc\_groups\_prefix) | Prefix to add to all groups connecting to the cluster. | `string` | `""` | no |
| [oidc\_provider\_url](#input\_oidc\_provider\_url) | URL to use for OIDC authentication. Enables OIDC if specified. | `string` | `""` | no |
| [oidc\_username\_claim](#input\_oidc\_username\_claim) | OIDC Property to use for username. | `string` | `""` | no |
| [oidc\_username\_prefix](#input\_oidc\_username\_prefix) | Prefix to add to all usernames connecting to the cluster. | `string` | `""` | no |
| [project\_id](#input\_project\_id) | The ID of the Public Cloud project the resources will be created in. | `string` | n/a | yes |
| [region](#input\_region) | Region in which to create the various resources. | `string` | `"DE1"` | no |
| [subnet\_id](#input\_subnet\_id) | ID of the subnet in the private network in which nodes should be created. | `string` | n/a | yes |
| [update\_policy](#input\_update\_policy) | How the cluster should perform updates. | `string` | `"MINIMAL_DOWNTIME"` | no |## Outputs
| Name | Description |
|------|-------------|
| [id](#output\_id) | The ID of the cluster |
| [kubeconfig](#output\_kubeconfig) | kubeconfig to use when connecting to the cluster |
| [name](#output\_name) | Name of the cluster |
| [nodes\_url](#output\_nodes\_url) | URLs of the nodes attached to the cluster |