Les administrateurs et les développeurs peuvent agir sur les ressources d'API de l'interface de consommation de cloud (CCI) exposées par le serveur d'API Kubernetes de CCI.
En fonction du type de ressource, les administrateurs et les développeurs peuvent utiliser l'API pour effectuer les actions suivantes.
Type de ressource | Verbes d'action d'administrateur | Verbes d'action du développeur |
---|---|---|
CloudAccount | obtenir, répertorier | |
Supervisor | obtenir, corriger, répertorier | |
Project | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | obtenir, répertorier |
ProjectRole | obtenir, répertorier | obtenir, répertorier |
ProjectRoleBinding | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | obtenir, répertorier |
Region | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | obtenir, répertorier |
RegionBinding | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | obtenir, répertorier |
RegionBindingConfig | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | |
SupervisorNamespaceClass | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | obtenir, répertorier |
SupervisorNamespaceClassConfig | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | |
SupervisorNamespaceClassBinding | créer, obtenir, mettre à jour, corriger, supprimer, répertorier | obtenir, répertorier |
SupervisorNamespace | créer, obtenir, supprimer, répertorier | créer, obtenir, supprimer, répertorier |
- Téléchargement du plug-in CCI kubectl.
- Obtention d'un jeton d'API.
- Connecté au serveur CCI.
Projets et utilisateurs
- Projet
-
Les administrateurs créent des projets pour regrouper les utilisateurs et définir l'accès aux sources de contenu, telles que les modèles de cloud dans
Automation Assembler ou aux éléments du catalogue dans
Automation Service Broker.
Project comprend les propriétés suivantes :
metadata.name
Nom du projet.-
spec.description
Description facultative. -
spec.sharedResources
Si la valeur est true, le projet partage les espaces de noms de superviseur avec d'autres utilisateurs du projet. Si la valeur est false, le projet limite l'accès à l'espace de noms aux administrateurs ou à l'utilisateur ayant créé l'espace de noms.
apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: demo-project spec: description: This is a demo project sharedResources: true
- Rôle de projet
-
Le rôle de projet reflète les rôles disponibles d'administration, d'affichage ou de modification pouvant être attribués à un utilisateur dans un projet.
Rôle de projet Description admin Permet la modification et la suppression de l'espace de noms. vue Rôle en lecture seule sur l'espace de noms. modifier Permet de modifier l'espace de noms. Exemple d'entrée de lecture du rôle de projet.
apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRole metadata: name: admin spec: description: project administrator
- Liaison de rôle de projet
-
La liaison de rôle de projet est utilisée pour attribuer à un utilisateur ou à un groupe un rôle dans un projet.
ProjectRoleBinding comprend les propriétés suivantes :
metadata.name
Nom de la liaison de rôle de projet et nécessite un format spécifique pour refléter le type d'objet (utilisateur ou groupe) et le nom de l'objet :cci:<user/group>:<subject domain>:<subject name>
metadata.namespace
Décrit le nom du projet.-
subjects
Décrit l'utilisateur ou le groupe. Une seule entrée est autorisée. -
roleRef
Décrit le rôle.
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
Instances de vCenter et superviseurs
Cette catégorie traite de l'infrastructure et ses fonctions sont destinées uniquement aux administrateurs.
- Compte de cloud
-
Les comptes de cloud sont créés automatiquement par vSphere+ ou manuellement par un administrateur pour enregistrer une instance de
vCenter et activer des centres de données avec des superviseurs.
Exemple de sortie de création d'un compte de 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>
- Superviseur
-
Un superviseur est créé par le système une fois la collecte de données
vCenter terminée. L'administrateur peut mettre à jour le superviseur avec des étiquettes de capacité pour le placement et l'attribuer à une région.
-
metadata.labels
Les administrateurs définissent des étiquettes avec des paramètres clé-valeur qui reflètent les capacités du superviseur. Les étiquettes sont utilisées pour filtrer les superviseurs en fonction des capacités lors de la création d'un espace de noms. spec.regionNames
Les administrateurs définissent des noms de région afin qu'un superviseur puisse être attribué à une région. Un superviseur ne peut être attribué qu'à une seule région et n'est pas attribué à une région par défaut.
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
- Région
-
Un administrateur crée des régions en tant que mécanisme de regroupement pour un ou plusieurs superviseurs. Les régions peuvent être basées sur divers paramètres tels que la géographie ou l'infrastructure, et elles peuvent inclure des superviseurs de plusieurs instances de vCenter.
Exemple d'entrée de création d'une région.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: us-west1 spec: description: The us-west1 region
- Liaison de région
-
Un administrateur crée des liaisons de région pour associer des régions à des projets.
Pour qu'un utilisateur d'un projet crée dans des espaces de noms de superviseur, RegionBinding et RegionBindingConfig doivent exister.
RegionBinding comprend les propriétés suivantes :metadata.name
Nom de la région et doit correspondre à une région existante.metadata.namespace
Nom du projet.
Exemple d'entrée de création d'une liaison de région.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: us-west1 namespace: demo-project
- Configuration de liaison de région
-
Pour contrôler la logique de positionnement du superviseur par région dans un projet, un administrateur définit
RegionBindingConfig. Lorsque
RegionBindingConfig est défini, un administrateur peut utiliser des paires clé-valeur d'étiquette de superviseur pour affiner l'association de superviseurs spécifiques à des projets. Par exemple, un administrateur peut utiliser une spécification
key: environment
pour sélectionner un superviseur spécifié à des fins de test avecvalue: testing
.RegionBindingConfig comprend les propriétés suivantes :Exemple d'entrée de création d'une configuration de liaison de région.metadata.name
Nom de la région et doit correspondre à une région existante.metadata.namespace
Nom du projet.spec.supervisorSelector
sélectionne les superviseurs du projet disponibles pour la création d'un espace de noms. Pour sélectionner le superviseur approprié,matchExpressions
définit la clé d'étiquette de superviseur, l'opérateur correspondant et la valeur de la correspondance.La correspondance d'expressionspec.supervisorSelector
utilise les opérateurs suivants :operator: In
La liaison de région teste si la clé-valeur correspond à la clé-valeur de l'étiquette de superviseur.matchExpressions
est un tableau, mais le tableau est actuellement limité à une valeur d'entrée unique.operator: NotIn
La liaison de région teste si la clé-valeur ne correspond pas à la clé-valeur de l'étiquette de superviseur.matchExpressions
est un tableau, mais le tableau est actuellement limité à une valeur d'entrée unique.operator: Exists
La liaison de région recherche une correspondance avec un superviseur qui contient la clé d'étiquette. Les valeurs ne sont pas utilisées.operator: DoesNotExist
La liaison de région recherche un superviseur qui ne contient pas la clé d'étiquette. Les valeurs ne sont pas utilisées.
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
Classes des espaces de noms du superviseur
- Classe de l'espace de noms de superviseur
-
SupervisorNamespaceClass définit le modèle d'espace de noms et les paramètres facultatifs qui peuvent être utilisés pour personnaliser les paramètres d'espace de noms lors de la création.
Le champ par défaut spécifie la valeur du paramètre qui est utilisée si un utilisateur ne fournit pas la valeur du paramètre lors de la création de l'espace de noms. Par exemple, siDéfinitions des types de paramètres :
default: false
,false
correspond à la valeur du paramètre.Note : Pour vous assurer qu'un utilisateur peut créer un espace de noms avec des valeurs de paramètre partielles ou nulles, chaque paramètre doit inclure un champ et une valeur par défaut.Type de paramètre. Propriétés Valeur booléenne default
Valeur booléenne par défaut.enum
Liste des valeurs booléennes autorisées. Peut être utilisé pour qu'un paramètre n'ait qu'une seule valeur,true
oufalse
.
Entier minimum
Valeur entière minimale.maximum
Valeur entière maximale.default
Valeur entière par défaut.enum
Liste des valeurs entières autorisées.
Chaîne minLength
Longueur de chaîne minimale.maxLength
Longueur de chaîne maximale.default
Valeur de chaîne par défaut si elle n'est pas fournie par l'utilisateur.pattern
Modèle regex à comparer à la valeur.enum
Liste des valeurs de chaîne autorisées.
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
- Configuration de la classe d'espace de noms de superviseur
-
Pour spécifier l'implémentation des classes d'espace de noms de superviseur, un administrateur crée une
SupervisorNamespaceClassConfig avec des paramètres d'espace de noms. Pour qu'un projet ait accès à la classe d'espace de noms de superviseur,
SupervisorNamespaceClass et
SupervisorNamespaceClassConfig doivent tous deux exister.
SupervisorNamespaceClassConfig comprend les propriétés suivantes :
metadata.name
Nom de classe de l'espace de noms de superviseur.metadata.namespace
Nom du projet.spec.storageClasses
Noms et limites de classe de stockage en mégaoctets.spec.vmClasses
Nom des classes de machine virtuelle.spec.contentSource
Noms de bibliothèque de contenu qui sont tous définis avectype: ContentLibrary
.spec.limits
Noms et valeurs des limites. Les valeurs de limite valides sont les suivantes :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
Superviseurs du projet disponibles pour la création d'un espace de noms. Pour sélectionner le superviseur approprié,matchExpressions
définit la clé d'étiquette, l'opérateur correspondant et la valeur d'étiquette pour la correspondance.
Un administrateur expose des paramètres de classe qui peuvent être consommés lors de la définition des valeurs des paramètres d'espace de noms afin que les utilisateurs puissent personnaliser les paramètres d'espace de noms pendant la demande.
Exemple d'entrée de création d'une configuration de classe d'espace de noms de superviseur.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
Cet exemple utilise les paramètres de l'exemple de classe d'espace de noms de superviseur comme suit :((parameters.fastStorageClass ? 'fast-storage-class' : 'standard-storage-class'))
affiche une vérification conditionnelle pour spécifier un nom de classe de stockage.fastStorageClass
est un type booléen.- Si l'utilisateur définit la valeur du paramètre sur true, le nom est
fast-storage-class
. - Si l'utilisateur définit la valeur sur false, le nom est
standard-storage-class
.
- Si l'utilisateur définit la valeur du paramètre sur true, le nom est
((parameters.podCountLimit))
indique comment spécifier une valeur pour la limite du nombre d'espaces.podCountLimit
est un type entier.- Si l'utilisateur spécifie une valeur comprise entre la valeur minimale 100 et la valeur maximale 1 000, telles que définies dans la classe d'espace de noms de superviseur, il s'agit de la valeur de la limite du nombre d'espaces.
- Si l'utilisateur ne spécifie aucune valeur, la limite du nombre d'espaces est la valeur par défaut de 500, telle que définie dans la classe d'espace de noms de superviseur.
- Si l'utilisateur spécifie une valeur en dehors des valeurs minimale et maximale, la valeur n'est pas valide et la création de l'espace de noms de superviseur échoue avec une erreur indiquant que la limite du nombre d'espaces se situe en dehors de la plage de valeurs autorisées.
- Liaison de classe d'espace de noms de superviseur
-
La liaison de classe d'espace de noms de superviseur permet d'utiliser des classes d'espace de noms de superviseur lors de la création d'un espace de noms de superviseur dans un projet.
SupervisorNamespaceClassBinding comprend les propriétés suivantes :
- Nom de la liaison de classe de l'espace de noms de superviseur
metadata.name
. metadata.namespace
Nom du projet.spec.overrideParameters
Créés par l'administrateur ; ces paramètres définissent des valeurs qui ne peuvent pas être modifiées par un utilisateur lors de la création de l'espace de noms de superviseur.const
spécifie la valeur du paramètre. Ces paramètres sont facultatifs et, s'ils sont définis, ne sont pas requis pour tous les paramètres de classe.
Exemple d'entrée de création d'une liaison de classe d'espace de noms de superviseur.Dans cet exemple,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
est un paramètre de remplacement utilisant le paramètreenvironment
de la classe d'espace de noms de superviseur. En spécifiantconst: testing
, l'utilisateur peut uniquement créer un espace de noms de superviseur à l'aide de cette classe dans un environnement de test. - Nom de la liaison de classe de l'espace de noms de superviseur
Espaces de noms de superviseur
- Espace de noms de superviseur
-
Les utilisateurs peuvent créer des espaces de noms de superviseur dans une région spécifique à l'aide d'une classe d'espace de noms de superviseur comme modèle. S'ils sont exposés, des paramètres de classe facultatifs peuvent être utilisés pour définir les paramètres d'espace de noms.
SupervisorNamespace comprend les propriétés suivantes :Exemple d'entrée de création d'un espace de noms de superviseur.
metadata.name
Nom de l'espace de noms dans le projet et sur le superviseur.metadata.namespace
Nom du projet.spec.regionName
Nom de la région.spec.className
Nom de classe de l'espace de noms de superviseur.spec.classParameters
Valeur-clé facultative pour remplacer les valeurs des paramètres par défaut.spec.description
Description facultative de l'espace de noms.
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
Exemple de sortie de création d'un espace de noms de superviseur.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>