I think we should concentrate on one stuff at one time
devkulkarni
do you want to chat now (have half an hour) or we could do it tomorrow for more time
yes
noorul
half an hour today is fine
never know what happens tomorrow
devkulkarni
okay. :)
give me few mins.
let me dig up the email
noorul
ok
devkulkarni
you mentioned using the build-api service to build an image corresponding to custom lang pack and upload it to glance.. makes sense to me.
in the irc meeting another point of view came up as well.
noorul
What will be the input to build-api and what will be the output
what is that?
devkulkarni
let me explain the other pov. a custom lang pack is nothing but a image with a predefined entry point (a wellknown script at a wellknown location on that image).
we did not go much further on that line of thought. we could explore that right now.
so lets say app developer wants a custom lang pack with chef related testing tools (chef spec, test kitchen, etc.)..
noorul
And that script takes care of setting up the environment
devkulkarni
yes.
but continuing with above example, an app developer would still need to provide that script
noorul
So now the onus is on the developer to provide the image with this script.
devkulkarni
or have a hook that calls some other script to setup the environment
aratim1 has quit
aratim joined the channel
paulczar is now known as zz_paulczar
aratim has quit
that is one view. operator could also make available some base image
aratim joined the channel
and app developer customizes it (by providing the script)
noorul
base image which pulls a script from common location?
oh okay.. so you are saying we could store the script in the metadata service
noorul
yes
or the location of the script
devkulkarni
yeah, in the case the script itself could be some place else.
noorul
So, solum assumes that developer has the correct image
devkulkarni
okay.. so going back to the use-case of chef.. as an app developer I write the script to install the required packages and upload it to metadata service. Then I call lang pack api (something like, POST /language-packs with {base_image_id, script location} as data
noorul
which will bootstrap to setup required environment
devkulkarni
I was thinking that solum will provide certain base images
it will be developers responsibility to provide and use the right script
developer might have a single script to work with different OS flavors
dimtruck is now known as zz_dimtruck
we could use the build-api resource actually
noorul
for what?
devkulkarni
instead of the language-packs resource
i mean for the POST kind of call.. its a minor point though
main idea is developer asks solum to create a custom language pack (image) by specifying two things:
- base image id (already available in Solum)
- location of a script
gokrokve joined the channel
noorul
If we are going to go with this approach, I don't think we should care about this at all
devkulkarni
care about what?
noorul
base image and location of the script
why do you think we need that?
aratim has left the channel
devkulkarni
how so? wouldn't Solum need to know what base image to start with and what script to inject in the wellknown location on the image and then invoke it?
noorul
instead developer can give the image
devkulkarni
yes, for that use case, solum is would not be really helping create custom lang packs at all.. solum will be basically supporting use of custom lang packs
noorul
yes
devkulkarni
may be that is okay.
in that case,
zz_dimtruck is now known as dimtruck
solum just needs to prescribe the wellknown location
right?
noorul
the case where developer has no intention to provide the image and rather use some image that solum certifies?
along with a script?
devkulkarni
what about that use case? it would still not require anything different from solum as compared to when users register their image, right?
noorul
I think we are discussing two cases here
1. In which developer already has an image. He uploads the image to glance. Gets the image id. Creates the language pack with this id.
TravT joined the channel
devkulkarni
yes, that is one use case
noorul
2. We provide a base image and developer provides a script to customize the image to get a new one and upload it.
devkulkarni
totally agree.. and I thought you were suggesting that use case 2 we should not consider..
noorul
My concern is, if we provide the base image, do we need to support that image.
There will be issues raised against that image
by the user
devkulkarni
if an operator supports any image, then yes, they would have to keep up with patches etc. on those images
but that would be a standard operator procedure, right?
noorul
you said solum providing base image.
IlyaE has quit
For the first case, do we have anything specific to work on?
devkulkarni
what I meant was, for use case 2, yes - solum operator can provide base image
for use case 1
noorul
ah
aratim joined the channel
so you emant solum operator. I thought solum project will host.
devkulkarni
sorry. yeah, I meant solum operator
so for use case 1, the main thing that jumps out is ability to 'tag' images with keywords so that a developer can do glance-list (or GET /langaugage-packs/) and get back results that identifies what each custom lang pack contains
noorul
I think the idea of language pack is to provide metadata about the image.
aratim has quit
aratim joined the channel
harlowja_away is now known as harlowja_
devkulkarni
it is.. so I don't think we need anything additional except for tags to support first use case
noorul
I am yet to understand why do we need tags?
devkulkarni
as an app developer, I may have several custom lang packs (one for chef, one for c#, etc.).
gokrokve_ joined the channel
zz_paulczar is now known as paulczar
adrian_otto
guys, I'd rather not be in the business of developing and supporting language packs
devkulkarni
so some way to know what each contains (glance image ids would not be useful here)
adrian_otto
as an open source project
there are build packs already out there that others are supporting, and that work fine
let's provide mechanisms to pull in and use those
and allow solum operators to provide their own
devkulkarni
which specifically you have in mind?
alexheneveld has quit
adrian_otto
the Heroku ones and the CF ones would be a great start
devkulkarni
heroku, openshift, cf, each are bit different
adrian_otto
and we may want to add openshift cartridges as well
noorul
adrian_otto: Solum doesn't care about which does not fit into these packs
adrian_otto
but we should not put ourselves in a position where we are being prescriptive about how a particular language should be build, tested or run.
let the experts in each language determine that organically
gokrokve has quit
noorul: I do not understand your remark
noorul
adrian_otto: I do not think everyone is using heroku or whatever you mentioned above.
devkulkarni
okay. thats a fair point. noorul, need to leave, will sync back again to find out what comes out of your and adrian_otto's discussion
adrian_otto
as long as there is a way for a cloud operator (and optionally an end user of Solum) to register his/her own LP, then what compatibility features we have for popular runtimes is a non-issue.
we just offer an example environment, and instructions for how to set up your own
noorul
I was trying to solve a use case in my company
adrian_otto
and that's really not going to be that hard. It's creating a container image with a script in it. The script name is either fixed, or specified in the plan file. Sone.
s/Sone/Done/
noorul: ok, tell me more about that use case please
alexheneveld joined the channel
noorul
adrian_otto: Was this discussed earlier? Having a script in plan file?
aratim has quit
adrian_otto
the script can be within the container image specified by the LP, and the name of it can be in the plan file (if the default script name is not sued for some reason)
for example, maybe we execute /opt/build.sh and /opt/test.sh by default, and if you want something different, then you can specify it…. perhaps as part of the pipeline.