The market for Modern Application adoption is rapidly growing and evolving, driven by technological advancements and changing business needs. Organizations that embrace Modern Application development practices stand to gain a competitive advantage in today’s digital economy.
Platform consumers such as administrators, developers, data scientists, DevOps and platform engineers are increasingly adopting modern development practices, containerization, and Kubernetes to improve deployment consistency, speed, and agility.
We are thrilled to announce that in this release, Cloud Consumption Interface (CCI), powered by Aria Automation within VMware Cloud Foundation (VCF), is now available on-premises for our customers to address platform consumer needs in a multi-cloud world.
Providing a simple and secure self-service consumption of all the Kubernetes-based, desired state IaaS APIs available with the vSphere platform via a unified single consumption interface with services aggregated from multiple supervisor clusters for both on-demand infrastructure (IaaS) and containers (CaaS) across VMware Cloud Infrastructure.
Cloud Consumption Interface (CCI) is available through a cloud-intuitive User Interface, a Kubernetes command-line kubectl plugin, and APIs, providing choices to enable enterprises to build and deploy modern applications efficiently and cost-effectively on vSphere while maintaining infrastructure governance and control.
Project Users can use the Aria Automation Service Broker to access and request Supervisor Namespaces based on their project membership to provision their modern applications using the vSphere Supervisor VM Service and Tanzu Kubernetes Grid Service within a Supervisor Namespace leveraging the Cloud Consumption Interface (CCI).
Clicking + NEW SUPERVISOR NAMESPACE prompts the user to pick a Supervisor Namespace Class to provision from.
Administrators have the flexibility and governance control to define one or more Supervisor Namespace Class(s), Supervisor Namespace Class Config(s), and Supervisor Namespace Class Binding(s) K8s resources using the Kubectl CCI plugin command line and assign them to a project for self-service.
The Supervisor Namespace Class Config(s) (YAML Shown Below) can be configured with all the supervisor namespace configurations that we want the provisioned supervisor namespace to inherit.
These configurations include things like:
- Content libraries containing the images the VM Service uses when provisioning Virtual Machines.
- Virtual Machine Classes (T-Shirt Sizes)
- CPU, Memory and Storage enforced Resource Limits.
- Storage Classes to use.
- SupervisorSelector will decide which supervisor to use for supervisor namespace creation.
Users can click Create on any Supervisor Namespace Classes assigned to their project to create a new Supervisor Namespace, provide a Name and the target Region, and then click Create. The user doesn’t need any detailed knowledge of the infrastructure behind this.
Supervisor Namespaces provides a Kubernetes-based workspace with a set of resource limits, user access and available vSphere services where we can provision our VM and TKG resources based on our application needs, governed by a project-defined Supervisor namespace Class and Project region accessibility setup by the cloud administrator.
An administrator creates a Region to group one or more supervisors. Each enterprise determines what Regions make sense for its environment. VMware by Broadcom recommends having similarly configured Supervisors (GPU-enabled Supervisors, for example) within a region so that supervisor Namespaces can be placed in any of the Region’s supervisors when created.
An Administrator can then assign the Region to one or more Projects using RegionBinding and RegionBindingConfig (YAML Shown Below) K8s resources using the Kubectl CCI plugin command line based on business or project requirements.
Leveraging the RegionBindingConfig, you can use a Supervisor Selector on the Region level to decide which supervisor to use for supervisor namespace creation. Alternatively, you can leave it undefined, which makes every supervisor within a Region a possible destination.
The Supervisor Selector on the RegionBindingConfig level for a Project controls the first-level filtering of available Supervisors. Meanwhile, the Supervisor Selector on a SupervisorNamespaceClassConfig level discussed earlier for the same Project controls second-level filtering.
Once the Supervisor Namespace is created using Aria Automation Service Broker self-service, Project users can deploy and manage Virtual Machines using the Supervisor VM Service, Upstream compliant Kubernetes Clusters using Tanzu Kubernetes Clusters (TKG) service, and Kubernetes storage objects and network services, all within the provisioned Supervisor Namespace.
The top of the page displays information about the provisioned Supervisor Namespace, such as the Region it’s using, available Storage Classes, available VM Classes, and Resource limits, to help other Project members make informed decisions before deploying any resources within a namespace.
Deploy and Manage Virtual Machines
Clicking OPEN on the Virtual Machine Tile within the Supervisor Namespace takes us to the VM service page, where we can see a list of available virtual machines, if any exist, or create new ones using the VM service by clicking on + CREATE VM.
The UI user experience for creating a Virtual Machine using the VM Service is not just easy, going through all the required steps, but will top that with generating the Kubernetes YAML manifest for you based on your inputs with the option to copy the code or download all the generated YAML files to provision the same resource or modify it to provision new resources using the Kubectl CCI plugin command line.
You can provide a VM Name and a VM Class. More importantly, in the advanced settings section, you can specify additional disk volumes or expose the VM as a load-balanced service that routes traffic from the source port on the load balancer to the external ports on the Virtual Machine configured as endpoints while also generating the Kubernetes YAML manifest for you based on your inputs.
Finally, you can pass cloud-init to specify any data, configuration, or scripts used to initialize the VM, mount disks, configure users, install packages and configure applications by executing commands in-guest.
Cloud-init simplifies initializing and configuring cloud instances, enabling users to automate instance setup and reduce manual intervention. It’s a fundamental component in cloud environments for achieving infrastructure automation and enabling Infrastructure as Code (IaC) practices.
Users can interact with the Virtual Machine once the VM is provisioned via the VM Service by changing the power state, attaching additional storage, viewing the active K8s YAML or opening a Web Console to the VM.
We already mentioned that users can use the Kubectl CCI plugin command line to do the same thing, but let’s go ahead and query our Virtual Machine and Virtual Machine Service from the command line.
We first need to log into Cloud Consumption Interface (CCI)
Once we log in successfully, based on our project membership, a Kubeconfig context is created for each Supervisor Namespace owned by our project. We can then switch the context to target our supervisor namespace with the Kubectl (Kubernetes command line tool).
Now, we can create additional Virtual Machines if needed, but for this demonstration blog, we will query the Virtual Machine and the Virtual Machine Service we created in the previous step via the UI.
The VM is poweredOn with an internal IP of 10.224.0.2 and exposes Ports 22 and 3306 on its Load Balancer with an external IP of 10.176.193.12.
Deploy and Manage TKG Clusters
We have a similar experience when provisioning Tanzu Kubernetes Grid Cluster (TKG) within a Supervisor Namespace. The user can select the Default Configuration for quick provisioning or a custom configuration that allows the user to control storage or networking settings and the overall topology of the cluster controller and the node pools based on his requirements.
Just like the VM Service provisioning, we generate the Kubernetes YAML manifest for you based on your inputs. You can copy the YAML code or download all the generated YAML files to provision the same resource or modify them to provision new resources using the Kubectl CCI plugin command line.
Summary
We are thrilled to announce Cloud Consumption Interface (CCI), powered by Aria Automation within VMware Cloud Foundation (VCF), is now available on-premises for our customers to provide a simple and secure self-service consumption of all the Kubernetes-based, desired state IaaS APIs available in the vSphere platform, enabling customers to develop, deploy and manage Modern Applications with increased agility, flexibility and modern techniques on vSphere while maintaining control of their vSphere infrastructure.
Ready to get started using the Cloud Consumption Interface (CCI) with Aria Automation 8 ? Visit us online at VMware Aria Automation for additional resources:
Connect with us on Twitter at @VMwareVCF and on LinkedIn at VMware VCF.