¿Qué es Tekton?, Novedades y Cambios

Tekton es un recurso de canalización nativo para Kubernetes. El proyecto de tuberías de Tekton proporciona recursos de Kubernetes para declarar tuberías de integración y depuración continua.

Las tuberías o “pipeline” de Tekton son nativas de la nube :

  • Corre en Kubernetes
  • Tener grupos de Kubernetes como un tipo de primera clase
  • Use contenedores como sus bloques de construcción

Las tuberías de Tekton están desacopladas :

  • One Pipeline se puede usar para implementar en cualquier clúster k8s
  • Las tareas que componen una tubería se pueden ejecutar fácilmente de forma aislada
  • Los recursos como los repositorios de git se pueden intercambiar fácilmente entre ejecuciones
  • Las tuberías de Tekton se escriben a máquina :

El concepto de recursos tipificados significa que para un recurso como un Image , las implementaciones pueden intercambiarse fácilmente (por ejemplo, compilar con kaniko vs buildkit )

Quieres comenzar a usar tuberías

Nuevos Cambios (Diciembre 2019)

Otras 6 semanas, otro lanzamiento de Tekton. Es de conocimiento general que el logotipo de Tekton es un gato robot, ¡pero es menos conocido que los lanzamientos llevan el nombre de robots y gatos! Cada versión de Tekton Pipelines recibe un nombre en clave de un tipo de gato seguido de un famoso robot.

El lunes 2 de diciembre, Andrea Frittoli de IBM lanzó la versión v0.9.0 , denominada “Bengal Bender”. Esta versión contenía confirmaciones de 21 personas diferentes. Quería tomarme el tiempo para resaltar algunas de las nuevas características y cambios en la API, así como para señalar para qué parte del trabajo “oculto” está sentando las bases.

¡Veamos que se ha actualizado!

“Bengal Bender” incluye un conjunto sólido de características, correcciones de errores y mejoras de rendimiento. Disculpas si me perdí algo aquí, esta lista es simplemente lo que me parece más emocionante.

Modo de Secuencia de Cambios

Si estuvieras en Kubecon San Diego, podrías haber salido con la impresión de que Go es el lenguaje de la nube. Y aunque eso es cierto hasta cierto punto, los buenos viejos bash y yaml también juegan un papel muy importante, especialmente cuando se trata de sistemas de “pegamento” como tuberías de entrega.

Si ha pasado mucho tiempo trabajando con contenedores, probablemente haya visto un archivo yaml con algo como esto:

- name: hello
image: ubuntu
command: ['bash']
args:
- -c
- |
set -ex
echo "hello"

Esto es un montón de repeticiones complicadas solo para ejecutar un script bash simple dentro de un contenedor. Y si no está profundamente familiarizado con el funcionamiento de bash, shells, puntos de entrada y shebangs a nivel del sistema, esto es un poco opaco. También es propenso a errores sutiles y confusos. Incluso si está familiarizado con estas cosas, probablemente haya perdido el tiempo en problemas de depuración cuando el shell en su contenedor está configurado para algo a lo que no está acostumbrado, o el punto de entrada está anulado, o “bash -c” no funciona que esperas.

Esto hace que las tuberías de entrega sean más difíciles de escribir, comprender y mantener.

¡Ingrese al modo script! Inspirado por algunas ideas de Ahmet Alp Balkan, Jason Hall formuló una propuesta para que sea mucho más fácil definir tareas que solo necesitan ejecutar un script bash simple. Así es como se ve:

- name: hello
image: ubuntu
script: |
#!/bin/bash
echo "hello"

Notarás que hay muchas menos líneas de repetitivo. Ya no es necesario especificar args, un punto de entrada o recordar la parte difícil “-c”. Simplemente especifique el intérprete que desea usar y los comandos para ejecutar. ¡Esto ya nos ha permitido simplificar docenas de casos de prueba y ejemplos!

? Request Correspondiente ?

Actualización de Rendimiento

Tekton ha sufrido durante mucho tiempo un bajo rendimiento al iniciar PipelineRuns. Christie Wilson y yo hicimos una sesión de depuración / codificación la primavera pasada para tratar de mejorar esto, e identificamos el montaje de PVC como uno de los principales contribuyentes. Desafortunadamente, nuestro intento de reparación no funcionó y fue necesario revertirlo.

Scott Seaward está manejando una solución más general a más largo plazo y el esfuerzo de recursos, pero decidí tomar otra puñalada en una solución a corto plazo. Los dedos cruzaron que funciona, pero las pruebas iniciales muestran mejoras de entre 5 y 20 segundos por PipelineRun.

? Request Correspondiente ?

Cambios de API

Se han producido algunos cambios en la API a medida que comenzamos a reafirmar las cosas para una versión beta. Esperamos obtener la mayoría de estos cambios importantes en las próximas versiones para que los usuarios puedan comenzar a construir sistemas de producción sobre versiones estables.

Los cambios importantes en v0.9.0 incluyen:

Estandarización de rutas de salida para resúmenes de imágenes

Actualmente, Tekton proporciona un mecanismo para almacenar los resúmenes de imágenes de contenedores creadas por Tareas. Este mecanismo era anterior al PipelineResource subsistema y requería que los autores de Tareas escribieran estos resúmenes en una ubicación específica en /builder/image-outputs . Este cambio lo mueve a la ruta estándar para los recursos de salida, en /workspace/output/<resource-name> .

Simplificación del recurso de clúster

Cluster PipelineResources simplifica la implementación y el trabajo con clústeres de Kubernetes desde dentro Tasks . Proporcionan mecanismos para que los usuarios declaren dónde está un punto final del clúster y cómo autenticarse con él. Luego, durante la Task ejecución, configuran automáticamente un .kubeconfig archivo para que las herramientas de Kubernetes puedan encontrar ese clúster. Esta versión contenía algunos cambios para facilitar el trabajo con estos recursos de clúster.

Anteriormente, los usuarios tenían que especificar un parámetro de nombre dos veces: una vez en el nombre del recurso y otra como parámetro del recurso. El segundo parámetro ha sido eliminado.

En el Futuro

Renovación de PipelineResources

Se trabajó mucho para limpiar el PipelineResource subsistema existente , incluida la interfaz expuesta a los PipelineResource tipos y los tipos mismos. Obtener estos dos sólidos formará la base del mayor esfuerzo de recursos, que actualmente está en marcha. Este proyecto hará que los tipos de recursos sean extensibles, permitiendo que cualquiera pueda agregar y usar sus propios tipos. Con suerte, también nos dejará con algunos componentes integrables, para que otros sistemas puedan utilizar Tekton PipelineResources y el próximo catálogo.

Control de versiones de API

Uno de los pasos más importantes para enviar una API estable es descubrir cómo hacer cambios de una manera compatible con versiones anteriores. Ninguna API es perfecta, por lo que la capacidad de actualizar una es primordial. Vincent Demeester y sus colegas de Red Hat han trabajado arduamente para diseñar e implementar un sistema de versiones API que permitirá a los usuarios actualizar las versiones API de Tekton sin interrumpir las cargas de trabajo existentes. Esto será clave para la próxima versión beta.

Conclusión

El proyecto Tekton ha sido increíble de ver crecer. Esta publicación solo detalla los cambios en el lanzamiento de Tekton Pipelines, pero también se ha realizado un trabajo increíble en los proyectos Triggers , CLI y Dashboard. Los disparadores ahora admiten la validación Github y Gitlab lista para usar. La CLI ha mejorado el soporte para crear PipelineResources e iniciar tareas de forma interactiva. ¡La visualización llegará pronto al Tablero! Me gustaría agradecer a todos los que han hecho de Tekton lo que es hoy.

La comunidad de Tekton ha estado trabajando arduamente para enviar las API y los componentes correctos para construir sistemas de entrega de software nativos de la nube. Si está utilizando Tekton, o está interesado en aprender más sobre Tekton, nos encantaría saber de usted. Considere unirse a la comunidad, convertirse en un amigo de Tekton o contribuir directamente.


Licencia

Este contenido se encuentra bajo licencia Apache 2.0.

? Repositorio de Tekton ?

Fuentes: Noticias Tekton CD Fundación >> Repositorio de Github de Tekton Tuberías

Relacionados