Como administrador de Code Stream, puede compartir canalizaciones para que los usuarios de una organización puedan ejecutarlas en cualquier otro proyecto o agregarlas como tareas anidadas dentro de una canalización en otro proyecto.

Por qué es útil una canalización compartida

Cuando se comparte una canalización, no es necesario crear la misma canalización para diferentes proyectos dentro de una organización. Además, si se actualiza una canalización compartida, todos los usuarios de la canalización tendrán la misma actualización.

También se puede utilizar una canalización compartida en Service Broker. Un administrador de Service Broker puede agregar la canalización compartida como un elemento del catálogo para que los usuarios la soliciten y la ejecuten en varios proyectos.

Solo los administradores de Code Stream pueden compartir o dejar de compartir canalizaciones.

Cómo compartir una canalización

Para compartir una canalización, haga clic en Canalizaciones y seleccione la canalización que desea compartir.

  1. Haga clic en Acciones > Compartir en todos los proyectos
  2. Si la canalización está desactivada, haga clic en Acciones > Habilitar.
  3. (opcional) Para que la canalización compartida esté disponible en Service Broker, haga clic en Acciones > Publicar.

    Luego de publicar la canalización, un administrador de Service Broker puede agregarla a Service Broker. Consulte Agregar canalizaciones de Code Stream al catálogo de Service Broker.

Cómo ejecutar una canalización compartida

Para ejecutar una canalización compartida, seleccione la canalización y seleccione un proyecto.

La canalización se ejecuta en el contexto del proyecto que seleccione y solo se comparte el modelo de canalización. No se comparte ninguna infraestructura, como los endpoints o las variables que se utilizan en la canalización. Si una canalización compartida que utiliza endpoints o variables se ejecuta en un proyecto diferente, dichos endpoints y variables deben estar disponibles en ese proyecto.

Por ejemplo, supongamos que jenkinsPipeline utiliza projectA e incluye una tarea con un endpoint denominado jenkinsEndpoint.

Antes de ejecutar una canalización compartida, compruebe si la canalización incluye el contenido necesario para ejecutarla en un proyecto diferente.

Si comparte jenkinsPipeline y desea ejecutarla en el contexto de projectB, debe haber un jenkinsEndpoint en projectB. Si no existe jenkinsEndpoint, cree el endpoint en projectB antes de ejecutar la canalización compartida.

El siguiente procedimiento muestra cómo duplicar un endpoint en otro proyecto. Se siguen pasos similares para una variable.

  1. Haga clic en Endpoints. En el endpoint que desea duplicar, por ejemplo, jenkinsEndpoint, haga clic en Acciones > Exportar.
  2. Haga clic en el botón Importar y seleccione el archivo YAML para jenkinsEndpoint.
  3. Edite el archivo para cambiar el proyecto, como projectB en el siguiente código YAML de ejemplo.
    ---
    project: projectB
    kind: ENDPOINT
    name: jenkinsEndpoint
    ...
  4. Haga clic en Importar.

Para ejecutar jenkinsPipeline en projectB, haga clic en Ejecutar en la tarjeta de canalización y seleccione projectB como el proyecto.

Nota: Para ejecutar la canalización compartida en projectB, debe tener la función de administrador, desarrollador o ejecutor de Code Stream. Si es usuario o visor de Code Stream, no puede ejecutar la canalización a menos que un administrador de Code Stream lo convierta en administrador del proyecto o miembro del proyecto projectB. Para obtener más información acerca de las funciones en Code Stream, consulte Cómo se administran las autorizaciones y el acceso de los usuarios en Code Stream.

Cómo agregar una canalización compartida a otra canalización

El uso de canalizaciones compartidas como tareas anidadas dentro de otra canalización permite ampliar la funcionalidad de la canalización más allá de las canalizaciones que se incluyen en un proyecto. Las canalizaciones compartidas pueden estar en proyectos diferentes entre sí y de la canalización en la que se incluyen como tareas anidadas.

El siguiente ejemplo muestra una canalización denominada master-shared-pipeline-demo con dos tareas de canalización anidadas.

Al crear una canalización con canalizaciones compartidas anidadas, seleccione la canalización compartida y, si hay dos canalizaciones con el mismo nombre, utilice el nombre del proyecto para seleccionar la que desee.

Para especificar la canalización de Task0, selecciónela de una lista de canalizaciones compartidas. Cada nombre de canalización incluye el nombre del proyecto. Si varias canalizaciones compartidas tienen el mismo nombre, puede utilizar el nombre del proyecto para seleccionar la que desee.

Nota: Para ejecutar una canalización que incluya canalizaciones anidadas, la canalización debe poder acceder a cualquier endpoint o variable que se utilice en las canalizaciones anidadas. Si no puede, debe crear el contenido en el proyecto para la canalización.

Cómo utilizar una canalización compartida para la reversión

Si desea utilizar una canalización compartida para la reversión, selecciónela en una lista de canalizaciones cuando configure la reversión para la tarea. Code Stream filtra la lista y muestra solo las canalizaciones en el mismo proyecto o las canalizaciones compartidas en diferentes proyectos.

Al agregar una canalización compartida para la reversión, seleccione la canalización compartida y, si hay dos canalizaciones con el mismo nombre, utilice el nombre del proyecto para seleccionar la opción que desee.

Cómo utilizar una plantilla de nube de VMware compartida en una canalización

Puede utilizar una plantilla de nube de VMware compartida como origen de plantilla de nube para una tarea en una canalización. El uso de plantillas de nube compartidas proporciona acceso a más plantillas de nube que las que se incluyen en un proyecto.

Antes de definir la tarea en Code Stream, compruebe que la plantilla de nube se comparte en Cloud Assembly y que conoce el nombre y la versión. Cuando se comparte una plantilla de nube, se muestra un icono junto al nombre del proyecto en la lista de plantillas de nube.

Para agregar una plantilla de nube compartida como origen en la canalización, primero compruebe que la plantilla de nube de VMware esté compartida en Cloud Assembly.

Para utilizar una plantilla de nube VMware en la canalización compartida:
  • En Tipo de tarea, seleccione Plantilla de nube de VMware.
  • En Acción, seleccione Crear implementación o Actualizar implementación.
  • Si va a actualizar una implementación, seleccione el nombre de la implementación.
  • En Origen de plantilla de nube, seleccione Plantilla de nube de VMware.
  • Para Nombre de plantilla de nube, seleccione en la lista de plantillas de nube o escriba un nombre. Si no ve la plantilla de nube en la lista, esto se debe a que la plantilla se encuentra en un proyecto diferente de la canalización y Code Stream solo muestra las plantillas de nube que se encuentran en el mismo proyecto.
  • En Versión de plantilla de nube, escriba la versión de la plantilla de nube.

En el siguiente ejemplo, shared-bp es la plantilla de nube de VMware compartida que verificó en Cloud Assembly y que desea utilizar, pero no aparece como una selección, por lo que debe escribir su nombre.

Cuando defina una tarea con una plantilla de nube compartida, compruebe que la plantilla de nube se comparte en Cloud Assembly y, a continuación, introduzca el nombre y la versión en Code Stream.
Nota: Si la plantilla de nube de VMware que especifica no está compartida e intenta utilizarla en una canalización de un proyecto diferente, la canalización no se ejecutará y aparecerá un mensaje que indica que la plantilla de nube seleccionada no se compartió.

Cómo eliminar o dejar de compartir una canalización

Si agrega una canalización compartida como una tarea anidada o para revertir una tarea, la canalización en la que se utiliza hace referencia a esa canalización. Si desea eliminar o dejar de compartir la canalización, debe eliminarla de cualquier canalización que haga referencia a ella.

Por ejemplo, si master-shared-pipeline-demo incluye Shared-Pipeline como una tarea anidada, se hace referencia a Shared-Pipeline. No se puede eliminar o dejar de compartir Shared-Pipeline hasta que se quite de master-shared-pipeline-demo.

O si TestRollback utiliza Shared-Pipeline para revertir una tarea, se hace referencia a Shared-Pipeline. No puede eliminar ni dejar de compartir Shared-Pipeline hasta que lo quite de la reversión de la tarea en TestRollback.

El siguiente procedimiento muestra cómo comprobar las referencias de una canalización y eliminarla de la canalización que hace referencia a ella antes de eliminarla o dejar de compartirla.

  1. Compruebe las referencias y actualice las referencias de la canalización si las encuentra.
    1. Haga clic en Canalizaciones. En la canalización compartida que desea comprobar, haga clic en Acciones > Ver referencias.
    2. Anote los nombres de las canalizaciones de referencia.Para quitar una canalización compartida, compruebe si se utiliza como canalización anidada o para que otras canalizaciones la reviertan.
    3. Abra las canalizaciones que hacen referencia a la canalización compartida. Elimine la canalización compartida que se utiliza como tarea anidada o para revertir una tarea, y guarde la canalización.
  2. Eliminar o dejar de compartir una canalización.
    • En la canalización que desea eliminar, haga clic en Acciones > Eliminar.
    • En la canalización que desea dejar de compartir, haga clic en Acciones > Dejar de compartir.