Propiedades y recursos del entorno de las tuberías Tekton
La siguiente información y recursos están disponibles por defecto en IBM Cloud® Continuous Delivery Tekton PipelineRun.
PipelineRun anotaciones
La tabla 1 describe las anotaciones que se incluyen en un Tekton 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 que se asigna al disparador que inició esta ejecución de 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 los disparadores manual, del usuario que guardó por última vez el disparador para los disparadores timer,
o del usuario que realizó la acción Git para los disparadores scm. 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 annotations.
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 recurso Continuous Delivery Tekton PipelineRun crea un ConfigMap y un Secret específicos 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 environment-properties Kubernetes ConfigMap. 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 propiedad apikey de ejemplo (con propiedades seguras) y el nombre de propiedad
environment (con propiedades de texto). Estos nombres de propiedades se establecen en la página Propiedades de la canalización 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 pueden ejecutarse satisfactoriamente con la memoria proporcionada, determinadas canalizaciones 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: 2Gimedium: 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 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. El formato admitido es el siguiente.
<timestamp> ::<level>::<message>
timestampla proporciona el trabajadorleveles uno deerror,warning,notice,info,debug,tracedebugytracelos registros están ocultos de forma predeterminada- cualquier línea de registro sin un
levelexplícito se considera comoinfo, 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
messagees 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 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. El formato admitido es el siguiente.
<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 es posible anidar 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.