PD DigitalOcean Kubernetes for Blesta

PD DigitalOcean Kubernetes — Sell Managed Kubernetes as a Native Blesta Package

Sell managed Kubernetes on DigitalOcean under your own brand — provisioned, billed and managed in Blesta

Made and supported by Projektif Digital Ltd. Runs inside PD Modules, the panel every module installs into.

Servers & Compute

PD DigitalOcean Kubernetes lets a hosting company sell managed Kubernetes clusters as its own Blesta package. Your customer orders in Blesta, a dedicated cluster is built in your DigitalOcean account, and your customer downloads a kubeconfig from your client area and runs kubectl within seconds, without ever having a DigitalOcean login. You set the price, DigitalOcean bills you its list price, and the difference is your margin.

It is built for hosts who want to offer container hosting to developers and agencies without operating control planes themselves, and without handing out access to their provider account.

Why hosts choose PD DigitalOcean Kubernetes

Sell managed Kubernetes under your own brand. Customers see your company, your prices and your client area. Clusters run on your own DigitalOcean account, so customers need no account of their own, and your account and API token are never exposed to them.

Every paid order sets itself up. When Blesta activates the service, through its Provision Paid Pending Services task or a staff member pressing Activate, a dedicated managed cluster with one worker node pool is created exactly once, in the region, node plan and node count the customer chose. Once it is running, its API endpoint and node pool are recorded and shown to the customer.

Connect in one click. The customer downloads their kubeconfig from the service page, with the endpoint and numbered kubectl steps beside it. It gives access to their cluster only, never to your DigitalOcean account, and only the owner of the service can download it.

Customers can grow. A change of node count is applied to the existing pool in place, and a change of node plan replaces the pool with new nodes at the new size. Customers do it themselves through Blesta's Upgrade/Downgrade, once you allow it on the package.

Pricing with the cost in view. The Products page shows what DigitalOcean charges each month for every node plan, read live and shown in dollars and in your default currency. Set a margin and each choice shows a suggested price and your margin per sale. The margin is optional and changes nothing until you use it.

Nothing left billing. Cancelling a service destroys the cluster together with the load balancers and block-storage volumes its workloads created, and a background sweep confirms the deletion finished. No create, retry or double request can leave a second cluster billing unseen.

How it works

  1. Connect your DigitalOcean account. Create an API token with Full Access and add it under Settings, Company, Modules as an account with a name and the token. Test Connection in PD Modules checks every connected account with one read-only call each.
  2. Create your package. Set region, Kubernetes version, node plan and worker nodes as defaults, then generate the order options in one click from DigitalOcean's live catalogue. Version "Latest" always installs the newest stable release DigitalOcean offers.
  3. Your customer orders. They pick region, node plan and node count (one to ten, priced per node) and pay. You can also offer the Kubernetes version as a choice.
  4. They connect. When the cluster is running, the service page shows its status, endpoint, node pool and version, and the customer downloads their kubeconfig.
The customer's service page: cluster status, connection details, worker nodes and activity
The customer's service page: cluster status, connection details, worker nodes and activity

What you get in Blesta

Selling and pricing

  • Order options for Region, Kubernetes version, Node plan and Worker nodes, generated from the live DigitalOcean catalogue; prices start at zero for you to set under Packages, Configurable Options
  • Show or hide each option; saving visibility keeps your prices, and a hidden option is fixed to the package's own setting
  • Rebuild from the live catalogue at any time: choices you hid stay hidden and customers keep the choices they already made
  • Every field on the package form carries its own help
  • A resource name prefix for new clusters, and a DigitalOcean project to group them under

Provisioning you can trust

  • A node plan or version the chosen region cannot build is never sold, or is refused before anything is created, with the reason
  • Every cluster is recorded before DigitalOcean is called, so nothing runs untracked
  • Suspension is a management lock: the customer can no longer manage the cluster, including downloading credentials, until it is unsuspended. A managed control plane cannot be paused, so the cluster keeps running and DigitalOcean keeps billing it until you cancel
  • A regular read-only check flags a cluster deleted directly at DigitalOcean
  • Worker nodes count against your account's Droplet limit; a "droplet limit" message from DigitalOcean is an account limit, not a module error

Running it day to day

  • Clients and Clusters lists every cluster against the client paying for it, with its state
  • The cluster's name shows in service lists and on the service page heading
  • Read-only assistant tools that report a cluster's state and version and list your clusters

What your customers get

  • Cluster overview: status, API endpoint, node pool and Kubernetes version at a glance
  • Kubeconfig download: one click, with steps that work as written; credentials may expire and can be downloaded again whenever the cluster is running
  • A Nodes tab: the pool's size and plan, with every node and its live status
  • An Activity tab beside Information: a timestamped history of everything that happened to the cluster
  • Upgrades: grow the cluster through your upgrade option, without a ticket
Connection details: the cluster's API endpoint and numbered kubectl steps, with the kubeconfig one click away
Connection details: the cluster's API endpoint and numbered kubectl steps, with the kubeconfig one click away
The Nodes tab: the pool's size and plan, with every node and its live status
The Nodes tab: the pool's size and plan, with every node and its live status

Kubeconfig download is a switch on the package. Turn it off and the customer cannot download it. Pages follow the Blesta client template and every string can be translated or reworded. The customer's panel does not name the provider in its own words; the cluster's endpoint is DigitalOcean's hostname, as kubectl needs it.

Security built in

  • Your API token is stored encrypted, is never shown to customers, and is sent only to DigitalOcean. When you edit an account, leaving the token box blank keeps the stored token.
  • The kubeconfig is ownership-checked: only the signed-in customer who owns the service can download it, and it reaches the cluster only.
  • A suspended customer can no longer manage the cluster or download credentials until the service is unsuspended.

One product, every feature

PD DigitalOcean Kubernetes is one paid module with everything included. There are no add-on tiers and no per-cluster fees or cut from us: DigitalOcean bills you directly and you set your own price. It installs into PD Modules in one click and updates itself.

If your subscription ever lapses, your customers are not cut off. Running clusters are never stopped, deleted or changed. Once a licence has expired, new clusters are no longer provisioned while existing ones keep being managed, and customers can still download their kubeconfig. Only if it is later suspended does customer management pause, behind a neutral message. Teardown keeps running throughout.

Requirements

  • Blesta 6 or later on PHP 8.2 or later, with the ionCube Loader and Blesta's cron running
  • A DigitalOcean account and an API token with Full Access
  • PD Modules, the free control panel every PD module installs into

Questions

How do customers connect to their cluster?

They download their kubeconfig from the client area in one click and use it with kubectl. No access to your DigitalOcean account is needed.

Can customers scale their cluster?

Yes — through Blesta Upgrade/Downgrade, which resizes or grows the worker node pool.

Does suspending stop billing?

No — a managed control plane can't be paused, so suspension is a management lock and the cluster keeps running. Terminate to stop billing.

What happens when a service is terminated?

The cluster is destroyed together with the load balancers and volumes DigitalOcean provisioned for it — zero orphans left billing on your account.

Do I need my own DigitalOcean account?

Yes. You resell on your own DigitalOcean account, at your own margin. Your API token is stored encrypted on your Blesta server and is never shown to a customer.

Does a lapsed PD Modules licence break my customers' services?

No. A licence lapse withdraws the management layer in stages but never stops, deletes or alters a running customer resource. Your customers keep serving throughout.

What data leaves my server?

Your customers' data stays in your Blesta. To confirm your licence, the platform sends us four things and nothing else: your licence key, the domain, your server's own IP address and the directory it is installed in — the four values recorded against your licence in your client area. Alongside that we see which module and version you run and whether its licence is healthy, so we can ship compatible updates. We never receive your clients' personal data, your credentials, or the contents of your Blesta. Crash reports are off unless you turn them on, and a diagnostic report is only ever sent when you send one, after showing you a preview you can edit.

Which Blesta and PHP versions does it need?

Blesta 6.0 or later, on PHP 8.1 or later. It installs alongside whatever else you run — it adds its own tables and templates rather than modifying Blesta files, so it does not collide with other vendors' modules or with a customised template. Uninstalling removes its own tables and settings and leaves no orphans behind.

How do I get help?

Open a ticket from your client area, or use Get help inside the PD Modules panel, which attaches a diagnostic report — you see a preview of exactly what it contains, and can exclude any part of it, before anything is sent. Support is included with an active subscription; bug reports are welcome whatever your licence state.

What’s new in 0.1.80

  • Removing the module no longer gets stuck on an order that never provisioned.
  • Region, version, node plan and node count that you set on a product and hide at checkout are now used for every cluster ordered, instead of the first choice on the list.
  • The menu labels, the answers shown after pressing a button and the wording in Activity can now all be translated or reworded.
  • The product settings page opens quickly even when DigitalOcean is slow to answer, and saving keeps the project you chose.
  • If DigitalOcean cannot be reached, the settings show the last project list with how old it is, or say the list could not be loaded.
  • Test Connection also refreshes that list.
  • See what DigitalOcean charges you for each node plan, in your own currency, beside your prices. Set an optional margin per product to get a suggested price and your margin per sale; Generate and Rebuild then write those prices. Nothing changes until you set one.
  • A cancelled service can be re-activated with Uncancel.
  • Multi-line package settings are now text areas, so pasted text keeps its line breaks.
  • Suspend and Terminate always work, whatever the state of your PD Modules licence.
  • Product setup messages show screen names in bold rather than wrapped in asterisks.
  • Node plans a region does not offer are refused before anything is created.
  • Termination removes load balancers and volumes your workloads created.
  • The service page shows the installed Kubernetes version, and Activity says when a change is only requested.
  • Client: Kubeconfig is enforced on every endpoint.
  • Project grouping now works.
  • Ordering again never creates a second cluster.
  • Suspension withholds the cluster credentials download, and a plan change no longer lifts it.
  • A node-size change keeps the old nodes until the new ones are running, so workloads always have somewhere to run.
  • Test Connection checks the token you typed, and the settings check tests every connected account.
  • Activity says what did not happen when an action fails, instead of showing the success wording beside a Failed badge.
  • The Rebuild warning now says prices go back to their generated starting price (zero where none is suggested).
  • The PD Modules menu now names this module “DigitalOcean Kubernetes” in full.
  • The button that rebuilds a product's cart options now reads "Rebuild from DigitalOcean"; it named AWS by mistake.
  • Setup guidance and connection checks name the right screens for your billing platform.
  • Generate this module's order options for a Blesta package in one click, as on WHMCS; rebuilding them keeps the choices your existing customers made.
  • Links on this module's screens open the right client, service and product pages on every platform.

Get your website online with PD Hosting

UK hosting, domains and support from a real team. From a first site to a full server.

Terms and Conditions  ·  Privacy Policy

PD Hosting is the trading name of Projektif Digital Ltd, registered in England and Wales, company number 12482555.

PD Hosting
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.