Quando envia uma app (através de kf push
) para o Kf, existem três ciclos de vida que o Kf usa para obter o seu código fonte e permitir que processe o tráfego:
- Carregamento do código-fonte
- Compilação
- Execução
Carregamento de código-fonte
A primeira coisa que acontece quando kf push
é que a CLI Kf (kf
) compacta
o seu diretório (atual ou --path/-p
) num contentor e
publica-o no registo de contentores configurado para o espaço. Este é o contentor de origem. Em seguida, a CLI Kf cria um tipo App
no Kubernetes que contém a imagem de origem e a configuração do manifesto da app e as flags de envio.
Ignorar ficheiros durante o envio
Em muitos casos, não vai querer carregar determinados ficheiros durante a kf push
(ou seja, "Ignorar").
É aqui que pode usar um ficheiro .kfignore
(ou .cfignore
).
Semelhante a um ficheiro .gitignore
, este ficheiro indica à CLI do Kf que ficheiros não incluir no contentor de código-fonte.
Para criar um ficheiro .kfignore
, crie um ficheiro de texto com o nome .kfignore
no diretório base da sua app (semelhante ao local onde guardaria o ficheiro de manifesto). Em seguida, preencha-o com uma lista de ficheiros e diretórios delimitados por uma nova linha que não quer publicar. Por exemplo:
bin
.idea
Isto indica à CLI Kf que não deve incluir nada nos diretórios bin
ou .idea
.
O Kf suporta a sintaxe no estilo gitignore.
Compilação
O ciclo de vida de compilação é processado por um TaskRun do Tekton. Com base nas flags que fornecer durante o envio, o sistema escolhe uma tarefa específica do Tekton. Atualmente, o Kf tem as seguintes tarefas do Tekton:
- buildpackv2
- buildpackv3
- kaniko
O Kf acompanha cada TaskRun como uma compilação. Se uma compilação for bem-sucedida, a imagem do contentor resultante é implementada através do ciclo de vida do Run (descrito abaixo).
Pode encontrar mais informações em Build Runtime.
Execução
O ciclo de vida de execução é responsável por usar uma imagem de contentor e criar uma implementação do Kubernetes.
Também cria:
Pode encontrar mais informações em Build Runtime.