Configuration de l'interface de consommation de cloud à l'aide de kubectl

En tant qu'administrateur de cloud
VMware Aria Automation
, vous pouvez utiliser une interface de ligne de commande pour activer l'accès à l'interface de consommation de cloud (CCI) et configurer des constructions de gouvernance. L'interface de ligne de commande utilise l'outil de ligne de commande Kubernetes ou kubectl.
Pour obtenir la liste complète des actions que vous pouvez effectuer à l'aide de l'interface de ligne de commande, reportez-vous à la section Référence de l'API Kubernetes pour l'interface de consommation de cloud.

Conditions préalables

  • Vérifiez qu'un cluster superviseur est activé sur une instance de
    vCenter
    et est enregistré dans
    VMware Aria Automation
    .
  • Vérifiez que vous êtes au moins membre de l'organisation dans
    VMware Aria Automation
    avec le rôle de service Administrateur pour
    Automation Assembler
    ou
    Automation Service Broker
    .
  • Vérifiez que vous disposez de éléments suivants :
    • Téléchargement du plug-in CCI kubectl.
    • Jeton d'API pour l'utilisateur Admin ou variable définie pour stocker le mot de passe d'utilisateur.
    • Jeton utilisé avec l'option
      -t
      ou informations d'identification de l'administrateur utilisées avec l'option
      -u
      pour vous connecter au serveur CCI et contexte par défaut défini sur CCI.
  • Vérifiez que vous avez ajouté un compte cloud
    vCenter
    dans
    Automation Assembler
    .
Pour plus d'informations sur ces conditions préalables, reportez-vous à la section Installation et configuration de l'interface de consommation de cloud.

Étape 1 : créer un projet et des liaisons de rôle de projet

Pour regrouper les utilisateurs
Automatisation
et définir l'accès aux ressources d'infrastructure, vous créez un projet et des liaisons de rôle de projet.
Pour créer un projet et des liaisons de rôle de projet à l'aide de l'interface utilisateur, reportez-vous à la section Ajout d'un projet pour mon équipe de développement Automation Assembler..
  1. Créez un projet.
    kubectl create -f project.yaml
    Exemple de fichier
    project.yaml
    .
    apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: <
    project_name
    > spec: description: <
    description_of_project
    > sharedResources: true
  2. Créez une liaison de rôle de projet pour attribuer des rôles à des utilisateurs ou des groupes dans un projet créé.
    kubectl create -f projectrolebinding.yaml
    L'exemple de fichier
    projectrolebinding.yaml
    suivant ajoute un utilisateur disposant du rôle de projet
    admin
    . Les valeurs de rôle de projet sont :
    admin
    ,
    view
    ou
    edit
    .
    apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRoleBinding metadata: name: cci:user:vmware.com:<
    user_alias
    > namespace: <
    project_name
    > roleRef: apiGroup: authorization.cci.vmware.com kind: ProjectRole name: admin subjects: - kind: User name: <
    username@company.com
    >

Étape 2: créer une région

Vous créez une région afin de pouvoir attribuer des superviseurs à cette région.
kubectl create -f region.yaml
Exemple de fichier
region.yaml
.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <
region_name
> spec: description: <
description_of_region
>

Étape 3 : associer un superviseur à une région

Pour associer un superviseur à une région, vous recherchez le superviseur que vous souhaitez mettre à jour, puis ajoutez la région et les étiquettes qui seront utilisées pour le positionnement de l'espace de noms.
  1. Pour trouver le superviseur que vous souhaitez mettre à jour, répertoriez les superviseurs. Les ressources du superviseur sont visibles après la collecte de données
    vCenter
    .
    kubectl -n cci-config get supervisors
    Voici un exemple de résultat.
    NAME AGE demo-self-service:domain-c50 75d adminannie-vcenter:domain-c8 5d18h scale-test-vc-01:domain-c8 56d
  2. Mettez à jour le superviseur nommé
    adminannie-vcenter:domain-c8
    .
    kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
    L'exemple suivant inclut les paires de clé-valeur
    metadata.labels
    et les
    spec.regionNames
    de régions. Les étiquettes
    environment: testing
    et
    fipsMode: strict
    peuvent être utilisées pour faciliter les décisions de placement du superviseur.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: Supervisor metadata: labels: environment: testing fipsMode: strict name: adminannie-vc:domain-c8 namespace: cci-config uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d spec: cloudAccountName: adminannie-vc externalId: domain-c8 externalName: wcp-test-dc-cluster regionNames: - <
    region_name
    >
Pour afficher la liste des régions de superviseur dans l'interface utilisateur
Automation Assembler
ou
Automation Service Broker
, accédez à :
  • Infrastructure
    Configurer
    Régions de superviseur
  • Vous pouvez également cliquer sur l'onglet
    Régions de superviseur
    pour un projet situé dans
    Infrastructure
    Administration
    Projets
    .
Reportez-vous à la section Affichage des constructions de l'administrateur.

Étape 4 : créer une liaison de région et une configuration de liaison de région

