IcePack Package

The .icepack file format is used to store one or more plugins. In most cases an IcePack should contain one primary plugin and any others should be small utilities or helpers related to the primary plugin.

YAML definition

To specify the properties of an IcePack file you must create a icepack.yml file with the following layout. Paths specified in this file are relative to the YAML itself not the current working directory.

version: '1'
name: DebianApp
plugins:
  - components:
      frontend: src/frontend/index.ts
      backend: src/backend/index.ts
    props:
      name: app-debian
      icon: src/assets/icon.png
      type: app
      label: Debian
      dependencies:
        - /^engine-(docker|kubernetes)$/
  • name - Name of the IcePanel plugin (above example will build DebianApp.icepack)
  • plugins.components - Component entry points for each plugin, can be frontend | backend
  • plugins.props.name - Plugin identifier, must be unique and prefix the plugin type, app-..
  • plugins.props.icon - Icon to use in UI, must be 256x256 transparent PNG
  • plugins.props.type - Can be one of the following app | engine | network | tool | volume
  • plugins.props.label - Friendly name to use in UI
  • plugins.props.dependencies - List of plugin identifiers, supports strings or regular expressions

Plugin dependencies

Plugins can query available dependencies and may limit or restrict their functionality as a result. For example using the dependency engine-docker will only make the plugin available when the prototype is of a Docker type.