Deis v1, the CoreOS and Docker PaaS: Your PaaS. Your Rules.
Deis v1.11.1 works around a bug in simultaneous docker pull
by serializing the startup of global units with layers in common.
7c02cd6
fix(*): use flock to serialize certain pullsThe Deis project is proud to announce v1.11.0, featuring a rewritten deis-logger component with settings that allow in-memory storage and TCP forwarding. Stateless Deis clusters now include deis-logger and support the deis logs
command.
Join the fun: new contributors to Deis can get free DigitalOcean credits!
If you are coming from an earlier version of Deis, please read the "Upgrading Deis" documentation for details.
Deis is an open source PaaS that makes it easy to deploy and manage applications on your own servers. Deis builds upon Docker and CoreOS to provide a lightweight PaaS with a Heroku-inspired workflow.
deis apps:transfer
lets a user hand off ownership of an app to another user$DEISCTL_TUNNEL
is automatically discovered on vagrant provisioningrigger
, the new deployment tool for Deisdeisctl
is neededdeis config:set
handles multi-line environment variablesdeis
client suggests help if deis create
fails on the git remotedeis
correctly displays unexpected non-JSON error messages and malformed logsdeis
prints all error messages to stderrroute53-wildcard
contrib script handles its --zone
argument correctlydeis register
returns a better error if registration is disableddeisctl status
is listed in the main help messageetcd
is runningetcd2
and flannel
servicesshellcheck
script linter tool was updated to 0.4.1For more details, please see CHANGELOG.md.
The Deis registry must be upgraded to the new v2 API to ensure forward-compatibility with Docker. This has a number of added benefits including performance and trust. Great progress has been made in detaching deis-controller from depending on a specific Docker version and in reimplementing deis pull
to work with any standard registry container. Work remains to migrate existing v1 registry data to v2.
Rigger is a new tool designed to make it easier to provision and test Deis clusters. With rigger
, you can stand up and test a Deis cluster on any provider with just a handful of simple commands. The Deis core team is already using rigger
internally, but we are looking for feedback. Please provide your thoughts and requirements on the design document.
We want to thank the following Deis community members for creating GitHub issues, providing support to others, and working on various Deis branches:
deisctl
to Restful-API use https?signal process started
, Stateless install: graceful upgrade re-install Deis in stateful mode, Can add multiple ssh keys with the same name and remove throws an exceptionThe Deis community continues to grow, and Deis wouldn't be here without you! If we slighted your contribution to this release, please let us know so we can update.
Learn about other ways to get involved on our website.
The Deis project is proud to announce v1.10.0, which speeds up the deis
command-line client and deis-builder.
Join the fun: new contributors to Deis can get free DigitalOcean credits!
If you are coming from an earlier version of Deis, please read the "Upgrading Deis" documentation for details.
Deis is an open source PaaS that makes it easy to deploy and manage applications on your own servers. Deis builds upon Docker and CoreOS to provide a lightweight PaaS with a Heroku-inspired workflow.
deis
command-line tool has been rewritten in Go and is much fasterdeis
respects the --limit=
flag for commands which list resultstests/bin/accept
make -C swarm/ build
deis
prints any warningdeisctl install
and similar commands group k8s, mesos, and swarm components logicallydeisctl dock
and deisctl ssh
show help and handle arguments more consistentlyFor more details, please see CHANGELOG.md.
Due to critical bugs in recent Docker engines related to parallel layer pulls and v1/v2 registry compatibility, we've been forced to pin Deis clusters to Docker 1.5.0. We now believe these issues have been resolved and are eager to move to the newer version of Docker that ships with the latest CoreOS stable release.
The Deis registry must be upgraded to the new v2 API to ensure forward-compatibility with Docker. This has a number of added benefits including performance and trust. However, this will be a tricky migration given the v1 registry data we currently store, as well as the deis pull
hooks in our fork of the Docker registry.
Rigger is a new tool designed to make it easier to provision and test Deis clusters. With rigger
, you can stand up and test a Deis cluster on any provider with just a handful of simple commands. The Deis core team is already using rigger
internally, but we are looking for feedback. Please provide your thoughts and requirements on the design document.
We want to thank the following Deis community members for creating GitHub issues, providing support to others, and working on various Deis branches:
docker run
, feat(logspout): support sending log via tcp, docs(isolating-etcd): add link to user-data.example, feat(Makefile): option to disable store componentsThe Deis community continues to grow, and Deis wouldn't be here without you! If we slighted your contribution to this release, please let us know so we can update.
Learn about other ways to get involved on our website.
Deis v1.9.1 fixes an error that could prevent etcd2
from starting properly on AWS clusters, a problem that hampered flannel
on DigitalOcean, and several other issues. Any user who has had trouble provisioning Deis on AWS or DigitalOcean is encouraged to re-provision using Deis v1.9.1.
d9a09b0
contrib: fix etcd2 data directory on AWS8f50e70
publisher: ignore healthcheck values if unset70867aa
controller: require fleet.socket1f2264c
flannel: use default iface for starting flannel except vagrantee15c14
deisctl/units: stop k8s services without errorse92e2db
contrib: fix debug-etcd837ef9d
mesos-marathon: change instances to zero instead of scale to zero76571aa
(all): bump etcd to 2.1.2The Deis project is happy to announce v1.9.0, which introduces Kubernetes and Mesos tech preview schedulers, provides custom health checks for your apps, and lays groundwork for the future with graceful upgrade tools.
If you are coming from an earlier version of Deis, please read the "Upgrading Deis" documentation for details.
Deis is an open source PaaS that makes it easy to deploy and manage applications on your own servers. Deis builds upon Docker and CoreOS to provide a lightweight PaaS with a Heroku-inspired workflow.
deis config:set HEALTHCHECK_URL=/
enables liveness and readiness app health checks
deisctl dock
opens a shell or runs commands on a running containerdeisctl ssh
can also run commands directly on a nodedeisctl install
can specify the router mesh size (default is 3)deis
CLI written in Go is ready for your testing and feedback!make commit-hook
installs a helper to warn about git commit style
deisctl
exits with an error if stop
or start
failsTicker
for time-related operationsset_random
flannel
overlay network is active on newly provisioned clustersetcd
v2.1.1 runs in a container on newly provisioned clustersfleet
code for deisctl
to 0.9.2For more details, please see CHANGELOG.md.
The deis-builder component consists of a variety of shell scripts and binary tools which has proved difficult to maintain over time. Rewriting the builder as a set of Go packages will make it easier to test, improve, and extend this core component.
This work is nearly completed. See PR 4010 for more detail.
The deis
CLI is a one-file python app that has served the project well, but its PyInstaller-based binary packaging is inefficient, and it sometimes runs into incompatibilities with specific platforms. Rewriting the deis
CLI as a Go binary has already proved to be faster and more portable.
This work is nearly completed. See PR 4015 for more detail.
Today Deis cannot provide bi-directional streams needed for log tailing and interactive batch processes. By having the Controller drive a TTY Broker component, Deis can securely open WebSockets through the routing mesh.
See TTY Broker at the Deis Roadmap for more detail.
Deis uses a simple permissions model currently, involving only two roles: admin and user. Features such as sharing applications, modifying certs, and changing config could be implemented with more specific permissions.
Work is underway on gathering community feedback and implementing teams and more refined permissions. See issue 4150 and issue 4173 for details.
The Deis project would like to extend our profound gratitude to 2015 interns Joshua Anderson (@Joshua-Anderson) and Keerthan Mala (@kmala). Joshua attacked the controller, client, and project infrastructure and made myriad improvements while rewriting our world in Go. Keerthan applied his domain expertise and owned Kubernetes (k8s), giving Deis a scheduler for the future. We have all enjoyed working with Joshua and Keerthan more than we can say, and the Deis project is much richer because of them. Thank you!
We want to thank the following Deis community members for creating GitHub issues, providing support to others, and working on various Deis branches:
deis pull drone/drone:latest
, Possible to pass custom docker flags to Deis app?, deis-builder won't start after 1.6.1 -> 1.7.3 upgrade, deis config:push -a someappname
doesn't workThe Deis community continues to grow, and Deis wouldn't be here without you! If we slighted your contribution to this release, please let us know so we can update.
Learn about other ways to get involved on our website.
The Deis project is proud to announce v1.8.0, which makes installation of store, database, and logger optional when running external backing stores, adds deisctl ssh
and deis auth:regenerate
commands, and unleashes Deis onto Linode.
If you are coming from an earlier version of Deis, please read the "Upgrading Deis" documentation for details.
Deis is an open source PaaS that makes it easy to deploy and manage applications on your own servers. Deis builds upon Docker and CoreOS to provide a lightweight PaaS with a Heroku-inspired workflow.
reuseport
socket sharding
deisctl ssh <component>
opens a shell directly to the node running the specified Deis componentdeis auth:regenerate
creates a new authentication tokendeisctl
is substantially refactored, with beefier, parallelized test coveragedeisctl
won't hang forever waiting for a missing serviceDEIS_DRINK_OF_CHOICE=slurm
won't break integration tests nowetcdctl watch
output periodicallydocker push
on Docker Hub errorsFor more details, please see CHANGELOG.md.
To enable publishing of new app releases with zero downtime, Deis needs a more strict, configurable HTTP healthcheck facility. Substantial progress has been made, but more coding and testing remains. Look forward to true zero-downtime deploys in the next release!
Today Deis cannot provide bi-directional streams needed for log tailing and interactive batch processes. By having the Controller drive a TTY Broker component, Deis can securely open WebSockets through the routing mesh.
See TTY Broker at the Deis Roadmap for more detail.
Today Deis uses Fleet for scheduling. Unfortunately, Fleet does not support resource-based scheduling, which results in poor cluster utilization at scale.
Fortunately, Deis is composable and can easily hot-swap orchestration APIs. Because the most promising container orchestration solutions are under heavy development, the Deis project is focused on releasing "technology previews".
These technology previews will help the community try different orchestration solutions easily, report their findings and help guide the future direction of Deis.
See Scheduling and Orchestration at the Deis Roadmap for more detail.
A CP database like etcd
is central to Deis, which requires a distributed lock service and key/value store. As problems with etcd directly impact platform stability, Deis must move to the more stable etcd2.
See Etcd 2 at the Deis Roadmap for more detail.
We want to thank the following Deis community members for creating GitHub issues, providing support to others, and working on various Deis branches:
deis config:push -a someappname
doesn't work, "Welcome to nginx!" page after git push, journalctl shows "[WARNING] - 501: All the given peers are not reachable (Tried to connect to each peer twice and failed) [0]" on a machine, Auto restart app when it crashes?, Can't push to deis after deisctl restart builder
, deis logs
doesn't show log with Procfile based deployment, Weird deis ps
output after running deis config:set ...
and git push
at the "same" time, "Welcome to NGINX" after switching from Dockerfile based deployment to Procfile, HTTPS 504 GATEWAY_TIMEOUT after setting AWS ELB httpsdeis run
writes output to logs, and not to the client, noise in logs on non-ipv6 hostslocation
blockThe Deis community continues to grow, and Deis wouldn't be here without you! If we slighted your contribution to this release, please let us know so we can update.
Learn about other ways to get involved on our website.
Deis v1.7.3 fixes an issue where the deis/slugrunner
image could be inadvertently removed, preventing deis/builder
from starting up.
87d2ba3
builder: call ls rather than using a wildcardDeis v1.7.1 fixes an issue with deis-logger publishing keys to etcd
too frequently, causing high CPU load. All Deis users are encouraged to upgrade to this release.
c73c8f7
logger: adjust publish and ttl times to secondsDeis v1.7.1 fixes an issue in deisctl where refresh-units
was not appending .service
to the refreshed unit files, causing users to deploy older unit files when upgrading.
e8df401
deisctl: Add extension when refreshing units