Stemcell for a new BOSH CPI

130 views
Skip to first unread message

Aliaksei Kliuchnikau

unread,
Jul 31, 2012, 3:56:43 AM7/31/12
to bosh...@cloudfoundry.org
Hello,

In our company we build a CPI for CloudStack and have several questions about stemcells. Can anyone help us clarify these questions?

I am confused by the output of $ bosh public stemcells:
+---------------------------------+-------------------------------------------------------+
| Name | Url |
+---------------------------------+-------------------------------------------------------+
| bosh-stemcell-0.3.0.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca41e1... |
| bosh-stemcell-0.4.4.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca51e1... |
| bosh-stemcell-0.4.7.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... |
| bosh-stemcell-0.5.2.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca31e1... |
| bosh-stemcell-aws-0.5.1.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... |
| bosh-stemcell-vsphere-0.6.1.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca31e1... |
| bosh-stemcell-vsphere-0.6.2.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca31e1... |
| bosh-stemcell-vsphere-0.6.3.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... |
| micro-bosh-stemcell-0.1.0.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca51e1... |
+---------------------------------+-------------------------------------------------------+
To download use 'bosh download public stemcell <stemcell_name>'.For full url use --full.


What is the difference between "bosh-stemcell", "bosh-stemcell-vsphere" and "bosh-stemcell-aws"? Why are there many versions of these stemcells?

Should I use "bosh-stemcell" stemcells for new CPI (I am building "create_stemcell" method now), or should I build a new stemcell like "bosh-stemcell-cloudstack"?
If I should build a new stemcell, what are the rules and restrictions for the tarball I will get in the end (what image format it must contain and what must be included in this image etc.)?

Thanks,
Alex

Dr Nic Williams

unread,
Jul 31, 2012, 11:32:31 AM7/31/12
to bosh...@cloudfoundry.org
bosh-stemcell - are the vsphere stemcells before there were non-vsphere stemcells. The first non-vsphere stemcell was aws in April. The vsphere stemcells now seem to be explicitly named as such.

I'll leave someone else to explain what's different about each one :)

Dr Nic Williams - VP Developer Evangelism
Engine Yard
The Leading Platform as a Service
Mobile: +1 415 860 2185
Skype: nicwilliams
Twitter: @drnic

Martin Englund

unread,
Jul 31, 2012, 11:56:49 AM7/31/12
to bosh...@cloudfoundry.org
Alex,

Dr Nic is correct about the naming scheme, so you should name your
stemcell bosh-stemcell-cloudstack. To build the stemcell, you should
modify our stemcell builder[1][2] to be able to output a cloudstack
stemcell.

The resulting stemcell .tgz must contain the following files:
image - an disk image suitable for your create_stemcell method
stemcell.MF - a yaml file which describes the properties of the stemcell, e.g.
---
name: micro-bosh-stemcell
version: 0.6.2
bosh_protocol: 1
cloud_properties:
root_device_name: /dev/sda1
architecture: x86_64

Note: the format is going to change slightly, most properties are
going to move into cloud_properties (which is getting renamed to
stemcell_properties).

[1] <https://github.com/cloudfoundry/bosh/blob/master/agent/stemcell2.rake>
[2] <https://github.com/cloudfoundry/bosh/tree/master/agent/misc/stemcell/build2>

Cheers,
/Martin
--
cheers,
/Martin
--
Martin Englund, Staff Engineer, Cloud Foundry, VMware Inc.
"The question is not if you are paranoid, it is if you are paranoid enough."

Dr Nic Williams

unread,
Jul 31, 2012, 12:10:51 PM7/31/12
to bosh...@cloudfoundry.org
Will there be just one cloudstack stemcell, or one per hypervisor, one per underlying hardware?

What on a stemcell is specific to an IaaS (hence different stemcells) and what is specific to something in the image (ubuntu, hypervisor?, ...?)

Cheers
Nic



