Release Notes


Note

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

Warning - JSON Web Token for API integration, for users upgrading pre-7.5.1 CloudBolt

  • If you are upgrading from a pre-7.5.1 CloudBolt version and you have external systems calling into CloudBolt API, be aware that CloudBolt API calls now require the use of temporary access bearer tokens. For instructions on requesting and using bearer tokens, please see the API documentation.

Warning - External User Sync plug-ins, for users upgrading pre-7.2 CloudBolt

  • If you are upgrading from a pre-7.2 CloudBolt version and you have a modified external user sync plug-in, upgrading to 7.2+ will cause logins to fail. You can find this plug-in in the UI in Admin > Orchestration Actions > Other > External Users Sync.
  • Before upgrading, disable the external user sync plug-in, and then follow the example below (see LDAP User Permissions) to update your plug-in for CloudBolt’s new permissions model. If you need help, download your plug-in code and attach it in an email to our support group.

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 8.3 - Paige

8.3 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

MAJOR IMPROVEMENTS

Blueprint Catalog Redesign

The Catalog page for blueprints has been redesigned to support pagination. It also inclues new sorting options, like ‘Frequently ordered’ and ‘Recently Added’. If the catalog is full enough to require pagination, filters are presented in a sidebar to improve discoverability of blueprint categorization.

OpenStack Improvements

This release features a number of improvements for our OpenStack support.

  • Fix a provisioning error when ordering a VM with security groups.
  • Provide more useful error messages when the server is in an error state in OpenStack.
  • Speed up the order details page by saving ‘flavor’ (node size) information to a file and loading it from there, rather than having to access the API.
  • Add support for removing the ‘floating ip’ parameter from environments, making sure provisioning jobs do not fail from the lack of that parameter.

VMware Tags

CloudBolt now supports managing VMware tags on your servers by linking them to CloudBolt server attributes. When the value of the CloudBolt attribute changes on the server, so will the value of the tag in VMware. Likewise, when a tag is modified via VMware, that attribute will be updated in CloudBolt the next time that server is synced.

Adding Disks to Servers Through the API

Adding disks to a server in any resource technology that supports this, now can also be accomplished via the API. For specific instrucation and examples please see the API documentation.

New Global Viewer Role

There is now an additional Global Role called a Global Viewer. Users given this role will have permission to view, but only view, everything in the UI, except for the exceptions listed in the documentation. This can be helpful for users who want high-level visibility to CB, perhaps to view reports, but should not have any edit capabilities.

Database and webserver upgrades

CloudBolt has been upgraded to MySQL 5.7.22 and Apache 2.4.33. If you have any custom configuration for these services, please make sure that it is compatible with the new versions.

Ordering Blueprints Through the API

We’ve fixed a bug where a blueprint order placed through the API would exclude any sub-blueprint build items. Now, ordering blueprints with sub-blueprints through the API will include the sub-blueprint and all of its build items in the order.

XenServer Static IP Assignment

We’ve added the ability to assign static IP addresses to Xen VMs. To use this feature, provision a new VM with a static network in CloudBolt, assigning an IP address. IPs can be set through the order form, an IP pool, or an IPAM. Note that in order to configure a static IP, the VM must have XenServer tools installed, which can be done by provisioning with an image that already has the tools installed. Additionally, we’ve added the ‘refresh info’ server action to Xen, which will get and update basic info on your VM like power status, CPUs, memory, disk, and IP address.

New Version Naming Scheme

Each CloudBolt major & minor version starting with 8.3 will be named after a noteworthy power user of CloudBolt. These CloudBolt champions are nominated by CloudBolt employees then randomly selected amongst the pool of consenting champions. This code name, and a brief description of the champion is displayed in CloudBolt’s About dialog (but this can be disabled by adding ENABLE_CHAMPION = False to your customer_settings.py).

8.3 is named for Steve Paige, who has been a CloudBolt power user and admin at InterContinental Hotels Group since 2015. One of his favorite CB features (which he has also helped to shape through his feedback) is power scheduling of servers & resources.

Support for CredSSP over WinRM

CloudBolt now supports the CredSSP authentication mechanism when running remote scripts on Windows machines. CredSSP allows an application to delegate the user’s credentials from the client to the target server for remote authentication, and solves the ‘second hop’ problem that some users experience when running remote scripts from CloudBolt. Enable the new ‘Support CredSSP’ Parameter for any Servers that should use CredSSP when authenticating. Consult the Microsoft documentation on CredSSP for more info: https://docs.microsoft.com/en-us/windows/desktop/secauthn/credential-security-support-provider.

Font Awesome Upgraded to v5.3.1

The version of Font Awesome used by CloudBolt has been upgraded from version 4 to version 5.3.1. This includes thousands of new icons, as well as varying styles like solid, regular, and light. Note, the names of some fonts have changed, and the ‘fa’ prefix has been replaced by several prefixes to specify the style. Font classes that you have associated with actions and resource types should automatically update, but we recommend you review your current usage. Check out https://fontawesome.com/icons for more information.

Chef DK now included with CloudBolt

CloudBolt now ships with the current GA version of Chef DK, version 3.x. If you are using Chef with CloudBolt, please consult the Chef DK docs to make sure your Blueprints are using a compatible OS Build: https://docs.chef.io/platforms.html#chef-dk

OTHER IMPROVEMENTS

  • Added support for non-English vCenter handlers, by allowing the network adtapter prefix to be overwritten in settings 160260676
  • Names are now unique across both Parameters and Preconfigurations, so you cannot set a Parameter to have the same name as a Preconfiguration, or vice versa. This avoids potential ordering issues, and you will see a warning when ordering if you already have a matching Parameter and Preconfiguration. 159667885
  • When actions have long names, they will no longer break the page layout. 159314282
  • A new setting on Kubernetes container orchesterators allows specifying a prefix to the path to the API endpoint URL, for clusters that have non-standard URLs. 155369172
  • Order Validation plugins with validate_order_form() functions now have build_item passed as an argument. (You can use this to access build_item.blueprint.) 158148588
  • The output log of jobs will continually show the last lines of the output as additional output is added. 159045152
  • CB will now notify admins by email when the CB product license is within 30 days of expiration, rather than 7. This change will only affect new CB instances (it can be changed in upgraded CBs by going to Admin > Rules > and editing the rule titled “Email CB Admin when license warning for thresholds”). 159507005
  • On VMware vCenter resource handlers, the Templates tab now shows the last known status of VMware Tools. 159119766
  • Specifying new disk with with size ‘0’ no longer causes an error. 158543761
  • The default threshold for retaining sync VMs jobs & logs has been changed from 30 days to 7 days, and the delete old jobs recurring job changed to run once/day instead of once/week. 159125473
  • Previously, when a sync VMs job was initiated by a user from the CB UI, it would assign newly discovered VMs to that user. Now an owner is no longer set for those VMs. 159086420
  • Change the default number of rows shown in datatables from 10 to 25 158780556
  • Webhook content was previously limited to Latin-1 characters, but can now include the full range of unicode. 159149609
  • CIT jobs that have a number of retries set and are successful upon rerun are now marked as successful overall, instead of a warning. 159206787
  • VM deletion warnings are enhanced. 159081181
  • When importing networks from AWS and Azure environments, we now clean up old networks that were not fetched from the resource technology. This prevents users from trying to provision a server with a no-longer existent network. 158986534
  • Prevents unnecessary file deletion and creation when remote source code is fetched and there are no changes from the previous version. 157009965
  • Changed admin SSH url from http://localhost:8000/admin/admin/sshkeys/ to http://localhost:8000/admin/sshkeys/ and added a url redirect. 159495195
  • Various improvements have been made to the job engine, including permanently removing a deprecated config file that would allow job workers to run via init.d. 158511540
  • Importing and exporting remote scripts with instance-specific info will now take into account the hostname of a configured ‘Run on Server’. 159712260
  • Multiple custom field values are now prevented from being attached to the same object.
  • Local file content is only updated if it differs from remote content. 159574769
  • Improved the loading time of the order form. 159670201
  • Removing a blueprint parameter now also removes its options and constraints. 160158659
  • Parameters will no longer show when configuring an environment for a Server Tier if they will be overridden by a blueprint parameter. 160158659
  • Fixes a bug where blueprint-level parameters that did not have build items as a destination still caused build item parameters to be hidden. 160158659
  • MySQL server libraries will be kept up to date even if mysqld is disabled when using a remote database. 160003922
  • Azure no longer requires full owner priviledges for the subscription. The minimum permissions needed are now ‘Virtual Machine Contributor’ and ‘Storage Account Contributor’. 159186436

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 8.2.0.7

  • Ensure database connections are closed when jobs complete 156351124
  • Increase threadpool size to match eventlet pool 159712173
  • Fix deletion of Resource Handlers with templates/images that do not have OS Builds 158959906
  • Send job-specific log messages to the job’s log when using the alternate job engine 160333846

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 8.2

8.2 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • Upgrading to 8.2 may take longer than most upgrades because all database tables will be converted to a character set that supports UTF-8. If you want to create a backup of your database before the conversion, pass the -b flag when running the CloudBolt upgrader.
  • API orders using the AWS Security Groups parameter need to pass a list of strings instead of a single string.

MAJOR IMPROVEMENTS

Sequencing Server Actions

Admins can now control the sequence in which Server Actions are shown to users, namely for the buttons on a Server’s details page and the dropdown when running Server Actions in bulk.

Conditional Server Actions

Admins can provide more complex logic for deciding when a Server Action should display. This is done by associating a Display Condition Plug-in that returns True or False to indicate whether or not the Server Action should appear in the given situation. For example, you can now configure your custom Server Actions so they only show when a Server is on.

Continuous Infrastructure Tests

Version 8.2 adds extra flexibility for tests, it is now possible to assign to individual tests their own timeout (in seconds).

Choosing EBS Volume Type

We’ve made a number of improvements for specifying a type for AWS volumes. Previously, you could specify a volume type when provisioning a new instance by adding the ‘EBS Volume Type’ parameter to your AWS environments. We’ve made that parameter out of the box for all new and existing environments with the 5 EBS volume types as provided options. We’ve also added an out of the box dependent field for IOPS, which is required when creating ‘io1’ volumes. You’ll also be able to specify disk type and IOPS when adding disks to existing servers.

Sequencing Parameter Options

We’ve added the ability to define the display sequence of parameter options for orders. You can change the default display sequence by going to a parameter’s detail page and clicking on the edit icon under ‘Parameter Options’. Additionally, AWS instance types will be sorted by size by default, rather than alphabetically.

Importing and Exporting Blueprints with Dependent Parameters

Dependent parameters will now be included in blueprints being exported and imported. Any dependencies set on blueprint-level parameters and on the action inputs for blueprint actions will be automatically created if they don’t already exist.

AWS Server Utilization

With version 8.2, CloudBolt now supports the fetching and reporting of utilization data for AWS servers. Provided metrics are CPU, Disk I/O and Network Throughput. A Stats tab now appears on the server detail page for AWS servers, and the ‘Refresh all server utilization’ Recurring Job now refreshes usage statistics for AWS servers in addition to VMware servers. Additionally, AWS servers are now included in the CPU Utilization reports.

Server Utilization Reports

