Skip to content

Design & Discussion #1

Description

@vishal-biyani

60 Second pitch

To build homebrew for Kubernetes clusters that can easily install & manage applications and stacks running on Kubernetes easily and without knowing all underlying details

Jobs to be done

  • Make it easy for the user to install a stack on a K8S cluster. This includes:
    • The user does not have to worry about what is the source of the install (YAML, Helm Chart or Operator, etc.)
    • The user does not have to think about configuring stuff after installing something. For ex. when you install a storage driver - let's say Ceph, there should be no need to configure the StorageClass separately.

For the initial prototype, we can use some examples such as installing

Future features (Not part of the prototype but JTBD)

  • A UI that shows stacks that can be installed backed by a recommendation score for that target cluster (Which is provided by a SaaS service)
  • A probability score which says that this will be X% successful on your cluster or something to that effect.

Out of Scope

  • We assume that the K8S cluster is already configured and we don't do any cluster provisioning etc.

Design/Rough thoughts

CLI Experience

  • To search a kbrew formula
    $ kbrew search

  • To get information of a specific formula

$ kbrew info

  • To install a specific formula
    $ kbrew install

  • To upgrade one
    $ kbrew upgrade

How the HomeBrew works

If you look at the file https://github.com/Homebrew/homebrew-cask/blob/master/Casks/alfred.rb you will notice some things:

  • This is only metadata that homebrew needs - such as name, description etc.
  • The actual Alfred is in a different URL - in some software, this is a Github URL, in some other cases it is a binary from a website. The point is all hidden from the user.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions