Terraform für Container Registry einrichten

Terraform on IBM Cloud® ermöglicht die vorhersehbare und konsistente Bereitstellung von IBM Cloud-Services, damit Sie schnell komplexe, mehrschichtige Cloudumgebungen erstellen können, die den IaC-Prinzipien (Infrastructure as Code-Code) folgen. Ähnlich wie bei der Verwendung der IBM Cloud Befehlszeilenschnittstelle (CLI) oder der API und SDKs können Sie die Bereitstellung, Aktualisierung und Löschung Ihrer IBM Cloud® Container Registry Instanzen mithilfe der HashiCorp Configuration Language (HCL) automatisieren.

Suchen Sie eine verwaltete Terraform on IBM Cloud-Lösung? Probieren Sie IBM Cloud Schematicsaus. Mit Schematics können Sie die Terraform-Skriptsprache verwenden, mit der Sie vertraut sind, aber Sie müssen sich nicht um die Einrichtung und Pflege der Terraform-Befehlszeilenschnittstelle und des IBM Cloud Provider-Plug-ins kümmern. Schematics bietet auch vordefinierte Terraform-Vorlagen, die Sie aus dem IBM Cloud-Katalog installieren können.

Terraform installieren und einen Container Registry-Namensbereich erstellen

Bevor Sie beginnen, vergewissern Sie sich, dass Sie über den erforderlichen Zugriff zum Erstellen und Arbeiten mit IBM Cloud Container Registry-Ressourcen verfügen.

  1. Um die Terraform-CLI zu installieren und das IBM Cloud Provider-Plug-in für Terraform zu konfigurieren, folgen Sie dem Terraform unter IBM Cloud Einführungstutorium. Das Plug-in bietet eine Kurzdarstellung der IBM Cloud-APIs, die zum Bereitstellen, Aktualisieren oder Löschen von Container Registry-Ressourcen verwendet werden.

  2. Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen main.tf. Fügen Sie die Konfiguration hinzu, um eine Container Registry Namespace und zum Zuweisen eines Benutzers ZugangsrichtlinienEine Methode, mit der Benutzern, Service-IDs und Zugriffsgruppen Zugriffsberechtigungen für Kontoressourcen erteilt werden. Eine Zugriffsrichtlinie enthält ein Subjekt, ein Ziel und eine Rolle. In Cloud Identity and Access Management (IAM) für diesen Namespace mithilfe von HashiCorp Konfigurationssprache (HCL). Weitere Informationen finden Sie in der Terraform-Sprachdokumentation.

    Im folgenden Beispiel wird ein Namensbereich in der RessourcengruppeDie Umgebung und die Einschränkungen, die die darin enthaltenen Ressourceninstanzen einhalten. Ein Benutzer kann einer Ressourcengruppe zugeordnet werden, um die Onlinezusammenarbeit zu ermöglichen. mit einem Namen Ihrer Wahl erstellt und eine Bildaufbewahrungsrichtlinie an diesen Namespace angehängt, der 10 Bilder beibehält. Wenn Sie die ID der Standardressourcengruppe abrufen möchten, wird die Datenquelle ibm_resource_group verwendet. Dann wird der Benutzer user@ibm.com in der IAM-Zugriffsrichtlinie für den Namensraum für eine bestimmte Region der Rolle Manager zugewiesen. Die Region wird aus der Datei terraform.tfvars abgerufen, die Sie in Schritt 1 erstellt haben.

    data "ibm_resource_group" "group" {
        name = "default"
    }
    
    resource "ibm_cr_namespace" "cr_namespace" {
        name = "<namespace_name>"
        resource_group_id = data.ibm_resource_group.group.id
    }
    
    resource "ibm_cr_retention_policy" "cr_retention_policy" {
        namespace = ibm_cr_namespace.cr_namespace.id
        images_per_repo = 10
    }
    
    resource "ibm_iam_user_policy" "policy" {
        ibm_id = "user@ibm.com"
        roles  = ["Manager"]
    
        resources {
            service = "container-registry"
            resource = ibm_cr_namespace.cr_namespace.id
            resource_type = "namespace"
            region = var.region
        }
    }
    

    Die Aktualisierung eines Namensbereichs durch Verwendung von Terraform wird nicht unterstützt. Sie können Terraform verwenden, um nur Namespaces zu erstellen und zu entfernen.

  3. Terraform-Befehlszeilenschnittstelle initialisieren.

    terraform init
    
  4. Erstellen Sie einen Terraform-Ausführungsplan. Der Terraform-Ausführungsplan fasst alle Aktionen zusammen, die ausgeführt werden müssen, um den Container Registry-Namensbereich und die IAM-Zugriffsrichtlinie in Ihrem Konto zu erstellen.

    terraform plan
    
  5. Erstellen Sie den Container Registry-Namensbereich und die IAM-Zugriffsrichtlinie in IBM Cloud.

    terraform apply
    
  6. Vergewissern Sie sich auf der Übersichtsseite Container Registry, dass Ihr Namespace erfolgreich erstellt wurde.

  7. Überprüfen Sie, ob die IAM-Zugriffsrichtlinie erfolgreich zugewiesen wurde. Weitere Informationen finden Sie unter Zugewiesene Zugriffsberechtigungen in der Konsole überprüfen.

Nächste Schritte

Nachdem Sie Ihren ersten Container Registry-Namensbereich erfolgreich mit Terraform on IBM Cloud erstellt haben, können Sie zwischen den folgenden Tasks wählen: