Sobes.tech
Junior

Czym są dostawcy w Terraform?

sobes.tech AI

Odpowiedź od AI

Dostawcy w Terraform to wtyczki, które działają jako abstrakcja nad API różnych usług chmurowych (np. AWS, Azure, GCP), dostawców SaaS (np. GitHub, Datadog) lub innych platform infrastrukturalnych (np. Kubernetes, vSphere). Umożliwiają Terraformowi interakcję z tymi platformami w celu tworzenia, modyfikowania i usuwania zasobów.

Każdy dostawca zapewnia zestaw typów zasobów i źródeł danych, które odpowiadają obiektom na docelowej platformie. Na przykład dostawca aws zapewnia zasób aws_instance do zarządzania maszynami wirtualnymi EC2 oraz źródło danych aws_ami do pobierania informacji o obrazach AMI.

Zasada działania:

  1. Terraform wysyła żądanie do dostawcy przez RPC.
  2. Dostawca tłumaczy to żądanie na wywołania API docelowej platformy.
  3. Terraform otrzymuje odpowiedź od dostawcy na temat statusu operacji.

Konfiguracja dostawcy jest określana w plikach .tf:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0" // Określenie wymaganego wersji dostawcy
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.0"
    }
  }
}

// Konfiguracja dostawcy AWS dla określonego regionu
provider "aws" {
  region = "us-east-1"
}

// Konfiguracja dostawcy Kubernetes
provider "kubernetes" {
  config_path = "~/.kube/config" // Ścieżka do pliku konfiguracyjnego kubeconfig
}

Kluczowe aspekty:

  • Źródła: Dostawcy mogą być opracowywani przez HashiCorp (oficjalni), społeczność (zweryfikowani) lub przez strony trzecie. Źródło hashicorp/aws wskazuje, że jest to oficjalny dostawca HashiCorp dla AWS.
  • Wersjonowanie: Ważne jest ustalenie wersji dostawców, aby zapewnić powtarzalność wdrożeń. Używa się operatorów porównania (np. ~>, =, >).
  • Uwierzytelnianie: Dostawcy wymagają danych uwierzytelniających do autoryzacji w docelowej platformie. Metody uwierzytelniania zależą od dostawcy i mogą obejmować klucze API, tokeny OAuth, role IAM (dla AWS) itp. Konfiguracja uwierzytelniania często jest zewnętrzna w zmiennych lub ładowana ze środowiska.
  • Wiele instancji: Można skonfigurować wiele instancji tego samego dostawcy z różnymi konfiguracjami (np. do pracy z różnymi regionami AWS).

Podsumowując, dostawcy są kluczowymi komponentami Terraform, które umożliwiają zarządzanie infrastrukturą w różnych systemach za pomocą jednolitej deklaratywnej składni.