Configurazione di un'architettura implementabile

Dopo aver aggiunto un'architettura distribuibile al progetto, è possibile modificare i valori di input per configurare l'architettura per la distribuzione.

Le configurazioni possono essere generiche, ma molti progetti utilizzano una configurazione, o un gruppo di configurazioni, per distribuire le risorse in ambienti diversi. Ad esempio, un gruppo di configurazioni può essere utilizzato per distribuire risorse in ambienti di sviluppo, test e produzione e configurare servizi comuni al di fuori degli ambienti. Quando distribuisci la tua configurazione, IBM Cloud® Schematics utilizza Terraform per applicare il piano sottostante.

Prima di poter implementare l'architettura, è necessario convalidare gli input, il piano, la conformità e il costo stimato per l'architettura implementabile. Qualsiasi modifica apportata alla configurazione viene convalidata per garantire che non vi siano problemi o errori.

Impostazione dei valori di input

I valori di input vengono utilizzati per configurare un'architettura implementabile in base alle esigenze specifiche. Gli input richiesti variano in base all'architettura implementabile scelta. A seconda di come è stata progettata l'architettura, alcuni input potrebbero includere una serie di opzioni tra cui scegliere, oppure è possibile inserire valori nei campi sotto forma di stringhe di testo.

Valori di riferimento

Le configurazioni possono essere collegate tra loro utilizzando le uscite di una configurazione come ingressi in un'altra. Ad esempio, una configurazione per un'applicazione potrebbe utilizzare un output proveniente da una configurazione dell'infrastruttura, come un ID cluster, per l'implementazione su tale infrastruttura. Per ottenere questo risultato, è possibile aggiungere un riferimento a un input o a un output di un'altra configurazione. È anche possibile fare riferimento ai parametri di un ambiente. Quando si aggiunge un riferimento, il valore viene estratto dall'input, dall'output o dall'ambiente e utilizzato come valore di input nell'architettura che si sta configurando.

Nella console, è possibile aggiungere un riferimento in un'architettura che si sta configurando passando con il mouse su un input e selezionando Riferimento l'icona Icona.

Se si utilizza l'API o la CLI per configurare un'architettura distribuibile, oppure se si sta modificando una definizione di stack di architettura distribuibile e si desidera includere un riferimento, è possibile scriverlo come stringa di testo. I riferimenti sono conformi alle specifiche dell' URL, ma utilizzano un protocollo ref diverso anziché http. Proprio come gli URL sui siti web, puoi scrivere un riferimento relativo al tuo contesto attuale. Ad esempio, se stai aggiungendo un riferimento a un input all'interno della configurazione che stai modificando, il tuo percorso corrente è /configs/<configname> e puoi scrivere un riferimento relativo a quel percorso. Ad esempio, ref:./inputs/region aggiunge un riferimento all'input denominato region all'interno della stessa configurazione. In questo caso, la configurazione che stai modificando non deve essere distribuita per fare riferimento a un altro valore al suo interno.

È possibile trovare il nome di un output di riferimento aprendo una configurazione distribuita nel proprio progetto e andando alla scheda Output.

Riferimento ai valori da una configurazione

Il formato generale per fare riferimento a un valore in una configurazione è il seguente:

ref:/configs/<config_name>/inputs_or_outputs/<input_or_output_name>.

È possibile fare riferimento a un input o a un output da una configurazione distribuita dal proprio progetto. Ad esempio, il seguente riferimento indica un output denominato cluster_id all'interno della ProdCluster configurazione: ref:/configs/ProdCluster/outputs/cluster_id.

È possibile aggiungere un riferimento relativo a un altro input all'interno della configurazione che si sta modificando. Non è necessario implementare la configurazione per farlo.

Sperimentale

Se nel progetto sono state raggruppate più configurazioni, è possibile fare riferimento agli output tra le configurazioni raggruppate. Il formato generale per fare riferimento a un valore è il seguente:

ref:/configs/<stack_name>/members/<member_name>/inputs_or_outputs/<input_or_output_name>

Se desideri fare un riferimento relativo, puoi farlo. Un riferimento relativo tra configurazioni impilate insieme sarebbe formattato come ref:../<member_name>/inputs_or_outputs/<input_or_output_name>. Tuttavia, se si fa riferimento a un valore nella definizione dello stack, esso verrà formattato come ref:../../inputs/<input_name> all'interno della configurazione del membro. Attualmente, i membri non possono fare riferimento agli output dalla definizione dello stack.