The two CPU usage reports have been updated to include additional server utilization metrics. In addition to CPU usage, the bar graph and the table reports display memory, disk and network utilization. These reports were previously named ‘Server CPU % Last 30 Days’ and ‘Server CPU % Table’. These reports are now referred to as ‘Server Utilization Graph’ and ‘Server Utilization Table’, respectively.

Unicode support

The database encoding has been updated to support UTF-8 characters, so your data can now include non-Latin alphabets and emoji. 😀

Azure Improvements

This release features a number of improvements for Azure Resource Manager support:

  • Added a new out of the box parameter ‘deallocate_with_power_off’ available to all Azure ARM servers. This allows you to set VMs to be deallocated when powering off through CloudBolt, which causes the VM to stop incurring charges, but will delete the internal and public IP. 158474788
  • We’ve added support for Azure Availability Sets. To add an availability set when creating a new VM, check the ‘Use Availability Set’ parameter and then either choose from existing or auto-create a new availability set by selecting a resource group and then selecting an option from the ‘Availability Set’ parameter. 131575627
  • Along with the existing public images and private VHD images, private managed images are now supported in Azure.
  • Private images are no longer allowed to be provisioned into a custom storage account, so if one is chosen, it will be ignored and a warning will be written to the logs. However, the VM will be provisioned successfully using a managed disk.
  • We fixed a bug where the ‘Edit Settings’ form on an Azure ARM resource handler would throw an error when Azure credentials were invalid. It will now show a more useful message, reminding you to update your credentials. 155561778

Red Hat Enterprise Virtualization

The Red Hat Enterprise Virtualization resource handler is no longer supported. Please contact us if you have questions or would like to have support in a future version of CloudBolt.

OTHER IMPROVEMENTS

  • A DevOps Admin will now be able to run all Actions on Servers and Resources, which was the original intention. 156379400
  • The AWS Security Groups parameter is now a multi-select on new CloudBolt instances. 157888865
  • Previously, the ‘View log’ and ‘Download log’ buttons would show for jobs which didn’t have a log. We now hide these buttons when there is no log available. 156638191
  • Previously, a blueprint item’s “Show on order form if needed” option hid the item’s form if it was submittable when the order form loaded, automatically choosing the first available input if there were multiple options. It will now only hide if there are no inputs where a user could make a choice. 156675086
  • Fixed a bug that prevented users from importing environments with instance-specific info. 158345210
  • Efficiency improvements to provision job 158502822
  • Fixed issues in the regenerated parameter options field dependency, where options would not generate properly if the controlling field was predefined on the blueprint or provided on an environment. 158807938
  • Also fixed an issue which was preventing an order form from submitting when a generated option was chosen. 158808082
  • Fixed a bug that prevents users from having the same images on different resource handlers of the same technology 158679535

What’s New in CloudBolt 8.1.1

MAJOR IMPROVEMENTS

Subgroup Inheritance of Parameters

We’ve made inheritance of parameters across groups less restrictive. Subgroups will now be able to override parameters which have already been set on a parent group. When there is multi-level inheritance, a subgroup will always inherit from the nearest ancestor. See the docs on Subgroup Inheritance of Parameters for more details and examples. If you’re not interested in utilizing this feature, you can disable subgroup inheritance of parameters globally from Miscellaneous Settings > Inherit Group Parameters.

OTHER IMPROVEMENTS

  • Fixes errors with templates whose resource handlers were deleted. 158126821
  • Fixes a provisioning bug when hostnames are specified for multiple servers. 158204537
  • Resolves an issue with the form for adding a disk to an Azure VM. 158327110
  • Added the ability to have placeholder text in password fields 158337283
  • Fixes error that came up when importing GCE networks. #158366263
  • Detect ssh-keys returned in the new way by the GCE API. #158371572
  • Fixes a bug in the job engine where the number of open files was artificially limited. #158313776

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 8.1.0.1

UPGRADE IMPROVEMENTS

  • Existing Azure images could disappear when upgrading from CloudBolt 8.0 to 8.1. That has been fixed. 158330558

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 8.1

MAJOR IMPROVEMENTS

Azure

Users can now choose to provision servers using a custom storage account for disks, or let Azure manage disks automatically. Your environments and order forms are set up to use managed disks by default.

As before, if users want to use a custom storage account for some reason, they also have the choice of auto-creating a new one based on the hostname or selecting an existing one. To remove this choice completely, set a global Option of False for the ‘Use custom storage account’ parameter predefine a value (any value - as long as ‘Use custom storage account’ is False it is ignored) for the ‘Azure Storage Account’ parameter on your blueprint build items.

Environments have a new parameter “Storage Type” to configure storage performance now: Standard (HDD) or Premium (SSD). Both managed disks and custom storage accounts support this choice. Consult the Microsoft Azure documentation for High-performance Premium Storage. Standard will be used by default.

This release also features a number of smaller improvements for Azure:

  • We’ve added support for using the same os build across multiple regions on Azure resource handlers.
  • We’ve improved the rule ‘Fetch and Cache Available Azure Images’, allowing you to use a whitelist of images to speed up the process. You can implement your own whitelist by adding a list of images named AZURE_IMAGE_WHITELIST to your customer_settings.py. You may disable the use of a whitelist on the rule’s plugin by setting the default value for the ‘use_whitelist’ action input to False. 156956579

Nutanix Acropolis

The Nutanix Acropolis resource handler now supports clusters. For each cluster brought under CloudBolt management, a new environment is created. Management of disks has been improved to allow adding disks at provision time, adding and removing disks on existing VMs, and extending the root disk of an existing server. Server CPU and Memory can be modified. Subnets are now associated with NICs on CloudBolt servers.

Mapping LDAP Attributes to Users

We’ve added a feature that allows you to map LDAP attributes to users in CloudBolt. From the new ‘Attribute Mapping’ tab on an LDAP Utility’s detail page, you can add attributes from LDAP and map them to existing parameters in CloudBolt. You may then click ‘sync mappings’ and add the mappings to a user. You’ll then be able to view a user’s attributes from the user’s detail page if the parameter has ‘Show on Objects’ set to True.

Tracking the History of Resource Handlers

You can now see history events for resource handlers. You’ll be able to see when a resource handler was created and when a network has been added or deleted from the resource handler. History can be viewed from the new ‘History’ tab on a resource handler’s detail page, or from the admin/history list.

Tracking the History of Orders

You can now see history events for orders. You’ll be able to see when an order was created and the modifications, approval and other order life cycle events. History can be viewed from the order’s detail page, or from the admin/history list.

Ability to Inherit Group Permissions

If you would like your subgroups to automatically have the same permissions as their parent group, it is now possible to enable the inheritance of Users and their Roles. This will impact both internal and external users, and will keep subgroup permissions in sync with parent group permissions while enabled.

Parameter Options Can Be Loaded Remotely

On forms, options for a parameter can be supplied through actions a the “Generated Parameter Options” trigger point. But if the set of options is large (more than a few hundred values) this approach may take too long to render. Now there is a way to provide a form field that renders immediately and then auto-suggests matching options as the user types. This asynchronous loading of options makes for a lightweight, responsive user experience.

To enable this, go to Admin > Orchestration Actions and click the download-cloud icon in the top right to view actions available on the CloudBolt Content Library. Search for “Sample async param options plugin” and import it to get started.

Password Input Improvements

In addition to the expected masking and security concerns around password fields, CloudBolt also tries to determine if a password input should be presented with or without a confirmation field. The dual treatment of password fields was not aways intuitive. In version 8.1 users have the ability to switch to a more modern user experience with a single input element for all password fields that allow users to temporarily showing what is being typed. You can turn the new behavior on for all password fields by enabling Password Toggle in Admin > System > Miscellaneous Settings.

Customizing the Remote Script Directory

When remote scripts are written to a target *nix VM, the default directory it uses is /tmp/. For Windows VMs running remote scripts via VMware Tools, the directory is C:\Windows\Temp\. Both of those defaults can now be modified in Admin > Miscellaneous Settings.

Improved Stats tab for vCenter servers

The Stats tab for vCenter servers now includes charts for Disk I/O and Network throughput. Overall performance for this tab has been improved. In addition, stats for an individual server can now be manually refreshed from this tab.

Ordering on behalf of a recipient user

It is now possible for users with the appropriate permission to select a recipient for an order on the order form before submitting it. The recipient will own the Server(s) and/or Resource(s) created by the order, rather than the requester (who would own them by default). This feature is also available in the API, where it can be used to replace the existing approach of setting the order owner to someone other than the API user, or in addition to it.

OTHER IMPROVEMENTS

  • Quick Setup no longer guides you through setting up your first Resource Handler, and has been reduced to three steps. 156018644
  • In-product guidance now helps you set up your first Resource Handler via handy warning icons + infotips. 157528193
  • Fixed missing resource-parameters attribute on order serialization that was preventing the use of resource paramenters on API order requests 157565300
  • Recurring jobs can be configured to start new jobs on schedule even if a previously spawned job is still running. 156559049 156486359
  • Added the ability to set a default owner for all CIT tests, if you need CIT jobs to have an owner even when they’re run automatically on a schedule. 155451258
  • We’ve improved the ‘Change Resources’ server button. The form now populates an initial value that reflects the existing values of the server for both CPUs and Mem Size. It will even do so when the existing value on the server is not an option on the environment or group, allowing you to change only one value when exceptions exist. 156133713
  • We’ve improved the rule ‘Fetch and Cache Available Azure Images’, allowing you to use a whitelist of images to speed up the process. You can implement your own whitelist by adding a list of images named AZURE_IMAGE_WHITELIST to your customer_settings.py. You may disable the use of a whitelist on the rule’s plugin by setting the default value for the ‘use_whitelist’ action input to False. 156956579
  • Fixed a bug around Syntax highlighting, where highlighting code and changing the syntax would removed the code. :bug: 155758058
  • Added a miscellaneous setting to enable/disable Cost preview per environment in the order form. 157137954
  • Fixed a bug where Resource Pool usage counts were reported incorrectly. 157234534
  • Added the ability to modify the maximum page size of API calls in Customer Settings. 157216772
  • Made hostname checks case insensitive with an option of sensitive in Miscellaneous Settings 157299905
  • The Most-Recently-Used list under Resources has been temporarily removed because it was consistently inaccurate. 157234646
  • A management script has been added to automatically cancel or requeue jobs that might have been dropped by the job engine. 157301579
  • The Refresh All Server Utilization Recurring Job has been sped up considerably. 156961278
  • The skipped messages are now being captured in the provisioning job log. These skipped messages get generated upon configuring a remote script for specific settings. These specific settings include: Resource technologies, OS families, Configuration managers and Server. 150051566
  • The ‘Cost Savings from Power Schedules’ report can now be filtered by group. 157162909
  • Actions now appear in the global search results. 157566936
  • VMware API connections are reused more often for better efficiency. 157606054
  • Remote scripts no longer log the rendered script contents. 157161739
  • New trigger point for post-environment creation. Useful for automatic setup of environment parameters. 157616068
  • We’ve improved how networks are selected when ordering. This fixes a bug where non-unique network names were incorrectly selected when provisioning servers. 151303061
  • Kubernetes YAML files can now only be viewed by admins and blueprint managers. 156486165
  • You can provision AWS instances with multiple security groups by enabling the Allow Multiple Values option on the Security Groups parameter. 154968465

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 8.0

