Edición local de la definición de la pila de arquitectura desplegable

El archivo de definición de pila define las arquitecturas desplegables miembros que se apilan para formar una arquitectura desplegable más compleja. Especifica información sobre cómo se supone que esas arquitecturas desplegables se relacionan entre sí, como referencias de entrada que conectan arquitecturas entre sí. Si planea compartir esta solución con otros a través de un catálogo privado, se requiere una definición de pila para ayudar a garantizar que se pueda desplegar con éxito.

A menos que apiles arquitecturas desplegables en un proyecto y quieras compartir esa solución con otros a través de un catálogo privado, no necesitas utilizar el archivo de definición de pila.

La definición de pila contiene variables de pila. Estas variables son entradas que los usuarios pueden configurar y salidas de arquitecturas desplegables apiladas que se muestran en el nivel superior. Esos valores de entrada se referencian en las arquitecturas desplegables miembros, como se ilustra en la siguiente imagen. La definición de la pila también incluye entradas de arquitecturas desplegables miembros. Estas entradas pueden ser referencias que enlacen las arquitecturas desplegables entre sí. Las entradas que requieren un valor o referencia específicos para desplegar la solución con éxito deben incluirse en la definición de la pila. Para ver un ejemplo, consulte Creación de la definición de pila mediante la CLI.

 Una representación visual de una definición de pila. En el nivel de pila, se incluye una entrada llamada "prefijo". La arquitectura desplegable del miembro A utiliza ese prefijo como entrada. A crea salidas. Luego, la arquitectura implementable del miembro B utiliza una de esas salidas como entrada y crea salidas cuando se implementa.
Visualizando la definición de la pila

Uso de la consola para crear la definición de pila

En un proyecto, la definición de la pila se crea automáticamente cuando se apilan arquitecturas desplegables y se definen variables. El uso de la consola para apilar arquitecturas implementables y definir variables de pila proporciona los siguientes beneficios:

  • Puede utilizar el selector de referencias de la consola para crear referencias entre arquitecturas desplegables apiladas, en lugar de escribir las referencias desde cero.
  • El despliegue de las arquitecturas apiladas de un proyecto ayuda a verificar que la solución global funciona según lo diseñado antes de que otros la configuren y desplieguen.
  • Dado que la definición de la pila se crea automáticamente en función de las selecciones en la consola, la información como los identificadores de localizador de versiones de las arquitecturas implementables de los miembros es precisa y se actualiza automáticamente.

En el proyecto, puede seleccionar qué entradas desea incluir en el nivel de pila. Estas entradas se incluyen en la sección inputs de la definición de la pila y se configuran como referencias en la arquitectura implementable del miembro en su proyecto. En la siguiente imagen, la entrada prefix está resaltada dentro de la arquitectura implementable del miembro Custom Apache. Si se selecciona esta entrada, el Default value cambia a una referencia a la entrada de nivel de pila. Cuando un usuario añade su solución a un proyecto desde un catálogo, puede configurar la entrada prefix y la arquitectura miembro Custom Apache hará referencia a ese valor. La entrada fp_vsi_floating_ip_address hace referencia a una salida de otra arquitectura implementable del miembro. Esa entrada no debería seleccionarse, ya que esa referencia vincula las arquitecturas miembro entre sí. Estas entradas de las arquitecturas miembro se incluyen en la sección members del archivo de definición de la pila.

 Definición de variables de pila en un proyecto.
Definición de variables de pila en un proyecto

Editar la definición de tu pila

Para editar la definición de su pila localmente, complete los siguientes pasos:

  1. Complete los pasos para apilar arquitecturas desplegables, defina variables de apilamiento e incorpore las arquitecturas apiladas a un catálogo privado.

    Configure e implante las arquitecturas apiladas para verificar que la solución funciona según lo diseñado antes de añadirla a un catálogo privado.

  2. Una vez añadida la arquitectura desplegable a su catálogo privado, accederá a la página Configurar versión del catálogo. Desde ahí, haga clic en el menú Acciones > Generar manifiesto.

    También puede utilizar el método Obtener una definición de pila de la API de proyectos o el comando ibmcloud project stack-definition de la CLI de proyectos para exportar la definición de pila.

  3. Abra el archivo stack_definition.json.

  4. Utilizando la definición de ejemplo como guía, edite las variables de entrada y salida.

  5. Agregue el archivo a la carpeta raíz de su repositorio de código fuente.

