Skip to content

jasonwalsh/punk

Repository files navigation

A GUI for generating Packer templates

View a live example of Punk here!

Contents

Motivation

HashiCorp Packer is a tool for automating the creation of machine images. Packer uses templates for defining one or more builds using one of two file formats, JSON and HCL.

I created Punk as a means to provide a GUI for creating Packer templates.

To put it quite simply, Punk provides a simple and clean user interface that allows users to focus more on the specific details of a machine image rather than the format of the Packer template.

Note: Punk is still in its infancy and lacks many features. However, should you discover a missing feature or bug, please create a new issue.

Requirements

  • Yarn (for local deployment)
  • Docker (for production deployment)

Usage

Getting started with Punk is easy, simply follow the instructions below:

Local

$ yarn serve

Docker

Note: Even though this is a public repository, you still need to be authenticated to download this image. For more information, please refer to the official documentation.

$ docker pull docker.pkg.github.com/jasonwalsh/punk/punk:latest
$ docker run -d -p 8080:8080 docker.pkg.github.com/jasonwalsh/punk/punk

Limitations

Punk started as a weekend project and is very limited in functionality. Currently, Punk only supports the amazon-ebs builder with limited configuration options.

The options currently supported for the amazon-ebs builder are:

  • access_key
  • ami_name
  • instance_type
  • region
  • secret_key
  • source_ami

While these options are limited, the result produces a valid Packer template.

Future Considerations

As mentioned previously, Punk is still in its infancy and has the potential to grow. Below is a list of potential features that would make Punk a better product:

License

MIT License