Un blueprint è una configurazione Terraform pacchettizzata come immagine Open Container Initiative (OCI). La configurazione Terraform specifica l'infrastruttura e l'applicazione che SaaS Runtime esegue il deployment su Google Cloud.
Questa pagina descrive come creare un'immagine OCI dalle configurazioni Terraform esistenti e come caricarle in Runtime SaaS.
Per i dettagli su queste configurazioni Terraform, consulta Blueprint in Runtime SaaS.
Prima di iniziare
- Assicurati di aver abilitato Runtime SaaS.
- Nel progetto che utilizzi per Runtime SaaS, assicurati di avere un repository Artifact Registry impostato sul formato Docker. Per saperne di più, consulta Crea un repository per Runtime SaaS.
- Identifica le configurazioni Terraform di cui vuoi eseguire il deployment utilizzando
SaaS Runtime.
- Per informazioni dettagliate su come decidere come modellare l'offerta SaaS utilizzando i progetti, vedi Determinare il modello dell'offerta SaaS
- Per i dettagli sui requisiti per la configurazione di Terraform, consulta Requisiti del blueprint.
Crea e carica il progetto iniziale
Per eseguire il deployment delle configurazioni Terraform su Google Cloud utilizzando Runtime SaaS, devi:
- Pacchettizza le configurazioni Terraform in immagini OCI. Queste immagini OCI sono chiamate blueprint.
- Inserisci queste immagini OCI nel repository Artifact Registry che hai identificato o configurato.
A seconda di come scegli di creare e caricare il blueprint, puoi eseguire tutti i passaggi manualmente oppure Runtime SaaS può eseguire alcuni passaggi.
Puoi creare l'immagine OCI e caricarla nel repository utilizzando uno dei seguenti metodi:
Carica un archivio ZIP contenente la configurazione Terraform. Runtime SaaS utilizza l'archivio zip per creare l'immagine OCI.
Per maggiori dettagli, consulta la sezione seguente: Caricare un archivio zip.
Connetti un repository Git che contiene i file Terraform. Runtime SaaS utilizza i file per creare l'immagine OCI. Runtime SaaS utilizza quindi Cloud Build per creare e caricare il progetto ogni volta che aggiorni il repository.
Per maggiori dettagli, consulta la sezione seguente: Connettersi a un repository Git.
Crea l'immagine OCI localmente ed esegui il push dell'immagine nel repository in Artifact Registry.
Per maggiori dettagli, consulta la sezione seguente: Creare e inviare un'immagine manualmente.
Automatizza la creazione e il push dell'immagine OCI in un repository in Artifact Registry. L'automazione di questo processo ti aiuta a incorporare Runtime SaaS in una pipeline CI/CD.
Per maggiori dettagli, consulta la sezione seguente: Automatizzare la creazione di blueprint.
Caricare un archivio zip
Puoi creare un archivio zip dei file Terraform. Carichi questo archivio in Runtime SaaS quando crei una release o un tipo di unità. Runtime SaaS utilizza l'archivio zip per creare l'immagine OCI richiesta.
Per fornire un progetto utilizzando un archivio zip:
- Vai alla directory del progetto Terraform.
- Crea un archivio ZIP contenente la configurazione Terraform.
- Assicurati che:
- L'archivio zip contiene solo i file
Terraform. Ad esempio,
main.tf,variables.tf,outputs.tf,versions.tfe moduli. - L'archivio zip non contiene file non necessari, ad esempio
directory
.gito un dockerfile.
- L'archivio zip contiene solo i file
Terraform. Ad esempio,
- Il comando per creare un archivio zip potrebbe essere simile a questo:
zip terraform-files.zip main.tf outputs.tf variables.tf versions.tf
- Assicurati che:
- Carica l'archivio zip quando crei una release o quando crei un tipo di unità.
Runtime SaaS utilizza l'archivio zip per creare l'immagine OCI richiesta e la esegue il push nel repository Artifact Registry.
Connettiti a un repository Git
Se memorizzi la configurazione Terraform in un repository Git, puoi connettere SaaS Runtime a questo repository. SaaS Runtime utilizza i file per creare l'immagine OCI richiesta quando crei un tipo di unità o una release.
Per fornire un progetto base utilizzando un repository Git:
- Assicurati che i file Terraform si trovino nella directory root del repository Git.
- Collega il repository Git a Runtime SaaS quando crei una release o quando crei un tipo di unità.
Runtime SaaS utilizza Developer Connect per connettersi al repository Git. Per maggiori dettagli su Developer Connect, consulta la documentazione di Developer Connect.
Runtime SaaS utilizza i file Terraform del repository Git per creare l'immagine OCI richiesta e la push nel repository Artifact Registry.
Questa integrazione automatizza il processo di creazione del blueprint ogni volta che aggiorni il codice Terraform nel repository. Quando vengono apportate modifiche al repository Git collegato, SaaS Runtime utilizza i file modificati per creare automaticamente una nuova immagine OCI e poi la invia al repository Artifact Registry.
Crea ed esegui il push di un'immagine manualmente
Questo metodo ti offre un controllo granulare sul processo di creazione del progetto.
Per creare un blueprint manualmente:
Nella directory radice dei file Terraform, crea un file denominato
Dockerfilecon il seguente contenuto:# syntax=docker/dockerfile:1-labs FROM scratch COPY --exclude=Dockerfile --exclude=.git --exclude=.gitignore . /Questo
Dockerfileutilizza un'immagine di base minimale (scratch). Valuta la possibilità di includeredockerignorenel comando per escludere i file non pertinenti, ad esempio:- il
Dockerfilestesso - la directory
.git - il file
.gitignore
- il
Se non hai un builder Docker, crea un builder
docker-containerutilizzandodocker buildxcon il seguente comando:docker buildx create --name container --driver=docker-containerEsegui il seguente comando
docker buildx builddalla directory Terraform per creare ed eseguire il push del blueprint in Artifact Registry:IMAGE_NAME=us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:TAG ENGINE_TYPE=inframanager ENGINE_VERSION=TERRAFORM_VERSION docker buildx build -t $IMAGE_NAME \ --builder=container \ --push \ --annotation "com.easysaas.engine.type=$ENGINE_TYPE" \ --annotation "com.easysaas.engine.version=$ENGINE_VERSION" \ --provenance=false .Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.REPOSITORY_NAME: il nome del repository Artifact Registry.IMAGE_NAME: un nome per l'immagine del blueprint.TAG: un tag per la versione dell'immagine (ad esempio,latestov1.0.0). La scelta di un tag descrittivo ti aiuta a gestire in modo efficace le versioni del blueprint.TERRAFORM_VERSION: la versione supportata di Terraform da utilizzare. Consulta Versioni di Terraform supportate per l'elenco delle versioni supportate da Infrastructure Manager.
Un comando potrebbe avere un aspetto simile al seguente esempio:
IMAGE_NAME=us-docker.pkg.dev/saas-docs-testing/blueprints-repo/my-terraform-blueprint:v1.0.0 ENGINE_TYPE=inframanager ENGINE_VERSION=1.5.7 docker buildx build -t $IMAGE_NAME \ --builder=container \ --push \ --annotation "com.easysaas.engine.type=$ENGINE_TYPE" \ --annotation "com.easysaas.engine.version=$ENGINE_VERSION" \ --provenance=false .
L'immagine OCI si trova nel repository Artifact Registry.
Per utilizzare questa immagine con SaaS Runtime, selezionala quando crei una release o quando crei un tipo di unità.
Automatizzare la creazione di progetti
Puoi automatizzare la creazione dell'immagine OCI e il push su Artifact Registry utilizzando Cloud Build. Puoi configurare un trigger in modo che ogni volta che viene modificato il codice Terraform, l'immagine OCI venga creata e inviata automaticamente ad Artifact Registry.
Per configurare questa automazione:
Nella radice del repository Terraform, crea un file
cloudbuild.yamlcon la seguente configurazione:steps: - id: 'Create Dockerfile' name: 'bash' args: ['-c', 'echo -e "# syntax=docker/dockerfile:1-labs\nFROM scratch\nCOPY --exclude=Dockerfile.Blueprint --exclude=.git --exclude=.gitignore . /" > Dockerfile.Blueprint'] - id: 'Create docker-container driver' name: 'docker' args: ['buildx', 'create', '--name', 'container', '--driver=docker-container'] - id: 'Build and Push docker image' name: 'docker' args: ['buildx', 'build', '-t', '${_IMAGE_NAME}', '--builder=container', '--push', '--annotation', 'com.easysaas.engine.type=${_ENGINE_TYPE}','--annotation', 'com.easysaas.engine.version=${_ENGINE_VERSION}', '--provenance=false','-f', 'Dockerfile.Blueprint', '.'] serviceAccount: '${_SERVICE_ACCOUNT}' substitutions: _SERVICE_ACCOUNT: 'projects/PROJECT_ID/serviceAccounts/CLOUD_BUILD_SERVICE_ACCOUNT' _IMAGE_NAME: 'us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:latest' _ENGINE_TYPE: 'inframanager' _ENGINE_VERSION: 'TERRAFORM_VERSION' options: logging: CLOUD_LOGGING_ONLYSostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.CLOUD_BUILD_SERVICE_ACCOUNT: il nome completo del tuo account di servizio Cloud Build. Per saperne di più su Runtime SaaS e sui service account, consulta Service account Runtime SaaS.REPOSITORY_NAME: il nome del repository Artifact Registry.IMAGE_NAME: un nome per l'immagine del blueprint.TAG: un tag per la versione dell'immagine (ad esempio,latestov1.0.0). La scelta di un tag descrittivo ti aiuta a gestire in modo efficace le versioni del blueprint.TERRAFORM_VERSION: la versione supportata di Terraform da utilizzare. Consulta Versioni di Terraform supportate per l'elenco delle versioni supportate da Infrastructure Manager.
Avvia il job Cloud Build utilizzando il comando
gcloud builds submitdalla directory contenente il filecloudbuild.yaml:gcloud builds submit --config=cloudbuild.yaml --substitutions=_IMAGE_NAME='us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:TAG'Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.REPOSITORY_NAME: il nome del repository Artifact Registry.IMAGE_NAME: Un nome per l'immagine del blueprintTAG: un tag per la versione dell'immagine (ad esempio,latestov1.0.0). La scelta di un tag descrittivo ti aiuta a gestire in modo efficace le versioni del blueprint.
Puoi configurare un trigger in modo che ogni volta che viene modificato il codice Terraform, l'immagine OCI venga creata e inviata automaticamente ad Artifact Registry. Per maggiori dettagli, vedi Creare e gestire i trigger di build.
L'immagine OCI si trova ora nel repository Artifact Registry.
Per utilizzare questa immagine con SaaS Runtime, selezionala quando crei una release o quando crei un tipo di unità.
Passaggi successivi
- Per saperne di più su Runtime SaaS, consulta la panoramica di Runtime SaaS.
- Per saperne di più sui blueprint, consulta la sezione Blueprint in Runtime SaaS.
- Per iniziare a utilizzare Runtime SaaS, inizia con Crea un'offerta SaaS.