8.0 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • Google Compute Engine images have been updated. If you experience any issues provisioning your existing images, please try re-importing them.

8.0 UPGRADE NOTES - XaaS Changes for your Custom Code

A variety of models, methods, and attributes have been updated to better align with the new structure of Resources in general, rather than Services in particular. If you reference any of the altered items in custom code such as actions or UI extensions, you will need to update your code accordingly.

If you have not written any custom code, you will not need to make any of these changes.

  • The services app has become the resources app. This means that if you have any import statements like “from services.x import y”, you will need to change them to “from resources.x import y”. Similarly, imports of the type “from services import x” will need to become “from resources import x”.

  • The following models have been renamed, so you will need to change any use of the old one to instead use the new one (including any indirect references from other models such as service_set):

    • Service has become Resource (service_set becomes resource_set)
    • ServiceAction has become ResourceAction (serviceaction_set becomes resourceaction_set)
    • ServiceNetwork has become SoftwareDefinedNetwork (servicenetwork_set becomes softwaredefinednetwork_set)
    • ServiceAppliance has become SoftwareDefinedNetworkAppliance (serviceappliance_set becomes softwaredefinednetworkappliance_set)
    • ServiceHistory has become ResourceHistory (servicehistory_set becomes resourcehistory_set)
    • ServiceActionSerializer has become ResourceActionSerializer
  • The context available to actions now has resources, resource, and resource_name (in blueprint_context), rather than services, service, and service_name. For example, if you have a plug-in that uses {{ service.id }} it will need to become {{ resource.id }}. Similarly, {{ blueprint_context.service_name }} should instead be {{ blueprint_context.resource_name }}.

  • If you have a get_options_list method in a Generated Parameter Options Orchestration Action or a generate_options_for_<action-input-name> method inside a CloudBolt Plug-in, those methods will now receive a resource keyword argument, rather than a service one, where applicable.

  • If your code calls generate_string_from_template, be aware that method now expects resource in the context dictionary it receives, rather than service.

  • If you have a Service tab UI extension, it needs to become a Resource tab UI extension. Change the model passed to the tab_extension decorator from Service to Resource.

  • A number of out-of-the-box actions have had changes made to their code. If you have changed them, you will need to update your versions to reflect the new out-of-the-box code. The changes should mostly align with these Upgrade Notes. A number have also been renamed, which should update smoothly without intervention but is important for awareness.

    • Delete Service, renamed to Delete Resource
    • Associate Servers
    • Scale Service, which has also been renamed to Scale Resource and had its label changed to Scale
    • The actions in the Check Services for Scaling Conditions rule used for auto-scaling, which is not fully out-of-the-box but provided by CB in cloud_bursting.py. Renamed to Check Resources for Scaling Conditions, along with its condition. Updated actions include Get CPU Utilization from Parameter
    • The actions in the Expire Services rule, which has also been renamed to Expire Resources, had its condition renamed to Find Expired Resources, and had its “then” action renamed to Send Email About or Delete Expired Resources
    • Create Load Balancer
    • Create virtual network
    • A couple other action files that aren’t out-of-the-box currently, but may have been provided by CB: set_url_for_service.py (renamed to set_url_for_resource.py), arm_extension_puppetagent.py
    • A few action files that are no longer used were removed: xaas.py, generate_prov_service_item_options.py

8.0 UPGRADE NOTES - XaaS API Changes

A variety of API endpoints, serialization keys, and sample scripts have been updated to better align with the new structure of Resources in general, rather than Services in particular. You’ll likely want to re-download the sample scripts here, and may need to update any of your own scripts and processes for interacting with the API.

If you do not use the API or import/ export Blueprints or Actions, you will not need to make any of these changes.

  • The way that Blueprints are serialized has changed, which will also affect import and export. Importing an old Blueprint export will not work properly.

    • The create-service metadata key has been changed to resource-type
    • The service-name-template metadata key has become resource-name-template
    • There are new labels for the destinations of Blueprint-level parameters
    • The service-management-actions metadata key has become management-actions
  • There is no longer a services collection. Resources are accessed in the API through an endpoint of the format /resources/<name of type>. An individual Resource is found at /resources/<name of its type>/<its ID>.

  • The service-actions collection has become resource-actions. This means that if you want to export or import a Resource Action through the API, the correct collection to pass in (say using the export sample script) is resource-actions.

  • A number of sample scripts have been updated and/or renamed:

    • In order_blueprint.py, it now expects service-name, rather than resource-name, in the deploy-items argument
    • delete_service.py has become delete_resource.py, and has both changed its service-id argument to resource-id and added a resource-type argument
    • import_resource.py and export_resource.py have become import_object.py and export_object.py, respectively
  • The way that Resources (as compared to when they were Services) are serialized has changed in that the service-networks metadata key has become software-defined-networks and the service-item key that used to appear for items such as networks and servers has been changed to tier

  • In the serialization of a Job, the service metadata key has become resource

  • In the serialization of a BlueprintOrderItem, the service-name metadata key has become resource-name

8.0 UPGRADE NOTES - Other XaaS Changes

In addition to the custom code and API-impacting changes described above, XaaS also introduced some other changes to URLs, settings, and the UI that you may need to be aware of.

  • URLs that included the word services will now instead have resources and potentially a Resource Type.

    • The details page for a single Resource will change from /services/<id> to /resources/<id>
    • The list page for Resources of a particular type will be /resources/<type name>/list/, which means the list of Services will change from /services/ to /resources/service/list/
  • URLs that included the phrase service_actions will now have resource_actions. For example, /actions/service_actions/ becomes /actions/resource_actions/.

  • If you have overwritten CONTENT_LIBRARY_COLLECTIONS in your customer_settings.py, be aware that service-actions in that list has changed to resource-actions.

  • The switcher between the Servers and Services lists that used to appear on both those pages has been removed. You can navigate to those pages using the nav bar at the top of the page, where both are now under Resources.

  • The Pre-/Post-Delete Service trigger points have become Pre-/Post-Delete Resource, but should have the same Orchestration Actions associated with them.

8.0 UPGRADE NOTES - Hiding of the CloudBolt Admin global role

Most CloudBolt customers do not need the distinction between the Super Admin and the CloudBolt Admin global roles. To reduce confusion, the CloudBolt Admin role is now hidden by default and any user granted the Super Admin global role will automatically be granted CB Admin. When upgrading CloudBolt to 8.0, all users who have either CB Admin or Super Admin will be granted both. If you need to keep these two roles separate, you can edit customer_settings.py and add this line: CB_ADMIN_ENABLED=True.

MAJOR IMPROVEMENTS

Upgrade to Python 3

CloudBolt has upgraded its Python version to 3.6.4.

Note

Any custom Plug-ins and UI Extensions must also be updated before upgrading to this version. Our out-of-the-box Actions have been updated to be compatible, and a guide is available to help in the transition. https://support.cloudbolt.io/hc/en-us/articles/115003824766

X as a Service (XaaS)

CloudBolt 8.0 includes an exciting paradigm shift in what can be deployed by a Blueprint. Namely, Administrators can now extend CB by defining custom Resource Types, and Blueprint managers can then choose which of those types their Blueprint should deploy, if any. If a Blueprint has a Resource Type selected, the high-level result of deploying that Blueprint (beyond what’s defined on the Build tab) will be a Resource of that type. The existing Service objects that used to be created by some Blueprint deployments are now an out-of-the-box Resource Type. While this new approach opens up many new opportunities, it does involve a shift in the way many features are conceptualized and function, so please review the Upgrade Notes for details on any changes you may need to make.

Job Engine Stability

The job engine workers are now being managed by Supervisor, which can automatically restart a crashed process. The worker process libraries have also been updated, and a number of default configuration settings have been improved.

Per-User API Access Permission

CloudBolt Admins may now remove access to the API for specific users by visiting that user’s profile and unselecting the “API Access” permission. When upgrading, all users will obtain this permission automatically. When creating new users (either manually or through a third-party authentication platform like LDAP), those users will obtain the permission as well.

In addition, CloudBolt now reports a generic error message during failed API authentication attempts to prevent malicious users from brute-forcing a list of valid usernames on the CloudBolt system.

Rates on Resources

Previously, servers were the only object for which CloudBolt tracked a rate, and while rates could be reported on groups, environments, etc., these were always aggregations of server rates. 8.0 introduces the ability to model the rate of items in blueprints other than server tiers. For example, a blueprint could be created with a CloudBolt Plug-in that provisions a storage bucket in a public cloud, and a rate could be associated with this item in the blueprint. Anytime users order that blueprint, they will create a resource that has that rate associated with it.

Catalog Management Improvements

Admins can now define a set of labels for categorizing blueprints in Admin > Catalog Management. Blueprint managers can then tag their blueprints with one or more labels. This enables end users to filter their Catalog view by label in addition to group, environment, and OS build. There is a new search field to find blueprints by name or description. The catalog can be sorted by sequence (default) or name.

Sub-Group Inheritance of Parameters

Groups will now inherit parameters, along with their options and constraints, from parent groups. These parameters will influence order form customization such that inherited parameters will override any parameters previously set on sub-groups.

Viewing Bills

You can now view recent costs from AWS and Azure Resource Manager. From any AWS resource handler’s detail page, you can see last month’s total cost displayed in the Overview tab. For Azure ARM resource handlers on the public cloud, you can view a pdf of your latest invoice from the Overview tab.

Azure Improvements

This release features a number of improvements for Azure support:

  • We’ve renamed our Azure resource technologies to better reflect Microsoft’s switch from service management to resource management. What was ‘Azure Resource Manager’ is now ‘Azure’, and ‘Azure’ (Service Manager) is now ‘Azure Classic’. 155453917 150713327
  • As Microsoft phases out support for Azure Classic, the resource technology will be deprecated in a future release of CloudBolt. If you currently use an Azure Classic resource handler, please contact support to learn more about transitioning to Azure Resource Management.
  • Private images are now supported. When images are fetched and cached, they will now include private images along with the public images. 143903523
  • Because Azure requires a password field for new servers, we’ve added an out-of-the-box ‘Azure Password’ parameter for Azure (Resource Manager) Environments. This also provides a constraint for validating Azure’s password requirements. 155485173
  • Cloning Azure Resource Manager environments will now include Resource Groups and Storage Accounts in the clone. 155451924
  • We’ve cleaned up the log statements created by msrest, no longer filling application.log with verbose response content. 151136511
  • We’ve optimized the loading speed of the Azure ‘Import Images’ dialog, which you can reach from an Azure resource handler’s detail page, under the ‘Images’ tab. 155642146

AWS Improvements

We’ve provided a new tech-specific parameter ‘Auto-delete EBS Volumes on Termination’ which will be automatically added to existing AWS environments. When set to True on a server, all attached root and non-root EBS volumes will be automatically deleted on termination of the instance. This parameter will be set on servers provisioned after this upgrade. Any existing servers won’t be affected. If you don’t want this behavior, remove the parameter from AWS environments.

Kubernetes Improvements

