Gli amministratori e gli sviluppatori possono eseguire operazioni relative alle risorse dell'API CCI (Cloud Consumption Interface) esposte dal server dell'API Kubernetes di CCI.
In base al tipo di risorsa, amministratori e sviluppatori possono utilizzare l'API per eseguire le azioni seguenti.
Tipo di risorsa | Verbi delle azioni dell'amministratore | Verbi delle azioni dello sviluppatore |
---|---|---|
CloudAccount | ottenere, elencare | |
Supervisor | ottenere, applicare patch, elencare | |
Project | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | ottenere, elencare |
ProjectRole | ottenere, elencare | ottenere, elencare |
ProjectRoleBinding | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | ottenere, elencare |
Region | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | ottenere, elencare |
RegionBinding | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | ottenere, elencare |
RegionBindingConfig | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | |
SupervisorNamespaceClass | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | ottenere, elencare |
SupervisorNamespaceClassConfig | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | |
SupervisorNamespaceClassBinding | creare, ottenere, aggiornare, applicare patch, eliminare, elencare | ottenere, elencare |
SupervisorNamespace | creare, ottenere, eliminare, elencare | creare, ottenere, eliminare, elencare |
- Scaricato il plug-in kubectl di CCI.
- Recupero del token dell'API.
- L'accesso al server CCI.
Progetti e utenti
- Progetto
-
Gli amministratori creano progetti per raggruppare gli utenti e impostare l'accesso alle origini dei contenuti come i modelli cloud in
Automation Assembler o agli elementi del catalogo in
Automation Service Broker.
Project include le proprietà seguenti:
metadata.name
: nome del progetto.-
spec.description
: descrizione facoltativa. -
spec.sharedResources
: se è true, il progetto condivide gli spazi dei nomi supervisore con gli altri utenti del progetto. Se è false, il progetto limita l'accesso allo spazio dei nomi agli amministratori o all'utente che ha creato lo spazio dei nomi.
apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: demo-project spec: description: This is a demo project sharedResources: true
- Ruolo del progetto
-
Il ruolo del progetto riflette i ruoli di amministrazione, visualizzazione o modifica disponibili che possono essere assegnati a un utente in un progetto.
Ruolo del progetto Descrizione admin Consente la modifica e l'eliminazione dello spazio dei nomi. visualizzazione Ruolo di sola lettura nello spazio dei nomi. modifica Consente la modifica dello spazio dei nomi. Input di esempio di un ruolo del progetto di lettura.
apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRole metadata: name: admin spec: description: project administrator
- Binding del ruolo del progetto
-
Il binding del ruolo del progetto viene utilizzato per assegnare a un utente o un gruppo l'appartenenza a un ruolo in un progetto.
ProjectRoleBinding include le proprietà seguenti:
metadata.name
: nome del binding del ruolo del progetto che richiede un formato specifico che rifletta il tipo di oggetto (utente o gruppo) e il nome dell'oggetto:cci:<user/group>:<subject domain>:<subject name>
metadata.namespace
: descrive il nome del progetto.-
subjects
: descrive l'utente o il gruppo. È consentita una sola voce. -
roleRef
: descrive il ruolo.
apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRoleBinding metadata: # name must match the subject kind and name name: cci:user:vmware.com:hello namespace: demo-project subjects: - kind: User # User / Group name: [email protected] roleRef: apiGroup: authorization.cci.vmware.com kind: ProjectRole name: admin # admin / edit / view
vCenter e supervisori
Questa categoria riguarda l'infrastruttura e le sue funzioni sono solo per gli amministratori.
- Account cloud
-
Gli account cloud vengono creati automaticamente da vSphere+ o manualmente da un amministratore per registrare un
vCenter e abilitare i data center con supervisori.
Output di esempio di creazione di un account cloud.
Name: cci-ui-volume-service Namespace: cci-config Labels: <none> Annotations: infrastructure.cci.vmware.com/data-collection-status: FINISHED infrastructure.cci.vmware.com/last-data-collection-timestamp: 2022-10-24T22:06:08.603Z API Version: infrastructure.cci.vmware.com/v1alpha1 Kind: CloudAccount Metadata: Creation Timestamp: 2022-10-17T12:18:28Z UID: 2163e7cf-f698-3f1f-afca-f3daa8c730fa Spec: Address: 127.193.29.114 Cloud Proxy Name: 2d164fed-bbf3-47cc-8e6b-5226c5277ee4 Events: <none>
- Supervisore
-
Il supervisore viene creato dal sistema dopo il completamento della raccolta dei dati di
vCenter. L'amministratore può aggiornare il supervisore con etichette di funzionalità per il posizionamento e assegnarlo a una regione.
-
metadata.labels
: gli amministratori definiscono le con impostazioni chiave-valore che riflettono le funzionalità del supervisore. Le etichette vengono utilizzate per filtrare i supervisori in base alle funzionalità durante la creazione di uno spazio dei nomi. spec.regionNames
: gli amministratori definiscono i nomi delle regioni in modo che sia possibile assegnare un supervisore a una regione. Un supervisore può essere assegnato solo a una singola regione e non viene assegnato a una regione per impostazione predefinita.
Name: bugbash-vc:domain-c8 Namespace: cci-config Labels: environment=bug-bash-9 Annotations: infrastructure.cci.vmware.com/cloud-account-id: 33a0b2d0-91c8-4629-b04a-65448494d54e API Version: infrastructure.cci.vmware.com/v1alpha1 Kind: Supervisor Metadata: Creation Timestamp: 2022-09-28T04:22:38Z UID: fbd10d08-bc56-4ec2-93f8-693a7a4b2003 Spec: Cloud Account Name: bugbash-vc Display Name: wcp-test-dc-cluster External Id: domain-c8 Region Names: us-demo1 Status: Power State: On Events: <none>
-
Topologia
- Regione
-
L'amministratore crea regioni come meccanismo di raggruppamento per uno o più supervisori. Le regioni possono essere basate su vari parametri, come la geografia o l'infrastruttura, e possono includere supervisori di più vCenter.
Input esempio di creazione di una regione.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: us-west1 spec: description: The us-west1 region
- Binding delle regioni
-
Un amministratore crea binding delle regioni per associare le regioni ai progetti.
Affinché un utente di un progetto possa creare spazi dei nomi supervisore, devono esistere RegionBinding e RegionBindingConfig.
RegionBinding include le proprietà seguenti:metadata.name
: nome della regione che deve corrispondere a una regione esistente.metadata.namespace
: nome del progetto.
Input di esempio del binding di una regione.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: us-west1 namespace: demo-project
- Configurazione del binding di una regione
-
Per controllare la logica di posizionamento del supervisore in base alla regione in un progetto, un amministratore definisce
RegionBindingConfig. Quando il comando
RegionBindingConfig è definito, un amministratore può utilizzare le coppie chiave-valore delle etichette del supervisore per perfezionare ulteriormente l'associazione di supervisori specifici ai progetti. Un amministratore può ad esempio utilizzare una specifica
key: environment
per selezionare un supervisore specificato per il test convalue: testing
.RegionBindingConfig include le proprietà seguenti:Input di esempio della configurazione del binding di una regione.metadata.name
: nome della regione che deve corrispondere a una regione esistente.metadata.namespace
: nome del progetto.spec.supervisorSelector
seleziona nel progetto i supervisori disponibili per la creazione di uno spazio dei nomi. Per selezionare il supervisore corretto,matchExpressions
definisce la chiave dell'etichetta del supervisore, l'operatore corrispondente e il valore per la corrispondenza.Per la corrispondenza dell'espressionespec.supervisorSelector
vengono utilizzati gli operatori seguenti:operator: In
: il binding della regione verifica se la coppia chiave-valore corrisponde alla coppia chiave-valore dell'etichetta del supervisore.matchExpressions
è un array, ma l'array è attualmente limitato al valore di una singola voce.operator: NotIn
: il binding della regione verifica se la coppia chiave-valore non corrisponde alla coppia chiave-valore dell'etichetta del supervisore.matchExpressions
è un array, ma l'array è attualmente limitato al valore di una singola voce.operator: Exists
: il binding della regione cerca una corrispondenza con un supervisore che contiene la chiave dell'etichetta. I valori non vengono utilizzati.operator: DoesNotExist
: il binding della regione cerca un supervisore che non contiene la chiave dell'etichetta. I valori non vengono utilizzati.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: us-west1 namespace: demo-project spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing - key: storage operator: Exists - key: storage operator: NotIn values: - encrypted
Classi degli spazi dei nomi supervisore
- Classe dello spazio dei nomi supervisore
-
SupervisorNamespaceClass definisce il modello dello spazio dei nomi e i parametri facoltativi che possono essere utilizzati per personalizzare le impostazioni dello spazio dei nomi durante la creazione.
Il campo predefinito specifica il valore del parametro utilizzato se un utente non fornisce il valore del parametro durante la creazione dello spazio dei nomi. Ad esempio, seDefinizioni dei tipi di parametro:
default: false
,false
è il valore del parametro.Nota: Per fare in modo che un utente possa creare uno spazio dei nomi specificando valori parziali o nessun valore per i parametri, ogni parametro deve includere un campo e un valore predefiniti.Tipo di parametro Proprietà Booleano default
: valore booleano predefinito.enum
: elenco di valori booleani consentiti. Può essere utilizzato per fare in modo che un parametro abbia un solo valore,true
ofalse
.
Intero minimum
: valore intero minimo.maximum
: valore intero massimo.default
: valore intero predefinito.enum
: elenco di valori interi consentiti.
Stringa minLength
: lunghezza minima della stringa.maxLength
: lunghezza massima della stringa.default
: valore predefinito della stringa se non viene specificato dall'utente.pattern
: modello regex da convalidare rispetto al valore.enum
: elenco di valori stringa consentiti.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClass metadata: name: gold-with-gpu spec: description: Gold with GPU enabled supervisor namespace parameters: - name: environment type: String default: testing enum: - testing - staging - production - name: fastStorageClass type: Boolean default: false - name: podCountLimit type: Integer minimum: 100 maximum: 1000 default: 500
- Configurazione della classe dello spazio dei nomi supervisore
-
Per specificare l'implementazione delle classi degli spazi dei nomi supervisore, un amministratore crea un comando
SupervisorNamespaceClassConfig con le impostazioni degli spazi dei nomi. Affinché un progetto possa accedere alla classe dello spazio dei nomi supervisore, devono esistere
SupervisorNamespaceClass e
SupervisorNamespaceClassConfig.
SupervisorNamespaceClassConfig include le proprietà seguenti:
metadata.name
: nome della classe dello spazio dei nomi supervisore.metadata.namespace
: nome del progetto.spec.storageClasses
: nomi e limiti delle classi di storage in megabyte.spec.vmClasses
: nomi delle classi delle macchine virtuali.spec.contentSource
: nomi delle librerie di contenuti definiti tutti contype: ContentLibrary
.spec.limits
: nomi e valori dei limiti. I valori di limite validi includono:config_map_count
cpu_limit
cpu_limit_default
cpu_request_default
daemon_set_count
deployment_count
job_count
memory_limit
memory_limit_default
memory_request_default
persistent_volume_claim_count
pod_count
replica_set_count
replication_controller_count
secret_count
service_count
stateful_set_count
storage_request_limit
spec.supervisorSelector
: supervisori nel progetto disponibili per la creazione di uno spazio dei nomi. Per selezionare il supervisore corretto,matchExpressions
definisce la chiave dell'etichetta, l'operatore corrispondente e il valore dell'etichetta per la corrispondenza.
Un amministratore espone i parametri della classe che possono essere utilizzati durante la definizione dei valori delle impostazioni dello spazio dei nomi, in modo che gli utenti possano personalizzare le impostazioni dello spazio dei nomi durante la richiesta.
Input di esempio di creazione della configurazione della classe dello spazio dei nomi supervisore.apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassConfig metadata: name: gold-with-gpu spec: storageClasses: - name: wcp-storage-class limit: "100" - name: "((parameters.fastStorageClass ? 'fast-storage-class' : 'standard-storage-class'))" vmClasses: - name: big-vm-class - name: small-vm-class contentSources: - name: global-content-library type: ContentLibrary - name: "((parameters.environment))-content-library" type: ContentLibrary limits: - name: cpu_limit limit: "1000" - name: pod_count limit: "((parameters.podCountLimit))" supervisorSelector: matchExpressions: - key: gpu-enabled operator: In values: - true
In questo esempio vengono utilizzati i parametri dell'esempio della classe dello spazio dei nomi supervisore come indicato di seguito:((parameters.fastStorageClass ? 'fast-storage-class' : 'standard-storage-class'))
mostra un controllo condizionale per specificare il nome di una classe di storage.fastStorageClass
è un tipo booleano.- Se l'utente specifica true come valore del parametro, il nome è
fast-storage-class
. - Se l'utente specifica false come valore, il nome è
standard-storage-class
.
- Se l'utente specifica true come valore del parametro, il nome è
((parameters.podCountLimit))
mostra come specificare un valore per il limite del numero di pod.podCountLimit
è un tipo intero.- Se l'utente specifica un valore compreso tra il valore minimo 100 e il valore massimo 1000 come definito nella classe dello spazio dei nomi supervisore, tale valore è il valore del limite del numero di pod.
- Se l'utente non specifica alcun valore, il limite del numero di pod è il valore predefinito 500 come definito nella classe dello spazio dei nomi supervisore.
- Se l'utente specifica un valore esterno all'intervallo dei valori minimo e massimo, il valore non è valido, la creazione dello spazio dei nomi supervisore non riesce e viene visualizzato un messaggio di errore che indica che il limite del numero di pod non è compreso nell'intervallo dei valori consentiti.
- Binding della classe spazio dei nomi supervisore
-
Il binding della classe dello spazio dei nomi supervisore consente l'utilizzo delle classi degli spazi dei nomi supervisore durante la creazione di uno spazio dei nomi supervisore in un progetto.
SupervisorNamespaceClassBinding include le proprietà seguenti:
metadata.name
: nome del binding della classe dello spazio dei nomi supervisore.metadata.namespace
: nome del progetto.spec.overrideParameters
: creati dall'amministratore, questi parametri sono valori definiti che non possono essere modificati da un utente durante la creazione dello spazio dei nomi supervisore.const
: specifica il valore del parametro. Questi parametri sono facoltativi e, se vengono definiti, non sono necessari per tutti i parametri della classe.
Input di esempio di creazione del binding della classe dello spazio dei nomi supervisore.In questo esempio,apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: gold-with-gpu namespace: demo-project spec: overrideParameters: - name: environment type: string const: testing supervisorNamespaceClassRef: apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClass name: gold
name: environment
è un parametro di sostituzione che utilizza il parametroenvironment
della classe dello spazio dei nomi supervisore. Specificandoconst: testing
, l'utente può creare uno spazio dei nomi supervisore che utilizza questa classe solo in un ambiente di test.
Spazi dei nomi supervisore
- Spazio dei nomi supervisore
-
Gli utenti possono creare spazi dei nomi supervisore in una regione specifica utilizzando una classe dello spazio dei nomi supervisore come modello. Se vengono esposti, i parametri della classe facoltativi possono essere utilizzati per definire le impostazioni dello spazio dei nomi.
SupervisorNamespace include le proprietà seguenti:Input di esempio di creazione di uno spazio dei nomi supervisore.
metadata.name
: nome dello spazio dei nomi nel progetto e nel supervisore.metadata.namespace
: nome del progetto.spec.regionName
: nome della regione.spec.className
: nome della classe dello spazio dei nomi supervisore.spec.classParameters
: coppia chiave-valore facoltativa per sostituire i valori predefiniti dei parametri.spec.description
: descrizione dello spazio dei nomi facoltativa.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespace metadata: name: demo-ns5 namespace: demo-project spec: description: Demonstrating supervisor namespace creation regionName: us-west2 className: bronze
Output di esempio di creazione di uno spazio dei nomi supervisore.Name: demo-1 Namespace: sprint-demo-project Labels: <none> Annotations: infrastructure.cci.vmware.com/wcp-address: 10.161.81.40 API Version: infrastructure.cci.vmware.com/v1alpha1 Kind: SupervisorNamespace Metadata: Creation Timestamp: 2022-09-13T01:55:57Z UID: my-example-demo-1 Spec: Class Name: demo-class Class Parameters: Pods: 30 Description: Region Name: us-demo-1 Status: Conditions: Last Transition Time: 2022-09-13T01:55:58Z Status: True Type: Ready Phase: Created Events: <none>