The official documentation for the API can be found here.
So far, I’ve created the following areas/use cases:
Operations Covered in this Collection:
Get Provider Health
Change Password for Current User
Get Root & Admin User Passwords
Get Database Alerts
Get Database Version
Create & Restore (inc. Point in Time Restore)
Create, Download, Delete
Get All, Create and Delete
Get Tasks, Events and Alarms
Get All Backups
Get Audit Logs
Variables inside the collection
The main variables you will need to set before use are:
Under the login folder, run the “Get Access Token” request. This has a test configured, so that from the returned data, it will copy the Bearer Token and OrgId for the User Account to the Environment Variable collection that is active.
Some API requests are only valid for certain Authenticated role types, such as creating Databases can only be successful with a user role of Org_Admin or Org_User.
This blog post will cover deploying the infrastructure and components for Data Management for VMware Tanzu.
My second blog post will cover using this infrastructure for Self-Service Database-as-a-Service.
What is Data Management for VMware Tanzu?
Data Management for VMware Tanzu (DMS) is a newly released solution from VMware (July 2021) providing data-as-a-service toolkit for on-demand provisioning & automated management of MySQL and PostreSQL databases on vSphere platforms.
DMS is accessible as both a Graphical UI and via REST API, to meet the needs of administrators and developers and their consumption needs.
With DMS, it provides the ability to create and manage data services through a centralized platform in a self-service fashion, with the following features:
Simplified management for admins, acting as a Database fleet management tool; presenting a view of the organization’s database instances running on multi-cloud infrastructure.
Database users have the ability to consume self-service capabilities to create new database instances, or to operate on existing instances safely and securely, without requiring infrastructure or database expertise.
DMS also provides full automation for provisioning data service instances, backups, security patches, and periodic updates of the data service engine.
Understanding the components
DMS is made up of the following architectural components:
Provider – this is the core appliance you will deploy, which offers the central UI and API for all users to interact with the Data services and functions. It acts as the control plane to the other components.
Agent – These appliances are deployed to extend the control plan into the various vSphere environments, providing a point of presence for provisioning and management operations of the Services deployed.
Service – These are photon appliances which host the deployed instance of the data service (database). They communicate with the Agent that deployed them, via a private API. DMS supports the deployment of MySQL and PostgreSQL currently.
Template Repo – publishes a set of Data Management for VMware Tanzu Database Templates on Tanzu Network. The provider will poll the Tanzu Network periodically for new templates. There is also a method to handle air-gap environments.
S3 storage is required to be used for several items such as location to store the templates, database configurations and database backups.
Full deployment models for the components can be found here.
Understanding Organisations and User Access
DMS implements the concept of Organisations to provide a logical grouping of users. There are two types:
Provider Org – A type of organization to which one or more Provider Administrator user belongs.
One provider org can exist in a single DMS installation.
This is automatically created during the deployment of the Provider Appliance
The Provider Org name is the company name specified at deployment.
Agent Org – A type of organization with one or more Organization Administrator or Organization User members.
These orgs are created via the DMS UI/API once the Provider appliance has been deployed and can be created at any time.
DMS pre-defines these three user roles:
This is the single Provider Role in the installation
Among other tasks, users in this role can import additional Provider Administrator users, create organizations, and create and import organization users
The Provider Administrator user will assign a role to each DMS user that they create or import in an organization.
A user that is assigned the Organization Administrator role can manage all services in the organization to which they belong. A user assigned the Organization User can manage only the services that they provision.
More detailed information on the User roles and responsibilities can be found here.
Now first and foremost, I’ll point you towards the official documentation to use as a reference to review alongside this blog post.
In this blog post I’m going to cover setting up the Multi-cluster support for Kasten when you’ve installed the software to multiple Kubernetes clusters.
One K10 cluster you have deployed will become the primary node. You will use this node and dashboard interface to access the cluster UI.
The primary cluster defines policies and other configuration centrally. Centrally defined policies and configuration can then be distributed to designated clusters to be enacted.
Additional clusters are then added in and are called Secondaries.
The secondary clusters receive policies and other configuration from the primary cluster. Once policies are distributed to a secondary, the local K10 installation enacts the policy. This ensures that the policy will continue to be enforced, even if disconnected from the primary.
Token Authentication must be used
Secondary K10’s ingress must be accessible by the primary
Secondary API Server must be accessible by the primary
Run the tool on a bastion host that has connectivity using kubectl to all of the clusters you want to bring together.
Download the K10MultiCluster tool
Download the appropriate version of the tool to match your K10 versions
When using Terraform to deploy a virtual machine OVA using Terraform, I kept hitting the below error:
Error: error while creating vapp properties config unsupported vApp properties in vapp.properties: [vm.vmname vami.gateway.DMS_agent_VA vami.netmask0.DMS_Agent_VA vami.DNS.DMS_Agent_VA vami.searchpath.DMS_Agent_VA vami.ip0.DMS_Agent_VA vami.domain.DMS_Agent_VA]
on Agent_appliance/main.tf line 20, in resource "vsphere_virtual_machine" "vm":
20: resource "vsphere_virtual_machine" "vm"
Pretty simple right? In my Terraform file I was trying to use OVF Properties that were not valid. Getting the debug/trace logs from terraform also just showed the same error output.
However running ovftool, confirmed my properties were correct. (shortened output example).
Category: Networking Properties
Label: Domain Search Path
Description: The domain search path (comma or space separated domain names)
for this VM. Leave blank if DHCP is desired.
But also in the vCenter UI, looking at the vApp Properties of a the OVA once deployed, again I could validate the the properties I was using were correct.
Finally an example of the vSphere_virtual_machine resource I was trying to deploy that was causing me issues: