Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

cloudflare/cfdeploy

Open more actions menu

Cloudflare Deployment Tool

Build Status GoDoc

This tool allows you to easily deploy Docker Image(s) to Marathon.

Features:

  • Has a single dependency - Go
  • Validates your Marathon YAML file and converts to JSON
  • Checks that your Docker images are published before deploying to Marathon
  • Automatically interpolates image tags via customizable template
    • e.g. {{ .GitRevCount }}-{{ .GitRevShort }} = 93-5814f5e
  • Supports multiple deployment targets/environments

Installation

Assuming:

  1. you have a correctly configured $GOPATH
  2. you have $GOPATH/bin in your $PATH
go get -u github.com/cloudflare/cfdeploy
cfdeploy # shows help message

Setup

Create a deploy.yaml file alongside your Marathon staging.yaml and prod.yaml files such as this:

marathon:
  host: marathon.example.com
image:
  repository: index.docker.io
  tagTemplate: "{{ .GitRevCount }}-{{ .GitRevShort }}"

environments:
  prod:
    marathon:
      file: prod.yaml
    images:
      svc:
        name: library/hello-world
  staging:
    marathon:
      file: staging.yaml
    images:
      svc:
        name: library/hello-world

Then, modify your Marathon files to have the Docker image replaced into them, e.g:

...
    container:
      type: DOCKER
      docker:
        image: {{ index .Images "svc" }}
...

Note: the key "svc" must match the key under environments.ENV.images.KEY in your deploy.yaml file.

Usage

If you have direct (unauthenticated) access to your Marathon instance:

cfdeploy -e staging

or

cfdeploy -e staging -y to skip the confirmation prompt.

If you need to specify a custom Marathon hostname or headers:

cfdeploy -e staging
    -marathon.host my-marathon.example.com \
    -marathon.curlopts '-H "OauthEmail: ..." -H "OauthAccessToken: ..." -H "OauthExpires: ..."'

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.