La próxima vez que añada una nueva versión de su solución al catálogo, se incluirán sus actualizaciones.

Ejemplo de archivo de definición

Se recomienda utilizar un proyecto para crear la definición de la pila con el fin de garantizar la precisión. Sin embargo, el siguiente fragmento de código puede utilizarse como plantilla para crear la definición de pila desde cero:

{
   "inputs": [
      {
         "name": "Stack input 1",
         "type": "string",
         "hidden": false,
         "required": true,
         "default" : "Default value"
      },
      {
         "name": "Stack input 2",
         "type": "string",
         "hidden": false,
         "required": true
      }
   ],
   "outputs": [
      {
         "name": "Output 1 name",
         "value": "The reference to this output value"
      },
      {
         "name": "Output 2 name",
         "value": "The reference to this output value"
      }
   ],
   "members": [
      {
         "Name": "Deployable architecture 1 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      },
      {
         "Name": "Deployable architecture 2 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      }
   ]
}

Entradas de pila

El valor inputs indica una matriz de las variables de entrada necesarias para que la solución se despliegue correctamente. Cuando un usuario añade la arquitectura desplegable a un proyecto desde un catálogo, debe configurar estas entradas antes de desplegar. Los siguientes valores se pueden incluir en el nivel inputs.

"inputs": [
   {
      "name": "Stack input 1",
      "type": "string",
      "hidden": false,
      "required": true,
      "default" : "Default value"
   },
   {
      "name": "Stack input 2",
      "type": "string",
      "hidden": false,
      "required": true
   }
]
name
El nombre de su variable de entrada.
type
Tipo de datos primitivos de Terraform de la variable. Por ejemplo, boolean o string.
hidden
Un valor booleano que indica si el parámetro debe ocultarse a los usuarios durante la instalación.
required
Un valor booleano que indica si los usuarios deben especificar el parámetro durante la instalación.
default
El valor predeterminado que debe establecerse en el catálogo.

Salidas de pila

El valor outputs indica una matriz de las variables de salida que se crean cuando se despliega la solución. Los siguientes valores se pueden incluir en el nivel outputs.

"outputs": [
   {
      "name": "Output 1 name",
      "value": "The reference to this output value"
   },
   {
      "name": "Output 2 name",
      "value": "The reference to this output value"
   }
]
name
El nombre de su variable de salida.
value
La referencia donde se puede encontrar el valor. Para obtener más información sobre las referencias, consulte Referenciar valores.

Aportaciones de los miembros

El valor members indica una matriz de las entradas y salidas para cada arquitectura desplegable apilada. Los siguientes valores se pueden incluir en el nivel members.

"members": [
   {
      "Name": "Deployable architecture 1 name",
      "Version_locator": "",
      "inputs": [
         {
            "name": "Input 1 name",
            "value": "reference"
         },
         {
            "name": "Input 2 name",
            "value": "reference"
         }
      ]
   }
]
name
El nombre programático de la arquitectura implementable incluida en la pila.
version_locator
Identifica la versión de la arquitectura desplegable miembro. Para encontrar el localizador de versiones, seleccione el producto en el catálogo para abrir la página de detalles del catálogo. Asegúrese de seleccionar la versión correcta. A continuación, haga clic en Ver detalles.
inputs
Entradas a las arquitecturas desplegables miembros que se apilan. Incluya entradas con valores específicos que se requieren para que la solución global se despliegue. Si las arquitecturas miembro apiladas dependen unas de otras, incluya aquí esos valores como referencias. Para obtener más información, consulte Referenciar valores. Por ejemplo, si una de tus arquitecturas necesita una salida de otra arquitectura con la que está apilada, añade una referencia a la salida como valor.
name
El nombre de su variable de entrada. No edite el nombre, ya que debe coincidir con la entrada que se utiliza en la arquitectura implementable del miembro.
value
El valor de su variable de entrada. Es necesario proporcionar un valor predeterminado o una referencia.