Beheerders en ontwikkelaars kunnen reageren op Cloud Consumption Interface (CCI) API-resources die de CCI Kubernetes API-server beschikbaar stelt.
Afhankelijk van het type resource kunnen beheerders en ontwikkelaars de API gebruiken om de volgende acties uit te voeren.
Soort resource | Werkwoorden voor beheerdersacties | Werkwoorden voor ontwikkelaarsacties |
---|---|---|
CloudAccount | get, list | |
Supervisor | get, patch, list | |
Project | create, get, update, patch, delete, list | get, list |
ProjectRole | get, list | get, list |
ProjectRoleBinding | create, get, update, patch, delete, list | get, list |
Region | create, get, update, patch, delete, list | get, list |
RegionBinding | create, get, update, patch, delete, list | get, list |
RegionBindingConfig | create, get, update, patch, delete, list | |
SupervisorNamespaceClass | create, get, update, patch, delete, list | get, list |
SupervisorNamespaceClassConfig | create, get, update, patch, delete, list | |
SupervisorNamespaceClassBinding | create, get, update, patch, delete, list | get, list |
SupervisorNamespace | create, get, delete, list | create, get, delete, list |
In de volgende voorbeelden ziet u de CLI-aanroep en -antwoorden. Voor het gebruik van de CLI moet u:
- De CCI kubectl-invoegtoepassing is gedownload.
- Een API-token hebben verkregen.
- Zijn aangemeld bij de CCI-server.
Projecten en gebruikers
- Project
-
Beheerders maken projecten om gebruikers te groeperen en stellen toegang in tot inhoudsbronnen zoals cloudsjablonen in
Automation Assembler of tot catalogusitems in
Automation Service Broker.
Project bevat de volgende eigenschappen:
- Projectnaam
metadata.name
. - Optionele beschrijving
spec.description
. -
spec.sharedResources
Indien waar, deelt het project de supervisornaamruimten met andere gebruikers in het project. Als dit is ingesteld op False, beperkt het project toegang tot de naamruimte tot beheerders of de gebruiker die de naamruimte heeft gemaakt.
apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: demo-project spec: description: This is a demo project sharedResources: true
- Projectnaam
- Projectrol
-
De projectrol komt overeen met een van de beschikbare rollen, beheerder, weergeven of bewerken, die aan een gebruiker in een project kunnen worden toegewezen.
Projectrol Beschrijving beheerder Staat het wijzigen en verwijderen van de naamruimte toe. weergeven Een alleen-lezen rol voor de naamruimte. bewerken Staat wijziging van de naamruimte toe. Lees voorbeeldinvoer voor projectrol.
apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRole metadata: name: admin spec: description: project administrator
- Projectrolbinding
-
Projectrolbinding wordt gebruikt om lidmaatschap toe te wijzen aan een gebruiker of groep in een project.
ProjectRoleBinding bevat de volgende eigenschappen:
metadata.name
Naam van de projectrolbinding en vereist een specifieke indeling met het onderwerptype (gebruiker of groep) en de onderwerpnaam:cci:<user/group>:<subject domain>:<subject name>
metadata.namespace
beschrijft de projectnaam.-
subjects
beschrijft de gebruiker of groep. Er is slechts één invoer toegestaan. -
roleRef
beschrijft de rol.
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
vCenters en supervisors
Deze categorie behandelt infrastructuur en de functies ervan zijn alleen voor beheerders.
- Cloudaccount
-
Cloudaccounts worden automatisch door vSphere+ of handmatig door een beheerder gemaakt om een
vCenter te registreren en datacenters met supervisors in te schakelen.
Maak voorbeelduitvoer voor een cloudaccount.
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>
- Supervisor
-
Een supervisor wordt door het systeem gemaakt nadat de
vCenter-gegevensverzameling is voltooid. De beheerder kan de supervisor bijwerken met capaciteitslabels voor plaatsing en deze aan een regio toewijzen.
-
metadata.labels
-beheerders definiëren labels met instellingen voor sleutelwaarden die de mogelijkheden van de supervisor weerspiegelen. Labels worden gebruikt om supervisors te filteren op basis van mogelijkheden bij het maken van een naamruimte. spec.regionNames
-beheerders definiëren regionamen, zodat een supervisor aan een regio kan worden toegewezen. Een supervisor kan slechts aan één regio worden toegewezen en is standaard niet toegewezen aan een regio.
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
- Regio
-
Een beheerder maakt regio's als groeperingsmechanisme voor een of meer supervisors. Regio's kunnen worden gebaseerd op verschillende parameters zoals geografie of infrastructuur, en ze kunnen supervisors van meerdere vCenters bevatten.
Maak voorbeeldinvoer voor een regio.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: us-west1 spec: description: The us-west1 region
- Regiobinding
-
Een beheerder maakt regiobindingen om regio's aan projecten te koppelen.
Voordat een gebruiker in een project supervisornaamruimten kan maken, moeten zowel RegionBinding als RegionBindingConfig bestaan.
RegionBinding bevat de volgende eigenschappen:metadata.name
Regionaam en deze moet overeenkomen met een bestaande regio.- Projectnaam
metadata.namespace
.
Maak voorbeeldinvoer voor regiobinding.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: us-west1 namespace: demo-project
- Configuratie van regiobinding
-
Om de logica voor plaatsing van supervisors per regio in een project te beheren, definieert een beheerder
RegionBindingConfig. Wanneer
RegionBindingConfig is gedefinieerd, kan een beheerder sleutelwaardeparen voor supervisorlabels gebruiken om de koppeling van specifieke supervisors met projecten verder te verfijnen. Een beheerder kan bijvoorbeeld de specificatie
key: environment
gebruiken om een supervisor te selecteren die is opgegeven voor het testen metvalue: testing
.RegionBindingConfig bevat de volgende eigenschappen:Maak voorbeeldinvoer voor een configuratie van regiobinding.metadata.name
Regionaam en deze moet overeenkomen met een bestaande regio.- Projectnaam
metadata.namespace
. spec.supervisorSelector
selecteert de supervisors in het project die beschikbaar zijn voor het maken van een naamruimte. Om de juiste supervisor te selecteren, definiërenmatchExpressions
de labelsleutel voor de supervisor, de overeenkomende operator en de waarde voor de overeenkomst.Bij het matchen van expressies metspec.supervisorSelector
worden de volgende operatoren gebruikt:operator: In
De regiobinding test of de sleutelwaarde overeenkomt met de sleutelwaarde van het supervisorlabel. DematchExpressions
is een array, maar de array is momenteel beperkt tot één invoerwaarde.operator: NotIn
De regiobinding test of de sleutelwaarde niet overeenkomt met de sleutelwaarde van het supervisorlabel. DematchExpressions
is een array, maar de array is momenteel beperkt tot één invoerwaarde.operator: Exists
De regiobinding zoekt naar een overeenkomst met een supervisor die de labelsleutel bevat. Waarden worden niet gebruikt.operator: DoesNotExist
De regiobinding zoekt naar een supervisor die de labelsleutel niet bevat. Waarden worden niet gebruikt.
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
Supervisornaamruimteklassen
- Supervisornaamruimteklasse
-
SupervisorNamespaceClass definieert de naamruimtesjabloon en optionele parameters die kunnen worden gebruikt om de instellingen voor de naamruimte aan te passen tijdens het maken.
Het standaardveld geeft de parameterwaarde op die wordt gebruikt als een gebruiker de parameterwaarde niet opgeeft bij het maken van een naamruimte. Bijvoorbeeld: indienDefinities van parametertype:
default: false
, dan isfalse
de parameterwaarde.Opmerking: Om ervoor te zorgen dat een gebruiker een naamruimte met gedeeltelijke of geen parameterwaarden kan maken, moet elke parameter een standaardveld en waarde bevatten.Parametertype Eigenschappen Booleaans default
Standaard booleaanse waarde.enum
Lijst met toegestane booleaanse waarden. Kan worden gebruikt om een parameter te laten bestaan uit slechts één waarde,true
offalse
.
Geheel getal minimum
Minimaal geheel getal.maximum
Maximaal geheel getal.default
Standaard geheel getal.enum
Lijst met toegestane gehele getallen.
Tekenreeks minLength
Minimale tekenreekslengte.maxLength
Maximale tekenreekslengte.default
Standaardtekenreekswaarde indien deze niet door de gebruiker is opgegeven.pattern
Regex-patroon om te valideren tegen een waarde.enum
Lijst met toegestane tekenreekswaarden.
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
- Configuratie van supervisornaamruimteklasse
-
Om de implementatie van supervisornaamruimteklassen op te geven, maakt een beheerder een
SupervisorNamespaceClassConfig met naamruimte-instellingen. Om een project toegang te geven tot de supervisornaamruimteklasse, moeten zowel
SupervisorNamespaceClass als
SupervisorNamespaceClassConfig bestaan.
SupervisorNamespaceClassConfig bevat de volgende eigenschappen:
metadata.name
Naam van supervisornaamruimteklasse.- Projectnaam
metadata.namespace
. spec.storageClasses
Namen en limieten voor opslagklassen in megabytes.spec.vmClasses
Namen van de VM-klassen.spec.contentSource
Namen in de inhoudsbibliotheek die allemaal zijn gedefinieerd mettype: ContentLibrary
.spec.limits
Namen en waarden van limieten. Geldige limietwaarden zijn onder meer: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
Supervisors in het project die beschikbaar zijn voor het maken van een naamruimte. Om de juiste supervisor te selecteren, definieertmatchExpressions
de labelsleutel, de overeenkomende operator en de labelwaarde voor de overeenkomst.
Een beheerder stelt klasseparameters beschikbaar die kunnen worden gebruikt bij het definiëren van de waarden van de naamruimte-instellingen, zodat gebruikers de naamruimte-instellingen kunnen aanpassen tijdens de aanvraag.
Maak voorbeeldinvoer voor de configuratie van de supervisornaamruimteklasse.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
In dit voorbeeld worden parameters uit het voorbeeld van de supervisornaamruimteklasse als volgt gebruikt:((parameters.fastStorageClass ? 'fast-storage-class' : 'standard-storage-class'))
toont een voorwaardelijke controle om een opslagklassenaam op te geven.fastStorageClass
is een Booleaans type.- Als de gebruiker de parameterwaarde als true opgeeft, wordt de naam
fast-storage-class
. - Als de gebruiker de waarde als false opgeeft, wordt de naam
standard-storage-class
.
- Als de gebruiker de parameterwaarde als true opgeeft, wordt de naam
((parameters.podCountLimit))
laat zien hoe u een waarde opgeeft voor de limiet voor het aantal pods.podCountLimit
is een type geheel getal.- Als de gebruiker een waarde opgeeft die binnen de minimum- en maximumwaarden van 100 tot 1000 valt, zoals gedefinieerd in de supervisornaamruimteklasse, is dat de waarde voor de limiet van het aantal pods.
- Als de gebruiker geen waarde opgeeft, is de limiet van het aantal pods de standaardwaarde 500, zoals gedefinieerd in de supervisornaamruimteklasse.
- Als de gebruiker een waarde opgeeft buiten de minimum- en maximumwaarden, is de waarde ongeldig en mislukt het maken van de supervisornaamruimte met een fout die aangeeft dat de limiet van het aantal pods buiten het bereik van toegestane waarden valt.
- Klassebinding van supervisornaamruimte
-
De klassebinding voor supervisornaamruimte maakt het gebruik van supervisornaamruimteklassen mogelijk bij het maken van een supervisornaamruimte in een project.
SupervisorNamespaceClassBinding bevat de volgende eigenschappen:
metadata.name
Bindingnaam voor supervisornaamruimteklasse.- Projectnaam
metadata.namespace
. spec.overrideParameters
Door de beheerder gemaakt. Deze parameters zijn gedefinieerde waarden die niet kunnen worden gewijzigd door een gebruiker bij het maken van de supervisornaamruimte.const
geeft de waarde voor de parameter op. Deze parameters zijn optioneel en zijn niet vereist voor alle klasseparameters, indien gedefinieerd.
Maak voorbeeldinvoer voor binding van supervisornaamruimteklasse.In dit voorbeeld isapiVersion: 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
een overschrijvingsparameter die gebruikmaakt van de parameterenvironment
van de supervisornaamruimteklasse. Doorconst: testing
op te geven, kan de gebruiker alleen een supervisornaamruimte maken met behulp van deze klasse in een testomgeving.
Supervisornaamruimten
- Supervisornaamruimte
-
Gebruikers kunnen supervisornaamruimten in een specifieke regio maken met behulp van een supervisornaamruimteklasse als sjabloon. Indien beschikbaar gesteld, kunnen optionele klasseparameters worden gebruikt om de naamruimte-instellingen te definiëren.
SupervisorNamespace bevat de volgende eigenschappen:Maak voorbeeldinvoer voor een supervisornaamruimte.
metadata.name
Naam van de naamruimte in het project en op de supervisor.- Projectnaam
metadata.namespace
. spec.regionName
Regionaam.spec.className
Naam van supervisornaamruimteklasse.spec.classParameters
Optionele sleutelwaarde om de standaardparameterwaarden te overschrijven.spec.description
Beschrijving van de optionele naamruimte.
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
Maak voorbeelduitvoer voor een supervisornaamruimte.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>