Riferimento agli input provenienti da un ambiente

Poiché gli ambienti vengono creati all'interno di un progetto e non all'interno di una configurazione, non è necessario includere /configs/<configname> se si desidera fare riferimento a un parametro in un ambiente. Ma è necessario includere il nome dell'ambiente dopo il tipo environments di riferimento. Quindi, specificare inputs e fornire il nome dell'input a cui si desidera fare riferimento: ref:./environments/<environment_name>/inputs/<name>. Non è possibile aggiungere un riferimento a un parametro di autenticazione o a un profilo di conformità da un ambiente.

Ad esempio, il seguente riferimento indica un parametro di input denominato cluster_id Production nell'ambiente : ref:./environments/Production/inputs/cluster_id.

Configurazione di un'architettura tramite la console

Per creare una configurazione personalizzata, completare i seguenti passaggi:

  1. Dal pannello Sicurezza, selezionare il metodo di autenticazione che si desidera utilizzare per implementare l'architettura.

    Implementazione di una prova di concetto a scopo di test? È possibile creare una chiave API mentre si modifica una configurazione nel proprio progetto. In questo modo si autorizza l'implementazione del progetto nell'account attualmente selezionato. Altrimenti, puoi aggiungere una chiave API utilizzando IBM Cloud® Secrets Manager. Questo autorizza il progetto a essere distribuito su un account di destinazione ed è necessario per distribuire la tua architettura. Per ulteriori informazioni, consulta Utilizzo di una chiave API con Secrets Manager per autorizzare un progetto a distribuire un'architettura.

  2. Durante la convalida, viene eseguita una scansione Code Risk Analyzer sulla vostra architettura. Seleziona le politiche che desideri utilizzare durante la convalida. È possibile utilizzare l'impostazione predefinita Architettura oppure l'opzione Seleziona da Workload Protection se si dispone di un'istanza di Workload Protection configurata nell'account di destinazione.

    Se selezioni Architettura predefinita:

    • La scansione utilizza la politica predefinita che il proprietario dell'architettura distribuibile ha aggiunto al momento dell'integrazione.
    • Le politiche aggiunte dal proprietario dell'architettura includono dei requisiti. Vengono verificati anche i requisiti inclusi nell'insieme di regole supportate.
    • Eventuali requisiti aggiuntivi aggiunti dal proprietario dell'architettura che non sono inclusi nell'elenco delle regole supportate non vengono verificati durante la convalida della configurazione.
    • Se il proprietario dell'architettura implementabile non ha aggiunto criteri al proprio prodotto, viene utilizzato l'insieme completo di regole.

    Per visualizzare l'elenco dei requisiti aggiuntivi, accedere al catalogo di IBM Cloud® e selezionare l'architettura distribuibile che si sta configurando. La scheda Sicurezza e conformità elenca tutti i requisiti che sono stati aggiunti all'architettura implementabile.

    Se selezioni Seleziona da Workload Protection, devi disporre di un'istanza del servizio nell'account di destinazione in cui desideri eseguire la distribuzione.

  3. Dal pannello Inputs, inserisci i valori per gli input richiesti per la configurazione dell'architettura distribuibile.

    A seconda dell'architettura implementabile, alcuni input potrebbero essere configurati con riferimenti ad altre architetture o valori fissi. Questi valori sono stati forniti dal creatore dell'architettura implementabile. Prestare attenzione se si modificano questi valori, in particolare i riferimenti, poiché l'architettura potrebbe non essere distribuita correttamente con valori diversi. Passa con il mouse sull'input e clicca su Reimposta per riportare l'input al valore fisso specificato dal creatore. Non è possibile reimpostare i riferimenti di input. Solo gli input con valori fissi possono essere ripristinati al loro valore fisso originale.

  4. Opzionale: attivare gli ingressi opzionali per inserire i valori relativi agli ingressi opzionali.

  5. Fare clic su Salva.

  6. Fare clic su Convalida. La finestra modale visualizzata fornisce ulteriori dettagli sulla convalida in corso.

    Se la convalida non va a buon fine, puoi risolvere il problema. In alternativa, un amministratore del servizio IBM Cloud Progetti può esaminare i risultati attraverso il servizio Schematics, annullare il fallimento e approvare la configurazione da distribuire comunque. Tuttavia, assicurarsi che la pipeline abbia fallito a causa della scansione di Code Risk Analyzer e non a causa di un errore di convalida o di pianificazione. Si sconsiglia di ignorare un errore segnalato a causa di un errore di convalida o di pianificazione, poiché la configurazione potrebbe non essere distribuita correttamente. Per ulteriori informazioni sulla sicurezza e la conformità nei progetti, consultare Ottenere la conformità continua come impresa.

