Table of Contents
What is VCD Data Solution?
The VMware Cloud Director Extension for VMware Data Solutions is a plug-in for VCD that allows cloud providers to offer on-demand caching, messaging, and database software services at scale and thus expand their multi-tenant cloud infrastructure platform. The VCD Data Solutions include services such as VMware SQL with MySQL, VMware SQL with PostgreSQL, and RabbitMQ.
These services are deployed on top of the Kubernetes clusters deployed using Container Service Extension. Tenants can install Grafana and Prometheus in their Kubernetes clusters to perform data analytics, monitor a service’s health, and take action if an issue occurs.
In this post, I will walk through the steps of installing & Configuring VCD Data Solution Extension version 1.3
How does the Data Solutions Extension work?
The Data Solution Extension works in conjunction with Container Service Extensions 4.0 or later. It enables providers to publish data and messaging services to their tenants, who can then use them to build new or update current applications. After the Cloud Service Provider publishes data solutions, tenants can deploy them in TKG clusters controlled by Container Service Extension through the VCD UI.
Before installing any data solution, tenants have to install a Service Operator (Data Solution Operator) in the TKG cluster where the data solutions will be deployed. The service operator manages the whole lifecycle of the data solution service instance from the inception to the dissolution.
The below image taken from VMware’s official documentation shows a high-level diagram of the Data Solutions Extension architecture.
VCD Data Solution Extension Interoperability
The data solution extension version 1.3 is compatible with the following software’s components.
Installation Workflow (Service Provider)
Download the data solution extension iso from here
After the iso file is downloaded, login to the VCD provider portal, navigate to More > Solution Add-On Management, and click the upload button.
2: Select the “Create add-on instance after the upload is complete” to immediately create an instance of the data solution add-on and click on the upload button.
3: Accept the EULA by clicking on I Agree.
4: Specify the Add-On instance name and select the option “Delete Previous UI Plugin Versions” (If you are upgrading the instance from an older version).
5: Click on the finish button to initiate the Data Solution Extension Add-On installation.
You can monitor the installation progress by clicking on the instance and navigating to the Tasks sub-page.
Access Control and User Roles
The data solution extension creates new right bundles during the installation. These right bundles expose additional permissions for the life-cycle management of the data solution.
The Service Provider must create necessary roles and modify existing roles for tenants to enable them to install the service operator and solution instances. The required new roles are:
1: Tenant Data Solutions Operator: The user assigned to this role is responsible for installing the Kubernetes operator across the Kubernetes clusters deployed by the tenant. To create this role, clone the global Kubernetes Cluster Author role and include the following permissions:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Administrator View View Tenant Portal Plugin Information Manage user's own API token Edit: VMWARE:CAPVCDCLUSTER View: VMWARE:CAPVCDCLUSTER View: VMWARE:DSCONFIG Administrator Full Control: VMWARE:DSINSTANCE View: VMWARE:DSINSTANCE View: VMWARE:DSINSTANCETEMPLATE Full Control: VMWARE:DSORGCONFIG View: VMWARE:DSORGCONFIG Full Control: VMWARE:DSPROVISIONING View: VMWARE:DSPROVISIONING Full Control: VMWARE:DSCLUSTER View: VMWARE:DSCLUSTER |
Note: The tenant operators must also have edit rights on specific TKG clusters.
2: Tenant Data Solution User: This user is responsible for installing and managing data solution instances. To create this role, clone the global Kubernetes Cluster Author role and include the following permissions:
1 2 3 4 5 6 7 8 9 10 11 12 |
View Tenant Portal Plugin Information View: VMWARE:CAPVCDCLUSTER View: VMWARE:DSCONFIG View: VMWARE:DSPROVISIONING View: VMWARE:DSCLUSTER View: VMWARE:DSORGCONFIG Full Control: VMWARE:DSINSTANCE View: VMWARE:DSINSTANCE View: VMWARE:DSINSTANCETEMPLATE |
3: Modify Organization Admin Role: Modify the organization admin role to include the following additional rights:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Administrator View View Tenant Portal Plugin Information Administrator View: VMWARE:CAPVCDCLUSTER Administrator View: VMWARE:DSCLUSTER Administrator View: VMWARE:DSCONFIG Administrator View: VMWARE:DSPROVISIONING Administrator View: VMWARE:DSINSTANCETEMPLATE Administrator View: VMWARE:DSINSTANCE View: VMWARE:DSORGCONFIG Full Control: VMWARE:DSORGCONFIG |
Publish the newly created role and the rights bundle “vmware:dataSolutionsRightsBundle” to the tenants.
Configure Data Solution Extension
Configure Container Registry and Package Repository
Before you publish data solutions to the tenants, you must set up a container registry that contains the images of the solution versions mentioned in the interop matrix. Refer to the VMware product documentation for checking the up-to-date interop information.
The first step in this process is to Aceept the EULA of the data solutions. You must have created a user account for the VMware Harbor Registry for Tanzu at https://network.tanzu.vmware.com/
To accept the EULA of the data solution, search for the solution in the search box.
Select the compatible version of the product and click on sign the EULA.
Click on the Agree button to complete the EULA signing process.
In the VCD UI, navigate to More > Data Solutions and click on the Start button to configure the container registry.
By default, VMware’s harbor registry is configured. It is a public registry and reachable over the Internet. If your environment has internet access, you can pull from this registry, else you have to relocate the packages in your internal registry.
Select the same and click on the Manage Credential button.
Enter your Tanzu Network credentials and click on the save button.
The next step is to update the image location for the artifacts.
To update any artifact, click on the vertical ellipsis button and select Update.
Update the package repository URL for the artifact and select the version that is compatible with the data solution extension version.
Repeat the process to update the URL for all the artifacts.
Publish Data Solutions to Tenants
Navigate back to the data solutions home page and click on the start button to start publishing the data solutions to the tenants.
Select the solution and click on the Publish button.
Select the tenants for which the solution will be published.
Tenant Configuration Workflow
Install Service Operator
Login to the tenant portal with the data solution operator role, navigate to More > Data Solutions > Settings > Kubernetes Operator and select the Kubernetes cluster where the data solution operator will be installed. Click on the Install Operator button.
Click OK to start the operator installation.
It roughly takes 5 minutes for operator installation to complete.
In the backend, 2 namespaces are created along with the Kubernetes resources.
The ds-workloads namespace is initially empty but gets populated once you start deploying the data solution instances.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# kubectl get ns | grep vcd-ds vcd-ds-system Active 12h vcd-ds-workloads Active 12h # kubectl get all -n vcd-ds-system NAME READY STATUS RESTARTS AGE pod/vcd-ds-controller-manager-58489f978c-9mv6p 1/1 Running 0 12h pod/vcd-ds-controller-manager-58489f978c-v4lf6 1/1 Running 0 12h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/vcd-ds-controller-manager 2/2 2 2 12h NAME DESIRED CURRENT READY AGE replicaset.apps/vcd-ds-controller-manager-58489f978c 2 2 2 12h |
Deploy a Data Solution Instance
Login to the tenant portal as a data solution user, navigate to More > Data Solutions > Instances, and click on the New Instance button.
Configure the following:
- Select the solution type, for example, RabbitMQ.
- Enter the instance name.
- Select the Kubernetes cluster.
- Select a solution template.
- RabbitMQ credentials.
Under Advance Settings, you can customize your deployment by choosing to configure the management console and expose the service over the load balancer. This will allow you to access applications from outside.
After the solution is successfully installed, the status turns to Running.
In the backend, the Kubernetes resources are created under the ‘vcd-ds-workloads’ namespace.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# kubectl get all -n vcd-ds-workloads NAME READY STATUS RESTARTS AGE pod/mj-rmq02-server-0 1/1 Running 0 4d23h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/mj-rmq02 LoadBalancer 100.68.255.222 192.168.190.8 15672:31395/TCP,5672:32052/TCP,5671:31337/TCP,15671:32656/TCP,15691:30561/TCP 4d23h service/mj-rmq02-nodes ClusterIP None <none> 4369/TCP,25672/TCP 4d23h NAME READY AGE statefulset.apps/mj-rmq02-server 1/1 4d23h NAME ALLREPLICASREADY RECONCILESUCCESS AGE rabbitmqcluster.rabbitmq.com/mj-rmq02 True True 4d23h |
Clicking on the deployed solution instance shows additional information about the solution.
You can now access the application using the External IP of the solution.
If the TKG cluster where the solution instance is deployed, has Grafana installed, you can monitor the health of the service in the Grafana portal.
And that’s it for this post. In the next post on this topic, I will demonstrate how to deploy data solutions in an airgap environment.
I hope you enjoyed reading this post. Feel free to share this on social media if it is worth sharing.
Pingback: Install VCD Data Solutions Extension in an Airgap Environment
Pingback: Upgrade VCD Data Solutions Extension from 1.3 to 1.4