Dr Nic Williams - VP Developer Evangelism
Engine Yard
The Leading Platform as a Service
Mobile: +1 415 860 2185
Skype: nicwilliams
Twitter: @drnic

Martin Englund

unread,
Jul 31, 2012, 12:18:48 PM7/31/12
to bosh...@cloudfoundry.org
On Tue, Jul 31, 2012 at 9:10 AM, Dr Nic Williams
<drnicw...@gmail.com> wrote:

> What on a stemcell is specific to an IaaS (hence different stemcells) and
> what is specific to something in the image (ubuntu, hypervisor?, ...?)
>
The reason for different stemcells for different IaaS is twofold:
1) they use a different disk image format[1][2]
2) the way we can get bootstrap configuration to the VM differs[3][4]

[1] <https://github.com/cloudfoundry/bosh/blob/master/agent/misc/stemcell/build2/stages/image_aws_prepare_stemcell/apply.sh>
[2] <https://github.com/cloudfoundry/bosh/blob/master/agent/misc/stemcell/build2/stages/image_vsphere_ovf/apply.sh>
[3] <https://github.com/cloudfoundry/bosh/blob/master/agent/lib/agent/infrastructure/vsphere/settings.rb>
[4] <https://github.com/cloudfoundry/bosh/blob/master/agent/lib/agent/infrastructure/aws/settings.rb>

Dr Nic Williams

unread,
Jul 31, 2012, 12:25:04 PM7/31/12
to bosh...@cloudfoundry.org
Ahh, some how I thought the director had all the IaaS knowledge for unpacking a generic disk image and making a IaaS image from it (AMI, etc)

I guess I need to make a stemcell and read all the code so I can understand what's what.


Cheers
Nic


Dr Nic Williams - VP Developer Evangelism
Engine Yard
The Leading Platform as a Service
Mobile: +1 415 860 2185
Skype: nicwilliams
Twitter: @drnic

ferdy

unread,
Jul 31, 2012, 2:15:29 PM7/31/12
to bosh...@cloudfoundry.org

On Tuesday, July 31, 2012 6:18:48 PM UTC+2, Martin Englund wrote:
On Tue, Jul 31, 2012 at 9:10 AM, Dr Nic Williams
<drnicw...@gmail.com> wrote:

> What on a stemcell is specific to an IaaS (hence different stemcells) and
> what is specific to something in the image (ubuntu, hypervisor?, ...?)
>
The reason for different stemcells for different IaaS is twofold:
1) they use a different disk image format[1][2]
2) the way we can get bootstrap configuration to the VM differs[3][4]

[1] <https://github.com/cloudfoundry/bosh/blob/master/agent/misc/stemcell/build2/stages/image_aws_prepare_stemcell/apply.sh>
[2] <https://github.com/cloudfoundry/bosh/blob/master/agent/misc/stemcell/build2/stages/image_vsphere_ovf/apply.sh>
[3] <https://github.com/cloudfoundry/bosh/blob/master/agent/lib/agent/infrastructure/vsphere/settings.rb>
[4] <https://github.com/cloudfoundry/bosh/blob/master/agent/lib/agent/infrastructure/aws/settings.rb>


Another use case for 1) could be, as Dr Nic asked, creating different stemcells for the same IaaS. For example, for OpenStack you can use several images formats depending on your hypervisor. In that case, you can use the cloud_properties (or stemcell_properties in the future) at the stemcell.MF [1] and prepare the CPI [2] to read those properties in order to pass them to the IaaS API.


- Ferdy

Ruslan Karachun

unread,
Aug 29, 2012, 10:52:55 AM8/29/12
to bosh...@cloudfoundry.org
Hello.

CloudStack API required HTTP Url for uploading template.
How can I share template to be available via HTTP (in create_stemcell
method)?
Can I use "simple_blobstore_server" for this?


Thanks!
--
Ruslan

Ruslan Karachun

unread,
Aug 31, 2012, 3:44:05 AM8/31/12
to bosh...@cloudfoundry.org
Can somebody help?
Reply all
Reply to author
Forward
0 new messages