Aller au contenu

Provider Terraform

Le provider Terraform permet de gérer vos clusters Deployme.cloud en Infrastructure as Code.

terraform {
required_providers {
deployme = {
source = "deployme-cloud/deployme"
version = "~> 0.1"
}
}
}
provider "deployme" {
api_token = var.deployme_api_token
# Ou via DEPLOYME_API_TOKEN
}
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
}
AttributTypeRequisDescription
namestringOuiNom du cluster
control_planesnumberOuiNombre de control planes (1 ou 3)
workersnumberOuiNombre de workers (1+)
node_sizestringOuiTaille des nodes (small/medium/large/xlarge)
phasestringNonPhase d’infra (défaut: “managed”)
AttributTypeDescription
idstringIdentifiant unique du cluster
statusstringÉtat actuel du cluster
endpointstringURL de l’API Kubernetes
kubeconfigstringFichier kubeconfig (sensible)
node_countnumberNombre total de nodes
created_atstringDate de création
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"
}
resource "local_file" "kubeconfig" {
content = deployme_cluster.production.kubeconfig
filename = "${path.module}/kubeconfig.yaml"
file_permission = "0600"
}
Fenêtre de terminal
terraform import deployme_cluster.production <cluster-id>