This release features a number of improvements to Kubernetes support:

  • Kubernetes objects deployed via CloudBolt are displayed on the cluster details page, as well as the details page of the resource they belong to.
  • You can edit the YAML of deployed Kubernetes objects.
  • You can now provision to namespaces besides default by adding the “namespace” attribute to the “metadata” section of your YAML files.
  • You can now use {{ group }}, {{ job }}, {{ blueprint_context }} and more in your YAML files.
  • You can authenticate with any strategy that uses a bearer token, including service accounts, static tokens, and bootstrap tokens.

Power Scheduling Resources

You can now set power schedules on any resource containing servers from the resource’s ‘Power Schedule’ tab. This allows you to schedule collections of servers to be powered on or off as a group in a specific sequence. The new ‘Auto-Power Control Resources’ recurring job will use the deploy sequence from the server tiers on the blueprint the resource was deployed from to power the servers on in order. When powering servers off, it’s done in the reverse order.

LDAP Mapping Improvements

  • The Super Admin role can now be added to an LDAP mapping.
  • You can now do a dry run of a sync even if you have modified the out-of-the-box sync plugin.
  • You can do an actual sync from the Mappings tab, as well as a dry run.
  • You can sync permissions for all users in an LDAP domain at once. Note that this only includes users who have previously logged into CloudBolt.

OTHER IMPROVEMENTS

  • Fixed an issue where sub-blueprints were not being passed in the context for blueprint actions. 155568834
  • Google Compute Engine now provisions faster. The image list has also been updated. 155577636
  • Improved the user experience for visually impaired people that rely on a screen reader, and improve compliance with Section 508 accessibility standards. 3821673
  • Generated Parameter Options Orchestration Actions (Programmatically-Generated Options) are now shown on the details page for a Parameter to make them more discoverable. 155420577
  • Remote Desktop connections using NLA will now prompt for Domain (optional). To connect with non-domain credentials, leave the field blank. 155301652
  • Fixed a bug where VMs resources wouldn’t update if they were custom size in GCE 155042939
  • A ‘GCE Network Tags’ parameter has been added that will attach provided value(s) as tags to servers provisioned in GCE. 154530295
  • Fixed the blank ‘Power’ column (pictographs) on the Custom Server Report. 155235969
  • Fixed a bug where server context wasn’t passed in email hook in pre/post power on/off hook point. 155602257
  • The CB Admin global role is now hidden to prevent confusion. 156021211
  • The Interactive Servers Report table updates correctly as the chart above is filtered. 155628105
  • Order form validation errors for network fields are now shown. 154848440
  • Templatetized From Address field of emailhook. 156486774

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.7.3

MAJOR IMPROVEMENTS

Auto-Select Environment Plug-ins

Each server tier in a blueprint may now be associated with an auto-select environment plug-in. This allows BP admins to specify custom logic for choosing the best execution venue for the workload. For example, a BP admin could provide a plug-in that automatically selects the least cost public cloud to run the VM, or the internal virtualization environment that is the least utilized. For more information on the Auto-Select Environment Plug-in and CloudBolt Plug-ins in general see the Auto-Select Environment Plug-in topic in the CloudBolt Plug-Ins documentation.


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.7.2

MAJOR IMPROVEMENTS

Generated Option Parameters Improvements

Prior to version 7.7.2, generating options for parameters using an action required a deep understanding of the CloudBolt architecture. It required, for instance, understanding all the places the action might get called from and the OOTB (out-of-the-box) behavior for parameter options. Starting in version 7.7.2, it’s possible to affect the options for a parameter on select contexts and default to the OOTB behavior in other contexts. It is also possible to bypass the OOTB filtering of generated options by constraints defined elsewhere in the product. For more information on generated parameter options see the Generated Parameter Options Appendix.

Azure Stack Resource Handler

Support for Azure’s on-premise cloud platform has been added. Functionality should match that of Azure’s public Resource Manager. For more information, refer to https://azure.microsoft.com/en-us/overview/azure-stack/.

Dynamic EC2 Regions

Past versions of CloudBolt relied on the static EC2 regions included with the botocore library to display lists of available regions to users. CloudBolt now attempts to lookup regions from the AWS web service to fetch the latest list of regions. New regions will now appear as soon as they’re available to EC2 users. If CloudBolt cannot reach AWS to fetch these regions, or the request takes too long, it falls back to the botocore static list of EC2 regions. 154526566

External source code caching

After fetching source code from an external system, CloudBolt will keep a cached copy. If connection to the system later fails and the source code can’t be accessed, CloudBolt will fall back to the cached version. This applies to plug-ins, remote scripts, and Kubernetes config files.

OTHER IMPROVEMENTS

  • Allow for multiple AMIs in OS Builds for the same resource handler. 151774553
  • Release notes were moved to a shorter URL, /release-notes.html
  • Fixed a bug where NICs lost the associated network 154678401
  • Fixed a bug where already-deleted snapshots in GCE couldn’t be deleted in CloudBolt 154095690
  • Added ability to cancel multiple jobs at once from the Jobs list page.
  • The resolution of the CloudBolt favicon has been increased.
  • Added a new weekly recurring job “Refresh Server Rates” which updates the rates used for calculating cost estimates on GCE and AWS servers when their pricing has changed.
  • Added ability to control the order in which Action Inputs are shown on an order form. 152357278
  • Improved the warning message when deleting Azure Resource Groups and Storage Accounts. 155041959
  • Updated available AWS instance types 154538677
  • Azure servers now set their power status to ‘Off’ when Azure reports their status as ‘stopping’. Before, they would have a power status of ‘Unknown’ until Azure reported it as ‘stopped’. 155344290
  • The Azure Resource Manager Rate Hook action now uses the proxy configuration set in Miscellaneous Settings to fetch rate data from Azure. 155424581

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.7.1

MAJOR IMPROVEMENTS

Server power schedules

Power schedules now indicate the applicable time zone. When viewing the Power Schedule tab, this is the user’s local time zone - automatically determined from their local system. When editing schedules, the time zone of the schedule is clearly shown. In the future, we look forward to making more improvements to time zone support for this feature.

Manage more specific permissions for server disks

The server.manage_disks permission has been split into three distinct permissions: server.add_disks, server.remove_disks, and server.resize_disks. This provides admins finer control over users and their permissions. Roles with the server.manage_disks permission will be updated to include these three permissions by default.

OTHER IMPROVEMENTS

  • This release includes a CloudBolt High Availability guide.
  • The Global Defaults for Parameters will now only be created once. In previous versions of CloudBolt, if these were deleted, they would have been re-created on every upgrade. 152683195
  • If RADIUS two-factor authentication is enabled, the authentication token is no longer required for API calls. 154810136
  • A bug resulting from syncing an Azure Resource Manager VM with a non-standard size has been fixed. 154742702

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.7.0.1

This release includes a single fix for a bug related to the console feature. 154650343


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.7

7.7 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • Changes have been made to the out-of-the-box “Scale Service” action to make it more resilient. If you have changed it, we suggest updating your version to reflect the new out-of-the-box code.

MAJOR IMPROVEMENTS

Job Engine Refactor

The job engine has been refactored to use a more robust queue and worker architecture. Default CloudBolt installations should upgrade automatically. However, high-availability environments will need to disable the the job engine on their secondary instances. For more information, see the docs on The Job Engine.

Remote Script Clean-Up

Remote Scripts now have a boolean field to decide if the temporary file on the target VM should be deleted after the script runs. By default, the boolean is True, and the scripts will get cleaned up. However, leaving them on the target VM can be useful for debugging purposes, so the option is provided.

Enable and Disable Console at Resource Handler level

The ability to enable or disable the console feature is now available on individual resource handlers, rather than only at the global level. Multiple resource handlers can also be managed in Miscellaneous Settings.

Support for Various Azure Cloud Environments

The AzureRM resource handler now supports connecting to cloud environments other than the default public cloud. The new options now include Germany, China, and US Gov, and can be selected via the resource handler’s credentials form.

OTHER IMPROVEMENTS

  • Improved the remote script documentation to describe how to enable encryption on winRM-based script executions. 153571623
  • Improved the API documentation section to answer the common question of extending the token expiration and to provide the link to documentation for other token related advanced parameters. 154190246
  • In rare cases, a Server Error could occur with Permission issues on the application.log. That is now prevented. 152724717
  • Improved fetching of Azure ARM VM sizes. 153516015
  • Improved Section 508 accessibility features: Windows High Contrast Mode and keyboard navigation support for MS Edge browser. 153464629 153267431
  • Support browsing and searching an overview of history events on a new page accessible from the admin page. 153414775
  • Added Job Logs to API 153290546
  • The API sample scripts have been consolidated - the “1step” scripts have been made the main ones, and the prov_server.py script has been removed (order_blueprint.py should be used instead). We recommend re-downloading the sample scripts here . 152943866
  • Fixed blank order form when blueprints have CloudBolt Plug-ins with Python errors. 153461686
  • Fixed webhooks to operate within environment and resource technology constraints. 153745934
  • Made Scale Service action more resilient, especially in the case where the original install job has been deleted. 153609868
  • Improved unicode support 152780698
  • Parameters can now be made dependent on OS Families (ex. only show a particular parameter if a Windows OS Build is chosen) #153834225
  • Order form shows “Select group” placeholder instead of choosing initial group when there is a choice of groups. 153619213
  • Fixed job tree not displaying Delete Server jobs created by Delete Service jobs. 153953220
  • Added ability to adjust timeout for sample Azure ARM template deployment script. 153195353
  • Some older versions of CloudBolt had an issue upgrading to v7.6, with an error loading the MySQLdb module. That has been resolved. 153031185

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.6.0.2

This release includes a single fix for a bug related to upgrading the MySQLdb module. 153031185


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.6.0.1

This release includes a single fix for a bug related to blueprint permissions. 153498607


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.6

MAJOR IMPROVEMENTS

Action Input and Dependency Improvements

When viewing a CloudBolt action that has action inputs, the action inputs are now links to a detailed page with information on the action inputs. Placeholder text and dependency info can now be defined on them, so that some action inputs can be specified to appear only when another action input has a specified value.

View Savings from Power Schedules

There is a new report entitled “Savings from Server Power Schedules” that summarizes costs by technology over arbitrary time periods. Only visible to CB Admins. Detail views of servers with power schedules now include a prediction on cost impacts for end users.

Internationalization

Support for translating CloudBolt’s user-facing content into other languages has been added. More information on how to translate your CloudBolt experience can be found in the i18n documentation

