[Container-tools] Creating build tool for atomic apps

Bohuslav Kabrda slavek at redhat.com
Wed Jun 10 13:40:45 UTC 2015


----- Original Message -----
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 10/06/15 14:43, Bohuslav Kabrda wrote:
> > So here's my progress on atomicapp-builder:
> > 
> > - Repo: https://github.com/bkabrda/atomicapp-builder/ - Current
> > status:
> > 
> > Let's assume invocation like this:
> > 
> > atomicapp-builder build --cccp-index
> > https://raw.githubusercontent.com/kbsingh/cccp-index/master/index.yml
> > --build-image docker.io/slavek/buildroot cccp:appid
> > 
> > atomicapp-builder does this: - look up application with id "appid"
> > in the given index (the example one is actually default, I
> > specified it only to show that it's possible to also choose a
> > different one) - clone it's git repo - look into it's Nulecule file
> > to see what other apps it depends on (it does so recursively to get
> > all the dependencies) - builds all the images (*) using dock -
> > return built image names
> > 
> > TODO: - accept a URI to a docker registry with some images possibly
> > prefilled, push the built images there - some nice-to-haves, like
> > better logging, meaningful error messages, etc...
> > 
> > Also, I'm not sure whether "--cccp-index" is the right name for the
> > argument above. I guess it'd make more sense to call it "--index"
> > (something more general), since KB's cccp index is a name of an
> > *instance of an index*. But I'm not sure about this, maybe KB can
> > comment here.
> > 
> > Please share your thoughts/comments. If you want to play around
> > with atomicapp-builder, the test/files directory contains a simple
> > testing index of four apps that I created, so you can use that
> > one.
> > 
> > 
> > (*) Note: Nulecule has a (undocumented) notion of two image types:
> > "meta images" and "binary images". The "binary images" are images
> > that contain the actual services, while "meta images" contain the
> > "orchestration layer (kubernetes config files etc). As of now,
> > Nulecule specification only allows resolving "meta images", so this
> > is what atomicapp-builder builds. If/when Nulecule spec also
> > implements a deterministic way to find out how to build the "binary
> > images", I can also implement building these.
> > 
> 
> 
> So, while I discussed with KB about the CCCP, I though that
> atomicapp-builder would build *all* containers needed for the app to
> run, or at least verify in a (trusted ?) repository which one can be
> downloaded/used.
> Are you saying that you'll only build the metadata docker container ?
> what about the "binary" ones ?

As noted in the (*) section above, atomicapp-builder can only build the "meta images" now, since there is *no way* to tell how to build "binary images" from Nulecule. I talked about this a lot with vpavlin (CCed) and I suggested that this should be possible. But until the Nulecule spec actually supports it, there is no way how atomicapp-builder can do that.

> Also, dock builds a container for a git repo and push to a registry,
> so is that an option that atomicapp-builder will allow as it will need
> to be passed as argument to dock itself

Yes, that's mentioned in the TODO in my previous email and it's the next part that I'm going to work on.

> 
> - --
> 
> Fabian Arrotin - OpenSource and Standards (OSAS)
> gpg key: 56BEC54E | twitter: @arrfab
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
> 
> iEYEARECAAYFAlV4OL0ACgkQnVkHo1a+xU70LQCeMlCP9XroyUoP5KACu4JUvjZD
> L8cAoI7IpzrMtICKelUoHPE7Ca/3TufY
> =5RJE
> -----END PGP SIGNATURE-----

-- 
Regards,
Slavek Kabrda




More information about the Container-tools mailing list