IBM Cloud Docs
Propiedades y recursos del entorno de tuberías de Tekton

Propiedades y recursos del entorno de tuberías de Tekton

La siguiente información y recursos están disponibles de forma predeterminada para un IBM Cloud® Continuous Delivery Tekton PipelineRun.

PipelineRun anotaciones

La tabla 1 describe las anotaciones que se incluyen en un Tekton PipelineRun.

Anotaciones de PipelineRun
Anotación de ejecución Descripción
devops.cloud.ibm.com/build-number El número de compilación del conducto. Este número es el total acumulado de ejecuciones del conducto desde todos los desencadenantes.
devops.cloud.ibm.com/listener El Tekton eventlistener asignado al desencadenante que inició la ejecución de esta canalización.
devops.cloud.ibm.com/pipeline-id El ID exclusivo del conducto utilizado para esta ejecución.
devops.cloud.ibm.com/trigger-name El nombre del desencadenante que ha iniciado esta ejecución del conducto.
devops.cloud.ibm.com/trigger-type El tipo de desencadenante que ha iniciado esta ejecución del conducto. El tipo puede ser manual, timer, scm o generic.
devops.cloud.ibm.com/triggered-by El usuario que ha iniciado el desencadenante. Este valor es el IBMId del usuario que pulsó ejecutar para manual disparadores, el usuario que guardó por última vez el disparador para timer disparadores o el usuario que realizó la Git acción para scm disparadores. Este valor está vacío para los desencadenantes de tipo generic.
devops.cloud.ibm.com/pipeline-run-url El URL de la página de detalles de esta ejecución del conducto.
devops.cloud.ibm.com/tekton-pipeline El ID exclusivo de esta ejecución del conducto.

Acceso a las anotaciones

Puede acceder a las anotaciones desde las tareas dentro del archivo yaml de definición de conducto. En el siguiente ejemplo se muestra cómo acceder a la anotación devops.cloud.ibm.com/build-number. Para proporcionar esa anotación como variable de entorno, sustitúyala por una de las anotaciones de ejecución de la Tabla 1. PipelineRun anotaciones.

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: simple-task
spec:
  steps:
    - name: simple-step
      image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
      env:
        - name: BUILD_NUMBER
          valueFrom:
            fieldRef:
              fieldPath: metadata.annotations['devops.cloud.ibm.com/build-number']
      command: ["bash", "-c"]
      args:
        - echo $BUILD_NUMBER;
          echo "COMPLETED"

ConfigMap y Secret de PipelineRun

El Continuous DeliveryPipelineRun recurso Tekton crea un y ConfigMap``Secret específico para las propiedades del entorno. Las propiedades seguras están disponibles en el valor secure-properties de Kubernetes Secret, que incluye las propiedades de Tool integration para las que el campo seleccionado contiene un valor seguro. Las propiedades no seguras están disponibles en el environment-propertiesKubernetesConfigMap. Las claves son el nombre del campo que se proporciona en la interfaz de usuario de creación de canalizaciones.

Cuando acceda a un valor ConfigMap o Secret, asegúrese de localizar el nombre de objeto y las referencias correctas para que el conducto se pueda completar correctamente.

Acceso a valores individuales

Puede acceder a pares individuales de clave y valor dentro de una tarea (Task). El siguiente fragmento de código utiliza el nombre de apikey propiedad de muestra (con propiedades seguras) y el nombre environment de propiedad (con propiedades de texto). Estos nombres de propiedades se configuran en la página Propiedades del canal de entrega.

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: cm-echo-props
spec:
  steps:
    - name: cm-show-props
      image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
      env:
        - name: SECURE_VALUE
          valueFrom:
            secretKeyRef:
              name: secure-properties
              key: apikey
        - name: ENVIRONMENT
          valueFrom:
            configMapKeyRef:
              name: environment-properties
              key: environment
      command: ["/bin/bash", "-c"]
      args:
        - echo -e "environment from ConfigMap is >>";
          echo $ENVIRONMENT;
          echo "";
          echo -e "apikey from Secrets is >>";
          echo $SECURE_VALUE

Acceso a todos los valores

Puede añadir todos los pares de clave y valor desde el valor ConfigMap y Secret al entorno Task:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: cm-secrets-props
spec:
  steps:
    - name: cm-show-full-env
      image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
      envFrom:
        - configMapRef:
            name: environment-properties
        - secretRef:
            name: secure-properties
      command: ["/bin/bash", "-c"]
      args:
        - echo -e "The environment for this Step is ";
          env

Dimensionamiento de máquinas virtuales de trabajadores gestionados

Cuando ejecuta una interconexión utilizando la agrupación de IBM Managed Worker, se asigna una máquina virtual con una memoria predeterminada específica. Aunque la mayoría de los trabajos se pueden ejecutar correctamente con la memoria proporcionada, determinadas interconexiones requieren memoria adicional para tareas intensivas.

Los usuarios pueden especificar una etiqueta en sus tareas para indicar si una tarea requiere más (o menos) memoria para una tarea específica. Esta capacidad para identificar la cantidad específica de recursos que son necesarios beneficia al uso de recursos y a un eventual ahorro de costes.

