Configurazione dell'API
Red Hat® OpenShift® on IBM Cloud® condivide la stessa interfaccia di programmazione delle applicazioni (API) di IBM Cloud Kubernetes Service, consentendo così di utilizzare gli stessi metodi per creare e gestire in modo coerente i cluster della propria community su Kubernetes o Red Hat OpenShift. Per utilizzare la CLI, vedi Configurazione della CLI.
Informazioni sull'API
L'API di Red Hat OpenShift on IBM Cloud automatizza il provisioning e la gestione delle risorse dell'infrastruttura IBM Cloud per i tuoi cluster in modo che le tue applicazioni dispongano delle risorse di calcolo, rete e archiviazione necessarie per servire gli utenti.
L'API supporta i diversi fornitori di infrastrutture disponibili per la creazione di cluster. Per ulteriori informazioni, vedi Panoramica del fornitore dell'infrastruttura.
Puoi utilizzare l'API della versione due (v2) per gestire i cluster sia classici che VPC. L'API v2 è progettata per evitare l'interruzione della funzionalità esistente laddove possibile. Tuttavia, assicurati di esaminare
le seguenti differenze tra l'API v1 e v2.
- Prefisso endpoint API
- API v1:
https://containers.cloud.ibm.com/global/v1 - API v2:
https://containers.cloud.ibm.com/global/v2 - v3 API:
https://containers.cloud.ibm.com/global/v3 - Documenti di riferimento API
- v1 e v2 API
- v3 API.
- Stile dell'architettura API
- v1 API: Representational State Transfer (REST), incentrata sulle risorse con cui si interagisce tramite metodi di tipo " HTTP ", quali
GET,POST,PUT,PATCHeDELETE. - v2 API: Chiamate di procedura remota ( RPC ) incentrate esclusivamente sulle azioni eseguibili tramite i metodi
GET,POSTe HTTP. - Piattaforme del contenitore supportate
- v1 API: Utilizza l'API " Red Hat OpenShift on IBM Cloud " per gestire le risorse dell'infrastruttura di IBM Cloud, come i nodi di lavoro, per sia i cluster " Kubernetes " che quelli " Red Hat OpenShift ".
- v2 API: Utilizza l’API “ Red Hat OpenShift on IBM Cloud
v2” per gestire le risorse dell’infrastruttura di IBM Cloud, come i nodi di lavoro, per **sia i cluster VPC della community Kubernetes che quelli di Red Hat OpenShift **. - API Red Hat OpenShift
- v1: per utilizzare l'API Red Hat OpenShift per gestire Red Hat OpenShift e le risorse Kubernetes all'interno del cluster, come i pod o gli spazi dei nomi, devi accedere scambiando una chiave API IBM Cloud per un Red Hat OpenShift Vedi Utilizzo di una chiave API per accedere ai cluster.
- API v2: uguale a
v1; vedi Utilizzo di una chiave API per accedere ai cluster. - API supportate per tipo di infrastruttura
- API v1:
classic - API v2:
vpceclassic- Il provider
vpcè progettato per supportare più provider secondari VPC. Il subprovider VPC supportato èvpc-gen2, che corrisponde a un cluster VPC per risorse di calcolo di seconda generazione. - Le richieste specifiche per il provider hanno un parametro di percorso nell'URL, come ad esempio
v2/vpc/createCluster. Alcune API sono disponibili solo per un determinato provider, ad esempioGET vlanper l'infrastruttura classica oGET vpcsper VPC. - Le richieste indipendenti dal provider possono includere un parametro del corpo specifico per il provider, specificato dall'utente, solitamente in formato JSON, ad esempio
{"provider": "vpc"}, se si desidera ottenere risposte solo per il provider specificato.
- Il provider
GETrisposte- v1 API: Il metodo
GETapplicato a un insieme di risorse (ad esempioGET v1/clusters) restituisce gli stessi dettagli per ciascuna risorsa dell'elenco forniti dal metodoGETapplicato a una singola risorsa (ad esempioGET v1/clusters/{idOrName}). - v2 API: Per garantire risposte più rapide, il metodo v2
GETrelativo a un insieme di risorse (ad esempioGET v2/clusters) restituisce solo un sottoinsieme delle informazioni fornite in dettaglio dal metodoGETrelativo a una singola risorsa (ad esempioGET v2/clusters/{idOrName}). Alcune risposte all'elenco includono una proprietà dei provider per identificare se l'elemento restituito si applica all'infrastruttura classica o VPC. Ad esempio, l'elencoGET zonesrestituisce alcuni risultati comemon01che sono disponibili solo nel provider dell'infrastruttura classica, mentre altri risultati comeus-south-01sono disponibili solo nel provider dell'infrastruttura VPC. - Risposte del cluster, nodo di lavoro e pool di nodi di lavoro
- v1 API: Le risposte includono solo informazioni specifiche relative al provider di infrastruttura classica, come le VLAN in un cluster
GETe e le risposte dei worker. - v2 API: Le informazioni restituite variano a seconda del fornitore dell'infrastruttura. Per tali risposte specifiche per il provider, puoi specificare il provider nella tua richiesta. Ad esempio, i cluster VPC non restituiscono informazioni VLAN poiché non hanno VLAN. Invece, restituiscono informazioni sulla sottorete e sulla rete CIDR.
Automazione delle distribuzioni dei cluster con l'API
È possibile utilizzare l'API di Red Hat OpenShift on IBM Cloud per automatizzare la creazione, la distribuzione e la gestione dei propri cluster Red Hat OpenShift.
L'API Red Hat OpenShift on IBM Cloud richiede informazioni di intestazione che devi fornire nella tua richiesta API e che possono variare in base all'API che vuoi utilizzare. Per determinare quali informazioni di intestazione sono necessarie per la tua API, consulta la documentazione dell'API Red Hat OpenShift on IBM Cloud.
Per l'autenticazione con Red Hat OpenShift on IBM Cloud, devi fornire un token IBM Cloud IAM (Identity and Access Management) che viene generato con le tue credenziali IBM Cloud e che include l'ID dell'account IBM Cloud in cui è stato creato il cluster. A seconda del modo con cui ti autentichi con IBM Cloud, puoi scegliere tra le seguenti opzioni per automatizzare la creazione del tuo token IBM Cloud IAM.
- ID non federato
-
- Generare una chiave API IBM Cloud: In alternativa all'uso del nome utente e della password di IBM Cloud, è possibile usare le chiavi API di IBM Cloud. IBM Cloud Le chiavi API dipendono dall'account IBM Cloud per cui sono state generate. Non è possibile associare la propria chiave API di IBM Cloud a un ID account diverso all'interno dello stesso token IAM di IBM Cloud. Per accedere ai cluster che sono stati creati con un account diverso da quello su cui si basa la tua chiave API IBM Cloud, devi accedere all'account per generare una nuova chiave API.
- Nome utente e password IBM Cloud: puoi seguire la procedura indicata in questo argomento per automatizzare completamente la creazione del tuo token di accesso IBM Cloud IAM.
- ID federato
-
- Genera una chiave API IBM Cloud: IBM Cloud le chiavi API dipendono dall'account IBM Cloud per cui sono generate. Non è possibile associare la propria chiave API di IBM Cloud a un ID account diverso all'interno dello stesso token IAM di IBM Cloud. Per accedere ai cluster che sono stati creati con un account diverso da quello su cui si basa la tua chiave API IBM Cloud, devi accedere all'account per generare una nuova chiave API.
- Utilizza un codice di accesso monouso: se effettui l'autenticazione su IBM Cloud utilizzando un codice di accesso monouso, non puoi automatizzare completamente la creazione del tuo token IAM IBM Cloud, poiché il recupero del codice di accesso monouso richiede un'interazione manuale con il browser web. Per automatizzare completamente la creazione del tuo token IBM Cloud IAM, devi creare invece una chiave API IBM Cloud.
- Chiave API: Per generare la chiave IBM Cloud Chiave API, procedere come segue.
- Dalla barra dei menu, fai clic su Gestisci > Accesso (IAM).
- Fai clic sulla pagina Utenti e quindi seleziona te stesso.
- Nel riquadro Chiavi API, fai clic su Crea una chiave API IBM Cloud.
- Immetti un Nome e una Descrizione per la tua chiave API e fai clic su Crea.
- Fai clic su Mostra per vedere la chiave API che è stata generata per te.
- Copia la chiave API in modo che tu possa utilizzarla per richiamare il tuo nuovo token di accesso IBM Cloud IAM.
-
Crea il tuo token di accesso IBM Cloud IAM. Le informazioni sul corpo incluse nella tue richiesta variano in base al metodo di autenticazione IBM Cloud che utilizzi.
POST https://iam.cloud.ibm.com/identity/token- Intestazione
-
Content-Type: application/x-www-form-urlencodedAuthorization: Basic Yng6Yng=doveYng6Yng=corrisponde all’autorizzazione codificata con il metodo URL per il nome utente bx e la password bx.
- Corpo per il nome utente e la password IBM Cloud.
-
grant_type: passwordusername: il tuo nome utente IBM Cloud.password: la tua password IBM Cloud.
- Corpo per le chiavi API IBM Cloud
-
grant_type: urn:ibm:params:oauth:grant-type:apikeyapikey: la tua chiave API IBM Cloud
- Corpo per il passcode monouso IBM Cloud
-
grant_type: urn:ibm:params:oauth:grant-type:passcodepasscode: il tuo passcode monouso IBM Cloud. Eseguiibmcloud login --ssoe segui le istruzioni nel tuo output della CLI per richiamare il tuo passcode monouso utilizzando il tuo browser web.
Il seguente esempio mostra l'output per la richiesta precedente.
{ "access_token": "<iam_access_token>", "refresh_token": "<iam_refresh_token>", "token_type": "Bearer", "expires_in": 3600, "expiration": 1493747503 "scope": "ibm openid" }È possibile trovare il token IAM " IBM Cloud " nel campo "
access_token" dell'output dell'API. Prendi nota del token IBM Cloud IAM per richiamare ulteriori informazioni di intestazione nei passi successivi. -
Richiama l'ID dell'account IBM Cloud che desideri utilizzare. Sostituisci
TOKENcon il token IAM IBM Cloud che hai recuperato dal campoaccess_tokendell'output dell'API nel passaggio precedente. Nel tuo output API, puoi trovare l'ID del tuo account IBM Cloud nel campo resources.metadata.guid.GET https://accounts.cloud.ibm.com/coe/v2/accounts- Intestazione
-
Content-Type: application/jsonAuthorization: bearer TOKENAccept: application/json
Il seguente esempio mostra l'emissione della richiesta precedente.
{ "next_url": null, "total_results": 5, "resources": [ { "metadata": { "guid": "<account_ID>", "url": "/coe/v2/accounts/<account_ID>", "created_at": "2016-09-29T02:49:41.842Z", "updated_at": "2018-08-16T18:56:00.442Z", "anonymousId": "1111a1aa1a1111a1aa11aa11111a1111" }, "entity": { "name": "<account_name>", -
Genera un nuovo token IBM Cloud IAM che include le tue credenziali IBM Cloud e l'ID account che desideri utilizzare.
Se utilizzi una chiave API IBM Cloud, devi usare l'ID account IBM Cloud per il quale è stata creata la chiave API. Per accedere ai cluster di altri account, accedi a questo account e crea una chiave API di “ IBM Cloud ” associata a questo account.
POST https://iam.cloud.ibm.com/identity/token- Intestazione
-
Content-Type: application/x-www-form-urlencodedAuthorization: Basic Yng6Yng=doveYng6Yng=corrisponde all’autorizzazione codificata con il metodo URL per il nome utente bx e la password bx.
- Corpo per il nome utente e la password IBM Cloud.
-
grant_type: passwordusername: il tuo nome utente IBM Cloud.password: la tua password IBM Cloud.bss_account: l'ID account IBM Cloud che hai richiamato nel passo precedente.
- Corpo per le chiavi API IBM Cloud
-
grant_type: urn:ibm:params:oauth:grant-type:apikeyapikey: la tua chiave API IBM Cloud.bss_account: l'ID account IBM Cloud che hai richiamato nel passo precedente.
- Corpo per il passcode monouso IBM Cloud
-
grant_type: urn:ibm:params:oauth:grant-type:passcodepasscode: il tuo passcode IBM Cloud.bss_account: l'ID account IBM Cloud che hai richiamato nel passo precedente.
Il seguente esempio mostra l'output per la richiesta API.
{ "access_token": "<iam_token>", "refresh_token": "<iam_refresh_token>", "token_type": "Bearer", "expires_in": 3600, "expiration": 1493747503 }È possibile trovare il token IAM " IBM Cloud " nel campo "
access_token" e il token di aggiornamento nel campo "refresh_token" dell'output dell'API. -
Elenca tutti i cluster classici o VPC nel tuo account. Richiesta di esempio per elencare i cluster Classic.
GET https://containers.cloud.ibm.com/global/v2/classic/getClusters- Intestazione
Authorization: bearer <iam_token>
Comando di esempio per elencare i cluster VPC.
GET https://containers.cloud.ibm.com/global/v2/vpc/getClusters?provider=vpc-gen2- Intestazione
Authorization: il tuo token di accesso IAM IBM Cloud (bearer <iam_token>).
-
Consultare la documentazione dell'API Red Hat OpenShift on IBM Cloud per trovare un elenco delle API supportate.
Quando utilizzi l'API per l'automazione, assicurati di basarti sulle risposte dall'API, non i file all'interno di queste risposte. Ad esempio, il file di configurazione Kubernetes relativo al contesto del cluster è soggetto a modifiche; pertanto,
non basare l'automazione su contenuti specifici di questo file quando si utilizza la chiamata GET /v1/clusters/{idOrName}/config.
Aggiornamento dei token di accesso IAM con l'API
Ogni token di accesso IBM Cloud IAM (Identity and Access Management) che viene emesso tramite API scade dopo un'ora. Per garantire l'accesso all'API IBM Cloud devi aggiornare regolarmente il tuo token di accesso.
Prima di iniziare, assicurarsi di avere una chiave API IBM Cloud da usare per richiedere un nuovo token di accesso.
Se si desidera ottenere un nuovo token IAM IBM Cloud, procedere come segue.
-
Generare un nuovo token di accesso IAM IBM Cloud utilizzando la chiave API IBM Cloud.
POST https://iam.cloud.ibm.com/identity/token- Intestazione
-
Content-Type: application/x-www-form-urlencoded
- Corpo
-
grant_type: urn:ibm:params:oauth:grant-type:apikeyapikey:la tua chiave API IBM Cloud.
Il seguente esempio mostra l'output della richiesta API precedente.
{ "access_token": "<iam_token>", "refresh_token": "<iam_refresh_token>", "token_type": "Bearer", "expires_in": 3600, "expiration": 1493747503, "scope": "ibm openid" }Puoi trovare il tuo nuovo token IAM " IBM Cloud " nel campo "
access_token" dell'output dell'API. -
Continua a lavorare con la documentazione API Red Hat OpenShift on IBM Cloud utilizzando il token del passaggio precedente.