OTHER IMPROVEMENTS

  • Updated pywinrm from 0.0.3 to 0.2.2 and requests from 2.18.1 to 2.18.3 . 153177307
  • Improved the visualization of power schedule on servers, both in the server tab and in the list view. 152772986
  • Support seeing/updating the power schedule on multiple servers, from any server list view. 152862687
  • Updated noVNC from pre-0.5 to 0.6.1. 152123470
  • Password fields no longer revert to blank when you submit a form with errors. 152096930
  • Removed Admin > Global Parameter Defaults. Defaults can now be set from parameter detail views. 152248583
  • User logins, failed logins, and logouts logged in new authentication log. 151298042
  • Fixed several cross-site scripting (XSS) vulnerabilities around Group names, Environment names, Preconfiguration labels, and Miscellaneous Settings. 152250234
  • Fixed an issue where a VM Synchronization job could interfere with a provisioning job. 151500814
  • Support for static IP assignment when provisioning Nutanix Acropolis VMs. 152460188
  • Disabled debug logging in /var/log/cloudbolt/guacg.log to prevent usernames and passwords from being logged. Need to re-enable it? Add the -d flag in /etc/init.d/guacg and run service guacg restart. 152498996
  • Improvements and fixes for nested blueprints. Sub-blueprints are no longer required to create services. 151298042
  • On SoftLayer, added support for running remote scripts and improved support for SSH/RDP. #151048550
  • Add a relationship between UserProfiles and CustomFieldValues (parameters) to allow associating extra information with users in CloudBolt. 152700710
  • Additional sub-interface IP addresses on VMWare servers are now visible on the corresponding NIC details on the server’s Networks tab. 151231362
  • It is now possible to order a blueprint in a single call to the CB API. See the order_blueprint_1step.py API sample script for an example of how to do this. 152890043
  • CB Admins will now see a button on blueprint order details pages that displays info about how to recreate that order in the CloudBolt API. #152906991
  • The default timeout for all jobs can now be customized in Admin > Miscellaneous settings, 151141087
  • Fixed error when creating Kubernetes Ingress resources. #143544563
  • Kubernetes orders can now be added to Continuous Infrastructure Testing. #152732865

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.5.1

MAJOR IMPROVEMENTS

API Token-based Authentication

As added security CloudBolt API now adheres to the industry standard use of temporary session tokens. For instructions on requesting and using bearer tokens, please see the API documentation.

OTHER IMPROVEMENTS

  • Fixed vulnerability around delete servers using the API 152445165
  • Enabled ‘servers’ collection in the ‘_links’ attribute of a serialized job. 152456136

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.5

7.5 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

7.5 UPGRADE NOTES - Changes to BP ordering models, methods, context, API

A variety of models, methods, and attributes have been updated to be more accurate and easier to understand. Our hope is that this will better allow everyone to work with the blueprint ordering aspect of CloudBolt most effectively going forward.

If you have not written any custom code and do not use the API, you will not need to make any of these changes. The upgrader includes logic to inform you about Actions you have in your CloudBolt that include any of these terms that need to be updated. It will print a message at the end of the upgrade log if any such Actions are found, as well as sending an email to the defined “CB Admin E-mail” if Email Settings are configured correctly.

  • To access context about the overall blueprint in an action (e.g., a parameter value on one of the tiers), actions need to use blueprint_context rather than service_context (e.g., {{ service_context.tier_name.param_name }} becomes {{ blueprint_context.tier_name.param_name }}). You may need to update existing actions to accomodate this change to the key.

  • Changes have been made to the way blueprints are ordered through the API, which will require updates to any scripts used to do that.

    • The API sample script that CloudBolt provides to explain how to order a blueprint through the API has been renamed from order_service.py to order_blueprint.py. You’ll likely want to re-download the sample scripts here.
    • The endpoint that is used to add blueprint deployment items to an order has changed from service-items to deploy-items. Check out the order_blueprint sample script to see how this is used.
    • The structure and key names for serialization of blueprint deployment orders has been changed. Review a blueprint deployment order in the API browser to see how it looks now.
  • Changes have been made to the out-of-the-box “Scale Service” and “Create virtual network” actions. If you have changed them (not expected), you will need to update your versions to reflect the new out-of-the-box code. The changes made include altering the models listed below to use the new ones and adjusting related variable names.

  • If you have custom code in an action or UI extension that references the InstallServiceOrderItem, InstallServiceItemOptions, ServiceOrderItemSerializer, or ServiceItemOptionsSerializer models (including relationships to them such as installserviceorderitem_set or installserviceitemoptions_set), you will need to update it to instead reference BlueprintOrderItem, BlueprintItemArguments, BlueprintOrderItemSerializer, or BlueprintItemArgumentsSerializer, respectively. Those models have been renamed in the CloudBolt code.

  • If you have custom code in an action or UI extension that was using the CloudBolt methods create_options or create_basic_options, which are related to building orders to deploy blueprints, they have been changed to create_arguments and create_basic_arguments.

  • If you have custom code in an action or UI extension that checks the type of a Job, or the TYPE_CODE or job_type attribute of an InstallServiceOrderItem object, and has conditional logic based on whether its value is ‘install_service’, the correct value to check for is now ‘deploy_blueprint’.

MAJOR IMPROVEMENTS

Email Templates

The Admin -> Email Settings page now has a list of Email Templates available to edit. Several templates are available out-of-the-box, and additional templates can be created as needed.

Consequently, the methods for sending emails in CloudBolt have been refactored. Before, your plug-ins were responsible for rendering an email body and sending that to the methods available in utilities.mail: email_cbadmin() for sending mail to the address set in Email Settings, and utilities.mail.send_mail() method for a particular recipient. Those two methods have been deprecated in favor of email() and email_admin(), both of which accept a ‘slug’ that is used to find the appropriate Email Template to use. For more information on how to use these methods, please refer to the Email in CloudBolt section of the docs.

The ‘Email Output Directory’ miscellaneous setting has been deprecated. If your legacy CloudBolt instances are using that setting, contact support for an alternative before upgrading.

Actions in Blueprints That Do Not Create a Service

Blueprints that do not create services can now include action blueprint items, in addition to the servers that were already possible. Other restrictions remain. Note that the resulting orders will look a bit different than non-service deployments did previously, and more like orders that deploy a service.

Placeholder Fields for Parameters

New “Placeholder” field for parameters of type String, Multiline Text, and Encrypted Text. This optional value is displayed on empty form fields, allowing admins to provide an example of the expected input value or format.

User Avatars

Added Admin > Miscellaneous settings > Avatars setting to show user avatars or just their initials. This used to be a Django setting that is now deprecated; an override in customer_settings.py will be honored. From now on this is managed through the UI.

OTHER IMPROVEMENTS

  • Added Email On Order Completion checkbox to the Email Settings. CB Admins can enable/disable sending email notification to the owner of an order. 150813355
  • Added button to export server data to csv, directly from the Servers page. 150690156
  • Make CB more resilient to sporadic VMware failures. 151184456
  • Support for custom headers in web hooks. 151953075
  • Some views were optimized to be more responsive when there are 1000s of users in the system: Admin > Users, Group detail page and the dialog to add new users to a group. 151267933
  • Added missing API endpoints for importing Server Actions, Service Actions, Rules and Recurring Jobs. 151441426
  • Fixed Chef error when deleting node that doesn’t exist on Chef server. 150722266
  • Increased CenturyLink timeout to accommodate slow provisioning tasks. 151571268
  • Fix error when using LDAP with non-ASCII characters (LDAP v3 only). 146938783
  • Fixed several cross-site scripting (XSS) vulnerabilities around user profile fields. 151766982 152017537

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.4.0.1

This patch release fixes the following issues:

  • Fixed vulnerability around delete snapshots 151486662
  • Fixed issue where Remote Desktop connections to versions of Windows greater than 2012/10 failed with a DISCONNECTED error message. 151526509
  • Fixed error raised when deleting a service with a sub-service 151552747
  • Fixed Quick Setup steps “Networks” and “Templates” which prevented user from proceeding in some cases. 151525203
  • Fix an error handling bug - after provisioning, if VMware returns an error when trying to find the template, the CloudBolt provisioning job is now resilient to that error. 151136839

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.4

7.4 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • If you have a custom action in the External Users Sync trigger point, you will need to either convert over to the new “User Permission Sync From LDAP” action or disable it.
  • The old “Sample User Group Permission Sync From LDAP” action in the External Users Sync trigger point is obsolete and can be deleted.

MAJOR IMPROVEMENTS

Toggle SSL Verification per Resource Handler

Individual Resource Handlers now have a boolean to toggle SSL Verification that supplements the global SSL Verification toggle. By default, existing VMWare Resource Handlers will have verification disabled, as existing CloudBolt instances might be connecting to VMWare using invalid certs, and those shouldn’t fail upon upgrading. The toggle should be editable on the Resource Handler’s credentials form, available when creating a Resource Handler or clicking on the Edit Credentials button from its detail page.

Any connection being made by a Resource Handler with SSL Verification disabled will now display a warning when clicking on Verify Connection. The connection will still succeed, but the warning will explain where verification has been disabled, either on the individual Resource Handler or globally.

Parallelize your CIT Test Groups

CIT can now run groups of tests in parallel. It will look for tests with a label like “serialgroup:<group name>” and run the tests within the same group (exact same label) in serial, while letting the different groups run in parallel. Unlabelled tests will be treated as an implicit group, running in serial amongst themselves but at the same time as any defined groups. If you do not use any labels starting with “serialgroup:”, the behavior of your CIT tests will not change.

Edit Your Orders

It is once again possible to edit provisioning/ deployment orders, either the one that’s in your cart (e.g., because you’ve duplicated one) or one that is pending your approval. Note that the current configuration of any associated blueprints, environments, etc. will take precedence over the details of the order being edited if they are different.

Also note that if a pre-7.4 order is duplicated, the resulting order may not be editable.

Disable Avatar Images

Avatar images can now be disabled by setting ENABLE_AVATARS=False in your customer_settings file. This feature utilizes a 3rd party service, gravatar.com, and looking up avatars for many users can slow down some views in the CloudBolt app. When disabled, users’ initials are shown instead of images.

Preview Blueprint Costs Across Environments

If the rates feature is enabled, and when a blueprint has a single Server Tier with specific environments configured (as opposed to all capable environments), the order form will show a cost preview chart comparing base costs of each environment choice.

Sync your Groups and Roles with LDAP

CloudBolt now supports mapping LDAP organizational units and groups to CloudBolt groups and roles via the UI. The mappings can be configured on the details page of your LDAP utilities.

CloudBolt comes with a new “User Permission Sync From LDAP” action enabled out of the box that will use these mappings to automatically grant LDAP users the appropriate permissions when they log in. For more information, see Using the “User Permission Sync From LDAP” Action.

Extend the Admin page with Custom Admin Pages

The UI extension framework now supports custom admin pages. This gives CB admins the ability to create entirely new functionality within the CloudBolt Admin interface and supports our goal to deliver a “single pane of glass” experience to IT teams. Please work with our Solutions team to learn more.

Provide Initial Values for Generated Option Parameters

When generating options for parameters using an action, you can now provide an initial value to specify which option should be selected to start. To do so, have the method return a dictionary as described in the docs. The old approach of returning a list of tuples (without an initial) is still supported.

Jupyter Notebooks for Advanced Support Cases

When working with CloudBolt Support, you may be asked to access Admin ‣ Support ‣ Django Jupyter Notebook after enabling it in Admin ‣ Administration ‣ Miscellaneous Settings. This is a standard Jupyter Notebook that acts like Django’s shell_plus tool (Interacting with CloudBolt’s Models) in your browser.

Parallel Excution of ‘Refresh Server Utilization’ Recurring Job

The recurring job was improved to fetch the utilization for each resource handler in parallel. It is also now more relient to failure if one or more resource handlers are offline.

Deploy Azure Resources via Azure Resource Manager Templates

Refer to the Azure Resource Manager Template blueprint in the Content Library for an example on how to deploy resources using ARM templates. Example templates are available at https://github.com/Azure/azure-quickstart-templates

AWS GovCloud Resource Handler

