/cfjump-alpine

Re-implementation of cfjump using Alpine Linux

Primary LanguageShellApache License 2.0Apache-2.0

cfjump

Re-implementation of cfjump on Alpine Linux with the purpose of reduce its size.

Jumpbox Docker image with most of the required tools to install and operate Cloud Foundry from the command line. It works with different workflows, and includes several tools to work with OpsManager and other Pivotal-specific components. It also includes some IaaS-specific CLI tools for OpenStack, AWS, GCP, and Azure.

It has been tested only on an Ubuntu Server 16.04 (Xenial) 64-bit Docker host VM. Your mileage on other systems may vary.

v0.2 includes:

Linux
  • gliderlabs/alpine base image
  • Several Linux troubleshooting tools like iPerf, nmap and tcpdump.
  • Golang (1.6)
Cloud Foundry tools
  • bosh-init (latest)
  • BOSH CLI (latest)
  • bosh-cli (latest) Golang implementation of the BOSH CLI. Early Alpha.
  • cf CLI (latest)
  • uaac CLI
  • Concourse fly CLI (latest)
  • asg-creator (latest) A cleaner way to create and manage ASGs.
  • Deployadactyl (latest). Go library for deploying applications to multiple Cloud Foundry instances.
Pivotal-specific
  • cfops (latest) automation based on the supported way to back up Pivotal Cloud Foundry
  • PivNet CLI pivnet (experimental, early Alpha) CLI (latest)
  • OpsMan-cli (CLI to interact with OpsManager).
  • cf-mgmt (latest) Go automation for managing orgs, spaces that can be driven from concourse pipeline and git-managed metadata.
  • bosh-bootloader Command line utility for standing up a CloudFoundry or Concourse installation on an IAAS of your choice.
IaaS tools
Other useful tools
Currently NOT working

Running

First, make sure you can run instances as a regular unprivileged user. This container will create an internal user with uid and gid of 1000, same as the default in Ubuntu, which makes easier to share folders with the host.

The included cfja script make the operation of virtual jumpboxes easy. Copy it to a directory in your $PATH and use it to interact with the virtual jumpboxes. The operation is:

  • cfja list (or simply cfja with no arguments) to list the running containers.
  • cfja <name> to either create or enter a container.
  • cfja kill <name> to delete a running container. The associated shared volume won't be deleted. That needs to be done manually if desired. You can also specify cfja kill all, which will destroy all running (or stopped) jumpbox containers.

You can use different jumpbox instances for different sessions, users, environments, etc, as long as you use different shared folders.

Building

You can just get this image from Docker Hub by running:

docker pull ramxx/cfjump-alpine:latest

Or if you prefer to build it yourself:

git clone https://github.com/RamXX/cfjump-alpine
cd cfjump-alpine
docker build -t ramxx/cfjump-alpine:latest .

Limitations

Every instance of a container can only be used by a single user at the time. If another user attempts to join the same container while being used, all screen I/O will be duplicated in each screen.

It may be possible to use an sshd daemon to support multiple sessions, but that's outside the scope of this work.

Additionally, man pages are not installed in this image to decrease its size. Typically, man pages can be accessed on the Docker host itself or easily found online.

Contributing

Please submit pull requests with any correction or improvement you want to do. I hope this is useful to others.