Ontwerpen die Terraform-configuraties bevatten, vereisen toegang tot een Terraform-runtimeomgeving die u integreert met het vRealize Automation Cloud Assembly-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 vRealize 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.

  1. Controleer of u over een Kubernetes-cluster beschikt waarop de Terraform CLI moet worden uitgevoerd.
    • Alle licenties staan toe dat een Kubernetes-cluster wordt beheerd door vRealize Automation.

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

    • Gebruikers met Enterprise-licenties hebben de optie om een kubeconfig-bestand op te geven om de Terraform CLI op een extern Kubernetes-cluster uit te voeren.
  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 vRealize Automation of een externe versie.
    Kubernetes-cluster (alle licenties)

    Voor Kubernetes, beheerd door vRealize 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 beschikbaar voor alle licenties.

    Kubernetes kubeconfig (alleen Enterprise)

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

    Deze optie is alleen beschikbaar voor Enterprise-licenties.

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

    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 hebt 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 hebt de vorige naamruimte in de gebruikersinterface verlaten. Selecteer een naamruimte altijd opnieuw nadat u de clusterselectie hebt 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 vRealize 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 vRealize 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 vRealize Automation Cloud Assembly 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