Cuando se envía una aplicación (mediante kf push
) a Kf, hay tres ciclos de vida que Kf usa para tomar tu código fuente y permitirle gestionar el tráfico:
- Subida de código fuente
- Compilación
- Ejecutar
Subida de código fuente
Lo primero que ocurre cuando ejecutas kf push
es que la CLI de Kf (kf
) empaqueta tu directorio (el actual o --path/-p
) en un contenedor y lo publica en el registro de contenedores configurado para el espacio. Este es el contenedor de origen. A continuación, la CLI de Kf crea un tipo App
en Kubernetes que contiene tanto la imagen de origen como la configuración del manifiesto de la aplicación y las marcas de envío.
Ignorar archivos durante el envío
En muchos casos, no querrá subir determinados archivos durante la kf push
(por ejemplo, "ignóralos").
Aquí es donde se puede usar un archivo .kfignore
(o .cfignore
).
Al igual que un archivo .gitignore
, este archivo indica a la CLI de Kf qué archivos no se deben incluir en el contenedor de código fuente.
Para crear un archivo .kfignore
, crea un archivo de texto llamado .kfignore
en el directorio base de tu aplicación (de forma similar a donde almacenarías el archivo de manifiesto). A continuación, rellénelo con una lista de archivos y directorios delimitada por saltos de línea que no quiera publicar. Por ejemplo:
bin
.idea
De esta forma, se le indica a la CLI de Kf que no incluya nada en los directorios bin
ni .idea
.
Kf admite la sintaxis de estilo gitignore.
Compilación
El ciclo de vida de la compilación se gestiona mediante un TaskRun de Tekton. En función de las marcas que proporciones al enviar, elegirá una tarea de Tekton específica. Kf tiene las siguientes tareas de Tekton:
- buildpackv2
- buildpackv3
- kaniko
Kf monitoriza cada TaskRun como una compilación. Si una compilación se realiza correctamente, la imagen de contenedor resultante se despliega mediante el ciclo de vida de Run (descrito más abajo).
Puedes consultar más información en Compilación del tiempo de ejecución.
Ejecutar
El ciclo de vida de Run se encarga de tomar una imagen de contenedor y crear un despliegue de Kubernetes.
También crea lo siguiente:
Puedes consultar más información en Compilación del tiempo de ejecución.