Ontwerpen die Terraform-configuraties bevatten, vereisen toegang tot een Terraform-runtimeomgeving die u integreert met het Automation Assembler-product op locatie.

Een Terraform-runtime toevoegen

De runtimeomgeving bestaat uit een Kubernetes-cluster dat Terraform CLI-opdrachten uitvoert om aangevraagde bewerkingen uit te voeren. Daarnaast verzamelt de runtime logboeken en worden de resultaten van Terraform CLI-opdrachten geretourneerd.

Het VMware Aria Automation-product op locatie vereist dat gebruikers hun eigen Kubernetes-cluster van de Terraform-runtime configureren. Er wordt slechts één Terraform-runtime per organisatie ondersteund. Alle Terraform-implementaties voor die organisatie gebruiken dezelfde runtime.

Opmerking:

Om Terraform-commando's en -statussen uit te voeren, heeft u een Terraform-runtimeomgeving nodig die werkt met K8s. Wanneer u uw Terraform-integratie in VMware Aria Automation op locatie maakt, kunt u kiezen tussen een beheerde k8 (een k8s-cluster dat al wordt beheerd door VMware Aria Automation) of een extern k8s-cluster (een k8s-cluster dat niet wordt beheerd door VMware Aria Automation) en de naamruimte waarin de Terraform-pods worden gemaakt. Als u een extern cluster gebruikt, moet u Kubeconfig-toegang tot het k8s-cluster verlenen voor het Terraform-runtimedoel. Kubeconfig is een k8s-standaard en de Kubeconfig hoeft geen beheerders-Kubeconfig te zijn. U kunt een serviceaccount met minimale rechten gebruiken, bijvoorbeeld het recht om pods in een naamruimte uit te voeren en rechten om een Kubeconfig te genereren voor gebruik met de VMware Aria Automation Terraform-runtime-integratie.

  1. Controleer of u over een Kubernetes-cluster beschikt waarop de Terraform CLI moet worden uitgevoerd.
    • Alle gebruikers kunnen een kubeconfig-bestand leveren om de Terraform CLI uit te voeren op een niet-beheerd Kubernetes-cluster.
    • Gebruikers met een Enterprise-licentie kunnen ervoor kiezen om de Terraform CLI uit te voeren op een Kubernetes-cluster dat wordt beheerd door VMware Aria Automation.

      Ga in Automation Assembler naar Infrastructuur > Resources > Kubernetes en controleer of u een Kubernetes-cluster heeft. Raadpleeg Hoe werk ik met Kubernetes in Automation Assembler? als u er een moet toevoegen.

  2. Als het Kubernetes-cluster nieuw is toegevoegd of gewijzigd, wacht u tot het verzamelen van gegevens is voltooid.

    Gegevensverzameling haalt de lijst met naamruimten en andere informatie op en kan tot 5 minuten duren, afhankelijk van de provider.

  3. Nadat de gegevensverzameling is voltooid, gaat u naar Infrastructuur > Verbindingen > Integraties > Integratie toevoegen en selecteert u de kaart Terraform-runtime.
  4. Voer de instellingen in.
    Figuur 1. Voorbeeld van Terraform-runtime-integratie
    Voorbeeld van Terraform-runtime-integratie voor gebruikers met een Advanced-licentie
    Instelling Beschrijving
    Naam Geef de runtime-integratie een unieke naam.
    Beschrijving Leg uit waar de integratie voor is.
    Terraform-runtime-integratie:
    Runtimetype (alleen Enterprise) Gebruikers met een Enterprise-licentie kunnen aangeven of de Terraform CLI moet worden uitgevoerd op een Kubernetes-cluster dat wordt beheerd door VMware Aria Automation of op een niet-beheerd cluster.
    Kubernetes kubeconfig (alle gebruikers)

    Voor een niet-beheerd Kubernetes-cluster plakt u de volledige inhoud van het kubeconfig-bestand voor het externe cluster.

    Zie Proxyondersteuning toevoegen als u een externe Kubernetes-runtime wilt gebruiken met een proxyserver.

    Deze optie is beschikbaar voor alle gebruikers.

    Kubernetes-cluster (alleen Enterprise)

    Voor Kubernetes, beheerd door VMware Aria Automation, selecteert u het cluster waarin u de Terraform CLI moet worden uitgevoerd.

    Het cluster en het kubeconfig-bestand moeten bereikbaar zijn. U kunt toegang tot kubeconfig valideren met een GET op /cmx/api/resources/k8s/clusters/{clusterId}/kube-config.

    Deze optie is alleen beschikbaar voor Enterprise-licenties.

    Kubernetes-naamruimte Selecteer de naamruimte die u in het cluster wilt gebruiken, voor het maken van pods die de Terraform CLI uitvoert.
    Instellingen voor runtimecontainer:
    Image Voer het pad in naar de containerimage van de Terraform-versie die u wilt uitvoeren.
    Opmerking: De knop VALIDEREN controleert niet op containerimage.
    CPU-aanvraag Voer de hoeveelheid CPU in voor het uitvoeren van containers. Standaard is 250 millicores.
    CPU-limiet Voer het maximum aantal toegestane CPU's in voor het uitvoeren van containers. Standaard is 250 millicores.
    Geheugenaanvraag Voer de hoeveelheid geheugen in voor het uitvoeren van containers. Standaardwaarde is 512 MB.
    Geheugenlimiet Voer het maximaal toegestane geheugen in voor het uitvoeren van containers. Standaardwaarde is 512 MB.
  5. Klik op VALIDEREN en pas de instellingen indien nodig aan.
  6. Klik op TOEVOEGEN.

