Configurazione di servizi forniti dall'utente

Gli utenti possono sfruttare servizi che non sono disponibili nel Marketplace creando istanze di servizio fornite dall'utente. Una volta create, le istanze di servizio fornite dall'utente si comportano come quelle di servizio create tramite il marketplace. La creazione, l'elenco, l'aggiornamento, l'eliminazione, l'associazione e lo scollegamento dei servizi forniti dall'utente sono tutti supportati in Kf.

Crea un'istanza di servizio fornita dall'utente

L'alias di kf create-user-provided-service è kf cups.

Il nome assegnato a un servizio fornito dall'utente deve essere univoco in tutte le istanze di servizio in uno spazio, inclusi i servizi creati tramite un service broker.

Fornisci credenziali di servizio a un'app

Un'istanza di servizio fornita dall'utente può essere utilizzata per consegnare le credenziali a un'app. Ad esempio, un amministratore di database può avere un set di credenziali per un database esistente gestito al di fuori di Kf e queste credenziali includono l'URL, la porta, il nome utente e la password utilizzati per connettersi al database.

L'amministratore può creare un servizio fornito dall'utente con le credenziali e lo sviluppatore può associare l'istanza del servizio all'app. In questo modo le credenziali possono essere condivise senza uscire dalla piattaforma. L'associazione di un'istanza di servizio a un'app ha lo stesso effetto a prescindere dal fatto che il servizio sia un servizio fornito dall'utente o un servizio del marketplace.

L'app viene configurata con le credenziali fornite dall'utente e la variabile di ambiente di runtime dell'app VCAP_SERVICES viene compilata con informazioni su tutti i servizi associati all'app.

Un servizio fornito dall'utente può essere creato con credenziali e/o un elenco di tag.

kf cups my-db -p '{"username":"admin", "password":"test123", "some-int-val": 1, "some-bool": true}' -t "comma, separated, tags"

Verrà creata l'istanza di servizio fornita dall'utente my-db con le credenziali e i tag forniti. Le credenziali passate al flag -p devono essere in formato JSON valido (in linea o caricate da un percorso file).

Per consegnare le credenziali a una o più app, l'utente può eseguire kf bind-service.

Supponi di avere un'app con un servizio associato, il servizio fornito dall'utente my-db definito sopra. La variabile di ambiente VCAP_SERVICES per quell'app avrà i seguenti contenuti:

{
  "user-provided": [
    {
      "name": "my-db",
      "instance_name": "my-db",
      "label": "user-provided",
      "tags": [
        "comma",
        "separated",
        "tags"
      ],
      "credentials": {
        "username": "admin",
        "password": "test123",
        "some-int-val": 1,
        "some-bool": true
      }
    }
  ]
}

Aggiorna un'istanza di servizio fornita dall'utente

L'alias di kf update-user-provided-service è kf uups.

Un servizio fornito dall'utente può essere aggiornato con il comando uups. Le nuove credenziali e/o i tag trasmessi sovrascrivono completamente quelle esistenti. Ad esempio, se l'utente ha creato il servizio fornito dall'utente my-db sopra, ha chiamato kf bind-service per associare il servizio a un'app, quindi ha eseguito il comando.

kf uups my-db -p '{"username":"admin", "password":"new-pw", "new-key": "new-val"}'

Le credenziali aggiornate verranno riportate nell'app solo dopo che l'utente avrà svincolato e riassociato il servizio all'app. Non è necessario riavviare o ripetere le operazioni dell'app. La variabile di ambiente VCAP_SERVICES aggiornata avrà i seguenti contenuti:

{
  "user-provided": [
    {
      "name": "my-db",
      "instance_name": "my-db",
      "label": "user-provided",
      "tags": [
        "comma",
        "separated",
        "tags"
      ],
      "credentials": {
        "username": "admin",
        "password": "new-pw",
        "new-key": "new-val"
      }
    }
  ]
}

Le nuove credenziali sovrascriveranno quelle precedenti e i tag rimarranno invariati perché non sono stati specificati nel comando di aggiornamento.