Ao enviar um aplicativo (via kf push) para o Kf, ele usa três ciclos de vida para capturar o código-fonte e permitir que ele processe o tráfego:
- Upload do código-fonte
- Criar
- 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 de App no Kubernetes que contém a imagem de origem e a configuração do manifesto do aplicativo e das flags de envio.
Como ignorar arquivos durante o envio
Em muitos casos, não é recomendável fazer o upload de determinados arquivos durante o kf push (ou seja, ignore-os).
Um arquivo .kfignore (ou .cfignore) pode ser usado nesse momento.
Semelhante a um arquivo .gitignore, esse 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 aplicativo, semelhante ao local em que você armazenaria o arquivo de manifesto. Em seguida, preencha-o com uma lista delimitada por feed de linha de arquivos e diretórios que você não quer publicar. Exemplo:
bin
.idea
Dessa forma, a CLI do Kf não vai incluir nada nos diretórios bin ou .idea.
O Kf é compatível com a sintaxe de estilo gitignore.
Criar
O ciclo de vida do build é processado por um TaskRun do Tekton. Dependendo das flags 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 um build. Se um build for bem-sucedido, a imagem do contêiner resultante será implantada pelo ciclo de vida de execução (descrito abaixo).
Mais informações disponíveis em Ambiente de execução do build.
Executar
O ciclo de vida de execução é responsável por usar uma imagem de contêiner para 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 do build.
Tempo limite de envio
O Kf é compatível com a configuração de uma variável de ambiente para instruir a CLI a expirar durante o envio de aplicativos. Se configuradas, as variáveis KF_STARTUP_TIMEOUT ou CF_STARTUP_TIMEOUT serão analisadas como uma duração de estilo golang (por exemplo, 15m, 1h). Se um valor não for definido, o tempo limite de envio padrão será 15 minutos.