Ao enviar um aplicativo (via kf push
) para o Kf, há três ciclos de vida
que o Kf usa para pegar o código-fonte e permitir que ele processe o tráfego:
- Upload do código-fonte
- Build
- Executar
Upload do código-fonte
Quando você usa kf push
, a CLI do Kf (kf
) empacota
o diretório (atual ou --path/-p
) em um contêiner e
o publica no Container Registry configurado para o Space. Isso é
chamado de contêiner de origem. A CLI do Kf cria um tipo App
no Kubernetes
que contém a imagem de origem e a configuração do manifesto do app e das sinalizações de envio.
Como ignorar arquivos durante o envio
Em muitos casos, não é recomendável fazer upload de determinados arquivos durante o kf push
(ou seja, "ignorar").
É aqui que um arquivo .kfignore
(ou .cfignore
) é usado.
Semelhante a um arquivo .gitignore
, este arquivo instrui a CLI do Kf sobre quais
arquivos não precisam ser incluídos no contêiner do código-fonte.
Para criar um arquivo .kfignore
, crie um arquivo de texto chamado .kfignore
no diretório base
do seu aplicativo (semelhante ao local em que você armazenaria o arquivo de
manifesto). Em seguida, preencha-o com uma lista delimitada por nova linha de arquivos e diretórios
que você não quer publicar. Exemplo:
bin
.idea
Isso fará com que a CLI do Kf não inclua nada nos diretórios
bin
ou .idea
.
O Kf é compatível com a sintaxe de estilo gitignore.
Build
O ciclo de vida da versão é processado por um TaskRun Tekton. Dependendo das sinalizações fornecidas durante o envio, ele escolherá uma Tarefa específica do Tekton. Atualmente, o Kf tem as seguintes tarefas do Tekton:
- buildpackv2
- buildpackv3
- kaniko
O Kf rastreia cada TaskRun como uma versão. Se uma versão for bem-sucedida, a imagem do contêiner resultante será implantada por meio do ciclo de vida de execução (descrito abaixo).
Mais informações disponíveis em Ambiente de execução da versão.
Executar
O ciclo de vida de execução é responsável por criar uma imagem de contêiner e criar uma implantação do Kubernetes.
Ele também cria:
- Serviços virtuais do Istio
- Secrets do Kubernetes
Mais informações disponíveis em Ambiente de execução da versão.