Create a VM Template
Although Palette provides out-of-the box templates, we recommend that you create and manage your own templates.
Prerequisites
- Valid YAML that defines your VM template.
Create a VM Template
Create a template by adding a YAML file as a manifest in an add-on profile.
- 
Log in to Palette. 
- 
From the left Main Menu, click Profiles and click the Add Cluster Profile button. 
- 
Give the profile a name, select type Add-on, and click Next. 
- 
On the Profile Layers page, click Add Manifest. 
- 
Give the layer a name, and click Edit manifest and enter a name for the first template. Click the checkmark icon. 
- 
In the blank manifest file at right, enter the VM definition as a YAML file. You can add multiple manifests for multiple templates in the same add-on profile. They will display as layers in the profile. 
- 
Click Confirm and Create, then click Next. 
- 
Click Finish Configuration. 
Example YAML for a VM template
apiVersion: spectrocloud.com/v1
kind: VmTemplate
metadata:
  labels:
    app.kubernetes.io/name: fedora-36
    app.kubernetes.io/instance: fedora-36-instance
    app.kubernetes.io/part-of: vmtemplate
    app.kubernetes.io/managed-by: kustomize
    app.kubernetes.io/created-by: vmtemplate
  name: fedora-36
spec:
  description: This is Fedora 36 image
  displayName: Fedora 36
  icon: "https://s3.amazonaws.com/manifests.spectrocloud.com/logos/fedora.webp"
  running: false
  template:
    spec:
      domain:
        cpu:
          cores: 1
        devices:
          disks:
            - name: containerdisk
              disk:
                bus: virtio
            - name: cloudinitdisk
              disk:
                bus: virtio
          interfaces:
            - name: default
              masquerade: {}
        resources:
          requests:
            memory: 1Gi
            cpu: 1
          limits:
            memory: 2Gi
            cpu: 2
      networks:
        - name: default
          pod: {}
      volumes:
        - name: containerdisk
          containerDisk:
            image: gcr.io/spectro-images-public/release/vm-dashboard/os/fedora-container-disk:36
        - name: cloudinitdisk
          cloudInitNoCloud:
            # user name is fedora
            userData: |
              #cloud-config
              ssh_pwauth: True
              chpasswd: { expire: False }
              password: spectro
              disable_root: false
              packages:
                qemu-guest-agent
              runcmd:
                - ["sudo", "systemctl", "enable", "--now", "qemu-guest-agent"]
Validate
- 
Navigate to the left Main Menu and click Profiles. 
- 
Verify your newly added manifest is listed. 
Next Steps
Try applying the template to your cluster. Navigate to Clusters and click + next to Addon Layers, then select the
VMO profile you created.