Ontwerpen die Terraform-configuraties bevatten, vereisen toegang tot een Terraform-runtimeomgeving die u integreert met het 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.
- 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 vRealize Automation.
Ga in Cloud Assembly naar en controleer of u een Kubernetes-cluster hebt. Raadpleeg Hoe werk ik met Kubernetes in Cloud Assembly? als u er een moet toevoegen.
- 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.
- Nadat de gegevensverzameling is voltooid, gaat u naar Terraform-runtime. en selecteert u de kaart
- Voer de instellingen in.
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 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 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 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. - Klik op VALIDEREN en pas de instellingen indien nodig aan.
- 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 . |
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.
- Meld u aan bij uw externe Kubernetes-clusterserver.
- Maak een lege map.
- 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
- Pas de tijdelijke waarden aan zodat de omgevingsvariabelen
https_proxy
enhttp_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
ofhttp_proxy
. - Sla Dockerfile op en sluit het.
- 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.
- Ga in Cloud Assembly onder naar uw Terraform-runtime-integratie.
- Maak of bewerk de instellingen voor de runtimecontainer om de custom-terraform-runtime:1.0-image te gebruiken: