Configurando uma arquitetura implantável

Depois de adicionar uma arquitetura implantável ao seu projeto, você pode editar os valores de entrada para configurar a arquitetura para implantação.

As configurações podem ser genéricas, mas muitos projetos utilizam uma configuração, ou um grupo de configurações, para implantar recursos em diferentes ambientes. Por exemplo, um grupo de configurações pode ser usado para implantar recursos em ambientes de desenvolvimento, teste e produção e configurar serviços comuns fora dos ambientes. Quando você implanta sua configuração, o IBM Cloud® Schematics usa o Terraform para aplicar o plano subjacente.

Antes de implantar sua arquitetura, as entradas, o plano, a conformidade e o custo estimado para a arquitetura implantável devem ser validados. Quaisquer alterações feitas na configuração são validadas para ajudar a garantir que não haja problemas ou falhas.

Definindo valores de entrada

Os valores de entrada são usados para configurar uma arquitetura implantável que atenda às suas necessidades específicas. As entradas necessárias variam de acordo com a arquitetura implantável que você escolher. Dependendo de como a arquitetura foi projetada, algumas entradas podem incluir um conjunto de opções que você pode selecionar ou você pode inserir valores nos campos como cadeias de texto.

Valores de referência

As configurações podem ser vinculadas entre si usando as saídas de uma configuração como entradas em outra. Por exemplo, uma configuração para um aplicativo poderia usar uma saída de uma configuração de infraestrutura, como um ID de cluster, para implantar nessa infraestrutura. Para isso, você pode adicionar uma referência a uma entrada ou saída de outra configuração. Você também pode referenciar parâmetros de um ambiente. Quando você adiciona uma referência, o valor é extraído da entrada, saída ou ambiente e usado como valor de entrada na arquitetura que você está configurando.

No console, você pode adicionar uma referência em uma arquitetura que está configurando passando o mouse sobre uma entrada e selecionando o Referência ícone Ícone.

Se você estiver usando a API ou CLI para configurar uma arquitetura implantável, ou se estiver editando uma definição de pilha de arquitetura implantável e quiser incluir uma referência, você pode escrever uma como uma string de texto. As referências estão em conformidade com a especificação URL, mas utilizam um protocolo ref diferente em vez de http. Assim como os URLs em sites, você pode escrever uma referência relativa ao seu contexto atual. Por exemplo, se você estiver adicionando uma referência a uma entrada dentro da configuração que está editando no momento, então seu caminho atual é /configs/<configname> e você pode escrever uma referência relativa a esse caminho. Por exemplo, ref:./inputs/region adiciona uma referência à entrada chamada region dentro da mesma configuração. Nesse caso, a configuração que você está editando não precisa ser implantada para fazer referência a outro valor dentro dela.

Você pode encontrar o nome de uma saída para referência abrindo uma configuração implantada em seu projeto e acessando a guia Saídas.

Referenciando valores de uma configuração

O formato geral para referenciar um valor em uma configuração é o seguinte:

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

Você pode fazer referência a uma entrada ou saída de uma configuração que foi implantada a partir do seu projeto. Por exemplo, a referência a seguir aponta para uma saída nomeada cluster_id na ProdCluster configuração: ref:/configs/ProdCluster/outputs/cluster_id.

Você pode adicionar uma referência relativa a outra entrada dentro da configuração que está editando no momento. A configuração não precisa ser implantada para isso.

Experimental

Se você empilhou configurações em seu projeto, pode referenciar saídas entre as configurações que foram empilhadas juntas. O formato geral para referenciar um valor é o seguinte:

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

Se você quiser fazer uma referência relativa, pode fazê-lo. Uma referência relativa entre configurações empilhadas seria formatada como ref:../<member_name>/inputs_or_outputs/<input_or_output_name>. Mas, se você estiver referenciando um valor na definição da pilha, ele será formatado como ref:../../inputs/<input_name> dentro da configuração do membro. Atualmente, os membros não podem fazer referência às saídas da definição da pilha.

Referenciando entradas de um ambiente

Como os ambientes são criados dentro de um projeto, e não dentro de uma configuração, você não precisa incluir /configs/<configname> se quiser fazer referência a um parâmetro em um ambiente. Mas você deve incluir o nome do ambiente após o tipo de referência environments. Em seguida, especifique inputs e forneça o nome da entrada que você deseja referenciar: ref:./environments/<environment_name>/inputs/<name>. Não é possível adicionar uma referência a um parâmetro de autenticação ou a um perfil de conformidade a partir de um ambiente.

Por exemplo, a referência a seguir aponta para um parâmetro de entrada chamado cluster_id dentro do Production ambiente: ref:./environments/Production/inputs/cluster_id.

Configurando uma arquitetura usando o console

Para criar uma configuração personalizada, conclua as etapas a seguir:

  1. No painel Segurança, selecione o método de autenticação que você deseja usar para implantar sua arquitetura.

    Implementando uma prova de conceito para fins de teste? Você pode criar uma chave API ao editar uma configuração em seu projeto. Isso autoriza a implantação do projeto na conta selecionada no momento. Caso contrário, você pode adicionar uma chave API usando IBM Cloud® Secrets Manager. Isso autoriza o projeto a ser implantado em uma conta de destino e é necessário para implantar sua arquitetura. Para obter mais informações, consulte Usando uma chave API com Secrets Manager para autorizar um projeto a implantar uma arquitetura.

  2. Durante a validação, uma verificação do Code Risk Analyzer é executada em sua arquitetura. Selecione as políticas que deseja usar durante a validação. Você pode usar a opção padrão Arquitetura ou a opção Selecionar de Workload Protection se tiver uma instância do Workload Protection configurada em sua conta de destino.

    Se você selecionar Arquitetura padrão:

    • A verificação usa a política padrão que o proprietário da arquitetura implantável adicionou quando a incorporou.
    • As políticas adicionadas pelo proprietário da arquitetura incluem requisitos. Os requisitos que também estão incluídos no conjunto de regras suportadas são verificados.
    • Quaisquer requisitos adicionais que o proprietário da arquitetura tenha adicionado e que não estejam incluídos na lista de regras suportadas não serão verificados quando você validar sua configuração.
    • Se o proprietário da arquitetura implantável não adicionou políticas ao seu produto, o conjunto completo de regras é usado.

    Para visualizar a lista de requisitos adicionados, acesse o catálogo IBM Cloud® e selecione a arquitetura implantável que você está configurando. A guia Segurança e conformidade lista todos os requisitos que foram adicionados à arquitetura implantável.

    Se você selecionar Select from Workload Protection, deverá ter uma instância do serviço na conta de destino para a qual deseja fazer a implementação.

  3. No painel Entradas, insira os valores das entradas necessárias para a configuração da arquitetura implementável.

    Dependendo da arquitetura implantável, algumas entradas podem ser configuradas para você com referências a outras arquiteturas ou valores fixos. Esses valores foram fornecidos pelo criador da arquitetura implantável. Tenha cuidado ao editar esses valores, especialmente as referências, pois a arquitetura pode não ser implantada com sucesso com valores diferentes. Passe o cursor sobre a entrada e clique em Redefinir para reverter a entrada para o valor fixo especificado pelo criador. Não é possível redefinir referências de entrada. Apenas entradas com valores fixos podem ser redefinidas para o seu valor fixo original.

  4. Opcional: Alterne as entradas opcionais para a posição ativada para inserir valores para entradas opcionais.

  5. Clique em Salvar.

  6. Clique em Validar. O modal exibido fornece mais detalhes sobre a validação em andamento.

    Se a validação falhar, você pode solucionar o problema. Ou então, um administrador do serviço IBM Cloud Projetos pode analisar os resultados por meio do serviço Schematics, substituir a falha e aprovar a configuração a ser implantada mesmo assim. No entanto, certifique-se de que o pipeline falhou devido à verificação do Code Risk Analyzer e não devido a uma falha de validação ou planejamento. Não é recomendável ignorar uma falha sinalizada devido a uma falha de validação ou planejamento, pois a configuração pode não ser implantada com sucesso. Para obter mais informações sobre segurança e conformidade em projetos, consulte Alcançando conformidade contínua como uma empresa.

Se você estiver configurando arquiteturas implantáveis que são empilhadas juntas, certifique-se de validar cada arquitetura em ordem, de acordo com suas dependências. Como alternativa, você pode editar as configurações do seu projeto para implantar automaticamente as alterações de configuração que forem validadas com sucesso. Se você fizer isso, cada arquitetura será validada, aprovada e implantada automaticamente de acordo com suas dependências. Para obter mais informações, acesse Implantação de uma arquitetura.

Aprovação de alterações de configuração usando o console

Após validar sua configuração, as alterações devem ser aprovadas por um editor ou administrador no serviço Projetos do IBM Cloud. Conclua as seguintes etapas para aprovar as alterações:

  1. Na lista de projetos, selecione um projeto.
  2. Verifique se não há itens pendentes que precisem de atenção na guia Visão geral do seu projeto. Os itens que requerem atenção podem impedir sua capacidade de implantação.
  3. Vá para a guia Configurações e selecione uma configuração de arquitetura implantável.
  4. Clique em Editar.
  5. Clique em Exibir última validação.
  6. Adicione um comentário com mais detalhes sobre a aprovação e clique em Approve (Aprovar ).

Se a sua validação falhou devido à verificação do Code Risk Analyzer, um administrador do serviço IBM Cloud Projects pode ignorar a falha e aprovar a configuração para implantação mesmo assim.

Configurando uma arquitetura usando a CLI

Para adicionar uma configuração a um projeto usando a CLI, execute o seguinte ibmcloud project config-create comando:

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

Para obter mais informações sobre os parâmetros do comando, consulte ibmcloud project config-create.

Aprovando alterações de configuração usando a CLI

  1. Execute o seguinte ibmcloud project config-validate comando para obter uma verificação de validação da sua configuração:

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

    Para obter mais informações sobre os parâmetros do comando, consulte ibmcloud project config-validate.

  2. Após validar sua configuração, aprove as edições e mescle-as à configuração principal executando o seguinte ibmcloud project config-approve comando:

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

    Para obter mais informações sobre os parâmetros do comando, consulte ibmcloud project config-approve.

Configuração de uma arquitetura usando a API

Você pode adicionar programaticamente uma configuração a um projeto chamando a API de projetos, conforme mostrado na seguinte solicitação de exemplo. O exemplo adiciona uma configuração com o nome My new configuration a um projeto:

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"

Aprovação de alterações de configuração usando a API

Você pode aprovar programaticamente as edições de configuração e mesclá-las à configuração principal chamando a API de projetos, conforme mostrado na seguinte solicitação de exemplo. O exemplo aprova as edições de configuração e as mescla à configuração:

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"