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.

Par exemple, vous pouvez utiliser l'interface de ligne de commande dans les situations suivantes :
  • Si l'accès utilisateur à la CCI est configuré à l'aide de vSphere+, les utilisateurs peuvent accéder uniquement aux projets par défaut créés par vSphere+. Vous pouvez utiliser l'interface de ligne de commande pour configurer l'accès à des projets et des comptes de cloud supplémentaires.
  • Si vous êtes un administrateur d'instances de VMware Aria Automation existantes , vous pouvez utiliser l'interface de ligne de commande pour accéder à la CCI sans l'initier via vSphere+.

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

Créer des liaisons de rôle de projet et de projet

Pour regrouper les utilisateurs VMware Aria Automation et définir l'accès aux ressources d'infrastructure, vous créez un projet et des liaisons de rôle de projet.

  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: <[email protected]>

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>

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
    Exemple de superviseur avec les paires clé-valeur metadata.labels et les régions spec.regionNames.
    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:
        - eu-west1

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

Créer une 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
    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
    

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