Skip to content
Ross Jimenez edited this page Feb 5, 2015 · 9 revisions

Panamax Components

In an effort to organize all the Panamax components, some components have been logically grouped into a set of components (Panamax Client and Deployment Target).

diagram

Local Client

The Local Client is the core Panamax tool, that users may run on their local development machines, which enables the assembly of multi-container applications.

The Local Client is comprised of several components, some are Panamax specific and some are not. They are outlined below:

Bootstrap an OS X machine with the components that makeup the Panamax Client.

  • To be run as a bash script
  • Dependencies: OS X
  • Languages: Bash

This is where most of the magic happens. The Local Agent is responsible for communicating with many dependencies, including the local Docker host, which enables Panamax to assemble multi-container applications. The local agent also communicates to remote agents (see below), Docker registries, and more. An API is exposed enabling actions via the UI (see below) to be executed directly against the Local Agent.

  • To be run as a Docker container
  • Dependencies: Fleet, CoreOS
  • Languages: Ruby
  • Framework: Rails
  • Exposes an API: REST API

The User interface is where all the pointing, clicking, dragging, and dropping occur. The UI proxies through the Local Agent to perform Panamax operations.

  • To be run as a Docker container
  • Dependencies: Local Agent, Base UI kit
  • Languages: Ruby, Javascript, HTML, CSS
  • Framework: Rails
  • Exposes an API: No

The Panamax Client is built on top of CoreOS as it's Docker client. The Panamax Local Agent leverages many features of CoreOS in addition to the standard Docker features.

  • Fleet - The Panamax Client does not always interact with Docker directly, but leverages Fleet as it's Container Orchestrator. CoreOS comes with Fleet installed and must be running for the Local Agent to function properly (the Panamax Client installer takes care of this, but in development one may need start fleet explicitly).
  • Docker - For certain features, like searching local docker images, Panamax hits the Docker API directly.
  • Journalctl - Panamax parses and surfaces some of the journal output.

NOTE: CoreOS is not specific to or owned/maintained by the Panamax team

Remote Deployment Target

A Deployment Target facilitates the deployment of a Panamax Template. In practice this is typically accomplished via the Panamax Client. A single Panamax Client can register one or more deployment targets and a single Deployment target can be registered with multiple Panamax Clients.

Bootstrap a docker host machine with the components that makeup a Panamax Deployment Target.

  • To be run as a bash script
  • Dependencies: OS with Docker installed
  • Languages: Bash

A small, containerized agent which runs in the remote environment (Deployment Target) and listens for requests from the Panamax Client via a REST API. These requests are coerced into instructions that get passed to an Orchestration adapter.

  • To be run as a Docker container
  • Dependencies: one of the Panamax Orchestration Adapters
  • Languages: Ruby
  • Framework: Rails
  • Exposes an API: REST API

Remote Target

Encapsulates all of the orchestrator-specific logic in a dedicated adapter layer that is distinct from the agent. The user is able to select the adapter that matches the orchestration technologies available in their target environment. more...

  • To be run as a Docker container
  • Dependencies: orchestrator the adapter talks with
  • Languages: Any
  • Exposes an API: REST API (must conform to the REST API outlined in the Adapter Guide

Some exisitng adapters include:

Misc. Components

Panamax Template Repos

A template repo is simply a repository containing .pmx template files. The Panamax Client will search template repo sources registered with that specific client. The Panamax Public Templates Repo comes seeded by default in the Panamax Client.

Docker Registries

The Panamax client can search one or more Docker registries for images. The Docker Hub comes seeded by default, but users may register any number of additional Docker registries with a Panamax Client.