Changelog
2.1.0 (Released on 2026-06-12)β
Addedβ
Adaptersβ
- Support translating OpenStack networks and routers
Adminβ
- Add admin router
Appsβ
- Enrich network info for NFV purposes
- Support floating IP network ID identification by attached private network
- Support multiple network selection in GET app init info
- Support NFV-based network settings for K8s
- Support private network selection in POST app
ASGβ
- Support applying firewall on ASG
- Add network details to LB; filter out network-attached firewalls in init info API
- Schema migration for ASG network settings
- Support network specification for ASG creation
- Add member role for ASG
- Add VPC network field to ASG creation form
AWSβ
- Add AWS helper to operate AWS-related resources
Billingβ
- Add demo billing/usage data generator
Clusterβ
- Implement RKE2 CRUD
- Support RKE2 cluster creation, deletion, node pool deletion/retrieval, and node pool scaling
- Support cluster approval
- Support getting K8s version from both RKE1 and RKE2
- Support registering external provider for AWS cluster CCM
- Add cluster helper for cluster operations
- Add Kubernetes helper to operate resources in K8s
- Verify flavor exists in OpenStack before creating cluster
- Adjust OpenStack CCM install order to ensure correct cloud-config loading
- Schema migration for cluster network settings
- Allow users to remove cluster regardless of status
Cloud Adminβ
- Add
projectNameto private network list query - Implement i18n for private network-related pages, creation form
- Integrate create/edit/list private network, project APIs
- Analysis/cloud provider now filters by project under project view
- Add resource analysis for cloud admin
CMP Coreβ
- Extend deleted filter helper to accept new delete spec
- Extend rollback operation for security
- Helper function to manage update fields
- Implement RBAC control for private networks
- Support listing instances and settings records
- Support CIDR overlap verification for spine and provider networks
- Refactor CIDR verifier to handle missing cases
Configβ
- Add new config
CubeControllerVIP - Support all CubeCMP settings in v2 API
- Load config from env first; add new email-related settings
Eventsβ
- Initialize schema and create operation
- Support
startTimeandendTimein query - Add event support for network, router, firewall, and instance operations
Errorsβ
- Implement new error system following upspin pattern, with error mapping for third-party services
Firewallsβ
- Implement full firewall CRUD: create, get, list, update, delete, attach, detach
- Implement firewall rule creation and deletion
- Support creating firewall with multiple CIDRs
- Support attach/detach firewall for ASG
- Support creating rules with custom options to set port range to 0
- Support rollback after failure
- Use reconcile instead of attach/detach for improved robustness
- Enhance rule validation
- Send events for firewall operations
- Implement v1 migration
- Support applying firewall on instances
Flavorβ
- Support retrieving K8s flavors
- Support flavor selection when creating load balancers
- Display full flavor info in dropdowns
- Implement load balancer flavor profile list router
Floating IPsβ
- Support NFV-based floating IP and workload query
- Check if FIP exists/does not exist before action to avoid resource conflicts
- Prevent no-provider error
- Support specifying a floating IP when associating
- Support floating IP specifying for POST
/floatingipsand PATCH endpoints - Support specifying IP when creating reserved IP
- Add GET API to fetch available floating IPs from a private network
- Add PATCH API to enable/disable non-reserved floating IP for an instance
i18nβ
- Full i18n coverage across portal pages: instances, clusters, apps, ASG, load balancers, firewalls, networks, volumes, shares, objects, images, billing, alerts, notifications, settings, policies, routers, spine networks, and NFV-related pages
- Add i18n for site admin, tenant admin, project admin, and cloud admin sections
- Remember previously selected language after refresh
- Crawl UI library translations
Instancesβ
- Add multiple network settings in POST API and instance creation bash
- Add PATCH APIs to attach/detach network on an instance
- Enrich multiple network detailed info in single instance and instance list
- Integrate multiple network setting flow between POST API and worker handler
- Integrate firewall info in private network list
- Send events after instance operations
- Support DHCP and IP specification for instance network setting
- Support DHCP for attaching private network and enabling non-reserved floating IP
- Support specifying interface IP when creating instance
- Implement instance rename API
- Add instance name validation to align with backend implementation
- Auto-select image, snapshot, or backup based on query params in create instance page
Load Balancersβ
- Schema migration for load balancer network settings
- Support NFV-based network settings for load balancers
- Support load balancer attachment query by project name and private network ID
- Check flavor as a required parameter
Networksβ
- Implement private network create, update, attach, and detach, spine network create and update
- Implement site admin and project member network list endpoints
- Implement available IPs listing endpoint
- Add GET API to list network and available IP pairs per project
- Add GET API to list floating IPs and interface IPs
- Add external type definition, status field, and createdAt/updatedAt/deleted fields
- Support passing array parameters constructed by comma
- Verify name uniqueness before creating a network
- Verify CIDR overlap before attaching
- Initialize provider networks on startup
- Hide non-visible networks in project list endpoint
- Remove redundant naming and unused fields
- Rename and clean up orphan networks
Pagesβ
- Support page operations
- Support unlimited queries
- Set minimum total page count to 1
Policiesβ
- Support spine, private, and router policies
Portal (UI)β
- Add scrollbar to popover menu
- Add pagination to all listing tables, and spine networks listing page
- Add private networks column to CubeFirewallTable
- Add hint for minimum/recommended spec for creating K8s cluster
- Add NFV firewall API libs and NFV-related roles to settings
- Cloud admin mock UIs: create/edit router, per-project router listing, attach/detach uplink, delete router
- Create/edit spine network mock UIs and API integration
- Firewall details page: private networks tab, instances tab apply/detach, ASG attach
- NFV apply scope ASG selection
- Separate firewall listing pages for Cube and AWS providers
- Separate floating IP tabs for Cube and AWS providers
- Separate instance listing page by provider
- Separate networking tabs by provider on instance page
- Remove Security tab on Networking page
- Remove project dropdowns
- Remove floating IP options from load balancer table
- Remove Marketplace page
- Add gateway IP fields to add spine network modal
- Forbid CIDR with /0 subnet mask when upserting spine network
- Show form field errors when field is dirty in add spine network modal
- Upsert router: only show NAT control when uplink is selected
- Add loading state and new props to dropdown components
- Support optional expand/collapse in CubeExpandableTable
- Split EventsTable into expandable and non-expandable variants
Projectsβ
- Purge V2 resource records after project deletion
- Add version field for migration preparation
- Enhance project creation verification
- Implement project create with rollback on failure
- Simulate password generation logic used in ops
- Support creating initial default firewalls when creating a project
- Assign reader role when creating project user
- Compensate reader role for early-created users
Providerβ
- Add provider field for networks, routers, and firewalls
- Add provider middleware for validation
- Upgrade OpenStack CCM; treat as external provider to avoid conflicts
Queryβ
- Allow time range queries without end time
- Omit
endTimefrom RA-related API requests
RBACβ
- Implement RBAC helper for permission control
- Apply RBAC control to instances
- Hide analysis and cloud provider tabs for project member role
Rancherβ
- Add Rancher helper to operate RKE-driven clusters
Resource Analysisβ
- Implement amount, ranking, and trend APIs for cloud and project
- Make response values strings for frontend parsing
- Add time range in WHERE condition to limit results
- Support querying amount with specified projects
- Remove misplaced service option in ranking API
- Persist unpriced resource rows for RA visibility
- Cloud admin and project admin resource analysis
Routersβ
- Implement router CRUD: create, list, update, delete, attach, detach
- Add status, CIDR, and type fields for uplink/downlink networks
- Include project in DB schema
- Verify name uniqueness before create/update
- Reconcile static routes when network/router attach or detach occurs
- Send events for router operations
Settingsβ
- Implement settings helper to handle inheritance
- Implement new settings: alerts, email, and policies
- Extend settings type
- Support loading config from env; add email-related settings
- Ensure default project and settings on creation
Fixedβ
Appsβ
- Add validation for floating IP operations; fix worker panic when non-external private network is attached
ASG (Auto Scaling Group)β
- Fix incorrect ASG approval flow
- Fix ASG scaling issue caused by network side effects
- Fix missing network v2 schema migration for ASG scaling
- Correct the field used to search firewalls
AWSβ
- Fix incorrect AWS credential parsing when inheriting credentials from default project
- Fix incorrect instance network schema conversion for AWS provider
- Fix incorrect default storage type parsing for AWS provider
- Fix resource operation errors for AWS instance, K8s, and floating IPs
- Fix AWS floating IPs page missing "Assigned To" field
Billingβ
- Paginate billing reports via v2 page contract
- Ensure totalPage for billing pagination is at least 1
Cluster / Node Poolβ
- Pass selected network to worker in K8s create/scale-up tasks
- Fix NFV schema integration issue between cluster, node pool, and floating IPs
- Fix incorrect floating IP check for network schema v2
- Remove nodeTemplatedId check (RKE2 clusters don't have it)
- Correct nodepool POST cluster lookup and harden proxy gate
- Fix K8s network schema migration; increase kube-api query limit for worker cron
- Only delete floating IPs within the CMP project during cluster cleanup
Configβ
- Accept absolute paths for
-conf; fail loudly on no match - Amend missing portal config used for firewall migration
Eventsβ
- Populate
remote_ipon v2 firewall and volume-clone events - Populate user/IP in alert and cloud-admin event records
- Fix resource name disappearing in event display
Firewallsβ
- Preserve security group rule port ranges on decode
- Correct collection name, error total item counts, and options usage
- Handle dirty firewall records
- Make description an optional field
- Correct field used to search firewalls
Floating IPsβ
- Fix floating IP unassigning issue for load balancers
- Fix incorrect network ID in the floating IP list
- Fix missing schema update during floating IP operations
- Fix integration issue between reserved floating IP and workloads (instances and load balancers)
- Fix floating IP release issue during instance deletion
- Fix incorrect floating IP info attached in the instance list
- Fix floating IP display issue
- Fix incorrect private info in instance details
- Fix integration issue between reserved floating IP and instances
- Fix FIP association issue for load balancers
- Fix reserved FIP creation and association issue for load balancers
Instancesβ
- Fix incorrect default volume type when COS has switched the default storage type
- Fix incorrect floating IP display issue
- Fix incorrect import path for instance
- Fix incorrect floating IP info in instance list
- Handle GPU type correctly to avoid panic
- Improve
GET /portal/api/v1/instancesperformance - Skip updating
launched_atif instance status is error - Adjust network ID mapping between CMP and OpenStack network IDs
- Enhance stability for source-based route init and default gateway setting
- Fix Swagger v1 typo
- Integrate
floatingIp.isAcquirableinfo with real router and network data - Add default value to prevent failed null conditions
- Correct the field used to search firewalls
- Ensure rename instance option is only shown for the Cube provider
Image Exportβ
- Clarify error message: image export only supports CubeStorage volumes
Keypairβ
- Fix incorrect keypair parsing logic during key validation
Load Balancersβ
- Fix load balancer creation/update issues for instance, app, and ASG
- Fix FIP association issue for load balancers
- Fix reserved FIP creation and association issue for load balancers
Networksβ
- Site-admin private networks list no longer crashes on legacy projects
- Seed provider networks before private network migration
- Filter network project list to only include enabled networks for spine and provider
- Fix network ID mapping issue for network v2 schema in VM, shares, and floating IPs
- Fix parameter typo in
GET /providers/cube/projects/{projectName}/networks/available-ips - Make
gatewayIPoptional - Avoid directly accessing
uplinkRouterwhen it may be empty - Correct allowed update options for spine and private networks
- Correct key to make search work
- Correct parameter usage
- Check parameter existence before use
- Avoid empty content when nothing is selected
- Use original status to avoid overriding state
Optionsβ
- Use function call instead of immediate invocation to avoid running before definition
Pageβ
- Handle missing query parameter scenario
Portal (UI)β
- Add missing i18n entries across multiple pages and features
- Fix i18n typos
- Prevent empty ellipsis menu from appearing in tables
- Fix basic events table missing event name column
- Fix project store settings initialization bugs and user role name i18n
- Fix admin list routers query param key
- Fix API types defined per poorly written Swagger docs
- Fix create private network uplink router ID key bug
- Fix cube modal small-size modifier style issue
- Fix failure to attach firewall to instances
- Fix failure to edit AWS firewall description
- Fix firewall rule UI for all ICMP type and code
- Hide instance memory usage graph for non-Cube providers
- Fix load balancer member interface IPs display
- Make network field required during cluster creation
- Fix objects page i18n issue
- Fix project store settings and user role i18n
- Route load balancer floating IP association/disassociation to LB collection
- Fix router UI uplinks visibility
- Fix router table status column appearing empty
- Fix spine networks table column order
- Fix unassign load balancer floating IP option handler
- Fix upsert private network modals not filtering routers by project
- Temporarily disable NFV create firewall
- Hide non-available networks in upsert router modals
- Fix networks fetched without pagination
- Fix NFV firewall API
autoScalingIDsparam renaming - Handle NFV networks with no
spec.subnets - Allow policy import on Default and Custom projects
- Enforce volume quotas on clone action
- Hide color-related properties in branding config
- Fix i18n for instance list page dropdown (remove and destroy both visible)
Projectβ
- Correct network status field when handling errors
- Fix incorrect filter for finding network ID by
metadata.id - Add
idfield on create; removeomitemptyfrom status (empty string means success)
Portal APIβ
- Demote quota alert email failure to a log line
- Emit init+done event pair so History shows real duration
- Give v2 instance events a unique
event_id - Key v2 instance events by OpenStack UUID
- Load email templates so quota alerts can render
- Restore spine-only CIDR overlap policy; always check same-router
- Stop swallowing PG init/migration retry errors
Provisionβ
- Add SUCCESS as keyword to match customer HPG requirement
Providerβ
- Make offline OpenStack CCM install deterministic
Reserved Floating IPβ
- Fix issue with reserved FIP and instance association
- Fix data update issue between reserved FIP deletion and instance
Resource Analysisβ
- Set admin permission on related API
- Apply
providerNamefilter in project trend SQL - Include
provider_namein project trend CTE
Resource Overviewβ
- Fix incorrect aggregation logic for firewall v2
Routersβ
- Check enabled networks before creating a router
- Handle the no-router situation
- Check bool value, not just existence
- Pass NAT enable opts instead of hardcoding
- Support filtering by project
- Update record when updating OpenStack resource
Runtimeβ
- Scan all external networks in OpenStack
Scriptsβ
- Dynamically generate sidecar image path to avoid syntax errors
Settingsβ
- Set default values to avoid v1 API failures
Specβ
- Correct GPU type inconsistency
- Use
getK8SFlavorinstead of getting flavor directly to avoid flavor-not-found errors
Tenant Adminβ
- Make CIDR optional when converting private networks
Token Syncβ
- Fix incorrect resource release order
UI Libraryβ
- Fix cube dropdown floating element position issue
- Fix cube filter dropdown search input not always visible
Volumesβ
- Fix incorrect default storage type parsing for AWS provider
Miscβ
- Fix instance list page missing floating IP display
- Fix workload dropdown missing instance interface options
- Fix incorrect result when assigning floating IP to instance interface network
- Accept both string and int types due to differences between AWS and Cube
- Add missing network field to instance creation payload
- Fix networking page floating IPs tab "Assigned To" text
- Fix incorrect contact us link URL
2.0.0 - 2025-03-28β
Addedβ
- Introduced Cloud Usage Billing Module to enable cost tracking, chargeback, and showback for internal/external users.
- Added support for Auto-Scaling Groups (ASG) for VM workloads, enabling dynamic compute resource scaling.
- Rolled out a refreshed UI with streamlined layout and improved navigation.
Changedβ
- Enriched CubeCMP v2 API to support new billing and ASG automation endpoints.
- Updated installation options to support offline deployment in secure environments.
Fixedβ
Applicationβ
- Fixed RBAC issues that prevented users from deleting applications.
- Fixed a UI bug on the image selection page during application creation.
Load balancerβ
- Fixed an issue where the load balancer was not deleted properly.
- Fixed an issue preventing applications from attaching to load balancer rules.
- Fixed a failure when creating the load balancer with HTTP and HTTPS protocols.
Instanceβ
- Fixed mismatch between imported instance image size and actual image size.
- Fixed snapshot and backup image deletion errors.
- Fixed an error preventing expired instances from updating their status to "expired".
Public Cloudβ
- Fixed AWS instance resize failure due to incorrect volume resizing.
- Fixed instance volume stuck in "creating" state after extension.
- Fixed a bug preventing AWS Kubernetes clusters fro being suspended or resumed.
1.4.1 β 2023-07-01β
Addedβ
- Introduced multi-tenant management features for projects and quotas.
- Enabled support for external authentication services (e.g., SSO).
- Added instance management capabilities for flavors, images, and monitoring.
- Included Kubernetes configuration options for node types and sizes.
- Enabled file share and object storage configuration.
- Added user activity and security history tracking.
- Introduced SSH key-based user authentication.
- Integrated cloud provider validation tools for administrators.
- Enabled Kubernetes-as-a-Service with cluster lifecycle management.
- Added support for Marketplace-based Kubernetes app deployments.
- Expanded storage service capabilities with NFS/CIFS shares and image management.
- Introduced network service management: floating IPs, firewalls, and load balancers.
- Added approval workflows for both instance and Kubernetes lifecycle management.
- Unified interface for managing AWS EC2 resources via CubeCMP.
Changedβ
- No previously released features were changed in this version.
Fixedβ
CubeCMP Platformβ
- Fixed password update issue for local accounts.
- Improved login theme compatibility with external authentication.
- Enhanced firewall rule enforcement on target instances.
- Secured authentication method for instance creation.
Kubernetesβ
- Fixed default node and pool setting inconsistencies.
- Resolved sorting issue in Kubernetes cluster list.
- Added support for UDP-based load balancers.
Public Cloudβ
- Fixed floating IP limitation for AWS elastic IPs.
- Resolved issue with duplicate firewall rule names.
- Enhanced volume information display in public cloud views.
Securityβ
- Hardened authentication methods used during instance provisioning.