-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design & Discussion #1
Comments
The applications could be a mix of helm charts and YAML manifests. E.g Helm chart for Operators + yaml manifests for CRs. Such collection can be treated as a single application. At server side, the application manifests can be converted into a single YAML manifest format by rendering helm chart and combining that with standalone YAMLs (where multiple resources manifest separated by Drawbacks:
|
I think these are already well understood problems overall. Let's look at existing implementations:
Now we don't have to make it complex and same as those once. We need to think what is minimal set of "types" we need to make kbrew work. So for example we need a way to define more than one step and formulate dependency on them. For ex. first step could be install an operator and second step could be create a CR for example. What was the workaround you had in mind? |
Hey @PrasadG193 I was looking at Homebrew Formulae and I picked up a non trivial formula to analyse. At it's core the formula is a Ruby script. I am picking up this Elastic Formula and adding some observations from that and wherever possible some points related to kbrew there. Formula here: https://github.com/Homebrew/homebrew-core/blob/cbc59187f9/Formula/elasticsearch.rb
So for installing Elastic and so many other things on Mac - the Brew package manager had to derive a set of vocabulary and constructs/objects. We need to think in this direction and come up with something on problem we are trying to solve. Let's discuss tomorrow! |
The |
Let's double clicking on install part of it, for now let's keep the things such as post and pre install activities, metadata etc. out of discussion for MVP at least.
So we need to add a So if we had a YAML similar to below, we could point to an operator, or a Helm chart or a Manifest and simply install with kbrew. In future this YAML will reside in Kbrew formula repo similar to homebrew:
|
@vishal-biyani additionally we can have source
|
Hey @PrasadG193 So based on discussion here is what I think would be a good rough starting point Think of the whole model as a pre step, install step and post step:
And based on that a rough initial draft YAML:
|
From @PrasadG193: Between various phases of a kbrew app install such as pre-i/install/post-install - there is a need to share information. For ex. when installing Bitnami MySQL - the password is generated and that may be needed in the post phase. |
@vishal-biyani in the install hooks, we need to preserve the order of
|
We need to think about how do we pass configuration at runtime for both - helm and raw apps. I have the following high level thoughts in mind to address that -
|
And to extend this, there could also be some mechanisms to pass information between recipes. |
Based on the needs like |
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
For the initial prototype, we can use some examples such as installing
Future features (Not part of the prototype but JTBD)
Out of Scope
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:
The text was updated successfully, but these errors were encountered: