Resolución de problemas para las cadenas de herramientas

Los problemas generales con el uso de cadenas de herramientas pueden incluir problemas de configuración de integración de herramientas o de plantillas de cadenas de herramientas. En muchos de los casos, puede solucionar estos problemas siguiendo unos sencillos pasos.

¿Por qué no puedo crear una cadena de herramientas a partir de una plantilla que utilice un repositorio privado en una región distinta?

La plantilla de cadena de herramientas que está utilizando hace referencia a un repositorio privado de Git Repos and Issue Tracking.

Git Repos and Issue Tracking es específico de la región. Cuando intenta crear una cadena de herramientas a partir de una plantilla y elige como objetivo una región en la que no se encuentra el repositorio privado, la configuración de la integración de Git falla.

Cuando añade un repositorio de Git Repos and Issue Tracking a una cadena de herramientas en una región específica, el ID de IBM se correlaciona con un nombre de usuario de GitLab que le da acceso a GitLab en dicha región. Aunque el nombre de usuario de GitLab que aparece es el mismo en todas las regiones, el usuario de GitLab asociado es diferente en cada región porque cada región tiene una instalación independiente de GitLab. El acceso a los usuarios de GitLab en otras regiones no se otorga automáticamente a las cadenas de herramientas, incluso cuando el nombre de usuario de GitLab que aparece es el mismo.

Haga público el repositorio de Git Repos and Issue Tracking para que se pueda acceder a él desde cualquier lugar, incluidas otras regiones de IBM Cloud.

Si el repositorio debe ser privado, el propietario del repositorio puede otorgar acceso a él creando una señal de acceso personal en el servidor de GitLab donde se encuentra el repositorio de origen. Solo necesita acceso al repositorio privado para clonar el contenido durante la creación de la cadena de herramientas. La señal de acceso personal se puede crear con una fecha de caducidad para limitar su ciclo de vida para que caduque después de un día.

Una vez que tenga una señal de acceso personal, puede crear un URL para acceder al repositorio desde otras regiones. Mientras configure la integración de herramientas, en el campo URL de repositorio de origen, actualice el URL de repositorio para utilizar el nombre de usuario y la señal de acceso.

https://user:XXXXXXX@us-south.git.cloud.ibm.com/group/node-hello-world

Donde user es tu nombre de usuario GitLab, XXXXXXX es el token de acceso, group es el grupo donde se almacena el repositorio y node-hello-world es el nombre del repositorio.

Si su repositorio de GitLab no se encuentra dentro de un grupo de GitLab, el valor de group es el mismo que el nombre de usuario.

He configurado una integración de herramientas para mi cadena de herramientas. ¿Por qué no se ha configurado?

Si se produce un error durante el proceso de configuración o si la comunicación entre la cadena de herramientas y la herramienta no se establece correctamente, la configuración falla.

Después de añadir y configurar una integración de herramientas para la cadena de herramientas, se visualiza un mensaje de error para indicar que la configuración ha fallado.

Cuando añade una integración de herramientas, la cadena de herramientas se comunica con la herramienta representada mediante la integración de herramientas para suministrar los recursos necesarios y asociarlos con la cadena de herramientas. Si se produce un error durante el proceso de configuración o si la comunicación entre la cadena de herramientas y la herramienta no se establece correctamente, la integración de herramientas se coloca en un estado de error.

Puede intentar configurar de nuevo la integración de herramientas:

  1. En su tarjeta de herramienta, mueva el cursor sobre el mensaje Setup failed y pulse Volver a configurar.

    caption-side=bottom"
    de herramientas Reconfigurar*

  2. Asegúrese de utilizar parámetros de configuración válidos. Si el error ha sido provocado por una configuración no válida, se visualiza un mensaje de error; por ejemplo, The integration could not be set up. Check the settings and try again. Reason: Invalid api_key:fakeKey. Actualice los valores de la integración de herramientas y pulse Guardar integración.

  3. Si el error está causado por un problema de comunicación, pulse Guardar integración para intentarlo de nuevo.

¿Por qué no puedo suprimir las cadenas de herramientas utilizando la CLI de ibmcloud?

Actualmente, no se pueden suprimir las cadenas de herramientas utilizando la CLI de recursos de ibmcloud.

He intentado suprimir una cadena de herramientas de la línea de mandatos utilizando el mandato ibmcloud resource service-instance-delete y el mandato falla con el siguiente mensaje de error:

Error Code: RC-ServiceBrokerErrorResponse Message: description : Toolchain delete must be performed from the toolchain dashboard

Las cadenas de herramientas son un tipo especial de recurso en la plataforma en la nube que actualmente no puede suprimir mediante la CLI de ibmcloud resource.

Para suprimir una cadena de herramientas:

  1. Desde la IBM Cloud consola, haga clic en el icono del menú hamburguesa > Automatización de plataformas > Cadenas de herramientas. En la página Cadenas de herramientas, pulse la cadena de herramientas que se debe suprimir.
  2. Pulse el menú Acciones y seleccione Suprimir. Cuando se suprime una cadena de herramientas, también se suprimen todas sus integraciones de herramienta, lo que podría dar lugar a la supresión de los recursos que dichas integraciones gestionan.
  3. Para confirmar la supresión, escriba el nombre de la cadena de herramientas y pulse Suprimir.

Puede utilizar los mandatos de CLI de IBM Cloud Developer Tools (ibmcloud dev) para suprimir cadenas de herramientas. Después de instalar la CLI de IBM Cloud, puede suprimir una cadena de herramientas desde la línea de mandatos utilizando el mandato ibmcloud dev toolchain-delete.

¿Por qué no puedo ver mis cadenas de herramientas en el panel de control de DevOps?

Cuando vaya al panel de control de DevOps, las cadenas de herramientas no se visualizan.

Su cadena de herramientas no aparecerá en la cadena de herramientas si no se ha seleccionado la ubicación correcta. DevOps Insights solo está disponible en tres ubicaciones: Dallas, Frankfurt y Londres.

En la página de la cadena de herramientas, cambie la ubicación a Dallas, Frankfurt o Londres para ver todas las cadenas de herramientas integradas de DevOps Insights.

¿Por qué no puedo crear una cadena de herramientas cuando la clave raíz está inhabilitada?

Cuando intenta crear una cadena de herramientas, se muestra la notificación siguiente: The root key of the Key Management Service instance that was configured for the Continuous Delivery service in the selected resource group and region is disabled.

Cuando crea una cadena de herramientas, debe protegerla utilizando una clave raíz para el cifrado que está habilitada.

Utilice uno de los métodos siguientes para habilitar la clave raíz para el cifrado:

¿Por qué no puedo ver las instancias de servicio que he creado en la página Cadenas de herramientas cuando la clave raíz está inhabilitada?

Al abrir la cadena de herramientas, se muestra la notificación siguiente: The root key of the key management service instance that was used to encrypt this toolchain is disabled.

Puesto que la información necesaria para ver las instancias de servicio de la cadena de herramientas se descifra al abrir una cadena de herramientas, debe asegurarse de que la clave raíz para el cifrado está habilitada.

Utilice uno de los métodos siguientes para habilitar la clave raíz para el cifrado:

Cuando utilizo Terraform o la API para configurar una integración de herramientas, ¿por qué falla la configuración con el error Could not find value for secret reference... ?

La integración de herramientas se ha configurado con una referencia a un secreto, pero la cadena de herramientas no puede encontrar el secreto o almacén de secretos al que se hace referencia.

Cuando se utiliza Terraform o la API para crear o actualizar una integración de herramientas, la configuración falla con el mensaje de error Could not find value for secret reference....

Muchas integraciones de herramientas incluyen propiedades de configuración que se clasifican como secretos. Cuando establece estas propiedades en un recurso de Terraform o una llamada de API, puede establecerlas como referencias de secretos. Una referencia de secreto es una serie con formato especial que identifica el nombre y la ubicación de un secreto en un almacén de secretos que está integrado en la cadena de herramientas. Este error indica que la cadena de herramientas no puede encontrar el secreto identificado, o que el almacén de secretos no está integrado en la cadena de herramientas. El error puede producirse para referencias de secretos por nombre si uno o más de los segmentos de la serie {vault:...} de referencia de secretos son incorrectos, o si no existe una clave del grupo, nombre o campo especificado en el almacén de secretos. El error se puede producir para referencias de secretos por CRN si el CRN secreto hace referencia a un secreto que se ha suprimido.

El mensaje de error incluye la serie de referencia secreta que no se puede resolver.

Complete las tareas siguientes para referencias de secretos por nombre:

  • Compruebe que el almacén de secretos esté integrado como una herramienta en la cadena de herramientas y que la integración de herramientas esté correctamente configurada para identificar por el nombre de instancia de servicio. Si la integración de herramientas está mal configurada, edite la integración de herramientas para corregir la condición de error y, a continuación, guarde la configuración.
  • Compruebe que el primer segmento de la referencia de secreto de {vault::...} coincida con el nombre de la integración de herramientas del almacén de secretos. Por ejemplo, la referencia de secreto {vault::my-secret-store.my-secret} espera que la cadena de herramientas tenga una integración de herramientas de almacén de secretos denominada my-secret-store. Este valor es el nombre de la integración de herramientas, no el nombre de la instancia del servicio de almacén de secretos.
  • Si el secreto se almacena en Key Protect, compruebe que el segundo segmento de la referencia de secreto {vault::...} coincida con el nombre de la clave que desea utilizar en la instancia de servicio Key Protect. Por ejemplo, la referencia secreta {vault::my-kms.my-key} espera encontrar una clave denominada my-key en la instancia de servicio Key Protect. Esta instancia de servicio se integra en la cadena de herramientas con una integración de herramientas Key Protect denominada my-kms.
  • Si el secreto se almacena en Secrets Manager, compruebe que el segundo y el tercer segmento de la referencia de secreto de {vault::...} coincidan con los nombres del grupo de secretos y el secreto que desea utilizar en la instancia de servicio de Secrets Manager. Por ejemplo, la referencia de secreto {vault::my-sm.my-group.my-key} espera encontrar un secreto denominado my-key en un grupo de secretos denominado my-group. Este secreto y grupo de secretos se almacenan en la instancia de servicio de Secrets Manager que se integra en la cadena de herramientas utilizando una integración de herramientas de Secrets Manager denominada my-sm.
  • Si el secreto está almacenado en HashiCorp Vault, compruebe que el segundo y el tercer segmento de la referencia del secreto de {vault::...} coinciden con los nombres del secreto y del campo secreto del servidor HashiCorp Vault. Por ejemplo, la referencia secreta {vault::my-hcv.my-secret.my-field} espera encontrar un secreto llamado my-secret en el servidor HashiCorp Vault, y un campo llamado my-field dentro de ese secreto. Este servidor se integra en la cadena de herramientas mediante una integración de herramientas HashiCorp Vault que recibe el nombre de my-hcv.

Realice las tareas siguientes para referencias de secretos por CRN:

  • Compruebe que el almacén de secretos esté integrado como una herramienta en la cadena de herramientas y que la integración de herramientas esté correctamente configurada para identificar por el CRN de la instancia de servicio. Si la integración de herramientas está mal configurada, edite la integración de herramientas para corregir la condición de error y, a continuación, guarde la configuración.
  • Compruebe que el CRN de la instancia de servicio Secrets Manager que se ha configurado en la integración de herramientas hace referencia a la misma instancia que el CRN del secreto anómalo.

Cuando utilizo Terraform o la API para configurar una integración de herramientas, ¿por qué falla la configuración con el error A problem was encountered while attempting to resolve secret reference... ?

La integración de herramientas se ha configurado con una referencia a un secreto, pero la cadena de herramientas no tiene autorización para recuperar el secreto del almacén de secretos donde reside el secreto.

Cuando se utiliza Terraform o la API para crear o actualizar una integración de herramientas, la configuración falla con el mensaje de error A problem was encountered while attempting to resolve secret reference....

Muchas integraciones de herramientas incluyen propiedades de configuración que se clasifican como secretos. Cuando establece estas propiedades en un recurso de Terraform o una llamada de API, puede establecerlas como referencias de secretos. Una referencia de secreto es una serie con formato especial que identifica el nombre y la ubicación de un secreto en un almacén de secretos que está integrado en la cadena de herramientas. Con servicios de almacenamiento IBM Cloud de secretos como Key Protect y Secrets Manager, el error indica que la cadena de herramientas puede ponerse en contacto con el servicio de almacenamiento de secretos, pero no está autorizada para recuperar secretos del servicio. Normalmente, este problema se produce porque IBM CloudIdentity and Access Management (IAM) no tiene una política de autorización de servicio a servicio que permita a la cadena de herramientas leer los secretos del servicio.

El mensaje de error incluye la serie de referencia secreta que no se puede resolver.

Complete las tareas siguientes para referencias de secretos por nombre:

  • Examine el primer segmento de la referencia secreta {vault::...}. Este segmento es el nombre de la integración de herramientas de almacén de secretos en la cadena de herramientas. Por ejemplo, la referencia de secreto {vault::my-kms.my-key} identifica una integración de herramienta de almacén de secretos denominada my-kms.
  • Examine la configuración de integración de la herramienta de almacén de secretos para asegurarse de que el parámetro name coincide con el nombre de la integración de la herramienta de almacén de secretos. Además, asegúrese de que la integración de herramientas se ha configurado correctamente para identificar por el nombre de instancia de servicio y de que se ha seleccionado la instancia de servicio correcta de Key Protect o Secrets Manager.
  • Utilizando IAM, añada una política de autorización de servicio a servicio desde la cadena de herramientas a la instancia de servicio Key Protect o Secrets Manager. En la política de autorización, la cadena de herramientas es el servicio de origen y el almacén de secretos es el servicio de destino. Cuando tenga como destino Key Protect, asegúrese de que la política otorga los roles Viewer y ReaderPlus. Cuando tenga como destino Secrets Manager, asegúrese de que la política otorga los roles Viewer y SecretsReader.

Realice las tareas siguientes para referencias de secretos por CRN:

  • Examine la configuración de integración de la herramienta de almacén de secretos para asegurarse de que se ha configurado correctamente para que la identifique el CRN de la instancia de servicio. Además, asegúrese de que el CRN para la instancia de servicio Secrets Manager es correcto.
  • Utilice IAM para añadir una política de autorización de servicio a servicio desde la cadena de herramientas a la instancia de servicio Secrets Manager. En la política de autorización, la cadena de herramientas es el servicio de origen y la instancia de Secrets Manager es el servicio de destino. Asegúrese de que la política otorga los roles Viewer y SecretsReader.

Para obtener más información sobre las políticas de autorización de servicio a servicio, consulte Utilización de autorizaciones para otorgar acceso entre servicios.

Para ver un ejemplo de cómo configurar una política de autorización de servicio a servicio desde una cadena de herramientas a una instancia de servicio de almacén de secretos con Terraform, consulte Especificación de referencias de secreto con Terraform.

Cuando utilizo Terraform o la API para configurar una integración de herramientas de Key Protect, Secrets Managero App Configuration, ¿por qué falla la configuración?

La integración de herramientas hace referencia a una instancia de servicio Key Protect, Secrets Managero App Configuration que no existe.

Cuando utilizas Terraform o la API para crear o actualizar una integración de Key Protect App Configuration herramientas, Secrets Manager, o, la configuración falla con el mensaje There was a problem with the provided service parameters, please check that they are valid de error.

La integración de la herramienta está configurada con el nombre o ID de una instancia de Key Protect App Configuration servicio, Secrets Manager, o que no se puede encontrar o a la que no se puede acceder. Si utiliza Terraform para gestionar tanto la instancia de servicio como la integración de herramientas, Terraform puede intentar crear o actualizar la integración de herramientas antes de crear la instancia de servicio.

Si utiliza Terraform, compruebe su configuración de Terraform para asegurarse de que el recurso de ibm_cd_toolchain_tool_keyprotectintegración de ibm_cd_toolchain_tool_appconfig herramientas, ibm_cd_toolchain_tool_secretsmanager, o depende del recurso Key Protect, Secrets ManagerApp Configurationibm_resource_instance, o que representa la integración de herramientas. Puede especificar esta dependencia dentro del recurso de integración de herramientas haciendo referencia a los atributos del recurso de instancia de servicio, o especificando un meta-argumento depends_on que haga referencia al recurso de instancia de servicio. Puede hacer referencia directamente al recurso de instancia de servicio, o indirectamente a través de otros recursos intermedios. Al declarar dependencias entre recursos correctamente, puede forzar a Terraform a crear, actualizar y suprimir recursos en la secuencia correcta.

Para ver un ejemplo de cómo funcionan las dependencias entre recursos de Terraform, consulte Especificación de referencias secretas con Terraform.

Si está utilizando la API, compruebe los parámetros de configuración de la integración de herramientas de Key Protect, Secrets Managero App Configuration que está intentando crear o actualizar. Verifique que el nombre o el ID de la instancia de servicio que está intentando integrar se haya especificado correctamente en la configuración de la integración de herramientas.