Administratoren und Entwickler können Aktionen für Cloud Consumption Interface (CCI)-API-Ressourcen durchführen, die vom CCI Kubernetes API-Server verfügbar gemacht werden.
Je nach Ressourcentyp können Administratoren und Entwickler die API verwenden, um die folgenden Aktionen durchzuführen.
Ressourcentyp | Verben für Administratoraktionen | Verben für Entwickleraktionen |
---|---|---|
CloudAccount | abrufen, auflisten | |
Supervisor | abrufen, patchen, auflisten | |
Project | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | abrufen, auflisten |
ProjectRole | abrufen, auflisten | abrufen, auflisten |
ProjectRoleBinding | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | abrufen, auflisten |
Region | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | abrufen, auflisten |
RegionBinding | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | abrufen, auflisten |
RegionBindingConfig | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | |
SupervisorNamespaceClass | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | abrufen, auflisten |
SupervisorNamespaceClassConfig | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | |
SupervisorNamespaceClassBinding | erstellen, abrufen, aktualisieren, patchen, löschen, auflisten | abrufen, auflisten |
SupervisorNamespace | erstellen, abrufen, löschen, auflisten | erstellen, abrufen, löschen, auflisten |
- Das CCI kubectl-Plug-In wurde heruntergeladen.
- Ein API-Token wurde abgerufen.
- Anmeldung beim CCI-Server wurde durchgeführt.
Projekte und Benutzer
- Projekt
-
Administratoren erstellen Projekte, um Benutzer zu gruppieren und den Zugriff auf Inhaltsquellen wie Cloud-Vorlagen in
Automation Assembler oder auf Katalogelemente in
Automation Service Broker festzulegen.
Project enthält die folgenden Eigenschaften:
metadata.name
Projektname.-
spec.description
Optionale Beschreibung. -
spec.sharedResources
Wenn „true“ festgelegt ist, gibt das Projekt die Supervisor-Namespaces für andere Benutzer im Projekt frei. Wenn „false“ festgelegt ist, beschränkt das Projekt den Namespace-Zugriff auf Administratoren oder den Benutzer, der den Namespace erstellt hat.
apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: demo-project spec: description: This is a demo project sharedResources: true
- Projektrolle
-
Die Projektrolle spiegelt die verfügbaren Administrator-, Ansichts- oder Bearbeitungsrollen wider, die einem Benutzer in einem Projekt zugewiesen werden können.
Projektrolle Beschreibung admin Ermöglicht das Ändern und Löschen des Namespaces. Ansicht Eine schreibgeschützte Rolle für den Namespace. bearbeiten Ermöglicht das Ändern des Namespaces. Beispieleingabe für das Lesen der Projektrolle.
apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRole metadata: name: admin spec: description: project administrator
- Projektrollenbindung
-
Die Projektrollenbindung wird verwendet, um einem Benutzer oder einer Gruppe eine Rolle in einem Projekt zuzuweisen.
ProjectRoleBinding enthält die folgenden Eigenschaften:
metadata.name
Name der Projektrollenbindung. Der Subjekttyp (Benutzer oder Gruppe) und der Subjektname müssen in einem bestimmten Format angegeben werden:cci:<user/group>:<subject domain>:<subject name>
metadata.namespace
beschreibt den Projektnamen.-
subjects
beschreibt den Benutzer oder die Gruppe. Es ist nur ein Eintrag zulässig. -
roleRef
Beschreibt die Rolle.
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 und Supervisoren
Diese Kategorie befasst sich mit der Infrastruktur, und ihre Funktionen sind nur für Administratoren bestimmt.
- Cloud-Konto
-
Cloud-Konten werden automatisch von vSphere+ oder manuell von einem Administrator erstellt, um ein
vCenter zu registrieren und Datencenter mit Supervisoren zu aktivieren.
Beispielausgabe für die Erstellung eines Cloud-Kontos.
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>
- Supervisor
-
Ein Supervisor wird vom System erstellt, nachdem die
vCenter-Datenerfassung abgeschlossen ist. Der Administrator kann den Supervisor mit Funktionsbezeichnungen für die Platzierung aktualisieren und ihn einer Region zuweisen.
-
metadata.labels
Administratoren definieren Bezeichnungen mit Schlüsselwerteinstellungen, die die Supervisor-Funktionen widerspiegeln. Bezeichnungen werden beim Erstellen eines Namespaces verwendet, um Supervisoren nach Funktionen zu filtern. spec.regionNames
Administratoren definieren Regionsnamen, sodass ein Supervisor einer Region zugewiesen werden kann. Ein Supervisor kann nur einer einzelnen Region zugewiesen werden und ist standardmäßig keiner Region zugewiesen.
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>
-
Topologie
- Region
-
Ein Administrator erstellt Regionen als Gruppierungsmechanismus für einen oder mehrere Supervisoren. Regionen können auf verschiedenen Parametern wie Geografie oder Infrastruktur basieren und Supervisoren aus mehreren vCenter-Instanzen enthalten.
Beispieleingabe für die Erstellung einer Region.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: us-west1 spec: description: The us-west1 region
- Regionsbindung
-
Ein Administrator erstellt Regionsbindungen, um Regionen mit Projekten zu verknüpfen.
Damit ein Benutzer in einem Projekt für Supervisor-Namespaces erstellen kann, müssen sowohl RegionBinding als auch RegionBindingConfig vorhanden sein.
RegionBinding enthält die folgenden Eigenschaften:metadata.name
Name der Region; dieser muss mit einer vorhandenen Region übereinstimmen.metadata.namespace
Projektname.
Beispieleingabe für die Erstellung einer Regionsbindung.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: us-west1 namespace: demo-project
- Regionsbindungskonfiguration
-
Um die Supervisor-Platzierungslogik pro Region in einem Projekt zu steuern, definiert ein Administrator
RegionBindingConfig. Wenn
RegionBindingConfig definiert ist, kann ein Administrator Schlüssel-Wert-Paare mit Supervisor-Bezeichnung verwenden, um die Zuordnung bestimmter Supervisoren zu Projekten weiter zu verfeinern. Ein Administrator könnte beispielsweise eine
key: environment
-Spezifikation verwenden, um einen Supervisor auszuwählen, der zum Testen mitvalue: testing
angegeben wurde.RegionBindingConfig enthält die folgenden Eigenschaften:Beispieleingabe für die Erstellung einer Regionsbindungskonfiguration.metadata.name
Name der Region; dieser muss mit einer vorhandenen Region übereinstimmen.metadata.namespace
Projektname.spec.supervisorSelector
wählt die Supervisoren im Projekt aus, die zum Erstellen eines Namespaces verfügbar sind. Um den richtigen Supervisor auszuwählen, definierenmatchExpressions
den Supervisor-Bezeichnungsschlüssel, den übereinstimmenden Operator und den Wert für die Übereinstimmung.spec.supervisorSelector
-Ausdrucksabgleich verwendet die folgenden Operatoren:operator: In
Die Regionsbindung testet, ob der Schlüsselwert mit dem Schlüsselwert für die Supervisor-Bezeichnung übereinstimmt.matchExpressions
ist ein Array, aber das Array ist derzeit auf einen einzelnen Eintragswert beschränkt.operator: NotIn
Die Regionsbindung testet, ob der Schlüsselwert nicht mit dem Schlüsselwert für die Supervisor-Bezeichnung übereinstimmt.matchExpressions
ist ein Array, aber das Array ist derzeit auf einen einzelnen Eintragswert beschränkt.operator: Exists
Die Regionsbindung sucht nach einer Übereinstimmung mit einem Supervisor, der den Bezeichnungsschlüssel enthält. Werte werden nicht verwendet.operator: DoesNotExist
Die Regionsbindung sucht nach einem Supervisor, der den Bezeichnungsschlüssel nicht enthält. Werte werden nicht verwendet.
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
Supervisor-Namespace-Klassen
- Supervisor-Namespace-Klasse
-
SupervisorNamespaceClass legt die Namespace-Vorlage und optionale Parameter fest, die zum Anpassen der Namespace-Einstellungen während der Erstellung verwendet werden können.
Das Standardfeld gibt den Parameterwert an, der verwendet wird, wenn ein Benutzer den Parameterwert bei der Namespace-Erstellung nicht angibt. Beispiel: WennParametertypdefinitionen:
default: false
, dann fungiertfalse
als Parameterwert.Hinweis: Damit ein Benutzer einen Namespace mit partiellen Parameterwerten oder ohne Parameterwerte erstellen kann, muss jeder Parameter ein Standardfeld und einen Standardwert enthalten.Parametertyp Eigenschaften Boolesch default
Boolescher Standardwert.enum
Liste der zulässigen booleschen Werte. Kann verwendet werden, damit ein Parameter nur einen Wert hat (true
oderfalse
).
Ganzzahl minimum
Minimaler Ganzzahlwert.maximum
Maximaler Ganzzahlwert.default
Ganzzahl-Standardwert.enum
Liste der zulässigen Ganzzahlwerte.
Zeichenfolge minLength
Minimale ZeichenfolgenlängemaxLength
Maximale Zeichenfolgenlängedefault
Standardzeichenfolgenwert, wenn kein Wert vom Benutzer angegeben wurde.pattern
Regex-Muster zur Validierung anhand des Werts.enum
Liste der zulässigen Zeichenfolgenwerte.
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
- Konfiguration der Supervisor-Namespace-Klasse
-
Um die Implementierung von Supervisor-Namespace-Klassen anzugeben, erstellt ein Administrator eine
SupervisorNamespaceClassConfig mit Namespace-Einstellungen. Damit ein Projekt über Zugriff auf die Supervisor-Namespace-Klasse verfügt, muss sowohl
SupervisorNamespaceClass als auch
SupervisorNamespaceClassConfig vorhanden sein.
SupervisorNamespaceClassConfig enthält die folgenden Eigenschaften:
metadata.name
Name der Supervisor-Namespace-Klasse.metadata.namespace
Projektname.spec.storageClasses
Speicherklassennamen und -grenzwerte in Megabyte.spec.vmClasses
Namen der VM-Klassen.spec.contentSource
Namen der Inhaltsbibliothek, die alle mittype: ContentLibrary
definiert sind.spec.limits
Namen und Werte für Begrenzungen. Zu den gültigen Grenzwerten gehören: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
Supervisoren im Projekt, die zum Erstellen eines Namespaces verfügbar sind. Um den richtigen Supervisor auszuwählen, definierenmatchExpressions
den Supervisor-Bezeichnungsschlüssel, den übereinstimmenden Operator und den Bezeichnungswert für die Übereinstimmung.
Ein Administrator stellt Klassenparameter zur Verfügung, die beim Definieren der Namespace-Einstellungswerte verbraucht werden können, sodass Benutzer die Namespace-Einstellungen während der Anforderungszeit anpassen können.
Beispieleingabe für die Erstellung einer Supervisor-Namespace-Klassenkonfiguration.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 diesem Beispiel werden die folgenden Parameter aus dem Supervisor-Namespace-Klassenbeispiel verwendet:((parameters.fastStorageClass ? 'fast-storage-class' : 'standard-storage-class'))
zeigt eine bedingte Prüfung für die Angabe eines Speicherklassennamens an.fastStorageClass
ist ein boolescher Typ.- Wenn der Benutzer den Parameterwert als „true“ angibt, lautet der Name
fast-storage-class
. - Wenn der Benutzer den Wert als „false“ angibt, lautet der Name
standard-storage-class
.
- Wenn der Benutzer den Parameterwert als „true“ angibt, lautet der Name
((parameters.podCountLimit))
zeigt, wie Sie einen Wert für die Begrenzung der Pod-Anzahl angeben.podCountLimit
ist ein Ganzzahltyp.- Wenn der Benutzer einen Wert angibt, der innerhalb der minimalen und maximalen Werte von 100 bis 1000 liegt, wie in der Supervisor-Namespace-Klasse definiert, ist dies der Wert für die Begrenzung der Pod-Anzahl.
- Wenn der Benutzer keinen Wert angibt, ist der Grenzwert für die Pod-Anzahl der in der Supervisor-Namespace-Klasse definierte Standardwert von 500.
- Wenn der Benutzer einen Wert außerhalb des zulässigen Bereichs (Mindest- bis Maximalwert) angibt, ist der Wert ungültig. Die Erstellung des Supervisor-Namespaces schlägt dann fehl, und es wird eine Fehlermeldung darüber ausgegeben, dass der Grenzwert für die Pod-Anzahl außerhalb des zulässigen Wertebereichs liegt.
- Supervisor-Namespace-Klassenbindung
-
Die Supervisor Namespace-Klassenbindung ermöglicht die Verwendung von Supervisor Namespace-Klassen beim Erstellen eines Supervisor-Namespaces in einem Projekt.
SupervisorNamespaceClassBinding enthält die folgenden Eigenschaften:
metadata.name
Namen der Supervisor-Namespace-Klassenbindung.metadata.namespace
Projektname.spec.overrideParameters
Diese vom Administrator erstellten Parameter sind Definitionswerte, die von einem Benutzer beim Erstellen des Supervisor-Namespaces nicht geändert werden können.const
gibt den Wert für den Parameter an. Diese Parameter sind optional und nicht für alle Klassenparameter erforderlich, sofern definiert.
Beispieleingabe für die Erstellung einer Supervisor-Namespace-Klassenbindung.In diesem Beispiel istapiVersion: 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
ein Außerkraftsetzungsparameter, der den Parameterenvironment
aus der Supervisor-Namespace-Klasse verwendet. Durch Angabe vonconst: testing
kann der Benutzer nur einen Supervisor-Namespace mit dieser Klasse in einer Testumgebung erstellen.
Supervisor-Namespaces
- Supervisor-Namespace
-
Benutzer können Supervisor-Namespaces in einer bestimmten Region mithilfe einer Supervisor-Namespace-Klasse als Vorlage erstellen. Wenn optionale Klassenparameter verfügbar gemacht werden, können diese zum Definieren der Namespace-Einstellungen verwendet werden.
SupervisorNamespace enthält die folgenden Eigenschaften:Beispieleingabe für die Erstellung eines Supervisor-Namespace.
metadata.name
Name des Namespaces im Projekt und auf dem Supervisor.metadata.namespace
Projektname.spec.regionName
Name der Region.spec.className
Name der Supervisor-Namespace-Klasse.spec.classParameters
Optionaler Schlüsselwert zum Außerkraftsetzen der Standardparameterwerte.spec.description
Optionale Beschreibung des Namespace.
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
Beispielausgabe für die Erstellung eines Supervisor-Namespace.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>