Provider Terraform
Provider Terraform
Section intitulée « Provider Terraform »Le provider Terraform permet de gérer vos clusters Deployme.cloud en Infrastructure as Code.
Installation
Section intitulée « Installation »terraform { required_providers { deployme = { source = "deployme-cloud/deployme" version = "~> 0.1" } }}
provider "deployme" { api_token = var.deployme_api_token # Ou via DEPLOYME_API_TOKEN}Ressources disponibles
Section intitulée « Ressources disponibles »deployme_cluster
Section intitulée « deployme_cluster »resource "deployme_cluster" "production" { name = "production" control_planes = 3 workers = 5 node_size = "large" phase = "managed" # "managed", "onpremise", "baremetal"}
output "kubeconfig" { value = deployme_cluster.production.kubeconfig sensitive = true}
output "cluster_endpoint" { value = deployme_cluster.production.endpoint}Attributs
Section intitulée « Attributs »| Attribut | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Nom du cluster |
control_planes | number | Oui | Nombre de control planes (1 ou 3) |
workers | number | Oui | Nombre de workers (1+) |
node_size | string | Oui | Taille des nodes (small/medium/large/xlarge) |
phase | string | Non | Phase d’infra (défaut: “managed”) |
Attributs en lecture seule
Section intitulée « Attributs en lecture seule »| Attribut | Type | Description |
|---|---|---|
id | string | Identifiant unique du cluster |
status | string | État actuel du cluster |
endpoint | string | URL de l’API Kubernetes |
kubeconfig | string | Fichier kubeconfig (sensible) |
node_count | number | Nombre total de nodes |
created_at | string | Date de création |
Exemples avancés
Section intitulée « Exemples avancés »Cluster avec variables
Section intitulée « Cluster avec variables »variable "deployme_api_token" { type = string sensitive = true}
variable "environment" { type = string default = "staging"}
variable "worker_count" { type = number default = 3}
resource "deployme_cluster" "env" { name = "k8s-${var.environment}" control_planes = var.environment == "production" ? 3 : 1 workers = var.worker_count node_size = var.environment == "production" ? "large" : "medium"}Écrire le kubeconfig dans un fichier
Section intitulée « Écrire le kubeconfig dans un fichier »resource "local_file" "kubeconfig" { content = deployme_cluster.production.kubeconfig filename = "${path.module}/kubeconfig.yaml" file_permission = "0600"}terraform import deployme_cluster.production <cluster-id>