Skip to content

kv-infra/packer-plugin-kubevirt

Repository files navigation

Packer Plugin KubeVirt

The KubeVirt plugin can be used with HashiCorp Packer to create KubeVirt images.

Note: This plugin is under development and is not production ready.

Packer

Packer is a tool for creating identical machine images from a single source template.

To get started, see the Packer installation guide.

Prerequisites

Plugin Features

  • HCL Templating – Use HashiCorp Configuration Language (HCL2) for defining infrastructure as code.
  • ISO Installation – Build VM golden images from ISO using the kubevirt-iso builder.
  • ISO Media Files – Embed additional files into installation process (e.g. ks.cfg or unattend.xml).
  • Boot Command – Automate the VM boot process using a set of commands (via a VNC connection).
  • Integrated SSH/WinRM Access – Allows VM provisioning and customization via SSH or WinRM.

Components

  • kubevirt-iso - This builder starts from a ISO file and builds virtual machine image on a KubeVirt cluster.

Design

Design

Installation

Automatic Installation

Packer supports automatic installation of the Packer plugins.

To install this plugin, copy and paste this code into your Packer configuration:

packer {
  required_plugins {
    kubevirt = {
      source  = "github.com/kv-infra/kubevirt"
      version = ">= 0.5.0"
    }
  }
}

And now run packer init command. The plugin will be installed automatically.

Manual Installation

Download the latest release from the Releases page and then install the plugin:

$ packer plugins install --path packer-plugin-kubevirt github.com/kv-infra/kubevirt

Building From Source

Clone the repository and build the plugin from the root directory:

$ go build -ldflags="-X github.com/kv-infra/packer-plugin-kubevirt/version.Version=0.5.0" -o packer-plugin-kubevirt

Then install the compiled plugin:

$ packer plugins install --path packer-plugin-kubevirt github.com/kv-infra/kubevirt

Usage

Refer to the usage guidance in the examples of this plugin.