Zergaw Cloud Docs

Templates

Templates are images of a base operating system that the user can choose from when creating a new instance. A template can be reused to create multiple instances. They are reusable configuration for Instances. Zergaw CloudStack ships with different default templates for major Linux and Windows operating systems.

Users can also create and add Templates. The typical sequence of events is:

  1. Launch an Instance that has the operating system you want. Make any other desired configuration changes to the Instance.
  2. Stop the Instance.
  3. Convert the volume into a Template.

There are other ways to add Templates. For example, you can take a Snapshot of the Instance's volume and create a Template from the Snapshot, or import a VHD or QCOW2 from another system.

The root password for the default Templates are generated during instance creation and shown as pop-up. Don't reload the page until the instance complete deploying and the pasword pop up appeared.

Template Types

Zergaw CloudStack supports several template visibility and sharing models that determine how templates can be accessed, used, and managed across domains and accounts. The main template types that Zergaw CloudStack offers are featured templates, community templates, shared templates and private templates

featured-templates.png

Featured templates are highlighted public templates curated by Zergaw administrators. Appear prominently in the UI to simplify VM provisioning. Usually represent official, recommended, or enterprise-standard images (e.g., hardened OS templates, corporate-standard VM builds). These templates can only be enlisted by Zergaw CloudStack administrators.

2. Community Templates

Community templates are publicly available to all users. Any user can deploy VMs using a community template. Typically used for standard OS images, base application stacks, or commonly used VM configurations.

3. Shared Templates

Shared templates are private templates that the owner has explicitly shared with specific accounts. Access is limited to the accounts selected by the template owner. Useful for collaboration between teams or departments within the same organization. Sharing can be revoked or modified at any time.

4. Private Templates

Private templates are visible and accessible only to the account that created them. They are default template type when a user creates a template. Ideal for personalized operating system images, internal configurations, or workloads that should not be shared with others. They can later be shared or published as community or featured templates by an administrator.

Creating a Template from an Existing Instance

Once you have at least one Instance set up in the way you want, you can use it as the prototype for other Instances.

  1. Once your instance is in the desired configuration state, stop the instance.
  2. Wait for the Instance to stop. When the status shows Stopped, go to the next step.
  3. Go into "View Volumes" and select the Volume having the type "ROOT".
    instance-root-volume.png
    create-volume-template.png
  4. Click Create Template and provide the following:
    • Name and Display Text. These will be shown in the UI, so choose something descriptive.
    • OS Type. This helps the hypervisor perform certain operations and make assumptions that improve the performance of the guest. Select one of the following.
      • If the operating system of the stopped Instance is listed, choose it.
      • If the OS type of the stopped Instance is not listed, choose Other.

        Generally you should not choose an older version of the OS than the version in the image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will in general not work. In those cases you should choose Other.

    • Dynamically scalable. Choose Yes if you need your template to support dynamic scaling.
    • HVM. Choose Yes if the template requires HVM
    • Password Enabled. Choose Yes if your Template has the password change script or cloud-init installed and configured.
      create-template-dialog.png
  5. Click OK.

The new Template will be visible in the Templates section when the Template creation process has been completed. The Template is then available when creating a new Instance.

Creating a Template from a Snapshot

If you do not want to stop the Instance in order to use the Create Template menu item, you can create a Template directly from any Snapshot through the UI.

  1. Take a snapshot of your instance's root volume or navigate to an existing volume snapshot
    volume-snapshot-list.png
  2. Go into "Volumes Snapshot" and select the your volume snapshot from the list.
    create-template-for-volume-snapshot.png
  3. Click on Create Template action button at the top. And fill in the required informations and click OK
    snapshot-volume-dialog.png

Uploading Templates and ISOs from a local computer

It's also possible to upload an already prepared Template or an ISO from your local computer.

Example GUI dialog of uploading Template/ISO from local (browser) is given below:

Upload Template from local

Upload ISO from local

Note that uploading multi-disk Templates is also supported as well as selecting the template/ISO arch type.

Sharing Templates and ISOs with other Accounts/projects

When adding a Template/ISO, it will be a private template by default. Once the Template/ISO is created, the owner can choose to share this Template/ISO so that other Accounts/Projects can also use the Template/ISO.

Currently, the owners can share their Template/ISO with:

Template/ISO permissions can be changed via updateTemplatePermissions/updateIsoPermissions API call or via GUI. It is supported to add, remove or reset (remove all) Template/ISO permissions.

template-permission.png

When adding or removing permissions to/from a Template/ISO, it is required to specify Account/Project name which is being added/removed from the Template/ISO permissions.

The images displayed below refer to Template permissions, but the same
applies for ISO permissions.

USharing template with Account "user2"

Sharing the Template with Account "user2"

Revoking permissions from Account "user2"

Revoking permissions from Account "user2"

Sharing template with just Account "user8"

Sharing the Template with just Account "user2"

Sharing template with 2 specific projects

Sharing Template with 2 specific projects

Revoking permissions from Account "user8"

Revoking permissions from Account "user2"

Revoking permissions from both projects previously added

Revoking permissions from both projects previously added

Finally, Template permissions can be reset:

Resetting (removing all) permissions

Resetting (removing all) permissions

Project-owned Templates are not supported to be shared outside of the Project, and if attempted to do so, a proper error message is shown.

Deleting Templates

Templates may be deleted. However when the Templates are used the default behaviour is to refuse deletion. In general, when a Template spans multiple Zones, only the copy that is selected for deletion will be deleted; the same Template in other Zones will not be deleted.

When Templates are deleted, the Instances instantiated from them will continue to run. However, new Instances cannot be created based on the deleted Template.

As said, Zergaw Cloudstack refuses to delete a template when VMs based on the template exist. If this is the case, the parameter "forced" can be set to "true" to delete the template anyways. These VMs can no longer be reinstalled from that template, but will be unaffected otherwise.