Quando esegui il push di un'app (tramite kf push
) a Kf, sono previsti tre cicli di vita
che Kf utilizza per prendere il codice sorgente e consentirgli di gestire il traffico:
- Caricamento del codice sorgente
- Build
- Esegui
Caricamento del codice sorgente
La prima cosa che accade quando kf push
è che la CLI di Kf (kf
) impacchetta la tua directory (attuale o --path/-p
) in un contenitore e la pubblica nel registry dei contenitori configurato per lo spazio. Questo è chiamato contenitore di origine. L'interfaccia a riga di comando Kf crea quindi un tipo App
in Kubernetes
che contenga sia l'immagine di origine sia la configurazione del file manifest dell'app
tramite i flag push.
I file vengono ignorati durante il push
In molti casi, non vorrai caricare determinati file durante kf push
(ad es. "ignora" questi).
È qui che può essere utilizzato un file .kfignore
(o .cfignore
).
Analogamente a un file .gitignore
, questo file indica all'interfaccia a riga di comando Kf che
i file da non includere nel contenitore del codice sorgente.
Per creare un file .kfignore
, crea un file di testo denominato .kfignore
nella base
della tua app (simile a dove archivierai il file manifest
). Quindi compilalo con un elenco di file e directory delimitato da nuova riga.
che non vuoi vengano pubblicati. Ad esempio:
bin
.idea
In questo modo, l'interfaccia a riga di comando Kf non includerà nulla nelle directory bin
o .idea
.
Kf supporta la sintassi in stile gitignore.
Build
Il ciclo di vita Build è gestito da un modello Tekton TaskRun. A seconda delle segnalazioni da te fornite durante il push, sceglierà una selezione Attività Tekton. Al momento Kf dispone dei seguenti task Tekton:
- buildpackv2
- buildpackv3
- kaniko
Kf monitora ogni TaskRun come una build. Se una build ha esito positivo, viene poi eseguito il deployment dell'immagine container tramite il ciclo di vita Esegui (descritto di seguito).
Puoi trovare ulteriori informazioni in Eseguire il runtime della build.
Esegui
Il ciclo di vita di Run è responsabile dell'acquisizione di un'immagine container e della creazione di un deployment Kubernetes.
Inoltre, crea:
Ulteriori informazioni sono disponibili in Runtime build.