Prerequisites
Before creating a Morpheus cluster, you need two credentials:Morpheus API Credential
The Morpheus appliance URL and a long-lived API access token. See Morpheus Credentials.
SSH Key Credential
An SSH public key for instance access. You can provide your own or let Ankra generate one. See SSH Key Credentials.
- A group and cloud the API token can provision into.
- A network with DHCP. Cluster instances get their addresses from DHCP on the network you select.
- An instance layout based on a Linux cloud image, used for all cluster instances. You can optionally pin a specific virtual image.
- Service plans to size the bastion, control plane, and worker instances.
- API reachability. The Morpheus API must be reachable from Ankra either directly or through an SSH jumphost.
Hybrid Connectivity (SSH Jumphost)
If the Morpheus appliance and the instance network are not directly reachable from Ankra, attach an SSH jumphost (host, port, username, and private key) to your Morpheus credential. Ankra then tunnels both the Morpheus API calls and the SSH connections to your cluster nodes through the jumphost. If your Morpheus appliance uses a self-signed certificate, enable the TLS insecure toggle (tls_insecure) on the credential.
Both options are configured on the credential - see Morpheus Credentials.
Creating a Morpheus Cluster
Via the Platform UI
1
Navigate to Clusters
Go to Clusters in the Ankra dashboard and click Create Cluster.
2
Select Morpheus
Choose Morpheus as the provider.
3
Select Credentials
Pick your Morpheus API credential and SSH key credential from the dropdowns. You can also create new credentials directly from the wizard.
4
Choose Placement
Select the Morpheus group, cloud, and network for the cluster instances, and the instance layout (based on a Linux cloud image) they are provisioned from. The network must provide DHCP.
5
Configure Nodes
Set your cluster topology using Morpheus service plans as instance types:
- Bastion - Service plan for the SSH bastion instance
- Control Plane - Count (1 or 3) and service plan
- Workers - Count and service plan
6
Choose Distribution
Pick the Kubernetes distribution:
kubeadm Vanilla upstream Kubernetes bootstrapped with
kubeadm and containerd (preselected). kubeadm clusters always use Cilium CNI and optionally support an external etcd topology with dedicated etcd instances.
k3s Lightweight Kubernetes with a user-selectable CNI.See Kubernetes Distribution for details.7
Create & Track Progress
Click Create to start provisioning. A live progress view tracks credential setup, SSH key deployment, bastion provisioning, instance creation, Kubernetes installation (k3s or kubeadm), and Ankra Agent setup. The cluster appears with an offline state until provisioning completes, then transitions to online.
Via the API
Morpheus clusters are managed from the portal or API during the closed beta - the
ankra CLI does not yet include Morpheus commands. Create the Morpheus credential and SSH key credential from the portal first.Cluster Configuration Options
All Morpheus IDs are the numeric IDs from your appliance - discover them in the portal’s create wizard or with the catalog API routes (groups, clouds, networks, layouts, plans).Cost estimates are not available for Morpheus clusters - neither in the creation wizard nor in Cloud Cost.
Networking
Ankra does not create networks in Morpheus. You select an existing network at creation, and all cluster instances receive their IP addresses via DHCP on that network. Make sure DHCP is available before creating the cluster.Kubernetes Distribution
Morpheus clusters can be provisioned with either kubeadm (preselected in the create wizard) or k3s (the API and CLI default whendistribution is omitted).
kubeadm clusters always use Cilium CNI (eBPF-based networking, L7 policies, Hubble observability). The CNI cannot be changed after creation.
External etcd topology (kubeadm)
By default kubeadm runs etcd stacked on the control plane nodes. For larger clusters you can run etcd on dedicated instances by settingetcd_topology to external together with etcd_node_count and etcd_plan_id.
Node Groups
Node groups let you organize worker nodes into logical groups with independent service plans, counts, labels, and taints. Each group can be scaled, re-planned, and configured independently. During the closed beta, node groups are managed from the portal or the API - theankra CLI does not yet include Morpheus commands.
Via the Platform UI
Navigate to cluster Settings > Nodes to manage node groups. From this tab you can:- View all node groups with their service plan, count, labels, and taints
- Add new node groups with a name, service plan, count, and optional labels/taints
- Scale individual groups up or down (0–100 nodes)
- Upgrade the service plan (upgrade only - see Service Plan Changes)
- Edit labels and taints per group
- Delete a node group and all its instances
List Node Groups
Add a Node Group
New groups are sized by the numeric service plan ID from your appliance, the same asnode_groups at creation time:
Scale a Node Group
Service Plan Changes
Update Labels and Taints
Delete a Node Group
Node Group API Reference
Resizing the Bastion
Resize the bastion without recreating the cluster - Ankra powers it off, resizes it, and powers it back on. This is available from cluster Settings > Nodes in the dashboard or via the API; nodes can be listed and inspected from the CLI (ankra cluster morpheus nodes list|get), but bastion resize has no CLI command yet.
Restarting individual nodes is not yet available for Morpheus clusters.
Legacy Worker Scaling
The legacyscale-workers and worker-count endpoints operate on all workers as a single pool.
Prefer using Node Groups for more granular control.
Upgrading Kubernetes Version
You can upgrade the Kubernetes version on all nodes in a Morpheus cluster. Upgrades are applied to control plane nodes first, then workers. Both k3s and kubeadm clusters are supported.Check Current Version
Upgrade Version
"target_version": "v1.31.0").
Stopping and Starting a Cluster
You can stop a Morpheus cluster to release its compute (the cluster instances provisioned through your appliance) while keeping its configuration, stacks, and credentials in Ankra. Starting the cluster re-provisions the instances and reconciles the cluster back to a running state. This is useful for freeing capacity when a cluster is not needed. When starting, usescope=control_plane to bring up only the control plane first (for example to inspect or repair it), or scope=all (the default) to provision the whole cluster.
Stop and start are background operations. A start returns
409 if a stop or terminate operation is still running. The cluster’s saved topology is preserved while stopped and re-provisioned on the next start. Use ankra cluster morpheus stop|start from the CLI, the portal Danger Zone, the API, or Ankra AI.Deprovisioning
Deprovisioning deletes all instances Ankra created through Morpheus (bastion, control planes, workers, and dedicated etcd instances if any) and removes the cluster from Ankra. Your Morpheus groups, clouds, networks, and virtual images are left untouched.Architecture
A Morpheus cluster provisions the following infrastructure:
All instances are provisioned through your Morpheus appliance into the group, cloud, and network you selected, booting from the chosen virtual image with DHCP addressing. Ankra creates no network infrastructure: the instances attach to an existing Morpheus network, and routing and internet egress follow that network’s own DHCP-provided gateway.
The bastion instance provides the only SSH access point Ankra uses to reach the cluster nodes - it carries no workload or egress traffic. When an SSH jumphost is configured, Ankra reaches both the Morpheus API and the bastion through the jumphost (without one, Ankra connects to the bastion directly).
Morpheus clusters do not include a cloud controller manager or load balancer integration -
external_cloud_provider is not supported. Kubernetes LoadBalancer services are not provisioned automatically; expose workloads with NodePort services, an ingress controller, or a load balancer solution you deploy yourself.