Como administrador de nuvem do VMware Aria Automation, você pode usar uma interface de linha de comando para configurar o acesso à Cloud Consumption Interface (CCI) e definir construções de governança. A interface de linha de comando usa a ferramenta de linha de comando Kubernetes, ou kubectl.
Para obter uma lista completa de ações que você pode executar usando a CLI, consulte Referência da API Kubernetes para a Cloud Consumption Interface.
Pré-requisitos
- Verifique se um Cluster de Supervisor está habilitado em uma instância do vCenter e registrado no VMware Aria Automation.
- Verifique se você é pelo menos um membro da organização no VMware Aria Automation com a função de serviço Administrador para o Automation Assembler ou o Automation Service Broker.
- Verifique se você:
- Baixou o plug-in da CCI para kubectl.
- Obteve um token de API para o usuário administrador ou definiu uma variável para armazenar sua senha de usuário.
- Usou seu token com a opção -t ou usou suas credenciais de administrador com a opção -u para fazer login no servidor CCI e alterou o contexto padrão para CCI.
- Verifique se você adicionou uma conta de nuvem do vCenter no Automation Assembler.
- Verifique se o nome da conta de nuvem do vCenter não inclui espaços ou letras maiúsculas. Por exemplo, my-vcenter-cloud-account.
Para obter mais informações sobre qualquer um desses pré-requisitos, consulte Instalação e configuração da Cloud Consumption Interface
Etapa 1: criar um projeto e vinculações de função de projeto
Para agrupar usuários do Automation e definir o acesso a recursos de infraestrutura, você cria um projeto e vinculações de funções de projeto.
Para criar vinculações de projeto e funções de projeto usando a UI, consulte Como adicionar um projeto para minha equipe de desenvolvimento do Automation Assembler..
- Criar um projeto.
kubectl create -f project.yaml
Exemplo de arquivoproject.yaml
.apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: <project_name> spec: description: <description_of_project> sharedResources: true
- Crie uma vinculação de função de projeto para atribuir funções a usuários ou grupos dentro de um projeto criado.
kubectl create -f projectrolebinding.yaml
O exemplo de arquivoprojectrolebinding.yaml
a seguir adiciona um usuário com a função de projeto administrador. Os valores da função do projeto são: 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]>
Etapa 2: criar uma região
Crie uma região para poder atribuir supervisores a ela.
kubectl create -f region.yaml
region.yaml
.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <region_name> spec: description: <description_of_region>
Etapa 3: associar um Supervisor a uma região
Para associar um Supervisor a uma região, encontre o Supervisor que você deseja atualizar e adicione a região e os rótulos que serão usados para o posicionamento do namespace.
- Para encontrar o Supervisor que você deseja atualizar, liste os supervisores. Os recursos do supervisor ficarão visíveis depois que o vCenter fizer a coleta dos dados.
kubectl -n cci-config get supervisors
O seguinte é um exemplo de resultado.NAME AGE demo-self-service:domain-c50 75d adminannie-vcenter:domain-c8 5d18h scale-test-vc-01:domain-c8 56d
- Atualizar o Supervisor denominado
adminannie-vcenter:domain-c8
.kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
O exemplo a seguir inclui pares de chave-valormetadata.labels
e regiõesspec.regionNames
. Os rótulos ambiente: teste e fipsMode: strict podem ser usados para ajudar nas decisões de posicionamento de supervisores.apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: Supervisor metadata: labels: environment: testing 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>
- Ou clique na guia Regiões de Supervisores de um projeto localizado em
Etapa 4: criar uma vinculação de região e uma configuração de vinculação de região
Crie uma vinculação de região e uma configuração de vinculação de região para que os usuários em um projeto possam criar Namespaces de Supervisor nos Supervisores de uma região.
- Crie uma vinculação de região.
kubectl create -f regionbinding.yaml
Exemplo de arquivoregionbinding.yaml
.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <region_name> namespace: <project_name>
Como uma vinculação de região não inclui configurações de posicionamento de Supervisor, você também deve criar uma Configuração de Vinculação de Região.
- Crie uma Configuração de Vinculação de Região para cada vinculação de região criada. Você pode incluir expressões de correspondência que são usadas para filtragem adicional de Supervisores. Rótulos de Supervisor são usados para permitir o posicionamento de Namespaces de Supervisor em um subconjunto dos Supervisores em uma região.
kubectl create -f regionbindingconfig.yaml
No exemplo de arquivoregionbindingconfig.yaml
a seguir, quaisquer supervisores que correspondam ao rótulo de ambiente de teste podem hospedar os Namespaces de Supervisor criados naquele projeto e região.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: <region_name> namespace: <project_name> spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
Etapa 5: criar uma Classe de Namespace de Supervisor e adicionar uma configuração de Classe de Namespace de Supervisor
Para definir modelos de namespace com parâmetros opcionais que podem ser usados para personalizar as configurações de namespace durante a criação, crie uma Classe de Namespace de Supervisor. Em seguida, você pode criar uma Configuração de Classe de Namespace de Supervisor com expressões de correspondência que são usadas para filtragem adicional de supervisores usados para posicionamento de Namespaces de Supervisor.
Para criar uma Classe de Namespace de Supervisor com uma configuração de Classe de Namespace de Supervisor usando a UI, consulte Como criar e configurar classes de namespaces, configuração de classe de namespace e vinculação de classe de namespace usando a UI.
- Crie uma Classe de Namespace de Supervisor.
kubectl create -f supervisornamespaceclass.yaml
No exemplo de arquivosupervisornamespaceclass.yaml
a seguir, a entrada opcional emparameters
reflete os parâmetros da Classe de Namespace que os usuários fornecem ao criar o namespace. Todas as entradas devem ter valores padrão. Os valores são usados para personalizar as classes de armazenamento, limites e restrições adicionais. O valor dename
deve estar todo em letras minúsculas e sem espaços.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
A Classe de Namespace de Supervisor não contém uma configuração de posicionamento de Supervisor e, portanto, você também deve criar uma Configuração de Classe de Namespace de Supervisor.
- Crie uma Configuração de Classe de Namespace de Supervisor.
kubectl create -f supervisornamespaceclassconfig.yaml
O YAML é definido com todas as configurações de namespace de supervisor que você deseja que sejam herdadas pelo namespace de supervisor e pode incluir:- Bibliotecas de conteúdo que contêm as imagens usadas pelo VM Service ao provisionar máquinas virtuais.
- Classes de Máquina Virtual, como Tamanhos de camisetas.
- Limites de Recursos impostos por CPU, Memória e Armazenamento.
- Classes de Armazenamento a serem usadas.
- SupervisorSelector para decidir qual supervisor usar para criação de namespace de supervisor.
No exemplo de arquivosupervisornamespaceclassconfig.yaml
a seguir,supervisorSelector
é usado para corresponder rótulos de supervisor.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
Etapa 6: associar uma Classe de Namespace a um projeto
Para permitir a criação de um Namespace de Supervisor usando a Classe de Namespace de Supervisor em um projeto, crie uma Vinculação de Classe de Namespace de Supervisor.
Para associar uma classe de namespace a um projeto usando a UI, consulte Como criar e configurar classes de namespaces, configuração de classe de namespace e vinculação de classe de namespace usando a UI.
kubectl create -f supervisornamespaceclassbinding.yaml
supervisornamespaceclassbinding.yaml
.
namespace
especifica o nome do projeto que você deseja associar à Classe de Namespace de Supervisor.overrideParameters
são opcionais. Eles são usados para forçar um valor de parâmetro, ignorando os valores de parâmetro fornecidos pelo usuário quando o Namespace de Supervisor é criado. Os tipos válidos são Inteiro, String ou Boolean. O valor dename
deve estar todo em letras minúsculas e sem espaços.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <class_name> namespace: <project_name> spec: overrideParameters: - name: podcountlimit type: Integer const: 1000