/srv/irclogs.ubuntu.com/2013/10/10/#juju.txt

=== freeflying is now known as freeflying_away
=== akikei is now known as akkykg
=== freeflying_away is now known as freeflying
=== freeflying is now known as freeflying_away
=== freeflying_away is now known as freeflying
hazmatdavecheney, The haproxy charm supports this via explicit configuration as explained in its readme04:38
hazmatdavecheney, it already extends the interface04:38
=== freeflying is now known as freeflying_away
=== stub` is now known as stub
=== CyberJacob|Away is now known as CyberJacob
=== freeflying_away is now known as freeflying
matziehi, anyone around to validate my mental model of juju's intentions and capabilities? Fair to describe it as, "like apt-getfor services", orchestrating multiple machines in any cloud (or pseudo-cloud env, like local lxc) and doing whatever is necessary to both provision and configure the individual components of that service and link them together…?06:22
axwmatzie: I think everything after "like apt-get for services" is pretty accurate. Whereas apt-get has automatic dependency resolution, in juju you deploy individual services and connect them together explicitly06:31
matzieok that makes sense06:31
matzieso it's up to individual charms how to do the actual work, right? and there's no single prescribed way of doing that?06:32
axwmatzie: right. juju takes care of provisioning machines, opening up ports etc.; installing charms onto a machine; and giving charms a way of connecting to one another06:35
axwhow they behave is entirely up to you06:35
axwa charm is just a set of executables (scripts, typically) and some metadata06:35
matzieok. I've been working heavily with ansible recently, which has an extensible "inventory" concept that can get data from lots of places… wondering whether the output of 'juju status' is generated at each call by effectively working through whatever options are specified (e.g. in environments.yaml) or whether juju has its own 'inventory' under the hood?06:39
axwmatzie: juju has a mongo database (implementation detail - could change in the future) that it contains information about machines, services, charms, etc.06:41
axwmatzie: I'm not experience with Ansible, but your description makes it sound like it discovers information about the environment06:44
axw<matzie> ok. I've been working heavily with ansible recently, which has an extensible "inventory" concept that can get data from lots of places… wondering whether the output of 'juju status' is generated at each call by effectively working through whatever options are specified (e.g. in environments.yaml) or whether juju has its own 'inventory' under the hood?07:01
axw<axw> matzie: juju has a mongo database (implementation detail - could change in the future) that it contains information about machines, services, charms, etc.07:01
axw<axw> matzie: I'm not experience with Ansible, but your description makes it sound like it discovers information about the environment07:01
matziethanks for your help earlier axw - I'mtravelling with intermittent connection.07:01
axwnps07:01
axwmatzie: (follow on) juju, otoh, knows everything about the environment because it "owns" it; so it has all the knowledge it needs in its mongodb database07:02
matzieit can do - an arbitrary script squirts JSON into it defining the hosts it works with and variables about them.  There are scripts that query EC2 for example.07:02
axwah ok07:03
matzieprobably trivial to parse the output of juju status.  But pleased to hear that I've basically got the idea behind juju, and it's clearly a game changer.  Exploring it further today now my train journey's ending.  Thanks again.07:04
matzieah - that mongodb is on the bootstrapped node?07:05
axwmatzie: juju status output is either json or yaml (--format=...)07:05
axwmatzie: yes07:05
matzieperfect.  Ok, catch you later...07:05
matzieI think I'm affected by https://bugs.launchpad.net/juju-core/+bug/1221868 (EC2/default VPC/ Security groups etc) so switched from using brew to install the client to using go.  Now bootstrapping fails with 'invalid series "unknown"' and setting default-series: precise in my env.yaml doesn't help.  Any suggestions?09:19
matzie(everything's fine when I use a different Region where I don't have a VPC)09:20
matzie(well - everything *was* fine with the (devel) version I got from brew.)09:22
axwmatzie: do you mean you're building juju-core from source?09:27
matziejust followed instructions under the Mac tab on https://juju.ubuntu.com/docs/getting-started.html - first set uses brew, that worked fine, but once I switched to my normal EC2 region, everything stopped working, which led me to that bug.09:28
matzieso I followed the go / bzr route on that same page, which means I now get09:28
matzie$>juju --version09:29
matzie1.17.0-unknown-amd6409:29
axwok09:29
matziewhereas previously I had 'precise' in there.  Thought specifying the series might make it work, but no luck so far.09:29
axwmatzie: presumably this env hasn't successfully bootstrapped yet, so can you "rm ~/.juju/environments/<envname>.jenv" and try bootstrapping again?09:30
matzieindeed, but I'll try it again to be safe09:30
axwthere's some recent changes that cache env.yaml attributes in these environment-specific .jenv files09:30
matzie(and manually deleting the control bucket / instances / sec groups etc too)09:31
matziepasty: http://paste.pound-python.org/show/mVz6p1u5YdTRAikj7qDc/09:35
matzieI think I'll just test with a different region (and the earlier version that brew installs) for now to workaround this09:37
axwmatzie: the problem, I think, is that trying to bootstrap with unreleased tools won't work on OS X09:38
axwbecause it can't find released tools, it tries and fails to upload *linux* tools locally09:39
matzieI see.  experimented with sync-tools command too, but that expects them to - yes, upload them.09:39
matzieI'll maybe repeat tests from a linux box then.09:39
axwthe EC2 bug fix should be in 1.16.0 I think, which should be released in the next day or so09:40
matziegreat09:40
TheMuematzie: just heard you've got probs with juju on mac09:49
TheMuematzie: will see how i can help09:49
matziethanks - no hurry though, can workaround09:49
matziecan use a linux machine too, just need to get a client with the fix for https://bugs.launchpad.net/juju-core/+bug/1221868 - added ppa:juju/devel but that didn't seem to work.09:51
matzieand can also workaround for today (just got a few hours to explore juju) by using a different EC2 region without a VPC09:51
TheMuematzie: ok, just read the problem description so far, will now read the pasting09:53
TheMuematzie: but yes, the "unkown" series is something we have to handle09:53
matziesure.  everything's fine for now just using a different region, and I hear a new release that incorporates this bug fix is imminent, so no problem.  Thanks for all the help guys09:56
TheMuematzie: ah, ic, and even if the built tool would have the correct name for the series in your environment it would have been built on os x. so you would have no luck running it on ec2 (or anywhere else)09:57
matzieah09:57
mgzgnuoy: https://bugs.launchpad.net/juju-core/+bug/108929109:57
gnuoythanks09:58
TheMuematzie: yes, the region (eu-west-1) does not have the tools so far. that's why the system tries to build one locally09:59
TheMuematzie: and so you get a fine os x "unknown" binary which doesn't help you :/09:59
matzieoh so it's the region that's the problem, not just that I have a VPC in that region? I see, so the bug wasn't the issue at all09:59
TheMuematzie: that's my first finding, but let me investigate further10:01
matziethx10:01
TheMuematzie: in the moment meeting, will continue after it10:02
=== CyberJacob is now known as CyberJacob|Away
=== CyberJacob|Away is now known as CyberJacob
noodles785Wow - I hadn't done any charming for a few weeks, just created a new saucy instance, installed juju and tried the local provider (without refreshing on exactly what was required). End result, prompted clearly for exactly what was missing and bootstrapped in a minute painlessly: http://paste.ubuntu.com/6217921/13:13
noodles785Well done to whoever has been working to make that painless :-)13:14
mgzjamespage: does ppa:juju-core/golang have arm binaries yet?14:06
marcoceppinoodles785: fyi, `sudo apt-get install juju-local` will fix those local deps :) but I'm glad you had a postive experience14:45
=== freeflying is now known as freeflying_away
=== freeflying_away is now known as freeflying
=== freeflying is now known as freeflying_away
gary_posterjcastro, marcoceppi marked GUI bug 1237605 invalid.  They are clickable, but AFAWCT the discourse charm does not declare any ports to expose, so JHuju doesn't tell the GUI about any, so we can't make it a link15:34
_mup_Bug #1237605: Public URL in the inspector should be clickable <juju-gui:Invalid> <https://launchpad.net/bugs/1237605>15:34
jcastrooh, interesting!15:34
jcastroI didn't know you linked based on what the charm did, that's actually totally awesome15:34
marcoceppigary_poster: it exposes port 80 via open-port15:35
gary_postermarcoceppi, which hook?15:35
jcastrohuh so if a charm exposes some odd port, then the gui would just handle that and show the user something clickable?15:36
marcoceppigary_poster: https://github.com/marcoceppi/discourse-charm/blob/master/hooks/db-relation-changed15:36
marcoceppigary_poster: wordpress also does this in the db-relation-changed hook15:37
gary_posterjcastro, currently, if charm exposes 80 or 443, that will make the main address clickable.  other ports are listed individually.  currently they are also clickable individually, but next release will only do that if connection is tcp, not udp15:38
jcastrothat is pretty cool15:38
gary_postermarcoceppi, ah! jcastro I think your image showed that you had not connected a db yet.  so no charm bug, but the port will not show up until you connect a db15:39
gary_postermarcoceppi, might be a confusing pattern15:39
gary_posterbut that's philosophical, not technical; I'll leave you all to decide15:39
jcastroyeah, then that would make sense because at the time I was going to the page to show that it would not be running because there's no db15:39
marcoceppigary_poster: well if you don't connect a db, there's nothing to show. That's the idea behind opening port15:40
marcoceppiat least what I would conclude15:40
jcastroright, ok so the right answer then to tell users is ... we tell you the address, and where you will go15:40
jcastrobut we don't like it because you're not done yet15:40
marcoceppijcastro: gary_poster I like that gui does this15:40
jcastrolink it I mean15:40
marcoceppi+115:40
jcastroyeah, this is actually a good feature, just non obvious15:40
gary_postermarcoceppi, ack.  OTOH, if you go to the port and the web page says "hey!  I don't have a db!" that would potentially help folks.  <shrug>15:41
marcoceppigary_poster: RTFM ;)15:41
gary_postermarcoceppi, lol, ok :-)15:41
marcoceppigary_poster: but that's also an interesting idea15:41
jcastrolike at the charm level?15:41
marcoceppigary_poster: actually, that's kind of a cool idea, might be worth discussing as a potential best practice15:41
jcastro"hey don't forget to relate mysql dude."15:41
marcoceppijcastro: yeah, so open port 80 after install and put a placeholder page that says what to do to get the charm working15:42
marcoceppijcastro: once you add db, that page goes away15:42
jcastroyeah15:42
jcastroman you know what15:42
jcastroa standard placeholder page, that could link back to the readme, etc.15:42
jcastrofor those cases where you just deploy from the store and can't be bothered to read anything15:43
jcastrountil it doesn't work ...15:43
marcoceppijcastro: not only that, what if the standard placeholder embeded the readme and rendered it if RST/MD?15:43
gary_posterthis all sounds great to me :-)15:43
jcastro"Sorry, this service isn't up and running yet, you might have missed a relation, here's the readme to get you started"15:43
jcastrogary_poster, I read that as "This sounds great, let me know when you guys are done and I want to be clear this has nothing to do with the GUI."15:44
jcastro:p15:44
gary_posterjcastro, lol15:48
gary_posterthe "I want to be clear..." part was not intended, but I'm fine with it. ;-)15:49
stubmarcoceppi: I'm looking at amulet to see if I can use it to replace chunks of my test suite. I need to test that my charm copes with the environment being modified (units added, removed etc.).16:27
stubmarcoceppi: The deployer seems to let me build and deploy an environment, but not modify it.16:27
marcoceppistub: yeah, I'm adding removing/adding units outside of deployer working in the Deployment module for amulet, it's on track for 1.1 release16:29
stubmarcoceppi: Do you think it will cope if I add or remove units outside of deployer? I'm after the improved waiting16:30
stuboh, that would work for some tests (when I need to remove stuff), but not for the ones where I need to add units.16:31
marcoceppistub: it should* since it scrapes juju status for actual information16:31
marcoceppiunit modification will work, since all the relations are already modeled via the proxy relation and subordinates16:31
marcoceppijust adding services wont' work since Deployment needs to re-create a new subordinate, etc16:32
stubI'm also loving doing fast runs by reusing machines. I hope I can keep that with juju deployer (maybe just a choice between terminate services and terminate machines in the tear down?)16:37
marcoceppistub: I've not tested removing stuff outside of deployer, it should theoretically work16:38
marcoceppistub: I dont' expose any juju-deployer command line options yet, but certainly could16:39
marcoceppistub: that being said, feedback for changes are more than welcome, let me know what you need to test successfully and I'll be happy to implement (within reason)16:39
stubmarcoceppi: https://code.launchpad.net/~stub/charm-helpers/test-harness/+merge/181865 is what I'd like to replace with amulet. I was originally thinking of it going into charm-helpers, but now I think it is better in Amulet.16:42
* marcoceppi reads16:43
stubhuh... thought I'd already flagged it as wip, not needs review16:44
stub(I don't care about the API, just being able to construct and destruct a deployment piece by piece and the sentries for real waiting)16:48
marcoceppistub: right, so you can construct and wait currently, deconstructing will have to happen outside of deployer, and I'd rather use the API for that to avoid calls to subprocess as much as possible16:50
marcoceppiNot sure when, but hopefully around the sprint if not shortly after I should have 1.1 near ready for release16:50
stubok, I wasn't sure if juju-deployer supported modifying existing deployements, or just bootstrapping new ones.16:51
stubNo hurry for me - I have what I need at the moment. Do you think I'm doing the right thing keeping the code just in my charm, rather than landing it in charm-helpers or somewhere?16:52
marcoceppistub: that's fine, but you're more than welcome to push to charmhelpers. Amulet isn't designed to be the only testing solution out there16:53
stubI don't want us to end up supporting two similar code bases, one of which will likely just be a confusing wrapper around Amulet :)16:54
stubI could add the fixture into Amulet instead when it has the functionality it needs.16:55
marcoceppistub: I'd be happy to accept that17:07
adam_ggetting an error bootstrapping b/c no tools are available for 1.16.. are these being published soon?17:56
ahasenackadam_g: I asked in the mailing list, I don't know why 1.16 was pushed to the *stable* ppa before tools were available17:56
ahasenacksame error here, btw17:56
adam_gahasenack, yea. ugh17:56
ahasenackadam_g: weird, it says "In addition, no tools could be located to upload."18:05
ahasenackadam_g: but juju bootstrap --upload-tools seems to find some18:05
ahasenackmaybe it found them somewhere in my trunk checkout18:06
adam_gahasenack, i just reverted back to 1.15.118:09
ahasenackadam_g: oh, you had it18:09
ahasenackI had 1.1418:09
ahasenackwhich is gone from the ppa18:09
adam_gahasenack, i just found an one lying around in /var/cache/apt/archives :)18:09
adam_g*old one18:09
ahasenackhehe18:11
ahasenackI have this bad habit of running apt-get clean after an upgrade18:11
=== ahasenack is now known as andreas
jcastromarcoceppi, hey did you try null/manual provisioning yet?19:26
marcoceppijcastro: not yet19:31
marcoceppisinzui: does 1.16.0 fix build issues with brew?19:34
marcoceppialso \o/ 1.16.0 is out19:34
sinzuimarcoceppi, yes it does.19:34
sinzuiI still have yet to verify it on my own mac before making a pull request19:35
sinzui^ marcoceppi19:35
marcoceppisinzui: ah, cool. I know they (brew ppl) were asking me about the 1.14.1 build hiccup19:36
sinzuimarcoceppi, The error was bad logic in the juju-core build, When we added support for Windows, we lost support for all *nix. We put that back19:37
marcoceppisinzui: cool19:43
sinzuimarcoceppi, arosales_ I just confirmed that home brew loves juju 1.16.0. It builds for me. I will make a pull request20:54
marcoceppisinzui: awesome! Thanks21:08
arosalessinzui, good to hear21:28
=== CyberJacob is now known as CyberJacob|Away
arosalessinzui, good to hear. Thanks for submitting it.21:37
sinzuiarosales, marcoceppi I see the pull is marked as good https://github.com/mxcl/homebrew/pull/2318621:42
=== freeflying_away is now known as freeflying
zradminanyone have a gomaasapi error with 1.16? the juju deployer is telling me it cant find addresses for instances in maas and cannot provision new machines for some reason23:53
davecheney:(23:56
davecheneyzradmin: can you give some more output23:56
davecheneymaybe there is magic that can be aplied23:56
zradmindavecheney: sure what do you need? currently its just giving me a generic 40923:57

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!