Configuración de una arquitectura implementable

Después de añadir una arquitectura implementable a su proyecto, puede editar los valores de entrada para configurar la arquitectura para la implementación.

Las configuraciones pueden ser genéricas, pero muchos proyectos utilizan una configuración, o un grupo de configuraciones, para implementar recursos en diferentes entornos. Por ejemplo, se puede utilizar un grupo de configuraciones para implementar recursos en entornos de desarrollo, prueba y producción, y configurar servicios comunes fuera de los entornos. Cuando implementas tu configuración, IBM Cloud® Schematics utiliza Terraform para aplicar el plan subyacente.

Antes de poder implementar su arquitectura, deben validarse los datos de entrada, el plan, el cumplimiento y el coste estimado de la arquitectura implementable. Cualquier cambio que se realice en la configuración se valida para garantizar que no haya problemas ni fallos.

Configuración de los valores de entrada

Los valores de entrada se utilizan para configurar una arquitectura implementable que se adapte a sus necesidades específicas. Los datos necesarios varían en función de la arquitectura implementable que elija. Dependiendo de cómo se haya diseñado la arquitectura, algunas entradas pueden incluir un conjunto de opciones que se pueden seleccionar, o se pueden introducir valores en los campos como cadenas de texto.

Valores de referencia

Las configuraciones se pueden vincular entre sí utilizando las salidas de una configuración como entradas en otra. Por ejemplo, la configuración de una aplicación podría utilizar una salida de una configuración de infraestructura, como un ID de clúster, para implementarse en esa infraestructura. Para lograrlo, puede añadir una referencia a una entrada o salida de otra configuración. También puede hacer referencia a parámetros de un entorno. Cuando añades una referencia, el valor se extrae de la entrada, la salida o el entorno y se utiliza como valor de entrada en la arquitectura que estás configurando.

En la consola, puede añadir una referencia en una arquitectura que esté configurando pasando el cursor por encima de una entrada y seleccionando el Referencia icono Icono.

Si utiliza la API o la CLI para configurar una arquitectura implementable, o si está editando una definición de pila de arquitectura implementable y desea incluir una referencia, puede escribirla como una cadena de texto. Las referencias cumplen con la especificación URL, pero utilizan un protocolo ref diferente en lugar de http. Al igual que las URL en los sitios web, puedes escribir una referencia relativa a tu contexto actual. Por ejemplo, si estás añadiendo una referencia a una entrada dentro de la configuración que estás editando actualmente, entonces tu ruta actual es /configs/<configname> y puedes escribir una referencia relativa a esa ruta. Por ejemplo, ref:./inputs/region añade una referencia a la entrada denominada region dentro de la misma configuración. En este caso, la configuración que está editando no necesita implementarse para hacer referencia a otro valor dentro de ella.

Puede encontrar el nombre de una salida a la que hacer referencia abriendo una configuración implementada en su proyecto y yendo a la pestaña Salidas.

Referenciar valores desde una configuración

El formato general para hacer referencia a un valor en una configuración es el siguiente:

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

Puede hacer referencia a una entrada o salida de una configuración que se implementó desde su proyecto. Por ejemplo, la siguiente referencia apunta a una salida denominada cluster_id dentro de la ProdCluster configuración: ref:/configs/ProdCluster/outputs/cluster_id.

Puede añadir una referencia relativa a otra entrada dentro de la configuración que está editando actualmente. No es necesario implementar la configuración para hacerlo.

Experimental

Si ha apilado configuraciones en su proyecto, puede hacer referencia a los resultados entre las configuraciones que se apilaron juntas. El formato general para hacer referencia a un valor es el siguiente:

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

Si quieres hacer una referencia relativa, puedes hacerlo. Una referencia relativa entre configuraciones apiladas se formatearía como ref:../<member_name>/inputs_or_outputs/<input_or_output_name>. Sin embargo, si se hace referencia a un valor en la definición de la pila, se formatearía como ref:../../inputs/<input_name> dentro de la configuración del miembro. Actualmente, los miembros no pueden hacer referencia a los resultados de la definición de la pila.

Referenciando entradas de un entorno

Dado que los entornos se crean dentro de un proyecto y no dentro de una configuración, no es necesario incluir /configs/<configname> si se desea hacer referencia a un parámetro en un entorno. Pero debe incluir el nombre del entorno después del tipo environments de referencia. A continuación, especifique inputs y proporcione el nombre de la entrada a la que desea hacer referencia: ref:./environments/<environment_name>/inputs/<name>. No se puede añadir una referencia a un parámetro de autenticación o a un perfil de cumplimiento desde un entorno.

Por ejemplo, la siguiente referencia apunta a un parámetro de entrada que se denomina cluster_id dentro del Production entorno : ref:./environments/Production/inputs/cluster_id.

Configuración de una arquitectura mediante la consola

