A tool for developers to create cloud-native applications on Kubernetes.
Перейти к файлу
Michelle Noorali bbc00d56f1 feat(*): add post up task type 2018-12-08 17:25:16 -05:00
.circleci Update Go to 1.11.1 and remove unused DOCKER_USERNAME ref from config 2018-10-03 14:48:56 +03:00
cmd/draft feat(*): add post up task type 2018-12-08 17:25:16 -05:00
docs Fix dead link to installation guide and update helm repository link (#870) 2018-10-03 06:03:16 +03:00
examples Gradle example app, migrated from example-java 2018-08-18 16:46:01 +02:00
packs Packs: upgraded to jdk11 2018-10-14 11:51:05 +02:00
pkg feat(*): add post up task type 2018-12-08 17:25:16 -05:00
scripts Added scripts to test-run all the examples 2018-09-08 14:35:31 +02:00
.gitignore add .dockerignore and .draft-tasks.toml to gitignore 2018-04-23 12:31:14 -07:00
CHANGELOG.md add v0.16.0 CHANGELOG 2018-08-27 11:46:25 -04:00
CONTRIBUTING.md Undid test changes to CONTRIBUTING.md 2018-08-02 16:02:49 -07:00
GOVERNANCE.md elaborate more on the contribution process 2018-05-30 14:39:27 -07:00
Gopkg.lock feat(add): disable emoji flag 2018-10-03 01:03:39 +02:00
Gopkg.toml bump helm to v2.9.0 2018-05-14 10:46:41 -07:00
LICENSE docs(LICENSE): update license details 2017-05-08 12:15:43 -06:00
Makefile fix memory limitation issues on CircleCI 2018-05-29 14:01:08 -07:00
NOTICE remove Heroku notices 2018-03-22 14:49:37 -07:00
OWNERS add Radu Matei as an Admiral of Draft 2018-05-16 13:16:51 -07:00
README.md ref(README): make it easier to find install instru 2018-05-11 16:25:38 -04:00
appveyor.yml fix Windows filepath issues 2018-05-15 16:10:51 -07:00
code-of-conduct.md add link to Microsoft's Open Source Code of Conduct 2018-05-16 15:19:35 -07:00
versioning.mk rename to Azure 2017-05-08 10:25:32 -07:00

README.md

Draft Logo Build Status

Draft: Streamlined Kubernetes Development

Draft makes it easier for developers to build applications that run on Kubernetes by doing two main things:

  1. The draft create command gives developers the artifacts they need to build and run their applications in Kubernetes
  2. The draft up command builds the container image for an application and deploys it to Kubernetes

Draft targets the "inner loop" of a developer's workflow: as they hack on code, but before code is committed to version control.

Install the draft binary

To install via homebrew, run brew tap azure/draft && brew install draft or download the binary via the github releases page

Note: Draft requires a running Kubernetes cluster and Helm. If you don't already have a running Kubernetes cluster, check out the minikube install guide.

Overview

asciicast

Using Draft is as simple as:

  1. draft init to set up draft (after prerequisites are installed)
  2. draft create to containerize your application based on Draft packs
  3. draft up to deploy your application to a Kubernetes dev sandbox, accessible using draft connect over a secured tunnel.
  4. Use a local editor to modify the application, with changes deployed to Kubernetes in seconds.

Once the developer is happy with changes made via Draft, they commit and push to version control, after which a continuous integration (CI) system takes over. Draft builds upon Kubernetes Helm and the Kubernetes Chart format, making it easy to construct CI pipelines from Draft-enabled applications.

Join the conversation in Slack! If you don't already have a Kubernetes slack account, sign up here.

Installation Guides

Use the Minikube install guide to install and use Draft locally with Minikube. The default installation skips pushing the image, deploying directly from the local repository, which makes developer work very fast.

Use the Cloud provider install guide to install and use Draft to build locally but push images to a public (or private) repository and deploy into a Kubernetes cluster offered by a cloud provider such as Azure, Google, AWS, or any other provider.

Remember, however, take note of the major changes in releases greater than 0.12 if you have already used Draft. It's different. No, really.

Take Draft for a Spin

Climb aboard and explore the Getting Started Guide - you'll soon be sailing!

NOTE: Draft is experimental and does not have a stable release yet.

If you're having issues after upgrading draft, try deleting the draft home directory where all the draft configuration files live and then re-run the draft init command (shown below). You'll have to re-install any custom plugins and configuration after deleting $(draft home) Example:

$ draft home
/Users/admin/.draft
$ rm -rf $(draft home)
$ draft init

Starting with the 0.12 release, Draft moves the containment and deployment engine to your local machine. This changes quite a bit about how Draft works compared to prior releases; for details, see the changelog.

For previous users, this change means that you now have more control over where your container images are stored, and in the local Minikube environment you can skip pushing the images entirely, which speeds up the developer iteration speed dramatically. (Short version without jargon: you can build and run your app really fast.) However, when you want to push your images to an image registry service like Docker hub (or ACR, GCR, Quay.io, and so on) you must inform draft which registry to use and your cluster must have access to the secrets for that registry.

We're always looks for contributions in the form of issues, pull requests, and docs changes. If you see anything that would make Draft a better experience for yourself or others, please feel free to contribute. See the contributing section below for more details!

Contributing

If you're looking to build from source or get started hacking on Draft, please see the hacking guide for more information.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

License

This software is covered under the MIT license. You can read the license here.

This software contains code from Helm, which is covered by the Apache v2.0 license.

You can read third-party software licenses here.