All Projects → deis → builder

deis / builder

Licence: MIT license
Git server and application builder for Deis Workflow

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to builder

logger
In-memory log buffer used by Deis Workflow.
Stars: ✭ 17 (-57.5%)
Mutual labels:  deis-workflow, unsupported
minio
Minio Object Storage in Kubernetes, used by Deis Workflow.
Stars: ✭ 51 (+27.5%)
Mutual labels:  deis-workflow, unsupported
postgres
A PostgreSQL database used by Deis Workflow.
Stars: ✭ 37 (-7.5%)
Mutual labels:  deis-workflow, unsupported
dockerbuilder
Deis dockerbuilder builds your app from a Dockerfile inside a Kubernetes pod, used by Deis Workflow.
Stars: ✭ 17 (-57.5%)
Mutual labels:  deis-workflow, unsupported
meteor-smart-disconnect
A Meteor package that disconnects your site in a smart manner.
Stars: ✭ 68 (+70%)
Mutual labels:  unsupported
cisco ios
Cisco IOS Catalyst module
Stars: ✭ 14 (-65%)
Mutual labels:  unsupported
comical-jekyll-theme
A Configurable Webcomic Theme for Jekyll
Stars: ✭ 39 (-2.5%)
Mutual labels:  unsupported
bal-util
Utility functions for JavaScript and Node.js used and maintained by Benjamin Lupton
Stars: ✭ 13 (-67.5%)
Mutual labels:  unsupported
example-ruby-sinatra
A simple Ruby app for Deis, the open source PaaS
Stars: ✭ 18 (-55%)
Mutual labels:  deis-workflow
CSScaffold
The original CSScaffold by Anthony Short... He deleted the original repository when he released the newer version.
Stars: ✭ 26 (-35%)
Mutual labels:  unsupported
docpad-skeleton-yui
A YUI Purecss 0.6.0 skeleton for DocPad.
Stars: ✭ 13 (-67.5%)
Mutual labels:  unsupported
docpad-plugin-inlinegui
Plugin that brings Web Write's Inline GUI/CMS to DocPad
Stars: ✭ 14 (-65%)
Mutual labels:  unsupported
Unsupported
Unsupported Zenphoto scripts [abandoned]
Stars: ✭ 18 (-55%)
Mutual labels:  unsupported
ArcGIS.PCL
Migrated to https://github.com/davetimmins/Anywhere.ArcGIS
Stars: ✭ 39 (-2.5%)
Mutual labels:  unsupported
rigger
rigger is a tool to deploy Deis v1 on a variety of cloud providers.
Stars: ✭ 57 (+42.5%)
Mutual labels:  unsupported
ubiquitous-memory
new version? pull request.
Stars: ✭ 58 (+45%)
Mutual labels:  unsupported
Deis
Deis v1, the CoreOS and Docker PaaS: Your PaaS. Your Rules.
Stars: ✭ 6,107 (+15167.5%)
Mutual labels:  unsupported
example-python-flask
A simple Python / Flask app for Deis, the open source PaaS
Stars: ✭ 16 (-60%)
Mutual labels:  deis-workflow
simple-server
Use https://github.com/zeit/serve or `python -m SimpleHTTPServer 8000` instead
Stars: ✭ 33 (-17.5%)
Mutual labels:  unsupported
docker-go-dev
The containerized Go development environment.
Stars: ✭ 93 (+132.5%)
Mutual labels:  deis-workflow
Deis Workflow is no longer maintained.
Please read the announcement for more detail.
09/07/2017 Deis Workflow v2.18 final release before entering maintenance mode
03/01/2018 End of Workflow maintenance: critical patches no longer merged
Hephy is a fork of Workflow that is actively developed and accepts code contributions.

Deis Builder v2

Build Status codecov Go Report Cardcodebeat badge Docker Repository on Quay

Deis (pronounced DAY-iss) Workflow is an open source Platform as a Service (PaaS) that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications on your own servers.

For more information about Deis Workflow, please visit the main project page at https://github.com/deis/workflow.

We welcome your input! If you have feedback, please submit an issue. If you'd like to participate in development, please read the "Development" section below and submit a pull request.

About

The builder is primarily a git server that responds to git pushes by executing either the git-receive-pack or git-upload-pack hook. After it executes one of those hooks, it takes the following high level steps in order:

  1. Calls git archive to produce a tarball (i.e. a .tar.gz file) on the local file system
  2. Saves the tarball to centralized object storage according to the following rules:
    • If the BUILDER_STORAGE environment variable is other than minio, attempts to create the appropriate storage driver and saves using this driver.
  • Otherwise, if BUILDER_STORAGE is minio and the DEIS_MINIO_SERVICE_HOST and DEIS_MINIO_SERVICE_PORT environment variables exist (these are standard Kubernetes service discovery environment variables), saves to the S3 API compatible server at http://$DEIS_MINIO_SERVICE_HOST:$DEIS_MINIO_SERVICE_HOST
  1. Starts a new Kubernetes Pod to build the code, according to the following rules:
  • If a Dockerfile is present in the codebase, starts a dockerbuilder pod, configured to download the code to build from the URL computed in the previous step.
  • Otherwise, starts a slugbuilder pod, configured to download the code to build from the URL computed in the previous step.

Supported Off-Cluster Storage Backends

Builder currently supports the following off-cluster storage backends:

  • GCS
  • AWS/S3
  • Azure
  • Swift

Development

The Deis project welcomes contributions from all developers. The high level process for development matches many other open source projects. See below for an outline.

  • Fork this repository
  • Make your changes
  • Submit a pull request (PR) to this repository with your changes, and unit tests whenever possible
    • If your PR fixes any issues, make sure you write Fixes #1234 in your PR description (where #1234 is the number of the issue you're closing)
  • The Deis core contributors will review your code. After each of them sign off on your code, they'll label your PR with LGTM1 and LGTM2 (respectively). Once that happens, a contributor will merge it

Docker Based Development Environment

The preferred environment for development uses the go-dev Docker image. The tools described in this section are used to build, test, package and release each version of Deis.

To use it yourself, you must have make installed and Docker installed and running on your local development machine.

If you don't have Docker installed, please go to https://www.docker.com/ to install it.

After you have those dependencies, grab Go dependencies with make bootstrap, build your code with make build and execute unit tests with make test.

Native Go Development Environment

You can also use the standard go toolchain to build and test if you prefer. To do so, you'll need glide 0.9 or above and Go 1.6 or above installed.

After you have those dependencies, you can build and unit-test your code with go build and go test $(glide nv), respectively.

Note that you will not be able to build or push Docker images using this method of development.

Testing

The Deis project requires that as much code as possible is unit tested, but the core contributors also recognize that some code must be tested at a higher level (functional or integration tests, for example).

The end-to-end tests repository has our integration tests. Additionally, the core contributors and members of the community also regularly dogfood the platform. Since this particular component is at the center of much of the Deis Workflow platform, we find it especially important to dogfood it.

Running End-to-End Tests

Please see README.md on the end-to-end tests repository for instructions on how to set up your testing environment and run the tests.

Dogfooding

Please follow the instructions on the official Deis docs to install and configure your Deis Workflow cluster and all related tools, and deploy and configure an app on Deis Workflow.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].