Vous créez une liaison de région et une configuration de liaison de région afin que les utilisateurs d'un projet puissent créer des espaces de noms de superviseur sur les superviseurs d'une région.
  1. Créez une liaison de région.
    kubectl create -f regionbinding.yaml
    Exemple de fichier
    regionbinding.yaml
    .
    apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <
    region_name
    > namespace: <
    project_name
    >
    Une liaison de région n'inclut aucun paramètre de positionnement du superviseur, vous devez donc également créer une configuration de liaison de région.
  2. Créez une configuration de liaison de région pour chaque liaison de région créée. Vous pouvez inclure des expressions de correspondance utilisées pour un filtrage supplémentaire des superviseurs. Les étiquettes de superviseur sont utilisées pour autoriser le positionnement de l'espace de noms de superviseur sur un sous-ensemble de superviseurs d'une région.
    kubectl create -f regionbindingconfig.yaml
    Dans l'exemple suivant de fichier
    regionbindingconfig.yaml
    , tous les superviseurs qui correspondent à l'étiquette d'environnement
    testing
    peuvent héberger les espaces de noms de superviseur créés dans ce projet et cette région.
    apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: <
    region_name
    > namespace: <
    project_name
    > spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing

Étape 5 : créer une classe d'espace de noms de superviseur et ajouter une configuration de classe d'espace de noms de superviseur

Pour définir des modèles d'espace de noms avec les paramètres facultatifs qui peuvent être utilisés pour personnaliser les paramètres d'espace de noms lors de la création, vous créez une classe d'espace de noms de superviseur. Ensuite, vous pouvez créer une configuration de classe d'espace de noms de superviseur avec des expressions de correspondance qui sont utilisées pour le filtrage supplémentaire des superviseurs utilisés pour le positionnement de l'espace de noms de superviseur.
  1. Créez une classe d'espace de noms de superviseur.
    kubectl create -f supervisornamespaceclass.yaml
    Dans l'exemple suivant de fichier
    supervisornamespaceclass.yaml
    , l'entrée facultative sous
    parameters
    reflète les paramètres de classe d'espace de noms que les utilisateurs fournissent lors de la création de l'espace de noms. Toutes les entrées doivent avoir des valeurs par défaut. Les valeurs sont utilisées pour personnaliser les classes de stockage, les limites et les contraintes supplémentaires.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClass metadata: name: <
    class_name
    > spec: description: supervisor namespace class parameters: - name: podCountLimit type: Integer minimum: 100 maximum: 1000 default: 500
    La classe d'espace de noms de superviseur ne contient pas de paramètres de positionnement de superviseur, vous devez donc également créer une configuration de classe d'espace de noms de superviseur.
  2. Créez une configuration de classe d'espace de noms de superviseur.
    kubectl create -f supervisornamespaceclassconfig.yaml
    Le fichier YAML est configuré avec toutes les configurations d'espace de noms de superviseur dont vous souhaitez que l'espace de noms de superviseur hérite et peut inclure :
    • Bibliothèques de contenu qui contiennent les images que le service de machine virtuelle utilise lors du provisionnement des machines virtuelles.
    • Classes de machines virtuelles telles que tailles de T-Shirt.
    • Limites de ressources appliquées au CPU, à la mémoire et au stockage.
    • Classes de stockage à utiliser.
    • SupervisorSelector pour décider quel superviseur utiliser lors de la création de l'espace de noms de superviseur.
    Dans l'exemple suivant de fichier
    supervisornamespaceclassconfig.yaml
    ,
    supervisorSelector
    est utilisé pour faire correspondre les étiquettes de superviseur.
    apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassConfig metadata: name: <
    class_name
    > spec: storageClasses: - name: management-storage-policy-thin vmClasses: - name: big-vm-class - name: small-vm-class contentSources: - name: global-content-library type: ContentLibrary # Below limits are an EXAMPLE! Setting them may cause unexpected behavior in your namespace # Either set reasonable limits, or remove the below section to get unlimited resources limits: - name: pod_count limit: "((parameters.podCountLimit))" supervisorSelector: matchExpressions: - key: environment operator: In values: - testing

Étape 6 : associer une classe d'espace de noms à un projet

Pour autoriser la création d'un espace de noms de superviseur à l'aide de la classe d'espace de noms de superviseur dans un projet, créez une liaison de classe d'espace de noms de superviseur.
kubectl create -f supervisornamespaceclassbinding.yaml
Exemple de fichier
supervisornamespaceclassbinding.yaml
.
  • namespace
    spécifie le nom du projet que vous souhaitez associer à la classe d'espace de noms de superviseur.
  • Les paramètres
    overrideParameters
    sont facultatifs. Ils sont utilisés pour forcer une valeur de paramètre tout en ignorant les valeurs de paramètre fournies lors de la création de l'espace de noms de superviseur. Les types valides sont
    Entier
    ,
    Chaîne
    ou
    Booléen
    .
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <
class_name
> namespace: <
project_name
> spec: overrideParameters: - name: podCountLimit type: Integer const: 1000