Instellingen worden in de cache opgeslagen. Nadat u de integratie heeft toegevoegd, kunt u instellingen zoals het cluster of de naamruimte wijzigen, maar het kan tot 5 minuten duren voordat een wijziging wordt gedetecteerd en de Terraform CLI wordt uitgevoerd met de nieuwe instellingen.

Problemen met de Terraform-runtime oplossen

Sommige problemen met de implementatie van de Terraform-configuratie zijn mogelijk gerelateerd aan de runtime-integratie.

Probleem Oorzaak Oplossing
Validatie mislukt met een fout met de mededeling dat de naamruimte ongeldig is. U heeft het cluster gewijzigd, maar heeft de vorige naamruimte in de gebruikersinterface verlaten. Selecteer een naamruimte altijd opnieuw nadat u de clusterselectie heeft gewijzigd.
De vervolgkeuzelijst Naamruimte is leeg of vermeldt geen nieuwe toegevoegde naamruimten. Gegevensverzameling voor het cluster is niet voltooid. Het verzamelen van gegevens neemt 5 minuten in beslag na het invoeren of wijzigen van het cluster en tot 10 minuten bij het invoeren of wijzigen van de naamruimte. Voor een nieuw cluster met bestaande naamruimten moet u maximaal 5 minuten wachten tot het verzamelen van gegevens is voltooid.

Voor een nieuwe naamruimte in een bestaand cluster moet u maximaal 10 minuten wachten tot het verzamelen van gegevens is voltooid.

Als het probleem zich blijft voordoen, verwijdert u het cluster en voegt u het opnieuw toe onder Infrastructuur > Resources > Kubernetes.

Terraform CLI-containers worden gemaakt in een vorig cluster, vorige naamruimte of met eerdere runtime-instellingen, zelfs nadat het integratieaccount is bijgewerkt. De Kubernetes API-client die door VMware Aria Automation wordt gebruikt, wordt gedurende 5 minuten in de cache opgeslagen. Het kan tot 5 minuten duren voordat wijzigingen van kracht worden.
Validatie of een Terraform-implementatiebewerking mislukt met een foutmelding dat kubeconfig niet beschikbaar is. Soms treden deze fouten op omdat het cluster niet bereikbaar is vanaf VMware Aria Automation.

In andere gevallen zijn gebruikersreferenties, tokens of certificaten ongeldig.

De kubeconfiguratiefout kan een aantal redenen hebben en vereist mogelijk dat u contact opneemt technische ondersteuning om het probleem op te lossen.

Proxyondersteuning toevoegen

Als u uw externe Kubernetes-runtimecluster wilt verbinden via een proxyserver, volgt u deze stappen.

  1. Meld u aan bij uw externe Kubernetes-clusterserver.
  2. Maak een lege map.
  3. Voeg de volgende regels toe aan een nieuw bestand met de naam Dockerfile in de nieuwe map.
    FROM projects.registry.vmware.com/vra/terraform:latest as final
    ENV https_proxy=protocol://username:password@proxy_host:proxy_port
    ENV http_proxy=protocol://username:password@proxy_host:proxy_port
    ENV no_proxy=.local,.localdomain,localhost
  4. Pas de tijdelijke waarden aan zodat de omgevingsvariabelen https_proxy en http_proxy de proxyserverinstellingen bevatten die u gebruikt om toegang te krijgen tot internet.

    Het protocol is http of https afhankelijk van wat uw proxyserver gebruikt, wat mogelijk niet overeenkomt met de naam van de omgevingsvariabele van https_proxy of http_proxy.

  5. Sla Dockerfile op en sluit het.
  6. Voer de volgende opdracht uit in de lege map. Afhankelijk van uw accountrechten moet u de opdracht mogelijk uitvoeren in de sudo-modus.

    docker build --file Dockerfile --tag custom-terraform-runtime:1.0 .

    De opdracht maakt een lokale custom-terraform-runtime:1.0 Docker-image.

  7. Ga in Automation Assembler onder Infrastructuur > Verbindingen > Integraties naar uw Terraform-runtime-integratie.
  8. Maak of bewerk de instellingen voor de runtimecontainer om de custom-terraform-runtime:1.0-image te gebruiken:
    Terraform-runtimeproxyimage