habitat.sh

Current

Supervisor

Supervisor Maturity

Add multi-threaded capabilities to the Supervisor, and improve and invest in Supervisor capabilities to make it capable of running production workloads across a large ring with very low downtime. 

 

  • IDEA 042 - We currently have one value for setting a user/group in a plan. Processes which start as one user and then change to another (downgrade permissions) will refuse to start if they read/write data to a service directory

    Queued for Dev

    Backlog

  • IDEA 043 - Break up client release into the sum of its parts. We need to be able to release the CLI separately from the Supervisor, or any other component, if necessary.

    Queued for Dev

    Backlog

  • IDEA 044 - Refactor Supervisor threading model to support running service lifecycle hooks in a non-serial parallel manner

    In Development

    Backlog

  • IDEA 045 - Decouple Habitat CLI from Supervisor to gain ability to synchronously issue commands to the Supervisor.

    In Development

    Backlog

  • IDEA 046 - Fix "bind not available" on startup issue. This is the issue where Supervisors wait for binds to become available before they, themselves, will start their services. Supervisors can incorrectly see that another binds are not available when they are

    Queued for Dev

    Backlog

  • IDEA 048 - Configurable log output

    QA

    Backlog

  • IDEA 049 - Add “trigger”/”automatic” designation to upgrade strategies on Supervisor

    Queued for Dev

    Backlog

Builder

Habitat Builder: on-going capabilities & feature work

Work focused on getting Builder to a v 1.0 state.

  • IDEA 039 - Host all release binaries from Builder (vs Bintray) and leverage release channels to test client releases before promoting them to stable channels.

    Queued for Dev

    Unsorted

  • IDEA 040 - Modify run hook to handle one or more exit code(s) from the service process to instruct the Supervisor to NOT restart the process and place it in a downed state. This will be useful for a case where a Builder service which can't be recovered by restart is

    Queued for Dev

    Unsorted

  • IDEA 047 - Running database migrations should only occur if migrations must be run

    In Development

    Unsorted

  • IDEA 057 - Add Windows packages to Builder for automatic rebuilds

    New idea

    Unsorted

Habitat.sh

Improve "getting started" docs and experience

As a new user visiting the habitat.sh website, I want to quickly understand what Habitat is, how it relates to technologies I want to use, and how to get started using it to solve my problems. 

  • IDEA 036 - Kubernetes landing page

    Released

    Unsorted

  • IDEA 037 - Get started with Node.js and Habitat

    Queued for Dev

    Unsorted

  • IDEA 038 - Get started with Ruby and Habitat

    In Development

    Unsorted

Supervisor

Run hab as non-root

As a user, I want to be able to run hab as a non-root user, so that I can honor my security policies on machines. 


This also opens up integrations with Openshift, HPC clusters, and more!


Github issue: https://github.com/habitat-sh/habitat/issues/1408

Supervisor

Composite Packages

A composite package is a package that runs multiple services. It is composed of multiple plans. There is a one to one mapping between a composite plan and a Supervisor. 


Example: 

nginx + app server

php with its many services 

single node for demo environment with front end & backend combined in docker container

supervisor
  • IDEA 033 - Composite Packages released in beta

    Released

    Unsorted

  • IDEA 034 - Composite Packages: Auto Rebuild with Builder

    Queued for Dev

    Unsorted

Near term

Ecosystem

Cloud Native Ecosystem Work

This is work on Habitat and in the cloud native ecosystem around Habitat to improve the experience and delight users who are invested in adopting and maintaining cloud native technologies.


  • IDEA 058 - Process Isolation on Linux without Docker (investigate RunC)

    New idea

    Unsorted

  • IDEA 059 - Build, run, and maintain a kubernetes cluster using Builder and Habitat Supervisor

    New idea

    Unsorted

  • IDEA 060 - Zoned/spanning ring: have a ring that can span Supervisors/applications inside and outside of Kubernetes.

    In Development

    Unsorted

  • IDEA 061 - Create a Kubernetes deployment using Habitat

    New idea

    Unsorted

  • IDEA 062 - Helm exporter and integration work

    In Development

    Unsorted

  • IDEA 063 - Add open service broker integration to make it easy for Kubernetes cluster-managed and non-cluster managed workloads to build and communicate

    Queued for Dev

    Unsorted

Builder

Self-Hosted Habitat Builder Depot

Allow users to download and install their own Habitat Builder Depot, to host habitat packages and perform promotion activities behind the firewall, on cloud or on prem. 


This is a step towards "Builder Neighborhoods," but will lack a bunch of the more advanced Builder capabilities as an initial MVP. Core packages and upstream packages will be built by public Builder, and available as subscriptions to your Builder Depot. 

Builder

Core Packages: Automation & Production-Ready Reliability

Add automation and process to improve the reliability and quality of core-packages, so users can trust Habitat core plans as they adopt them to help build and ship their applications. 

  • IDEA 050 - Add build phase integration testing

    Queued for Dev

    Unsorted

  • IDEA 051 - Update core plans to use build phase integration testing

    New idea

    Unsorted

  • IDEA 052 - Fail builds that fail integration testing

    New idea

    Unsorted

  • IDEA 053 - Add test applications that test large scale group rebuilds of core packages to ensure rebuild has succeeded as expected before promotion to a user facing channel.

    New idea

    Unsorted

Future

Builder

Builder Neighborhoods: builder service for private applications

Add the ability for a user to easily install a private build service node wherever they would like to have it (i.e. on the cloud, on prem, behind a firewall, air-gapped, etc.), to power pro-active reverse dependency builds of their own unique packages on demand and as underlying dependencies change and need updates. 

  • IDEA 009 - Package Persistance Solution

    Queued for Dev

    Backlog

  • IDEA 010 - Authentication between Private & Public Build Nodes

    Queued for Dev

    Backlog

  • IDEA 011 - Private Build Service: One Button Set-Up

    Queued for Dev

    Backlog

  • IDEA 012 - Private Build Service: Registration

    Queued for Dev

    Backlog

  • IDEA 013 - Private Build Service: Extend Scheduler to Connect to Sub-Gate

    Queued for Dev

    Backlog

  • IDEA 014 - Private Build Service: Solve for Origin Namespace Collision

    Queued for Dev

    Backlog

Supervisor

Supervisor: Scaling to very large environments

Scaling work that we will need to jump on when users start scaling to very large Rings (i.e. 10,000 Supervisors +). 

  • IDEA 054 - Ensure that gossiped messages are properly deleted by the system and that we add garbage collection to the gossip protocol.

    New idea

    Unsorted

  • IDEA 055 - Minimize Butterfly's memory footprint

    New idea

    Unsorted

  • IDEA 056 - Make Butterfly "evented". The main loop of the Supervisor should not be checking for changes, it should wake on change.

    New idea

    Unsorted