Se stai configurando architetture implementabili che sono impilate insieme, assicurati di convalidare ciascuna architettura in ordine in base alle loro dipendenze. In alternativa, puoi modificare le impostazioni del tuo progetto per distribuire automaticamente le modifiche di configurazione che sono state convalidate con successo. In questo modo, ogni architettura viene convalidata, approvata e implementata automaticamente in base alle proprie dipendenze. Per ulteriori informazioni, consultare Implementazione di un'architettura.

Approvazione delle modifiche alla configurazione tramite la console

Dopo aver convalidato la configurazione, le modifiche devono essere approvate da un redattore o da un amministratore del servizio Progetti dell' IBM Cloud. Per approvare le modifiche, procedi come segue:

  1. Dall'elenco dei progetti, seleziona un progetto.
  2. Verifica che non ci siano elementi che richiedono attenzione nella scheda Panoramica del tuo progetto. Gli elementi che richiedono attenzione possono impedire l'implementazione.
  3. Vai alla scheda Configurazioni e seleziona una configurazione dell'architettura implementabile.
  4. Fai clic su Edit.
  5. Fare clic su Visualizza ultima convalida.
  6. Aggiungi un commento con maggiori dettagli sull'approvazione e clicca su Approva.

Se la convalida non è riuscita a causa della scansione di Code Risk Analyzer, un amministratore del servizio Progetti di IBM Cloud può ignorare l'errore e approvare comunque la configurazione da distribuire.

Configurazione di un'architettura utilizzando la CLI

Per aggiungere una configurazione a un progetto utilizzando la CLI, eseguire il seguente ibmcloud project config-create comando:

ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION] [--schematics SCHEMATICS]

Per ulteriori informazioni sui parametri del comando, vedere ibmcloud project config-create.

Approvazione delle modifiche alla configurazione tramite CLI

  1. Esegui il seguente ibmcloud project config-validate comando per ottenere una verifica di validità della tua configurazione:

    ibmcloud project config-validate --project-id PROJECT-ID --id ID
    

    Per ulteriori informazioni sui parametri del comando, vedere ibmcloud project config-validate.

  2. Dopo aver convalidato la configurazione, approvare le modifiche apportate e unirle alla configurazione principale eseguendo il seguente ibmcloud project config-approve comando:

    ibmcloud project config-approve --project-id PROJECT-ID --id ID [--comment COMMENT]
    

    Per ulteriori informazioni sui parametri del comando, vedere ibmcloud project config-approve.

Configurazione di un'architettura tramite l'API

È possibile aggiungere una configurazione a un progetto in modo programmatico richiamando l 'API Progetti, come mostrato nella seguente richiesta di esempio. L'esempio aggiunge una configurazione con il nome My new configuration a un progetto:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "definition": { "name": "env-stage", "description": "Stage environment configuration.", "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global", "inputs": { "account_id": "account_id", "resource_group": "stage", "access_tags": [ "env:stage" ], "logdna_name": "LogDNA_stage_service", "sysdig_name": "SysDig_stage_service" }, "settings": { "IBMCLOUD_TOOLCHAIN_ENDPOINT": "https://api.us-south.devops.dev.cloud.ibm.com" } } }' \
  "{base_url}/v1/projects/{project_id}/configs"

Approvazione delle modifiche alla configurazione tramite API

È possibile approvare programmaticamente le modifiche alla configurazione e unirle alla configurazione principale richiamando l 'API Progetti come mostrato nella seguente richiesta di esempio. L'esempio approva le modifiche alla configurazione e le unisce alla configurazione:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "comment": "Approving the changes" }' \
  "{base_url}/v1/projects/{project_id}/configs/{id}/approve"