In alcune situazioni, è possibile che gli amministratori del cloud di VMware Aria Automation debbano utilizzare l'interfaccia della riga di comando per abilitare l'accesso a Cloud Consumption Interface (CCI) e configurare i costrutti di governance. La procedura indicata qui mostra un esempio di come questa operazione possa essere eseguita utilizzando la CLI di Cloud Consumption Interface.
Esistono diverse situazioni in cui è possibile che gli amministratori del cloud di VMware Aria Automation debbano utilizzare la procedura seguente per configurare manualmente Cloud Consumption Interface di Automation Service Broker.
- Se gli amministratori hanno configurato l'accesso degli utenti a CCI utilizzando vSphere+, gli utenti potranno accedere solo ai progetti predefiniti creati da vSphere e versioni successive. Gli amministratori possono utilizzare i comandi in questa procedura per configurare l'accesso a progetti e account cloud aggiuntivi.
- Amministratori per le istanze di VMware Aria Automation esistenti che desiderano utilizzare CCI senza avviarla tramite vSphere+
Per completare la configurazione, è necessario eseguire una serie di comandi kubectl come descritto nella procedura seguente. Per utilizzare questi comandi, è necessario scaricare e configurare il plug-in kubectl di CCI. Per ulteriori informazioni sull'installazione e l'utilizzo del plug-in, vedere
Configurazione dell'amministratore di Cloud Consumption Interface- Disponibilità iniziale.
Procedura
- Creare un file per un progetto e quindi eseguire il comando seguente per creare il progetto. Gli amministratori utilizzano i progetti per raggruppare gli utenti di VMware Aria Automation e impostare l'accesso alle risorse dell'infrastruttura.
kubectl create -f project.yaml
Questo comando consente a un amministratore di raggruppare gli utenti e impostare l'accesso alle risorse dell'infrastruttura. Di seguito è disponibile il risultato di un file project.yaml di esempio.
>
apiVersion: project.ccs.vmware.com/v1alpha1
kind: Project
metadata:
name: <project name>
spec:
description: <description of project>
sharedResources: true
- Eseguire il comando seguente per creare il binding del ruolo del progetto per assegnare un utente a un progetto e un ruolo all'utente. Gli amministratori utilizzano il binding del ruolo del progetto per assegnare ruoli a utenti o gruppi in un progetto creato.
$ kubectl create -f projectrolebinding.yaml
Questo comando consente a un amministratore di raggruppare gli utenti e impostare l'accesso alle risorse dell'infrastruttura. Gli amministratori possono aggiungere utenti e gruppi ai progetti con i seguenti ruoli di progetto: amministratore, modifica, visualizzazione. Di seguito è disponibile un esempio dei contenuti del binding del progetto.
apiVersion: authorization.ccs.vmware.com/v1alpha1
kind: ProjectRoleBinding
metadata:
name: ccs:user:vmware.com:<user alias>
namespace: <project name>
roleRef:
apiGroup: authorization.ccs.vmware.com
kind: ProjectRole
name: admin
subjects:
- kind: User
name: <username@company.com>
- Un amministratore può anche aggiornare il supervisore aggiungendo la regione e con etichette che verranno utilizzate per il posizionamento dello spazio dei nomi.
$ kubectl -n ccs-config get supervisors
Di seguito è riportato un risultato YAML di esempio.
NAME AGE
demo-self-service:domain-c50 75d
kate-vcenter-176:domain-c8 33d
adminannie-vcenter:domain-c8 5d18h
anantkumar-vcenter:domain-c8 74d
tjingjing-vcenter:domain-c8 39d
ppuranik-vcenter-2:domain-c8 49d
deva-ldu10:domain-c48 6d22h
rrick-be-2022-03-28:domain-c50 15d
jpick-vcenter-186-0:domain-c8 25d
dannyh-vcenter:domain-c57 42d
scale-test-vc-01:domain-c8 56d
parunesh-ccs:domain-c8 27d
- Aggiornare il supervisore con la regione e le etichette necessarie per il posizionamento dello spazio dei nomi supervisore. Per informazioni sull'utilizzo, fare riferimento a quanto segue.
- Premere Ins per modificare.
- Aggiungere le etichette e le regioni di cui il supervisore sarà membro.
- Utilizzare
wq!
per salvare le modifiche come se si stesse modificando un file con Visual Editor (VI) in Linux.
- Questo processo consente inoltre di creare il profilo di storage per ogni criterio di storage di vCenter che dispone di uno storage compatibile in VMware Aria Automation.
Eseguire il comando seguente per aggiornare il supervisore aggiungendo la regione e le etichette designate per il posizionamento dello spazio dei nomi. Le etichette mostrate di seguito sono esempi. Creare le etichette appropriate per la propria implementazione assicurandosi di applicare il rientro indicato nell'esempio.
$ kubectl -n ccs-config edit supervisor adminannie-vc:domain-c8
apiVersion: infrastructure.ccs.vmware.com/v1alpha1
kind: Supervisor
metadata:
annotations:
infrastructure.ccs.vmware.com/cloud-account-id: 88abaec7-31c3-43a3-ba29-befce9f559fb
labels:
environment: testing
fipsMode: strict
name: adminannie-vc:domain-c8
namespace: ccs-config
uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d
spec:
cloudAccountName: adminannie-vc
externalId: domain-c8
externalName: wcp-test-dc-cluster
regionNames:
- eu-west1
status:
powerState: "On"
- Configurare il binding della regione per consentire ai progetti di accedere ai supervisori in una regione.
Eseguire il comando seguente per creare il binding della regione. La risorsa non deve contenere alcuna impostazione del posizionamento del supervisore.
$ kubectl create -f regionbinding.yaml
Di seguito sono riportati alcuni risultati YAML di esempio.
apiVersion: topology.ccs.vmware.com/v1alpha1
kind: RegionBinding
metadata:
name: <region names>
namespace: <project name>
- Impostare la configurazione del binding della regione per ogni binding di regione creato. Assicurarsi di applicare quanto segue:
- È possibile creare o modificare un oggetto di configurazione del binding della regione con espressioni aggiuntive in modo che corrisponda all'etichetta del supervisore.
- Quando viene eseguita, la configurazione del binding della regione aggiunge il cluster supervisore come entità gestita in VMware Aria Automation. Crea quindi le zone Kubernetes con i cluster supervisore come destinazione di provisioning per ogni supervisore in una regione e quindi la assegna al progetto.
- Configura inoltre i tag di funzionalità nel cluster Supervisore nella scheda del provisioning all'interno della zona Kubernetes.
Eseguire il comando seguente per creare la configurazione del binding della regione. Creare o modificare una configurazione della classe dello spazio dei nomi supervisore con espressioni aggiuntive che corrispondano ai tag del supervisore.
$ kubectl create -f regionbindingconfig.yaml
Di seguito sono riportati alcuni risultati YAML di esempio:
apiVersion: topology.ccs.vmware.com/v1alpha1
kind: RegionBindingConfig
metadata:
name: <region name>
namespace: <project name>
spec:
supervisorSelector:
matchExpressions:
- key: environment
operator: In
values:
- testing
- Eseguire il comando seguente per raggruppare uno o più supervisori in una regione. Questo comando assegna un gruppo a una regione. Le risorse supervisore saranno visibili dopo la raccolta dei dati di vCenter.
$ kubectl create -f region.yaml
Di seguito è riportato un risultato di esempio.
region.yaml
apiVersion: topology.ccs.vmware.com/v1alpha1
kind: Region
metadata:
name: <region names>
spec:
description: <Description of region>
- Utilizzare il comando seguente per creare una classe di spazio dei nomi del supervisore per definire i modelli dello spazio dei nomi con parametri facoltativi. La risorsa non deve contenere alcuna impostazione dello spazio dei nomi.
È possibile aggiungere input facoltativi in
parameters
per riflettere i parametri della classe dello spazio dei nomi forniti dagli utenti durante la creazione dello spazio dei nomi. Tutti gli input devono avere valori predefiniti. È possibile utilizzare i valori di input per personalizzare i profili di storage, i limiti e i vincoli aggiuntivi.
I tipi sono Intero, Stringa o Booleano.
$ kubectl create -f supervisornamespaceclass.yaml
$ kubectl create -f supervisornamespaceclass.yaml
supervisornamespaceclass.yaml
apiVersion: infrastructure.ccs.vmware.com/v1alpha1
kind: SupervisorNamespaceClass
metadata:
name: bronze
spec:
description: Bronze supervisor namespace class
parameters:
- name: pods
type: Integer
default: 40
- Eseguire il comando seguente per creare la configurazione della classe dello spazio dei nomi supervisore.
$ kubectl create -f supervisornamespaceclass.yaml
SupervisorSelector viene utilizzato per abbinare le etichette del supervisore. Gli operatori dell'espressione saranno limitati a supportare il comportamento dei vincoli CMX esistenti (In/NotIn/Exists/DoesNotExists con un valore).
StorageClasses verrà mappato ai profili di storage creati automaticamente contenenti un tag con il nome del criterio (ccs-storage-policy:wcp-storage-class
)
Affinché un progetto possa accedere alla classe dello spazio dei nomi supervisore, devono esistere SupervisorNamespaceClass
e SupervisorNamespaceClassConfig
.
I nomi dei limiti sono i seguenti:
- 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
L'unico valore per il tipo contentSource
è attualmente ContentLibrary.
Di seguito sono riportati alcuni risultati YAML di esempio:
apiVersion: topology.ccs.vmware.com/v1alpha1
kind: SupervisorNamespaceClassConfig
metadata:
name: bronze
spec:
storageClasses:
- name: management-storage-policy-thin
vmClasses:
- name: "*"
contentSources:
- name: "*"
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: cpu_limit
limit: "1000" # This value is in Mhz
- name: cpu_limit_default
limit: "800" # This value is in Mhz
- name: pod_count
limit: "((parameters.pods))"
supervisorSelector:
matchExpressions:
- key: environment
operator: In
values:
- testing
- Eseguire il comando seguente per creare il binding della classe dello spazio dei nomi supervisore. Questo passaggio associa una classe dello spazio dei nomi supervisore a un progetto designato. La risorsa non deve contenere alcuna impostazione del posizionamento del supervisore. Questo comando consente di creare uno spazio dei nomi supervisore utilizzando la classe dello spazio dei nomi supervisore in un progetto. overrideParameters sono facoltativi e consentono di forzare il valore di un parametro ignorando i valori dei parametri forniti dall'utente durante la creazione dello spazio dei nomi supervisore.
Utilizzare il seguente esempio di associazione di classi e aggiornare gli input in modo da riflettere i parametri di sovrascrittura per il progetto specificato. Utilizzare inputs const
per impedire agli utenti di modificare il valore del parametro della classe. I tipi validi sono Intero, Stringa e Booleano. Si tenga presente che il parametro namespace
deve specificare il nome del progetto.
$ kubectl create -f supervisornamespaceclassbinding.yaml
Di seguito sono riportati alcuni risultati YAML di esempio.
apiVersion: infrastructure.ccs.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
name: bronze
namespace: <project name>
spec:
overrideParameters:
- name: pods
type: Integer
const: 50