Para indicar qué perfil de VM aplicar a una tarea específica dentro de un conducto de Tekton, añada la etiqueta runtimeClassName a la tarea con uno de los siguientes valores de VM. Si no se proporciona ninguna etiqueta, se utiliza el perfil de VM predeterminado.

  • small: 2Gi
  • medium: 4Gi (valor predeterminado)
  • large: 8Gi

Por ejemplo:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: task1
  labels:
    runtimeClassName: medium
    and so on.

También puede especificar la misma configuración en PipelineRun como parte de TriggerTemplate. Al especificar runtimeClassName en PipelineRun, los usuarios pueden seleccionar el perfil de VM que desean utilizar sin cambiar las definiciones de tarea.

Por ejemplo:

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  generateName: pipeline-run-
spec:
  pipelineRef:
    name: pipeline
  taskRunSpecs:
    - pipelineTaskName: task1
      taskPodTemplate:
        runtimeClassName: medium

Formato de registro

En esta sección se describen las características y funcionalidades del visor de registros que se ofrece en la página de detalles PipelineRun, así como el formato de registro compatible para aprovechar estas características.

Funcionalidad básica

El visor de registros admite códigos de color ANSI y estilos de texto, y detecta automáticamente las URL en el contenido del registro y las muestra como enlaces en los que se puede hacer clic y que se abren en una nueva ventana.

Barra de herramientas

La barra de herramientas que aparece en el visor de registros incluye una serie de funciones adicionales, entre las que se incluyen:

  • maximizar: aumentar el área disponible para el visor de registros ocultando la lista de tareas y la cabecera de ejecución. Esto permite al usuario eliminar las distracciones de otras partes de la aplicación y centrarse en el contenido del registro.
  • preferencias del usuario: se mantienen localmente en el navegador y se aplican a todos los registros de la aplicación. Consulte las secciones siguientes para obtener más detalles.

Indicaciones de fecha y hora

IBM-los trabajadores gestionados y los trabajadores privados con la versión de agente 0.20.5 o posterior producen por defecto líneas de registro prefijadas con marcas de tiempo. El usuario puede mostrar u ocultar estas marcas de tiempo en el visor de registros activando la opción en el menú de configuración de la barra de herramientas situada en la parte superior del visor de registros.

Las marcas de tiempo mostradas se localizan en función de la configuración del navegador del usuario, y el valor bruto de la marca de tiempo recibido del trabajador se proporciona como información sobre herramientas al pasar el ratón por encima.

Niveles de registro

El visor de registros analiza las líneas de registro para detectar el nivel de registro asociado y decorarlas en consecuencia para ayudar a consumir los registros. A continuación se describe el formato admitido.

<timestamp> ::<level>::<message>
  • timestamp la proporciona el trabajador
  • level es uno de error, warning, notice, info, debug, trace
    • debug y trace los registros están ocultos de forma predeterminada
    • cualquier línea de registro sin un level explícito se considera como info, pero no mostrará el distintivo de nivel de registro para evitar redundancias en la interfaz de usuario cuando los usuarios no utilicen el formato de registro admitido
  • message es cualquier otro contenido de la línea, y puede contener códigos ANSI de formato, etc.

Por ejemplo, el siguiente fragmento mostraría una línea de registro en el nivel warning:

echo '::warning::Something that may require attention but is non-blocking…'

Los niveles de registro mostrados pueden modificarse mediante el menú de configuración de la barra de herramientas situada en la parte superior del visor de registros.

Grupos de registros

Además de los niveles de registro, el visor de registros también admite grupos colapsables dentro de los registros. A continuación se describe el formato admitido.

<timestamp> ::group::<message>
…
<timestamp> ::endgroup::

Un comando group marca el inicio del grupo. El contenido de message se muestra como título / resumen del grupo junto con un indicador del estado actual del grupo (es decir, expandido o contraído). Si hace clic en el resumen, cambiará el estado del grupo.

Los grupos se muestran en estado colapsado por defecto, a menos que el paso esté todavía en curso cuando se visualizan los registros. El usuario puede expandir o contraer los grupos como desee y su estado se mantendrá hasta que el usuario navegue a una vista diferente.

Los grupos de registro no se pueden mezclar con niveles de registro en la misma línea, los comandos group, endgroup y nivel de registro son mutuamente excluyentes. Sin embargo, los registros contenidos dentro de un grupo pueden utilizar los niveles de registro de forma normal.

No se admite el anidamiento de grupos. Un comando group terminará implícitamente cualquier grupo anterior no terminado.

Por ejemplo, el siguiente fragmento mostraría un grupo de registro con el resumen "Configuración adicional" que contiene una serie de mensajes en el nivel info:

echo '::group::Additional config'
echo 'This extends the base config'
echo '::info:: More info about the config…'
echo '::endgroup::'

Más información sobre los conductos de entrega de Tekton

Para obtener más información sobre Tekton y Continuous Delivery, consulte Tekton: A Modern Approach to Continuous Delivery.