Para crear una configuración personalizada, siga estos pasos:

  1. En el panel Seguridad, seleccione el método de autenticación que desea utilizar para implementar su arquitectura.

    ¿Implementar una prueba de concepto con fines de evaluación? Puede crear una clave API mientras edita una configuración en su proyecto. Al hacerlo, se autoriza la implementación del proyecto en la cuenta seleccionada actualmente. De lo contrario, puede añadir una clave API utilizando IBM Cloud® Secrets Manager. Esto autoriza el proyecto para su implementación en una cuenta de destino y es necesario para implementar su arquitectura. Para obtener más información, consulte Uso de una clave API con Secrets Manager para autorizar un proyecto a implementar una arquitectura.

  2. Durante la validación, se ejecuta un análisis de Code Risk Analyzer en su arquitectura. Seleccione las políticas que desea utilizar durante la validación. Puede utilizar la opción predeterminada Arquitectura o la opción Seleccionar de Workload Protection si tiene una instancia de Workload Protection configurada en su cuenta de destino.

    Si selecciona Arquitectura predeterminada:

    • El análisis utiliza la política predeterminada que el propietario de la arquitectura implementable añadió al incorporarla.
    • Las políticas que ha añadido el propietario de la arquitectura incluyen requisitos. Se comprueban los requisitos que también se incluyen en el conjunto de reglas admitidas.
    • Los requisitos adicionales que haya añadido el propietario de la arquitectura y que no estén incluidos en la lista de reglas compatibles no se comprueban al validar la configuración.
    • Si el propietario de la arquitectura implementable no ha añadido políticas a su producto, se utiliza el conjunto completo de reglas.

    Para ver la lista de requisitos añadidos, vaya al catálogo de IBM Cloud® y seleccione la arquitectura implementable que está configurando. La pestaña Seguridad y cumplimiento enumera todos los requisitos que se agregaron a la arquitectura implementable.

    Si selecciona Seleccionar de Workload Protection, debe tener una instancia del servicio en la cuenta de destino en la que desea realizar la implementación.

  3. En el panel Entradas, introduzca los valores para las entradas necesarias para la configuración de la arquitectura implementable.

    Dependiendo de la arquitectura desplegable, algunas entradas pueden estar configuradas con referencias a otras arquitecturas o valores fijos. Estos valores fueron proporcionados por el creador de la arquitectura desplegable. Ten cuidado al editar estos valores, especialmente las referencias, ya que la arquitectura podría no implementarse correctamente con valores diferentes. Pase el cursor por encima de la entrada y haga clic en Restablecer para revertir la entrada al valor fijo especificado por el creador. No se pueden restablecer las referencias de entrada. Solo las entradas con valores fijos pueden restablecerse a su valor fijo original.

  4. Opcional: Active la opción Entradas opcionales para introducir valores para las entradas opcionales.

  5. Pulse Guardar.

  6. Pulse Validar. El modal que se muestra proporciona más detalles sobre la validación en curso.

    Si la validación falla, puede solucionar el problema. O bien, un administrador del servicio IBM Cloud Proyectos puede revisar los resultados a través del servicio Schematics y anular el fallo y aprobar la configuración para desplegarla de todos modos. Sin embargo, asegúrese de que la canalización haya fallado debido al análisis de Code Risk Analyzer y no debido a un fallo de validación o de plan. No se recomienda anular un error marcado debido a un fallo de validación o de plan, ya que es posible que la configuración no se implemente correctamente. Para obtener más información sobre la seguridad y el cumplimiento normativo en los proyectos, consulte Cómo lograr el cumplimiento normativo continuo en una empresa.

Si está configurando arquitecturas implementables que están apiladas juntas, asegúrese de validar cada arquitectura en orden según sus dependencias. Como alternativa, puede editar la configuración de su proyecto para implementar automáticamente los cambios de configuración que se validen correctamente. Si lo hace, cada arquitectura se valida, aprueba e implementa automáticamente según sus dependencias. Para obtener más información, consulte Implementación de una arquitectura.

Aprobación de cambios de configuración mediante la consola

Después de validar la configuración, los cambios deben ser aprobados por un editor o administrador del servicio IBM Cloud Projects. Siga los siguientes pasos para aprobar los cambios:

  1. En la lista de proyectos, seleccione un proyecto.
  2. Comprueba que no haya ningún elemento pendiente de atención en la pestaña «Descripción general» de tu proyecto. Los elementos que requieren atención pueden bloquear su capacidad de implementación.
  3. Vaya a la pestaña Configuraciones y seleccione una configuración de arquitectura implementable.
  4. Pulse Editar.
  5. Haga clic en Ver última validación.
  6. Añade un comentario con más detalles sobre la aprobación y haz clic en Aprobar.

Si la validación ha fallado debido al análisis de Code Risk Analyzer, un administrador del servicio IBM Cloud Projects puede anular el error y aprobar la configuración para implementarla de todos modos.

Configuración de una arquitectura mediante la CLI

Para añadir una configuración a un proyecto mediante la CLI, ejecute el siguiente ibmcloud project config-create comando :

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

Para obtener más información sobre los parámetros comando, consulte ibmcloud project config-create.

Aprobación de cambios de configuración mediante la CLI

  1. Ejecute el siguiente ibmcloud project config-validate comando para obtener una comprobación de validación de su configuración:

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

    Para obtener más información sobre los parámetros comando, consulte ibmcloud project config-validate.

  2. Después de validar la configuración, apruebe los cambios realizados y fusiónelos con la configuración principal ejecutando el siguiente ibmcloud project config-approve comando :

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

    Para obtener más información sobre los parámetros comando, consulte ibmcloud project config-approve.

Configuración de una arquitectura mediante la API

Puede añadir una configuración a un proyecto mediante programación llamando a la API de proyectos, tal y como se muestra en la siguiente solicitud de ejemplo. El ejemplo añade una configuración con el nombre My new configuration a un proyecto:

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"

Aprobación de cambios de configuración mediante la API

Puede aprobar mediante programación las modificaciones de configuración y fusionarlas con la configuración principal llamando a la API de proyectos, tal y como se muestra en la siguiente solicitud de ejemplo. El ejemplo aprueba las modificaciones de configuración y las fusiona con la configuración:

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"