Il runtime dell'app è l'ambiente in cui vengono eseguite le app.
| App buildpack | Container Image Apps | |
|---|---|---|
| Librerie di sistema | Fornito dalla serie | Fornito nel contenitore | 
| Accesso alla rete | Accesso completo tramite il sidecar Envoy | Accesso completo tramite il sidecar Envoy | 
| File system | Spazio di archiviazione temporanea | Spazio di archiviazione temporanea | 
| Runtime della lingua | Fornito dallo stack o dal buildpack | Integrato nel contenitore | 
| Utente | Specificato dallo stack | Specificato nel contenitore | 
| Meccanismo di isolamento | Pod Kubernetes | Pod Kubernetes | 
| DNS | Fornito da Kubernetes | Fornito da Kubernetes | 
Variabili di ambiente
Le variabili di ambiente vengono iniettate nell'app in fase di esecuzione da Kubernetes. Le variabili vengono aggiunte in base all'ordine seguente, in cui i valori successivi sostituiscono quelli precedenti con lo stesso nome:
- Spazio (impostato dagli amministratori)
 - App (impostata dagli sviluppatori)
 - Sistema (impostato da Kf)
 
Kf fornisce le seguenti variabili di ambiente di sistema:
| Variabile | Finalità | 
|---|---|
CF_INSTANCE_ADDR | 
L'indirizzo IP:PORT visibile al cluster dell'istanza dell'app. | 
CF_INSTANCE_GUID | 
L'UUID dell'istanza dell'app. | 
INSTANCE_GUID | 
Alias di CF_INSTANCE_GUID. | 
CF_INSTANCE_INDEX | 
Il numero di indice dell'istanza dell'app, che sarà SEMPRE 0. | 
INSTANCE_INDEX | 
Alias di CF_INSTANCE_INDEX. | 
CF_INSTANCE_IP | 
L'IP visibile al cluster dell'istanza dell'app. | 
CF_INSTANCE_INTERNAL_IP | 
Alias di CF_INSTANCE_IP | 
VCAP_APP_HOST | 
Alias di CF_INSTANCE_IP | 
CF_INSTANCE_PORT | 
La porta visibile al cluster dell'istanza dell'app. In Kf è lo stesso di PORT. | 
DATABASE_URL | 
Il primo URI trovato in una credenziale VCAP_SERVICES. | 
LANG | 
Obbligatorio per Buildpack per garantire un ordine di caricamento degli script coerente. | 
MEMORY_LIMIT | 
La quantità massima di memoria in MB che l'app può consumare. | 
PORT | 
La porta su cui l'app deve rimanere in ascolto per le richieste. | 
VCAP_APP_PORT | 
Alias di PORT. | 
VCAP_APPLICATION | 
Una struttura JSON contenente i metadati dell'app. | 
VCAP_SERVICES | 
Una struttura JSON che specifica i servizi associati. | 
Le credenziali dei servizi dei servizi associati vengono iniettate nelle app tramite la variabile di ambiente VCAP_SERVICES. La variabile è un oggetto JSON valido con la seguente struttura.
VCAPServices
Un oggetto JSON in cui le chiavi sono etichette di servizio e i valori sono un array di
VCAPService. L'array rappresenta ogni servizio associato con quell'etichetta.
I servizi forniti dall'utente
vengono inseriti sotto l'etichetta user-provided.
Esempio
{
  "mysql": [...],
  "postgresql": [...],
  "user-provided": [...]
}
VCAPService
Questo tipo rappresenta una singola istanza di servizio associata.
Esempio
{
  "binding_name": string,
  "instance_name": string,
  "name": string,
  "label": string,
  "tags": string[],
  "plan": string,
  "credentials": object
}
Campi
| Campo | Tipo | Descrizione | 
|---|---|---|
binding_name | 
string | 
Il nome assegnato all'associazione del servizio dall'utente. | 
instance_name | 
string | 
Il nome assegnato all'istanza di servizio dall'utente. | 
name | 
string | 
binding_name, se esistente; altrimenti instance_name. | 
label | 
string | 
Il nome dell'offerta di servizi. | 
tags | 
string[] | 
Un array di stringhe che un'app può utilizzare per identificare un'istanza di servizio. | 
plan | 
string[] | 
Il piano di servizio selezionato al momento della creazione dell'istanza di servizio. | 
credentials | 
object | 
Le credenziali specifiche del servizio necessarie per accedere all'istanza di servizio. | 
VCAP_APPLICATION
La variabile di ambiente VCAP_APPLICATION è un oggetto JSON contenente i metadati dell'app.
Esempio
{
  "application_id": "12345",
  "application_name": "my-app",
  "application_uris": ["my-app.example.com"],
  "limits": {
    "disk": 1024,
    "mem": 256
  },
  "name": "my-app",
  "process_id": "12345",
  "process_type": "web",
  "space_name": "my-ns",
  "uris": ["my-app.example.com"]
}
Campi
| Campo | Tipo | Descrizione | 
|---|---|---|
application_id | 
string | 
Il GUID che identifica l'app. | 
application_name | 
string | 
Il nome assegnato all'app quando è stata inviata. | 
application_uris | 
string[] | 
Gli URI assegnati all'app. | 
limits | 
object | 
I limiti di spazio su disco e memoria consentiti per l'app. I limiti di memoria e spazio su disco vengono forniti al momento del deployment dell'app, sulla riga di comando o nel file manifest dell'app. I limiti di disco e memoria sono rappresentati come numeri interi, con un'unità presunta in MB. | 
name | 
string | 
Identico a application_name. | 
process_id | 
string | 
L'UID che identifica il processo. Presente solo nei contenitori delle app in esecuzione. | 
process_type | 
string | 
Il tipo di processo. Presente solo nei contenitori delle app in esecuzione. | 
space_name | 
string | 
Il nome leggibile dello spazio in cui è implementata l'app. | 
uris | 
string[] | 
Identico a application_uris. | 
Campi mancanti
Alcuni campi in VCAP_APPLICATION che si trovano in Cloud Foundry non sono attualmente supportati in Kf.
Oltre ai campi specifici di CF e deprecati (cf_api, host, users), i campi non supportati in Kf sono:
application_version(identico aversion)organization_idorganization_namespace_idstart(identico astarted_at)started_at_timestamp(identico astate_timestamp)