The AWS GovCloud resource handler has been updated, and various bugs have been resolved. To create a GovCloud resource handler that connects to the default us-gov-west-1 region, provide an EC2 endpoint of ec2.us-gov-west-1.amazonaws.com and an Elastic Load Balancer endpoint of elasticloadbalancing.us-gov-west-1.amazonaws.com to the resource handler credentials.

OTHER IMPROVEMENTS

Note: CloudBolt began tracking these in our release notes late in 7.4, but future release notes will be more comprehensive!

  • Python has been upgraded to v2.7.13. 145709545
  • The Python Requests library has been upgraded to v2.18.1 to get the latest SSL certificate compatibility. 145709545
  • Django has been upgraded to v1.11.4. 150190771
  • Various RPM packages have been upgraded. #151070200
  • We made docs prettier, more navigable, and searchable. 150903953
  • Admin > Rates > Environments is easier to use and presents custom rates in a table that can be sorted and searched. 150760125
  • Fixed a bug affecting some copy-to-clipboard buttons. 148111283
  • Fixed a bug for services being shown to users without service.view permission. 150900443
  • Fixed a bug in reports that could generate negative cost for servers that were moved between groups. 150923667
  • Fixed a bug in the job list; will now correctly sort by Job ID by default, showing most recent at top. 150897896
  • Fixed a bug in the job list; it is once again possible to sort by the Start Date. 150931949
  • Fixed a bug in the Associate Servers out-of-the-box Service Action. 150857994
  • Fixed a bug when using ‘user-defined’ networks in blueprints with multiple service items. #150535826
  • Fixed a bug in Blueprints within Blueprints where the hostname and rate previews were not displaying properly. Also, the form could not submit in rare cases. 150566813
  • Fix rendering bug on pages with mini sparkline graphs affecting certain text sizes and browsers. 150641268
  • Fix a bug with running vRO flows from blueprints 151097640
  • Fix a bug with running vRO flows as server actions 151097640

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.3.0.1

  • This release fixes a bug in the order form that prevented rates and hostname template previews from updating as values are changed.

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.3

7.3 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • The name of the default Branded Portal has been changed from ‘Default Portal’ to ‘CloudBolt’, as that name will now be used to replace the product’s title wherever it is visible to users. If your default portal has been renamed from ‘Default Portal’, it will not be automatically updated, so you probably want to manually change it to either ‘CloudBolt’ or something more appropriate for your particular installation.

General Improvements

The Django web-app framework that powers CloudBolt has been upgraded to Django 1.11.3.

The Servers list view and Servers tables on group, environment, service detail views have been optimized. They now generate far less load on the database and should load much faster than before (up to 5 times faster in one lab test).

Some content on the server details view is now updated automatically in the background.

Security around CloudBolt plug-ins has been tightened, namely with regards to Blueprint managers who are not CloudBolt Admins. Such users will no longer be able to create new plug-ins in a Blueprint (but can still use existing plug-ins), edit the details or code of a plug-in, or import a Blueprint that contains any plug-ins.

Security around some other actions for non-CloudBolt Admins has also been tightened. Specifically, non-CB Admins cannot directly import actions, view action lists, change whether an action is shared, or creat, edit, or replace shared actions (including by importing a Blueprint that contains a shared action or would replace an existing shared action).

The Branded Portals can now be used to customize colors, replace images, and rename CloudBolt as it is presented to users. Deciding which portal is active remains the same: each request determines the correct portal to use, first by matching the domain being requested with the ‘domain’ field on the portals. If no portal is found with a matching domain, the portal with ‘default’ set to True is used. However, now the ‘name’ field of the active portal will be used to replace references to ‘CloudBolt’ wherever non-admins might see it. Also, additional image fields are available to override the images used in the header, footer, and the loading icon.

CloudBolt is aiming to be Python 3 compatible by version 8.0. That means any Plug-ins and Actions must also be updated before upgrading to that version. Our out-of-the-box Actions have been updated to be compatible, and a guide is available to help in the transition. https://support.cloudbolt.io/hc/en-us/articles/115003824766

Resource Technologies

GCE Windows servers can now fetch and set new credentials for a user. Admins can enable this by going to Admin > Server Actions > Content Library view (button at top right) and importing the ‘Set New Password’ action.

Initial support for Nutanix Acropolis resource handlers has been added to CloudBolt. CloudBolt can now connect to your Nutanix Acropolis Prism Element API to orchestrate a cluster for each resource handler that you set up. Through CloudBolt, you can then discover existing VMs on that cluster, perform operations like power controls (see our docs for details on the acpid yum package requirement on CentOS) and VM deletion, and provision new VMs on your cluster.

Console access is now supported for hosts running vCenter 6.5.

Blueprints

When running remote script actions in blueprints’ build steps, service will now be available in the context. Therefore, a remote script could do something like echo “My service’s name is {{ service.name }} and one of its parameters is {{ service.parameter_name }}.”

Dependencies may now be set up between parameters, so that, when a user enters a specific value in one input field, another will appear dynamically. To get started, navigate to Admin > Parameters and choose a parameter that you want to make dependent on another, or see the Order Form Customization section of the docs.

Preconfigurations

The Change Resources dialog now displays preconfigurations. Any preconfiguration on the server’s group or environment that contains CPUs or Mem Size will show in place of the original CPUs or Mem Size field. Preconfiguration options in this dialog can update parameters beyond CPUs and Mem Size, but not the server’s OS Build and Applications.

Preconfigurations will now start out with the first option preselected. This applies to the blueprint order form and the environment configuration form under the blueprint’s Build tab.

Removing parameters from a preconfiguration will now also remove those parameters from the preconfiguration’s options.


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.2.2.1

A bug was discovered related to the new Power Schedule parameter. When the parameter was added but no schedule was defined when ordering a server, the order form appeared to not submit properly. That bug has now been fixed, and the order form should submit properly.


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.2.2

7.2.2 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • If you had created an NSX Edge Configuration object in CloudBolt prior to upgrade, you’ll need to edit it and redefine some of the default values. This is necessary because CloudBolt moved away from relying on obscure vCenter moid objects. See NSX for more information on editing the configuration.
  • The way that BP history mesages are stored and rendered has been changed, so old history events about group changes may seem to be rendering incorrectly with visible <br> tags. This is expected, and new events should look better.
  • The “Auto-power control servers” action used by the recurring job to enable auto-powering off of servers has been changed to support a new, more fine-grained approach. If you have changed the version of the action on your CloudBolt server, you will need to update it to match the approach used in the out-of-the-box action. The key difference is that servers to be powered on or off are now found using a relationship to a ScheduledTime model, as opposed to using parameter values.
  • If you had set up options for the Power Off Hours parameter on groups or environments or predefined its value on a PSSI, you will need to reconfigure those using the new Power Schedule parameter.
  • If you have AUTHENTICATION_BACKENDS defined in your customer_settings.py, replace “django.contrib.auth.backends.ModelBackend” with “utilities.backend.CBModelBackend” to ensure that disabling the local credential store works correctly.

General Improvements

Upgraded several JavaScript libraries to the latest versions, including lodash 2.3.0, DataTables 1.10.15, and jQuery 3.2.1.

Auto-power control for servers can now be scheduled in a way that takes into account the day of the week. For existing servers, it’s also been moved to a new UI in a separate tab on the server’s details page, rather than using the Parameters tab. For setting a schedule at order time, there is a new Power Schedule parameter that can be used, with a nicer interface than before. The old Power Off Hours parameter will no longer exist, but existing server schedules should be automatically migrated to the new approach on upgrade. See the Upgrade Notes below if you have changed the action that does the checking for power changes or were using options with the old parameter.

More content samples have been added to the CloudBolt Content Library, including several service blueprints. View these by browsing to your Catalog and toggle the ‘cloud-download’ button at the top right of the page.

Minor fixes to action and blueprint import/export features. Service Name Template is honored if the blueprint export specifies one. Exports for actions that have code hosted outside of CloudBolt, specified via Source Code URL, now include the actual source code in “sanitized” export format; otherwise, the URL is preserved for private exports (“include instance-specific info”).

Sync VMs jobs will now display the resource handler they are associated with.

Fixed a few bugs around LDAP and RADIUS login.

Resource Technologies

All Resource Handlers where CB gets a list of SSH keys from the handler, including Oracle, will now use the same parameter for storing those options. It has the label ‘Key pair name’ and name ‘key_name’. Everything should work as before, but you may notice a different label now when using Oracle.

VMware & NSX

CloudBolt 7.2.2 simplifies the mannagement of the vCenter’s Advanced Network settings with a new NSX tab. It is no longer necessary to search for Managed Object IDs when defining an NSX Edge Configuration.

Azure Resource Manager

For consistency and clarity, all references to Azure ARM or AzureRM have been replaced with Azure Resource Manager, or the abbreviation ARM.

Blueprints

Blueprint-level Parameters will now be hidden if they are considered provided by the Blueprint, meaning there is only 1 option defined for it on the Blueprint (and it’s Required, because otherwise there’s the empty option). This matches the previously-existing behavior (since 7.0) for Parameters on other items on the order form.

Ordering blueprints that have no build items will no longer be treated as an error condition. In this situation, no inputs or buttons will be shown, but the blueprint’s image and description will be shown. This is useful for cases where admins want to use CloudBolt as the definitive catalog to find anything to order, even if some of those things are not built by CloudBolt directly, and instead link the user to another system. See the Catalog > Informational Blueprints section of the doc for more information.

Fixed a bug where users did not have access to blueprints they imported.

Action Inputs

