2017 © Pedro Peláez
 

library framework

The dynamicro PHP Framework, inspired by Silex

image

bakery/framework

The dynamicro PHP Framework, inspired by Silex

  • Thursday, March 21, 2013
  • by mikemackintosh
  • Repository
  • 0 Watchers
  • 1 Stars
  • 10 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 4 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Bakery

Actions Status, (*1)

, (*2)

Bakery is a sweet new way of configuring devices with configuration formats you're familiar with., (*3)

Overview

I lead a client engineering team for a few years. We were very effective at our jobs, but often were annoyed at the inconsistent tooling between macOS, Windows and Linux. macOS required munki or worse off, JAMF. Linux ran Chef, which became costly in an enterprise due to their changing business model. Windows, no one wanted to tackle that giant leaving unstable and unpolished tools like AirWatch part of our limited toolset. We knew there had to be a better way., (*4)

Adding onto a tool I used personally for several years to manage my own devices, I wanted to make a proof of concept for something better just to show it's possible. I sure as hell appreciate and respect all the work out there to date; all the tools and services that other contributors have shared and maintained., (*5)

I started with macOS support due to it being my daily driver., (*6)

Goals and Values

Keeping Bakery simplistic is the number one goal, and it's easy to stray from this. In order to stay focused, I came up with the following values:, (*7)

  • The framework you use to deliver your configurations should have a small physical footprint on the client.
  • The framework delivering the configuration should have a minimal number of runtime dependencies.
  • The framework should be able to use a bundled config, a remote config or a local config.
  • The configurations should be easily readable.
  • The configurations should be easily writeable.
  • The configurations should be easily testable.

By defining the above, I came to the following conclusions: - I wanted the service to run in Go, since there are no runtime dependencies. Once the binary is built, it can run without additional software. - I wanted the service to be able to pack local configs as part of the binary. - I want to use HCL as the standard dsl since it's very clear, explicit and familiar to most engineers. - I wanted the service to be able to download remote configurations. - I wanted the service to be able to bundle package resources., (*8)

Usage

Download Bakery:, (*9)

go get github.com/mikemackintosh/bakery
cd $GOPATH/src/github.com/mikemackintosh/bakery

Build:, (*10)

make build

Update your configuration:, (*11)

vim config.yum

Flags:

Usage of bakery:
  --temp-dir string
        Temporary resource directory (default " /var/bakery/tmp")
  -b    Bundle client config with binary
  -c string
        Configuration file (default "manifest.yml")
  -d    When enabled, turns on debugging
  -r string
        Client recipe file (default "config.yum")
  -v int
        Sets output verbosity level (default 1)

Resource Types

The following are just a preview of resource types supported. There is also dependency resolution which you will see in the examples below., (*12)

Git

git "dotfiles" {
  source = "https://github.com/mikemackintosh/dotfiles"
  destination = "~/.dotfiles_test"
  branch = "master"
  depends_on = "Accept Xcode License"
  path = "/usr/bin/git"
  user = "self"
}

Shell

shell "Accept Xcode License" {
  script = <<EOT
xcodebuild -license accept
EOTs
}

Brew

brew "package" {
  action = "upgrade"
}

Zip

// Install dash from their website (.app bundle within the zip)
zip "Dash" {
  source = "https://sanfrancisco.kapeli.com/downloads/v4/Dash.zip"
  checksum = "802c5a63ac72c94ae4c6481529f11795c35f316d3607c9946f777f447b670c50"
  destination = "/Applications/"
  not_if = "ls -la /Applications/ | grep 'Dash.app'"
}

DMG

dmg "Docker" {
  source = "https://download.docker.com/mac/stable/Docker.dmg"
  checksum = "a06307d8da9c3778b183786cb87037ed3b7226d36ebc978fd40aa90851c0a04e"
}

Font

font "ubuntu" {
  source = "https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-0.83.zip"
  checksum = "456d7d42797febd0d7d4cf1b782a2e03680bb4a5ee43cc9d06bda172bac05b42"
}

The Versions

21/03 2013

dev-master

9999999-dev http://bakeryframework.com

The dynamicro PHP Framework, inspired by Silex

  Sources   Download

MIT

The Requires

 

by Mike Mackintosh

microframework bakery

21/03 2013

dev-working

dev-working http://bakeryframework.com

The dynamicro PHP Framework, inspired by Silex

  Sources   Download

MIT

The Requires

 

by Mike Mackintosh

microframework bakery