/srv/irclogs.ubuntu.com/2012/05/07/#juju.txt

=== almaisan-away is now known as al-maisan
=== al-maisan is now known as almaisan-away
SpamapSanybody up late charming? :)05:19
ejat:)05:27
ejatSpamapS: any plan ?05:27
marcoceppiSpamapS: You know it05:34
marcoceppiSpamapS: since you're up05:34
marcoceppiI've got questions05:34
marcoceppirelation-set, it works from any hook now right?05:35
ejatmarcoceppi: u at ya room ?06:06
marcoceppiejat: no, I'm downstairs06:06
ejatwith ?06:06
ejatat lobby ?06:06
SpamapSmarcoceppi: yes06:26
SpamapSmarcoceppi: you just have to give it a relation id with -r06:26
SpamapSmarcoceppi: this allows full orchestration now :)06:26
SpamapSservice A changes something, B sees change, reacts by informing C06:26
SpamapSmarcoceppi: working on anything juicy?06:33
_mup_Bug #995823 was filed: Machines occasionally fail to start the machine agent correctly because of an unhandled ConnectionTimeoutException <juju:New> < https://launchpad.net/bugs/995823 >08:17
* SpamapS rings the bell08:23
SpamapSnew charm promulgated, mumble-server!08:23
SpamapSwell done Kees Cook. :)08:23
Lesebhi everyone!12:21
benjihi Leseb12:30
Lesebbenji: I'm running MAAS + Juju and I have some questions, do u have time to help me a little? pleas12:32
Leseb+e12:32
benjiLeseb: I will give it a shot, but I don't know anything about MAAS yet.12:33
Lesebok, first I just want to be sure about the meaning of "juju bootstrap"12:35
LesebIt mean setting up a new environment right?12:35
Lesebdoes it also mean launching instance?12:35
benjiLeseb: when running in EC2 "juju bootstrap" will start one instance which is used for administrative purposes12:39
benjithen deploying charms will launch more instances12:39
benji(there are plans to make the control instance shared with other instances so as to reduce the instance count, but that's not ready yet)12:40
Lesebok, what do you mean by "for administrative purpose"? the node doesn't run service?12:41
benjiLeseb: exactly12:42
Lesebok, thank you that really helpful :)12:44
Leseb*was12:44
benjimy pleasure12:48
Lesebbenji: so this same command also copy the public ssh keys?13:00
Lesebin the new created instance?13:00
benjiLeseb: I /think/ temporary ssh keys are generated for instances, you can use the "juju ssh" command to ssh into an instance.13:01
benjionce in you could add your real ssh keys if you so desired13:02
marcoceppiSpamapS: with -r for relation-set, can i just give it the interface or relation, instead of a unit? like `relation-set -r db foo=bar`13:46
=== carif_ is now known as carif
SpamapSmarcoceppi: no, you need a relation id (as given as $JUJU_RELATION_ID in the joined/changed/departed/broken hooks). Thats basically the bucket of information that you want to update. -r db wouldn't have enough context because there might be more than one db relationship16:00
SpamapSin fact I think relation-id is the wrong term16:00
SpamapSrelations are the things you define, relationships are the things you establish16:01
marcoceppiSpamapS: so relationship-id is a better descriptor?16:01
SpamapSmarcoceppi: yeah16:01
SpamapSbut thats something we'll have to work out long-term16:01
SpamapSrelation-ids is already part of the vernacular16:02
marcoceppisure, np16:02
marcoceppiSpamapS: I just threw this up too, not sure if it's a good idea for charm-helper-sh16:02
marcoceppihttps://code.launchpad.net/~marcoceppi/charm-tools/unit-parsing/+merge/10492916:02
SpamapSmarcoceppi: +1 , thats nice actually.16:08
SpamapSmarcoceppi: I had some good success moving juju-jitsu to autotools so we can address the path issues btw.16:09
marcoceppiSpamapS: just wanted to make sure the movement from peer.sh and copyright were okay16:09
marcoceppiexcellent!16:09
SpamapSmarcoceppi: we'll move to autotools and then we can have @scriptdir@ in code and just let 'make install' work that stuff out.16:09
marcoceppiawesome, I felt dirty hard coding paths ;)16:09
SpamapSmarcoceppi: that does make it hard to test.. the hardcoded path..16:09
SpamapSmarcoceppi: perhaps do . "${CHARMTOOLS_PATH:-/usr/share/charm-tools}/scripts" ?16:10
SpamapSmarcoceppi: just so we can override it16:10
marcoceppiI was starting to do this weird bash hack to figure out working directory, and decided it would be just best to push the hard code for now16:11
marcoceppiyeah, I'll go ahead and update that16:11
marcoceppiSpamapS: . "${CHARM_HELPER_SH_PATH:-/usr/share/charm-helper/sh}/unit.sh"16:12
SpamapSmarcoceppi: yeah that should work. Please make sure there is at least a test that it parses.16:12
SpamapSmarcoceppi: as long as we're touching it.. moar tests!16:12
marcoceppitest that parses it?16:13
marcoceppiYou mean create a unit test?16:13
marcoceppiI can do that prior to the merge16:13
SpamapSYeah look at the other tests16:14
marcoceppiseems easy enough16:14
marcoceppiI'll add that now and push it up16:14
SpamapSlike seriously as long as it does '. ...'16:14
SpamapSso we don't ship a package that has unparsable shell code :p16:15
marcoceppiSpamapS: I noticed that unit tests use $HELPERS_HOME, would that be a better env variable than $CHARM_HELPER_SH_PATH ?16:18
marcoceppiinside peer.sh16:19
SpamapSmarcoceppi: yeah that makes sense16:21
marcoceppiawesome, just about done16:21
SpamapSmarcoceppi: peer.sh is not always the best thing to copy though :)16:21
SpamapSmarcoceppi: its a bit ambitious :)16:21
marcoceppiaye it is, I just want to parse unit names/numbers quickly16:22
SpamapSexactly, that stuff belongs in its own tight lib16:22
marcoceppihence unit.sh :)16:24
marcoceppiSpamapS: something odd is happening with the unit test, it's only running the first test and not carrying on16:36
marcoceppidis regard16:38
SpamapSdone16:38
marcoceppiUnit tests are good indeed16:39
SpamapSalways nice to know it works :)16:41
marcoceppiOkay, unit test is up, passing, and pushed if you want to take a final look16:43
* SpamapS pulls and plays16:43
=== carif_ is now known as carif
=== daker is now known as daker__
SpamapSFYI, there is a juju related session starting at UDS in Room 20117:59
SpamapShttp://summit.ubuntu.com/uds-q/meeting/20509/servercloud-q-juju-resource-map/17:59
SpamapShttp://icecast.ubuntu.com:8000/room-201.ogg18:00
ahasenackI have two environments in my .juju/environments.yaml file, how do I tell juju which one to use without changing "default" in that file all the time?20:44
ahasenackhm, -e20:44
SpamapSahasenack: also $JUJU_ENV20:55
SpamapSahasenack: another useful one, $JUJU_REPOSITORY20:56
marcoceppiSpamapS: is there a way to lower the verbosity of the juju command?21:00
marcoceppiIE mute the WARNINGS21:00
marcoceppiwall of warning during a deploy demo is always awkward to explain21:00
marcoceppi"PAY NO ATTENTION TO THE MAN BEHIND THIS CURTAIN"21:00
SpamapSjuju -l ERROR21:08
SpamapSmarcoceppi: what are the warnings? Bad charms in your repo?21:09
SpamapSI think we should drop that to INFO actually21:09
SpamapShaving a half-written charm in a repo is a normal, but notable event21:09
SpamapSnot a warning IMO21:09
marcoceppiSpamapS: http://paste.ubuntu.com/974479/21:12
SpamapSmarcoceppi: add 'ssl-hostname-verification: true' to your environment.21:13
SpamapSmarcoceppi: that *is* a legitimate warning. :)21:13
marcoceppiI know, i know :)21:13
SpamapSmarcoceppi: we made it a warning, instead of a fail, so you'd have time to make sure all your SSL endpoints verify :)21:14
SpamapSThe 'honolulu' release will make it true by default21:14
koolhead17SpamapS, sir when can we see you at UDS :)21:24
SpamapSkoolhead17: I arrive in the morning21:25
koolhead17cool. :)21:26
SpamapSmarcoceppi is about to present charms at UDS http://video.ubuntu.com/live21:46
TribaalHi all21:58
SpamapSwhy does everybody want to deploy multiple things to one box.. one box in the cloud == fail21:59
=== Sherlock_ is now known as Guest74757
james_wSpamapS, it's more reliable than multiple boxes :-)22:05
SpamapSjames_w: if by more reliable you mean "fails more reliably", then yes. :)22:06
james_wlower system failure rate22:06
lifelessSpamapS: multiple systems multiple their failure rates22:06
lifelessSpamapS: not everything is single node failure resilient22:06
lifelessSpamapS: secondly, many things need to exist on the same box to cooperate sanely (e.g. take advantage of local IO, or process local logs) - and making them all tightly bound to another charm doesn't make sense in folks heads.22:07
lifelessSpamapS: a good question to ask is why folk don't *want* to do it the way the Juju design thinks is best22:08
SpamapSlifeless: thats exactly what I'm asking. Why are people rejecting the model that juju is selling. I think its the same reason people default to single threaded code... multiple threads, multiple servers, is hard.22:11
james_wIME it's cost that drives it initially. For a trivial app paying for three machines is far more than is needed to handle the request load22:13
lifelessSpamapS: thinking of 'threads are for developers that don't understand state machines' ?22:15
lifelessSpamapS: FWIW I don't think its because there are a wide range of things where coexisting is much easier to reason about (and pay for)22:16
lifelessSpamapS: where reasoning about includes dealing with network failure modes, avoiding NFS or similar tools22:16
SpamapSlifeless: could it just be force of habit?22:18
lifelessSpamapS: I don't think so22:19
lifelessSpamapS: I've had what, 2 years of Juju exposure, and its still my second most desired feature22:19
lifelessSpamapS: (the #1 being security)22:20
SpamapSlifeless: can you explain a deployment that you want to do where m1.small is too big?22:20
SpamapSor is that the real problem, I think its resource based, but its deeper than that?22:21
lifelessSpamapS: size isn't the issue for me - james_w brought up size.22:21
lifelessI acked that paying for things does appear22:21
lifelessbut you could use micro I presume for really really tiny things22:21
SpamapSOk, so its a fail rate thing. Hm.22:22
lifelessfail rate + fail mode22:23
lifelessif you have a log tailer22:23
lifelessfor instance, trivial thing22:23
lifelessdo you want to do that from a different box ?22:23
lifelesseven a different 'virtual box' using LXC ?22:23
SpamapSwell a log tailer is a subordinate22:23
SpamapSwhich goes inside the same container22:24
SpamapS(which in most cases means inside the same bare VM/machine)22:24
SpamapSlifeless: subordinates solves the case for anything that you always want deployed at a 1:1 ratio together22:26
lifelessconsider oops-tools UI then22:26
lifelesslet me tell you about oops-tools22:26
lifelessit has:22:27
lifeless - a blob store, which is just a directory on disk where oops files are stored. They get there via an AMQP consumer22:27
lifeless - a postgresql DB, which indexes the blob store, it is populated by the same AMQP consumer22:28
lifeless - an AMQP consumer, which receives OOPSes in near-realtime, writes them to the blob store and postgresql22:28
lifeless - a gc process which removes things from both the postgresql DB and the blob store22:28
lifeless - a wsgi web UI that shows things from the blob store + postgresql22:29
lifeless - some helper scripts that run out of cron to do reports and the lie22:29
lifelesslike22:29
SpamapSalright22:29
SpamapSall sounds good22:29
lifelessnow, thats /nearly/ full distributed22:30
lifelessif the blob store were e.g. s322:30
lifelessbut to use juju today, why would I reach for 3 machines vs 1 ?22:30
SpamapSYou would not. And in that case, thats all 1:122:31
lifelessperhaps I don't understand subordinates then22:31
lifelessI wouldn't want every postgresql server to have apache+rabbit+oops-tools-ui etc22:31
SpamapSright, you just want one, the one that does oops , right?22:32
SpamapSassuming we convert oops-tools to a subordinate..22:32
SpamapSjuju deploy pgsql22:32
SpamapSjuju deploy oops-tools22:32
lifelessfor this part of the picture yes, but then I also want postgresql for LP :P22:32
SpamapSjuju add-relation oops-tools pgsql22:32
SpamapSthat puts oops-tools on the pgsql service22:32
SpamapSlifeless: so you want to make *one* server special?22:32
lifelessSpamapS: I'm not trying to move the goalposts, honestly.22:33
SpamapSwell is the pgsql service one server, or +1 ?22:33
lifelessone for oops-tools, slony cluster for LP22:33
SpamapSIt sounds like you have an over-powered pgsql server and want to take advantage of that...22:34
lifelessprobably a slony cluster for other ancilliary components of LP once some refactorings get done.22:34
SpamapSare the pgsql servers for oops and lp the same though?22:34
lifelessnope22:34
lifelessdifferent22:34
SpamapSOk then yeah, subs solves this nicely *IF* you always want oops-tools to be on the pgsql instance.22:34
SpamapSthats where I don't like the rigidity of oops-tools22:34
lifelessdon't want to impact production LP behaviour with data-analytics from oops-tools22:35
SpamapSerr22:35
SpamapSrigidity of usbordinates22:35
lifelessessentially, LP is headed towards a pattern where each cooperating service is a bundle of (pg, amqp-publishers, amqp-consumers, one or more wsgi apps)22:36
lifelessand LP as a whole is a group of sunch bundles22:36
lifelesssome bundles will be HA (via slony, haproxy etc), others (like oops-tools) will be best-effort (and the rest of the system handles their absence in some fashion)22:36
lifelesse.g. gpg key verification - if down, ppa uploads get queued, alerts go off, we bring it back up, but it doesn't have to be up 100% of the time22:37
lifeless(and bringing it up should be self healable, in fact)22:37
SpamapSlifeless: we have this problem w/ nova too. Nova can work w/ its own local sqlite, or a remote mysql server.22:37
SpamapSlifeless: for devs, the local sqlite is the simple case for smoke testing.. but no sane deployment uses it.22:37
lifelessSpamapS: sure, for clarity though, I'm talking the prod layout; local dev uses test fixtures to bring up transient services22:38
lifelesslike, we want separate pg clusters, to mitigate failures22:38
lifelessthats a place where we *do* want multiple machines22:38
lifelessits very unclear to me atm how you run 5 or 6 different slony clusters in one juju environment22:39
SpamapSlifeless: juju deploy slony slony-1 ; juju deploy slony slony-2   ??22:39
lifelessthe way I'm thinking about juju use today, each environment will be extremely narrowly targeted, and we'll export its public surface and manually inject it into other environments.22:39
SpamapSlifeless: you can even do this on ec2   juju deploy slony slony-a --constraints ec2-zone=a ; juju deploy slony slony-b --constraints ec2-zone=b22:40
lifelesshttps://juju.ubuntu.com/docs/user-tutorial.html#deploying-service-units22:40
lifelessprobably wants to mention that optional parameter then ;)22:40
SpamapSYeah its a common problem22:41
SpamapSlifeless: I'm fixing that particular page to be more clear now. Really good suggestion.22:46
lifelesswould that address the subordinates thing?22:46
lifelessif you do deploy pgsql oops-pg22:46
SpamapSyes!22:47
lifelessor would oops-tools still land on all pg server s?22:47
SpamapSno it would only be on oops-pg22:47
SpamapSthe only bummer about that is that you now always have to deploy oops as a sub22:47
lifelesspresumably because deploy oops-tool does nothing, and add-relation oops-tool oops-pg triggers the actual install22:47
lifeless?22:47
SpamapSI'd really prefer there to be a way to have runtime subordination22:47
lifelessSpamapS: we have runtime insubordination already :P22:48
SpamapSlifeless: thats exactly how it works22:48
lifelessyou might like to touch up https://juju.ubuntu.com/docs/subordinate-services.html a bit while you are there22:48
lifelessit reads like an advert for a coming up feature22:48
lifelessnot something that exists22:48
lifelessit doesn't explain the 1:1 thing, nor the need to name things to get them to be M:N22:49
SpamapSlifeless: indeed, its basically the original spec. We need to add a subordinate section to the tutorials22:50
lifelessSpamapS: I hope this is useful feedback22:51
lifelessI feel as though I've been a bit curmdgeonly22:51
SpamapSits unbelievably useful22:51
SpamapSwe're all so close to the problem22:52
SpamapSwe don't always see how it relates to the real world22:52
SpamapSlifeless: https://code.launchpad.net/~clint-fewbar/juju/docs-clarify-service-name/+merge/10499423:00
SpamapSlifeless: I intend to do more, but that at least will fix the cited page23:00
lifelessthere is a lot in that diff23:01
SpamapSYeah I"m not sure why23:01
SpamapSwhoa heh I think I branched the wrong thing :p23:01
lifelessrather than database-service, perhaps you could say wordpress-db or something23:02
lifelessI suspect admins will try to name things so they can remember them23:02
SpamapSlifeless: yeah I am not super happy with that name now that I read it23:02
lifelessand that will ring truer23:02
SpamapSah the merge target is wrong23:02
SpamapSinteresting, I think lp-propose doesn't work right23:03
SpamapS'bzr lp-propose lp:juju/docs' merged against the subdir of lp:juju called docs23:03
SpamapSnot the docs series23:04
SpamapSwe really need to delete that dir from lp:juju23:04
SpamapSlifeless: calling it 'wordpress-db' changes the juxtaposition a bit though.. as now we're suggesting that we couldn't relate non-wp things to it.23:05
lifelessSpamapS: do you do that in the example ?23:05
lifelessSpamapS: and wearing your paranoid sysadmin hat - I know you have it somewhere - would you ever do that?23:05
lifelessone db server, one app23:06
SpamapSmy paranoid sysadmin hat yells at me from its place in my closet..23:06
lifeless-much- easier to think about query behaviour, caching patterns, db recovery, failover, etc23:06
lifelessI mean, you are right, yes it changes the slant.23:06
SpamapSYes indeed, though I have made multi-tenancy work fine in the past... its a whole different ballgame.23:07
lifelessand rule #1 of devops is KISS :)23:07
lifelessthis is the same argument juju makes about machines23:07
lifelessI think the difference is a matter of intent23:07
lifelesssharing a machine with different components of one usecase -> fair call23:08
lifelesssharing a machine with components for different usecases -> world of confusion23:08
lifelessyou can s/machine/DB-server/ there with no change in semantics23:08
lifelessand - ahha moment - this is what I've been trying to get at with juju and multiple machines23:08
lifelesswhen you're delivering one use case, it is often (particularly when you aren't gluing full SOA services together, but are homebrewing or whatever), easier to work in a local environment not networked.23:09
SpamapSalright pushed s/database-service/wordpress-db/g23:10
lifelesswhen you're delivering two or more use cases, at that point you definitely want things to not stomp on each other23:10
SpamapSlooks much better23:10
SpamapSsentences read more clearly23:10
lifelessso if you come to me and talk about LP + juju, I do want multiple machines, for the things that compete for resources, but I also want single machines, for the bits that really are a single unit (like the librarian with its associated helper code)23:10
SpamapSlifeless: right, I think a lot of things are well written as a subordinate23:11
lifelessits not that they won't in future want and need horizontal scaling etc, its a minimum complexity, maximum gain kindof thing23:11
SpamapSlifeless: btw, we just pushed a new primary service into the charm store, called 'ubuntu' .. so any subordinate can be deployed alone by itself too :)23:11
lifelessnice hack23:11
SpamapSits also useful for pre-allocating machines in ec2/maas23:12
=== andreas__ is now known as ahasenack
gogodoithi there, trying to install juju on OSX 10.7 via brew, and getting this error: Error: Failed executing: python setup.py install (juju.rb:31)23:24
gogodoit(this is with a clean brew installation)23:24
gogodoitany ideas what I'm missing?23:24
LaneyHey jujuers. I'm trying to play with juju using canonistack but it appears to want to use the hostname of the servers when doing commands (actually, I only tried 'juju status'). Can I make it use the IP? Or, can you give me a hint to get the dns resolving?23:33
m_3_Laney: on openstack installs, you need to either configure an ssh proxy into the cloud or assign a public address to the bootstrap node23:38
Laneym_3_: I can ssh using the IP address, yes23:39
m_3_Laney: often also need to add patterns into .ssh/config in order for it to use the proxies23:39
Laneybut juju tries to use server-nnnn which I cannot resolve23:39
m_3_Laney: alias them in .ssh/config23:40
Laneylet me try that23:42
SpamapScan't you just run juju on the node 0 that gets bootstrapped?23:43
SpamapSjust copy your environments.yaml and ssh key23:43
gogodoit   sorry, I didn't rtfm, found the osx brew fix here https://github.com/jujutools/homebrew-juju/issues/523:47
SpamapSgogodoit: thanks, imbrandon is the author of that, he's at the ubuntu dev summit today and so probably not watching IRC23:48
LaneySpamapS: yes, but that is more manual than I like23:48
LaneyI got it working with a pattern in .ssh/config23:48
SpamapSLaney: yeah that usually works23:48
LaneyI think ...23:48
LaneyERROR SSH forwarding error: nc: getaddrinfo: Name or service not known23:48
* Laney eyes things23:48
Laneyah, works23:57
Laneydoes canonistack have a secure transport?23:57

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