CloudBolt automatically scans action code to determine if additional input is required for the action to be executed. This process is covered in more detail in [the docs](http://docs.cloudbolt.io/advanced/orchestration-actions/remote-scripts.html#remote-scripts-parameterization). CloudBolt will handle prompting users for those inputs, and then render them in the action before executing it. Action inputs will be escaped so they can’t execute arbitrary code while still rendering as expected. However, this depends on the parameters being quoted properly in the action code. Ensure that any string inputs also include surrounding quote marks so the value is properly assigned to its variable in Python. An example: hostname = “{{server.hostname}}”.

CloudBolt Plugins & the CloudBolt SDK

ConnectionInfo.run_script()

The SDK now supports a ConnectionInfo.run_script() method that supports WinRM-based scripts today. It differs slightly from ConnectionInfo.execute_script(): * run_script() will not raise an exception if your remote script returns a non-zero exit code * run_script() will instead return an object (CommandResult) instead of a string which will provide you direct access to stdout, stderr, and exit code * run_script() will raise exceptions normally if there is a problem in the underlying remote script transport, e.g. WinRM, that prevents your script from even running on the target host

This new method is documented in CloudBolt’s model documentation, available at https://[cb_server]/alladmin/doc/models/utilities.models/ and you can use shell_plus to introspect its help, for example:

In [1]: ci = ConnectionInfo.objects.get(id=12345)<ENTER> In [2]: ci.execute_script?<ENTER> (help text)

In the future, we will expand ConnectionInfo.run_script() to provide support for SSH and will implement Server.run_script() which will provide support for SSH, WinRM, and VMware Tools. These two methods will become the only supported methods of running remote scripts from your plugins. Once we reach that milestone, we will first deprecate the execute_script() methods and the common.methods.run_script* functions they rely on by adding warnings to your logs when these older methods are used, and then we will remove them entirely in 8.0 (in 2018). We’ll be sure to give you a heads up (in future release notes) when these two milestones occur.

Server.credentials_for_script()

The first positional argument, rh, has been removed from the method signature since we can get it from the Server. Plugins calling this method will need to be refactored, else they will begin failing with a TypeError Exception (credentials_for_script() got multiple values for keyword argument ‘runas_username’).

In the future, we will deprecate this method by prefixing it with an underscore, so please do not use it.


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.2.1

Azure Resource Manager

Resource Groups and Storage Accounts can now be managed directly from CloudBolt for Azure Resource Manager environments. Environment detail pages now have tabs dedicated to handling each resource type.

On each tab, you can sync existing resources from your Azure subscription. You can add new resources directly, although both resource types can also be automatically created when provisioning a server. Existing resources can be deleted, which will remove that resource from Azure. Existing resources can also be enabled or disabled, which determines if that resource is available as a parameter for provisioning servers within the given environment.

Changes to Server Rate Computation and Reporting

CloudBolt 7.2.1 addresses some shortcomings from previous versions, related to server cost reporting by:

  • Storing the hourly rate value for a server at the point in time a rate impacting event happens on the server
  • Respecting the Orchestration Actions Compute Server Rate in the report calculations
  • Moving the hard-coded discounted hardware cost for CPUs and Memory when a Server is powered off to the database, ultimately giving CloudBolt Administrators more control over the discounted rates.

To take advantadge of the new modeling, after upgrading to CloudBolt 7.2.1, one should run the following management command (this command may take a while to complete depending on the number of records in the server history table):

/opt/cloudbolt/manage.py update_server_history_events

Because of the date formatting changes in the new reports it is also important to clear any old report caching by runnning:

rm -rf /var/opt/cloudbolt/proserv/cached_reports/*

_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.2.0.1

After the 7.2 GA release, it was discovered that the upgrader would fail with an error if the “Restrict Job Logs to Admins” setting was enabled. This patch release addresses that upgrader issue. If you’ve already successfully upgraded to CloudBolt 7.2, you do not need to upgrade to CloudBolt 7.2.0.1.


What’s New in CloudBolt 7.2

7.2 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • Bulk user creation using a CSV file is no longer supported.
  • The PKI authentication backend does not support custom roles.

7.2 UPGRADE NOTES - CloudBolt plugins for user permissions

LDAP sync scripts and other CloudBolt plugins that grant permission will need to be updated to work with the new 7.2 roles. For example, the old call group.requestors.add(profile) will need to be updated to the following:

from accounts.models import Role
role = Role.objects.get(name='requestor')
profile.add_role_for_group(role, group)

See the new out-of-the-box LDAP orchestration action for more examples of how the new roles work.

7.2 UPGRADE NOTES - Rate hooks

  • As part of improving the AWS Rate Hook for discovered servers, a new server argument is now passed to its compute_rate method. This has 2 impacts for customers:
  1. If you have modified the out-of-the-box AWS Rate Hook, you will want to look at the new out-of-the-box version after upgrade and incorporate the change we’ve made into your version of the code.
  2. If you have written any of your own custom rate hooks, you will need to ensure that their compute_rate method can accept a server keyword argument. The best way to do this is simply to have all your action methods accept **kwargs.

Blueprints

Server tiers on blueprints now support a notion of “allowable OS families”. This restricts the set of OS Build choices available to users when they order the blueprints and also when blueprint admins set the OS Build on a server tier within the blueprint. This facilitates import and setup of blueprints from the content library.

Custom Roles

CloudBolt now allows the creation of custom roles. Visit the Admin > Roles page to create a role and decide which permissions it should have, then assign it to users from either the Users page or the Users tab of a group.

CloudBolt’s out-of-the-box roles are now editable, too. You can add or remove permissions on them the way you would for custom roles. You can also restore these roles back to their default state from the Admin > Roles page at any time.

The “Powerful Requestors” and “Restrict job logs to admins” miscellaneous settings have been replaced with permissions. If you had these options enabled, CloudBolt will take them into account and add the appropriate permissions during the upgrade. However, they will not be taken into account if you later revert the roles back to their default state on the Roles page.

Resource Technologies

Azure Resource Manager

A new parameter, ‘Delete Empty ARM Resource Group’, is available for ARM environments and servers. When set to True on a server, the associated Resource Group will also be deleted if it becomes empty after deleting the server. Otherwise, the empty Resource Group will remain. For most users, this parameter can be set as a default for an entire environment. However, some use cases might have a need to set it differently on a specific blueprint or server deployment.

AWS

The AWS resource handler now uses the custom SSL certificates available at Admin SSL Root Certificates. If activated, the default certificates used to connect to HTTPS endpoints via the Boto library will still be used. Additional certificates can be added to supplement the list by adding them to the SSL Root Certificates page. Alternatively, SSL Certificate validation can be deactivated via that same page.

The AWS rate hook now works on servers provisioned outside CloudBolt. It is also much faster than before, and no longer requires you to manually download the rate file before using it.

AWS GovCloud

A new resource handler has been added that can connect to AWS GovCloud (US) regions designed to host sensitive data and regulated workloads in the cloud, helping customers support their U.S. government compliance requirements. For more information, see https://aws.amazon.com/govcloud-us/.

Eucalyptus

A new resource handler has been added that can connect to Eucalyptus, an AWS-compatible private and hybrid cloud computing environment. For more information, see https://github.com/eucalyptus/eucalyptus/wiki.

Content Library

More content types can be imported from the CloudBolt Content Library. We added orchestration actions, server and service actions, rules, and recurring jobs. Go to the admin page for any of those and toggle the ‘cloud-download’ button at the top right to view and import samples hosted on the Content Library.

When importing content that has already been imported, admins now have the choice to replace existing content or not.

General Improvements

The email sent to approvers when a new order is created will now show the URL for the portal where the order was placed.

Several cross site scripting (XSS) vulnerabilities were fixed. Malicious payloads on some user-supplied fields are now prevented.

To prevent the database and job logs from growing too large, CloudBolt now ships with a recurring job to clean up job records older than one year. If you would like to keep jobs for a different amount of time, go to Admin Recurring jobs and edit the job to change the threshold or disable it entirely.


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.1

7.1 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

  • NIC fields on the order form will now show even if there is only one option. Past orders created with a hidden NIC may not duplicate correctly, and CIT tests based on these orders may need to be recreated.

  • The configuration variable for MIDDLEWARE_CLASSES has changed to just MIDDLEWARE. Any references to that variable in customer_settings.py must also be changed.

  • The get_thread_logger method that was used in some actions is being deprecated. The correct approach is to use ThreadLogger instead. If you use get_thread_logger in any of the actions you created, please change it to ThreadLogger. Use of get_thread_logger will log a deprecation warning. A set of out-of-the-box actions have been changed from get_thread_logger to ThreadLogger, so if you have edited the code of these actions you will need to incorporate the changes to the out-of-the-box version into your edited code: delete-servicenow-ci.py, create-servicenow-ci.py, puppet_ent_3.X_discover_groups.py, puppet_ent_3.X_clean_cert.py, puppet_ent_3.X_get_node_facts.py, puppet_ent_2015.3_discover_groups.py, puppet_ent_2015.3_clean_cert.py. The setting of a logger in an action should look like:

    from utilities.logger import ThreadLogger
    logger = ThreadLogger(__name__)
    

    and not:

    from utilities.logger import get_thread_logger
    logger = get_thread_logger(__name__)
    
  • If you have a custom log-in template in /var/opt/cloudbolt/proserv/templates/registration/login.html, it may have an old piece of code that needs to be updated. Please ensure the form’s action attribute looks like this:

    action="{% url 'login' %}"
    

    and not:

    action="{% url 'utilities.views.login' %}"
    

    This is required by the upgrade to the latest Django framework and avoids an error on the log-in page.

  • There was an issue where existing Google Compute subnetworks were not being found when syncing networks, causing them to be replaced. That has been fixed, but existing networks will need to be re-synced after upgrading and their subnetworks will need to be re-added to the appropriate environments.

Kubernetes

  • Adds support for custom config files, for fine-grained control of your Kubernetes resources.
  • Custom config files support any resource type, not just Pods.
  • The config files can also be templatized, similar to what is possible with actions, creating file inputs that can have default values set on the Pod Blueprint Item and/or have values entered at order time.
  • Kubernetes resources created while provisioning a blueprint will be cleaned up when the service is deleted.

General Improvements

The Django web-app framework that powers CloudBolt has been upgraded to Django 1.10.6.

New OS Families have been added: SUSE Linux, macOS, Amazon Linux, and Solaris.

When viewing a server that has snapshots, there is a new delete icon next to each snapshot that allows the user to delete the snapshot.

HTTPS requests made by CloudBolt now support the Certifi library for validating SSL certificates. The default for SSL verification remains deactivated. However, it can be activated at Admin SSL Root Certificates. If activated, certificates being used to connect to any HTTPS endpoints must be trusted by this new library. More information is available at https://github.com/certifi/python-certifi. Additional certificates can be added to supplement the list provided by Certifi by adding them to the SSL Root Certificates page.

Resource Technologies

VMware

When importing datastores, datastores that are part of datastore clusters will no longer be excluded.

Fixes bug where comma-separated datastores could not be entered.

CloudBolt Forge is now the CloudBolt Content Library

Some content from the CloudBolt Forge is now available for browsing and importing directly in the user interface. Initially, Server Actions, “base” actions, and UI extensions are supported. Simply browse to the admin pages for managing these objects and click on the “cloud-download” button in the top right to view and import remote content hosted on the Content Library.

Support for more content types such as Blueprints and Rules will be implemented in the future.

The CloudBolt Forge Git repository will be deprecated in favor of this more intuitive in-product presentation. But as always, contributions to this repository of sample content are welcome. Contact CloudBolt to share your own blueprints, actions, or UI extensions with the CloudBolt community.


_images/CloudBolt_blue_cloud.png

What’s New in CloudBolt 7.0

7.0 UPGRADE NOTES

When upgrading CloudBolt, please review all Upgrade Notes between the version of CloudBolt that you are presently running and the target version that you are upgrading to.

7.0 UPGRADE NOTES - Version Compatibility

We have tested and verified upgrades from versions as old as CB 5.3.1. If you are running an older version, we recommend upgrading in two steps - to 6.0 first, then 7.0.

7.0 UPGRADE NOTES - MySQL

MySQL, if present on the CloudBolt server, will be upgraded to 5.7 during CloudBolt upgrade. Considerations:

  • If you have database settings defined in your customer_settings.py file, you will need to change the init_command.
  • Edit your /var/opt/cloudbolt/proserv/customer_settings.py and replace the existing init_command with this:
"init_command": (
    # Create tables using the InnoDB engine as opposed to the MyISAM engine
    # Django will automatically create FK mappings and support
    # transactions when using InnoDB based tables
    # this option only affects the tables at schema creation time
    'SET DEFAULT_STORAGE_ENGINE=INNODB; '
    # Use READ COMMITTED instead of REPEATABLE READ
    'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED'
),
  • If you are running MySQL on a separate server, please upgrade it to 5.7 before beginning the CloudBolt upgrade. You can have your DBAs perform this upgrade, or use a tool provided in the CloudBolt upgrader. From the upgrader directory, cd to 09-mysql57-upgrade, then run ./upgrade_standalone_mysql_server.sh

7.0 UPGRADE NOTES - Breaking API Changes

  • The API collection for Blueprints is now simply ‘blueprints’. As a result, the collection specified for exporting and importing through the API should be ‘blueprints’. The sample scripts have been updated accordingly.
  • Similarly, the specification of a Blueprint in an install service order now has the key ‘blueprint’. The order_service sample script has also updated to reflect this change, as well as the new URL mentioned above.
  • Two of the keys in the serialization of a Blueprint have been changed, from ‘build-service-items’ to ‘build-items’ and ‘teardown-service-items’ to ‘teardown-items’.
  • Due to possible changes in the details of an order viewed through the API, it is recommended to look for orders created while running 7.0 when looking for examples to build calls to order a server or service through the API, rather than older orders.

7.0 UPGRADE NOTES - Puppet Enterprise

  • If you have an existing Puppet Enterprise 2015+ Configuration Manager, you will need to visit the Overview tab of its details page and, in the PE Master SSH Connection, provide the appropriate information for running remote scripts on the Puppet Master in order to return it to working order.
  • If you have changed the out-of-the-box actions for Puppet Enterprise 2015+ (named with 2015.3), please be aware that this release has also changed those actions. You will need to merge the changes to the out-of-the-box code into your edited code.

7.0 UPGRADE NOTES - Services

  • If a service consumes an IP from an internal CloudBolt IP Pool for any router or load balancer it creates, CloudBolt now tracks the IP usage throughout the lifecycle of the service.

7.0 UPGRADE NOTES - Global Preferences

  • The global preferences for ‘Main List Per Page’ and ‘Sub List Per Page’ have been removed. To customize the number of items that are displayed per page in the database browser, add the variables ADMIN_LIST_PER_PAGE or ADMIN_SUBLIST_PER_PAGE to your customer_setttings.py.

7.0 UPGRADE NOTES - Actions

  • The out-of-the-box actions for “Scale Service”, “Associate Servers” and “haproxy_construct_load_balancer” have been changed in this release. If you have changed those actions, you will need to merge the changes made to the out-of-the-box code into your edited version of the code.
  • The Generated Parameter Options actions “Generate Prov Service Item Options”, “Generate Server Options for Service”, and ”Generate LB Method Options for F5” that previously came out-of-the-box are no longer needed and should be deleted. If you have made any modifications to them, first merge those changes into the new methods in the “Scale Service”, “Associate Servers”, and ”f5_construct_load_balancer” actions and the “haproxy_construct_load_balancer” base action used behind the scenes.

7.0 UPGRADE NOTES - Continuous Infrastructure Testing (CIT)

  • If you are using labels for running CIT tests, note that the behavior has changed slightly. Previously if you selected multiple labels it would run only tests with all those labels, whereas now it will run any test that has any of those labels.

7.0 UPGRADE NOTES - Duplicating Orders

  • If you duplicate an old order where it had a necessary parameter that was hidden due to being Hide Single Value (but not Required) and having a single option set on the Environment, the duplicated order is liable to fail. The reason is that the hidden parameter would not have had a value selected for the original order, but now it needs to because, due to not being Required, it does not actually have only a single option and therefore is not considered provided. If this causes an issue for a CIT test, you may need to recreate it.

7.0 UPGRADE NOTES - Google Authentication

  • Authenticating users via Google logins is no longer supported.

7.0 UPGRADE NOTES - Rate Calculation Hooks

  • The “compute_rate” method in custom rate hooks receives a new argument “disks” when calculating server rates. If you’ve written your own custom hook, you’ll need to confirm that it still works with the new argument.

Ordering

To simplify the ordering process, CloudBolt’s two distinct order forms have been consolidated into one. The New Server order form has been removed, and all ordering now uses blueprints.

The New Server link still exists, but it now points to a new out-of-the-box blueprint called Custom Server. By default, the new blueprint can be deployed by all requestors.

Parameters no longer have a concept of Hide Single Value. Instead, they will be hidden if they have only a single option. Note that parameters that have their Required attribute set to False will never have only a single option, because they include a blank/ none option.

Configuration Managers

Ansible

Ansible configuration management is now supported as a Connector in CloudBolt. Each instance of an Ansible connector can be configured to connect to a management server running Ansible. Playbooks can be mapped with their paths on the management server, and groups can be created to coordinate with inventory as it is referenced within your existing playbooks.

Playbooks can be executed against a group, server, or list of servers. Ad-hoc commands can also be executed against the inventory. Playbooks can still be managed and version controlled on the management server, but inventory can be managed by CloudBolt and is pushed to the Ansible management server before executing any command or playbook.

Puppet Enterprise

It is no longer required to have your Puppet Master server managed by CloudBolt in order to have a functional Configuration Manager for Puppet Enterprise 2015+.

Load Balancers - F5 and Netscaler

CB admins can now define connection information for these load balancers in the Admin UI, so that blueprint managers only need to select from pre-defined load balancer options, and do not need to enter connection information (including credentials) for these.

Also, resource pools named “IP Pool for F5BIGIP” and “IP Pool for Netscaler” are no longer required. You can delete these if you already have them, and create new IP pools from the load balancers’ detials pages.

More information is in the “Advanced Network Support” section of the documentation.

Resource Technologies

Azure Resource Manager

  • New parameter “Azure Resource Group” allows provisioning into an existing resource group.
  • New parameter “Skip Security Group Creation” allows NIC-level security groups to be skipped in favor of subnet-level security groups.
  • New add_extension method makes it easy to create actions that install extensions. See the Content Library for an example of how to use the new method.
  • Installed extensions will be shown on the server details page.
  • The Azure Resource Manager resource handler now has a method for deploying ARM templates. Refer to the Azure Resource Manager Template blueprint in the Content Library for more details on how to use this method.

Google Compute Engine

Google Compute subnetworks are now supported by CloudBolt. When a network is imported, its associated subnetworks will also be imported, and will be listed below the network on the resource handler’s Networks table. Adding that network to an environment will also connect any subnetworks that match the region of the environment. The network and any associated subnetworks will then be available when provisioning a server within that environment.

Amazon Web Services

New instance types are available. To add them to existing environments, use the import button under the AWS Parameters tab. Environments created after the 7.0 upgrade will have the new instance types by default.

The “Disk Size” parameter is now supported in AWS-backed environments. This gives you the ability to specify the size of the root storage device on new EC2 instances overriding the default size specified by the selected AMI.

Blueprints

The blueprint order form will now show a preview of the hostname that will be used when ordering a server tier.

Blueprints can now be configured to not create a service when they are ordered. This only applies to blueprints that consist entirely of server build items, and will result directly in server provisioning jobs.

The rate breakdown for each server tier in a blueprint is now displayed as a chart.

Blueprint managers can choose to allow a Blueprint to be deployed by any group, rather than setting specific deploy permissions.

Renaming of menus, pages, and items related to Blueprints and the Catalog has been done for improved consistency and clarity.

Applications can be specified by the requestor when ordering a blueprint. The Applications field will automatically appear on the order form when the specified environment has applications available, unless the blueprint item has already predefined applications for that server item.

Applications can be specified when ordering a blueprint via the API.

Blueprints now have a history tab that displays a list of events showing when it has been created, edited, duplicated, or exported.

Actions

Excellent news: edits that you have made to out-of-the-box action code will no longer be lost on upgrade! Even better, you can now see on whether an action is using the out-of-the-box code, has out-of-the-box code but is using your edited version, or was created by a user. For remote scripts and CB plug-ins that have out-of-the-box code that you have edited, when viewing the current code you can also choose to see the out-of-the-box code in order to compare the two.

CloudBolt plug-ins now support OS family restrictions, similarly to how remote scripts did previously. Setting OS families on plug-ins is optional, but if they are set and there are servers in the context where the action is being called then those servers will be filtered by OS family. Some contexts that have servers are Server Actions, Service Actions when the service has servers, Post-Provisioning Orchestration Actions starting with Pre-Create Resource, and Blueprint actions when the blueprint has server tiers.

Actions can be given a value for max retries, which will cause the action to be re-run up to that number of times if it has an unsuccessful return status or raises an exception. Note that in the case of CloudBolt plug-ins this only applies to run methods.

Orchestration Actions can be set to continue on failure, somewhat similarly to Blueprint items. If that value is true, a failure of the Orchestration Action will not impact the rest of the job in which it runs. It will not cause the overall job to fail or change its flow. There are a few exceptions where this feature does not apply: Parameter Change, Generate Hostname Overwrite, Pre-Server Refresh, Generated Parameter Options, Order Form Validation, and Compute Server Rate.

It is now possible to define the options for a CB plugin’s action inputs using methods in the plugin itself, rather than relying on separate actions at the Generated Parameter Options trigger point.

Orchestration Actions admin view has been streamlined.

Server Actions can be configured with a particular dialog message to show and label for the submit button, as could already be done for Service Actions.

Recurring Jobs

Admins can now set up automatic powering off of groups of servers based on the time of the day. For more information, look for the Recurring Job named “Auto-Power Control Servers in Admin > Recurring Jobs.

Add Actions as Recurring Jobs without an existing Job ID. Choose an existing or new Action that will be run on a recurring schedule. Action Inputs are also now supported on Recurring Jobs of this type. Existing out-of-the-box Recurring Jobs of type “Orchestration Action” will be converted to the new type (“Action”) on upgrade.

General Improvements

ConnectionInfo objects can now include the selection of a global SSH key.

Tests in Continuous Infrastructure Testing have a new “max retries” attribute that can be used to automatically retry the test when it fails.

CloudBolt links in emails will use HTTPS instead of HTTP.

Job logs, previously only viewable by CB admins, are now visible to all users who can view the job details. You can revert to the previous behavior by enabling “Restrict Job Logs To Admins” in Miscellaneous Settings.

Environments can now be imported and exported. Much like actions and Catalog blueprints, exporting can be performed with or without instance-specific information.

Deletion of servers will create a new order that is submitted automatically, rather than adding to your cart and requiring user input to submit it. Also, if bulk server deletion includes servers in different groups, one order will be made for each group, allowing you to delete them all in one step.

The Django web-app framework that powers CloudBolt has been upgraded to Django 1.9.12.

Server lists now support finding servers by label. In the table search box, users simply type “label:” followed by any part of a label name to find all matching records they have permission to view.

The global search feature, found in the top nav bar, is much more responsive. Searching and navigating results can be done entirely by keyboard, making it possible to find objects across your cloud at the speed of thought.

Multiple preconfigurations can now have the same label, but different names. The names will be shown to the CB admin only to distinguish between preconfigurations with the same label. This can be useful for providing different sets of parameters and options in different environments, using a preconfiguration that looks the same to the end user.

API Improvements

GET /api/v2/settings/ allows you to view CloudBolt’s Miscellaneous Settings.

Thank You!

You are awesome. Thanks for reading our release notes. It’s users like you who make the product better, and we appreciate each and every one of you for providing us feedback. Keep it coming, because it’s your requests and ideas of how we can make CloudBolt more valuable for you that drive what we work on next.

Sincerely, The CloudBolt Team