/srv/irclogs.ubuntu.com/2013/11/20/#juju.txt

=== freeflying_away is now known as freeflying
=== thumper-afk is now known as thumper
=== CyberJacob|Away is now known as CyberJacob
noodles775InformatiQ: Glad you found the vars. FWIW, I included an example of cat'ing the vars yaml file in the paste at line 53: http://paste.ubuntu.com/6442336/08:03
noodles775InformatiQ: and thanks for the pointer about the key names in ansible, I'll update that in charm helpers too.08:05
freeflyingcan we change config flag with juju set dynamically?08:25
freeflyinglike set quantum's ext network pool08:25
noodles775freeflying: running `juju set servicename mysetting=foo` will trigger the config-changed hook on all units of servicename in addition to providing the new value for the mysetting config optin (which must be part of the config.yaml).08:39
freeflyingnoodles775, sounds cool, thx09:06
=== axw_ is now known as axw
InformatiQgood morning/day/whateveryoutimeis09:54
InformatiQis there any page which lists who is using juju?09:55
InformatiQI usually don't see juju much in the devops circles (which is where juju should be really)09:56
InformatiQso I was hoping to get a feeling of the adoption of juju09:56
InformatiQalso if anyone here does juju consulting I would interested to have a quick chat09:57
noodles775Hi InformatiQ. I'm not aware of a page listing adoption, jcastro is the person to talk to I'd think (when he's awake).09:58
InformatiQHi noodles77509:58
InformatiQnoodles775: so in ansible if i need to open a port i just run the command in shell from ansible10:00
InformatiQright?10:00
noodles775InformatiQ: Normally if it's to expose the service, you'd use `juju expose servicename`... is that what you're after? eg, https://juju.ubuntu.com/docs/charms-exposing.html10:02
InformatiQnoodles775: i thought you had to put open anyway10:09
=== freeflying is now known as freeflying_away
noodles775InformatiQ: yes, sorry. I'm not sure of the best way to do that with ansible - perhaps a command is the best way.10:15
* noodles775 checks10:15
noodles775Yeah, there's a charm-helper for it (charmhelpers.core.hookenv.open_port), but it's just trivially calling open-port.10:18
noodles775jamespage: Thanks for landing the one-liner yesterday. I've got another branch here which deals with an issue InformatiQ pointed out yesterday - but I'm assuming I shouldn't be pinging you for each branch. Are there a bunch of people subscribed or reviewing?10:22
noodles775Anyway, fwiw: https://code.launchpad.net/~michael.nelson/charm-helpers/no-hyphens-in-ansible-yaml-keys/+merge/19593110:22
jamespagenoodles775, I'll do it for future review credit :-)10:26
noodles775jamespage: Done :-) (although, can we go by line-count? :P)10:26
jamespagenoodles775, reviewed and merged - thanks10:29
noodles775Great, thank-you!10:29
InformatiQnoodles775 jamespage : so everytime i make a charm using ansible i copy the charmhelpers tree in my hooks?10:32
jamespageInformatiQ, for now yes10:32
jamespagethere are plans to release charm-helpers (at least the stable, core ones) for 14.0410:33
jamespage+ PPA's for backports (I expect)10:33
InformatiQ14.04 that's a long wait10:33
InformatiQi need to get familiar with launchpad10:36
noodles775InformatiQ: Based on our experience yesterday, I'm putting together a charm-bootstrap-ansible branch on github that'll make it easier (it uses a script to just pull in or update the parts of charmhelpers you need)10:37
InformatiQnoodles775: oh great thanks noodles10:38
InformatiQi am more familiar with github10:39
stubI'm trying to work out the best place to initialize some storage shared between units in my service (a Swift container)10:44
stub I'm trying to work out the best place to initialize some storage shared between units in my service (a Swift container)10:45
stubThe problem I see is that if I do it in my install or config-changed hook, then every unit will attempt to intialize it.10:45
stubIf I do it in my peer relation-joined hook, then it is only initialized if there are more than one unit.10:46
noodles775stub: it shouldn't matter I think? (that is, the PUT request for container creation is idempotent - http://docs.openstack.org/api/openstack-object-storage/1.0/content/create-container.html )10:51
noodles775stub: you just get a 202 instead of a 20110:51
stubI guess that isn't the real problem10:52
noodles775Ah - or you want to do more than just create the container...10:52
noodles775Yeah.10:52
stubIf there is a single unit, the unit needs to use the container. If there are multiple units, only the master unit needs to use the container.10:53
stubIf I 'deploy --units=3', then until the peer relation hooks are run I'll have 3 units that don't know about each other and will all attempt to use the shared storage.10:53
noodles775Hrm, that seems to make sense though (that until they know about each other, they assume they use the shared storage themselves).10:54
stubyeah. Also, if I add a new unit I don't want it to crap all over the shared area when it thinks it is alone.10:55
stubI think I need some sort of locking, but I don't think I can do that with Swift?10:55
stubcreate_container_if_not_exists_else_fail10:56
noodles775You should be able to do that with multiple requests? (ie. a HEAD for metadata, which will 404 if it doesn't exist)10:57
stubMaybe append a UUID to the container name...10:57
noodles775Ah - right, but that'll just race.10:57
InformatiQstub why not the first container writes a lock file to the container (assuming the container is a filesystem of some sort)10:58
stubThat master-election thing someone mentioned on the mailing list would be useful here (that doesn't eist)10:58
stubInformatiQ: Swift is an object store, and some of its features make locking problematic I think10:59
gnuoyjamespage, fwiw I've resubmitted the multiple floating pools  branch. I see the mp to nova-compute is still outstanding, do you have any philosophical objection to that one or is it just in the queue ?11:00
noodles775(lake of consistency, for example, http://julien.danjou.info/blog/2012/openstack-swift-consistency-analysis )11:00
jamespagegnuoy, in the queue but uds this week11:02
gnuoyok, understood11:02
jamespagegnuoy, was that the one that does the mtu setting stuff?11:02
jamespageI was pondering that approach11:02
gnuoyjamespage, thats the one11:02
gnuoyjamespage, what's your reservation about the approach ?11:03
jamespagegnuoy, well as much as possible I'm adverse to twiddling network knobs and configuration in the charm11:04
jamespageI think that should be done during provisioning and written into /etc/network/interfaces11:05
gnuoyjamespage, really ? Surely a customers experience would be far better if they deploy openstack via stock maas and twiddle the mtu setting afterwards. If you do object strongly I can add it to my MaaS hacking instead11:08
jamespagegnuoy, that's kinda why I'm still pondering it11:08
gnuoyjamespage, I can see your pov, there is an element of compensating for a missing MaaS feature11:09
jamespagegnuoy, yes indeed11:11
* jamespage thinks a bit more11:12
ashipikahello juju!11:39
ashipikahaving a bit of a problem with juju and MaaS.. and i was hoping somebody here would be kind eough to shed some light on a juju newbie11:40
ashipikathree computers.. one installed with ubuntu server CD with maas (create new...), configured (managed eth0, dhcp, etc).. the other two computers comissioned as nodes (raring, wake on lan..).. juju init, changed the .yaml file.. juju bootstrap went fine:11:43
ashipika WARNING picked arbitrary tools &{"1.16.0.1-precise-amd64" "http://192.168.1.99/MAAS/api/1.0/files/?key=11d9953c-51d5-11e3-a0a8-001e8c1c89bd&op=get_by_key" "9be79a60ec6084880521069f7555c011825ed9294a65cbac575333afe6bf1484" %!q(int64=4638204)}11:43
ashipika...11:43
ashipikajuju status.. freezes..11:43
ashipika2013-11-20 11:29:51 INFO juju.state open.go:68 opening state; mongo addresses: ["kwhp7.local:37017"]; entity ""11:43
ashipikaany ideas?11:43
jamespageashipika, I would suspect that the bootstrap node is still being installed; but you would need to see which node is allocated in the maas ui and go check to be sure11:46
jamespageits possible something bad happened...11:47
ashipikajamespage: thanks for your reply. yes. something strange is going on with my maas..  seems to be installing, but the node just shutsdown when it is "done"11:48
jamespageashipika, maas nodes have to be registered and commissioned prior to use; the commissioning step does what you just described above11:48
jamespageand that's triggered when you accept the nodes in MAAS11:49
ashipikayes.. but the status on the web says: Allocated to <username>11:49
ashipikai already went through the commisioning step and accepting and whatnot11:49
jamespageashipika, probably worth asking in #maas - more knowledge in that channel as this sounds maas-ish11:51
ashipikathanks!11:51
ashipika:D11:51
InformatiQ#juju on twitter returns lots of cats a weired people11:52
=== freeflying_away is now known as freeflying
jamespagemarcoceppi, jcastro: when did lp:charms/ceph -> lp:charms/precise/ceph12:57
jamespage?12:57
jamespagejamespage@armstrong:~/src/charms/precise$ charm get ceph12:59
jamespageError: ceph not found in charm store.12:59
jamespageouch!12:59
jamespagemarcoceppi, ^^12:59
marcoceppijamespage: what.13:30
jamespagemarcoceppi, that was my reaction as well13:31
jamespagemarcoceppi, https://code.launchpad.net/~charmers/13:32
marcoceppiwhat the hell13:32
jamespagemarcoceppi, I suspect " Registered by Curtis Hovey 17 hours ago " is the cause13:32
jamespagesinzui, ^^13:33
jamespagehttps://launchpad.net/charms/trusty13:33
=== exekias_ is now known as exekias
sinzuijamespage, marcoceppi egad. I don't think registering trusty is the exact cause because I registered bundles several months ago13:49
sinzuijamespage: I just changed trusty to experimental to de-empahise it13:50
jamespagemthaddon, ^^ can you shed light on this issue?13:52
sinzuijamespage, mthaddon: With projects, you explicitly set the series that is the focus of development.13:52
jamespagesinzui, charms is a distributed tho13:53
jamespageso I expect it behaves differently13:53
sinzuijamespage, I did register trusty yesterday as I did bundles a few months ago. I did not edit precise13:53
sinzuiprecise is set as supported, and once in that state, I can only become "current stable release" and "obsolete"13:54
sinzuitrusty is experimental13:54
* mthaddon catches up13:58
sinzuimthaddon, jamespage: I was mistaken. /charms/trusty was NOT experimental. It claimed to be active development like precise. I just changed it to be Experimental after flipping between staging.lp and lp13:59
mthaddonah, yeah, it's now working for me, so I'm glad something was changed13:59
mthaddonjamespage: I would definitely recommend lp:charms/precise/ceph though14:00
sinzuiI'm not. I did  make the change and I really didn't expect this. And I really don't know if I have fixed anything14:00
mthaddonI think if it was set to active development it's entirely expected14:02
sinzuijamespage, have I fixed it? I ran "bzr branch lp:charms/ceph ceph" and got a branch14:06
jamespageI think so yes14:07
sinzuiokay I see this command did change the listing14:08
sinzuicharm search ganglia14:08
sinzuidamn. ppetraki was the first to spot the problem and I didn't understand the issue when we talked about it14:09
ppetrakioh that14:14
noodles775jamespage: another short charmhelpers branch for an error which the tests only highlight when run in isolation :/ https://code.launchpad.net/~michael.nelson/charm-helpers/missing-import-for-ansible-helpers/+merge/19596714:25
AskUbuntuProblems using containers created using juju | http://askubuntu.com/q/37990215:15
marcoceppisinzui: could you jump in to uds-servercloud-1 ?15:15
* sinzui does, first killing cpu intensive procs15:16
marcoceppisinzui: https://plus.google.com/hangouts/_/72cpjufj5oc8omdro2acjh1vco?authuser=0&hl=en15:18
SuperMattall right, now I need to get my head around how relations work in juju!15:29
SuperMattmy mind boggles15:29
SuperMattso in the metadata, you can set the requires stuff. I'm not sure why for instance you might need to specify "database:\n interface: mysql." Why the database part, when we already know that mysql is a db15:32
SuperMattdoes the interface specify the port?15:33
SuperMattor is it something different entirely?15:33
SuperMatthmmmm16:46
SuperMattI think I'm beginning to undestand relations, but at what point does one end of the relationship set their variables, such as ip address, etc?16:46
SuperMattor am I doing things wrong?16:46
marcoceppiSuperMatt: so you can set relation data at anytime16:48
marcoceppibut it won't be sent until the hook finishes executing16:49
SuperMattbasically, I have a reverse proxy, and I want to get the ip address from one of the web servers. how and where would I set the ip address? In the start section?16:51
marcoceppiSuperMatt: so your charm is providing the http interface, or is it consuming the interface16:53
marcoceppierr, "requires"16:53
SuperMattwell I have two charms, one for the web server, one for the reverse proxy16:53
SuperMattand I just want to update the reverse proxy with the ip addresses of the web servers16:54
marcoceppiSuperMatt: right, so what you should have is the web server providing the http interface, and the reverse proxy requring the http interface16:54
SuperMattyes16:54
marcoceppiSuperMatt: so the http interface relation on the app needs to16:55
marcoceppirelation-set hostname=unit-get private-address port=<PORT>16:55
marcoceppiSuperMatt: and the proxy http interface relation needs to16:55
marcoceppirelation-get hostname16:55
marcoceppirelation-get port16:55
marcoceppiinside of the hook, so that it can read those values16:55
SuperMattok16:55
SuperMattso which hook? the relation-changed hook?16:55
marcoceppiSuperMatt: it'd be easier to explain if you provided a paste of each of the metadata.yaml files16:56
marcoceppiSuperMatt: then I could provide exact hooknames that it would happen in16:56
SuperMatthttp://paste.ubuntu-helpouts.org/916:56
SuperMatthttp://paste.ubuntu-helpouts.org/1016:57
SuperMattthe second is a modified version of the node-app we talked about yesterday16:57
marcoceppiSuperMatt: okay, so on the nginx-hash site, you're going to have a hook called reverseproxy-relation-changed16:58
SuperMattgot it16:59
SuperMattI assume that's where I do my magic to update nginx16:59
marcoceppiSuperMatt: each relation has four events/hooks tied to them relation-joined, relation-changed, relation-departed, and relation-broken16:59
SuperMattsure16:59
marcoceppiSuperMatt: yes, you'll also want to add a realtion-departed/broken hook logic to remove those values from nginx config as the relation no longer exists16:59
SuperMattmakes sense16:59
marcoceppiSuperMatt: we have an nginx-reverseproxy charm, if you want to use as a reference16:59
SuperMattI might check it out17:00
SuperMattI had to make my own anyway, because I had to compile in an extra plugin17:00
marcoceppiSuperMatt: nevermind, we don't have a reverseproxy charm17:00
SuperMatthahaha17:00
marcoceppicould have sworn we did17:00
SuperMattwell I have a general idea of how to update the conf file17:01
* marcoceppi may have confused with squid17:01
SuperMattthe only thing I need is the list of IPs from the node-apps17:01
marcoceppiSuperMatt: you can do that with relation-list actually17:01
SuperMattoh?17:01
marcoceppiSuperMatt: so if you wanted to rebuild the file everytime17:01
marcoceppiyou could have the reverseproxy-relation-changed run relation-list to get a list of all the units17:01
marcoceppiSuperMatt: then loop through those units and do a relation-get to that unit17:02
* marcoceppi finds example17:02
SuperMattlemme show you what I have17:02
SuperMatthttp://paste.ubuntu-helpouts.org/1117:03
SuperMattthat's not by any means complete17:03
marcoceppiSuperMatt: that's pretty much the idea17:03
SuperMattsure17:03
SuperMattbut ip isn't set anywhere17:04
marcoceppiI need to look up the relation-get syntax for specifying a unit17:04
marcoceppiSuperMatt: you want to use hostname17:04
marcoceppihttp interface exposes `hostname` rather than ip17:04
SuperMattright17:04
SuperMattis hostname something that's set automatically by the unit?17:04
gary_postermarcoceppi, jcastro can someone give me the hangout for the gui vUDS now please17:05
marcoceppiSuperMatt: no, it's something that the relation requries authors to set17:05
gary_posterhappening now I mean17:05
jcastrogary_poster, I just made the same mistake, check the time17:05
jcastroit's lunch17:05
marcoceppiSuperMatt: the assumption is all service will provide you with a port and a hostname17:05
jcastroit just doesn't have a "lunch" session there17:05
gary_posterjcastro, oh! ok thanks17:05
SuperMattmarcoceppi: ok, I'm beginning to understand17:05
SuperMattso when does the service set that?17:06
SuperMattrelation-changed?17:06
marcoceppiSuperMatt: relation-changed is the best time to do this17:06
marcoceppihttp://paste.ubuntu.com/6449144/17:06
SuperMattok17:06
SuperMattI think I get you17:06
marcoceppiSuperMatt: since you're re-creating the file each time, you could symlink relation-departed and relation-broken to this file and then it'll update whenever a unit goes away17:07
marcoceppiand that's your logic for updating when units get removed17:07
vdsI'm trying to ssh a unit in local environment and I get http://paste.ubuntu.com/6449146/ any suggestions?17:07
SuperMattbut the thing I don't understand is, if both ends are running relation-changed at the same time, how does the reverse proxy know when the node has prepared all variables?17:07
marcoceppivds: don't use sudo17:07
marcoceppivds: only use sudo when you're bootstrapping and destroying a local environment17:08
marcoceppiSuperMatt: they arent' running at the same time17:08
SuperMattoh17:08
SuperMattok17:08
SuperMattI just assumed they were17:08
marcoceppiSuperMatt: -changed will be run anytime there is a new data on the relation wire17:08
vdsmarcoceppi, I'll try thanks17:08
SuperMattok17:08
SuperMattI'll just give it a bash now17:08
SuperMattI think I have everything I need17:09
marcoceppiSuperMatt: so what happens is, you add-relation and the -joined then -changed event will fire for each unit attached. Then if any of those two hooks added data -changed will be fired for the other side, -changed continues to fire on each side until there is no more new data being sent17:09
SuperMattI see17:10
SuperMattwell fingers crossed, here goes nothing17:10
vdsmarcoceppi, if I try to juju deploy without sudo I get http://paste.ubuntu.com/6449178/17:13
SuperMattmarcoceppi: your help has been indispensible throughout my trails and tribulations. For that, I thank you.17:17
marcoceppivds: something is wrong then17:17
marcoceppivds: destroy-environment, then make sure you .juju folder is recursively owned by you17:17
marcoceppithen bootstrap/deploy again17:18
vdsmarcoceppi, same result17:18
marcoceppivds: what version of juju?17:19
marcoceppivds: this is really a bug, you shouldn't be using sudo for commands other than bootstrap and destroy-env17:19
vdsmarcoceppi, 1.13.2-raring-amd6417:19
marcoceppivds: try upgrading to the latest, 1.16.3 and trying again17:20
vdslet's see what happens...17:20
=== cmagina is now known as cmagina-lunch
InformatiQjcastro: I was told you're the man to talk to about juju19:30
InformatiQ:)19:30
=== cmagina-lunch is now known as cmagina
jcastroInformatiQ, shoot!20:18
jcastroI am ready!20:18
thumperBANG!20:18
* thumper ducks20:18
InformatiQjcastro: well i was wondering about the adoption of juju, like who is using it, what environments, own charms vs cs20:19
jcastrowe're still in the early stages20:19
jcastrowe really didn't hit a production quality release until ~6 months ago20:20
jcastroand for some people needing HA is still an issue which we'll address in 14.0420:20
jcastrobut we use it in production and we have customers who do20:20
jcastroJuju hasn't been included in an LTS yet so the adoption is still early-stages20:20
InformatiQwho is your target customers profiles?20:21
jcastroSo right now the obvious one is anyone deploying and orchestrating on openstack20:22
jcastroHowever I am not a product-ish guy, so right now I'm focused on developers and sysadmins20:22
InformatiQwell amazon fits in quite well too20:22
jcastroI don't have like a list of personas or anything we target offhand20:22
jcastrooh yeah, amazon, hp cloud, and azure are all first class citizens20:23
InformatiQwell i am just trying to understand where juju is going20:23
jcastroit's just openstack has a bunch of deployment painpoints that we address nicely20:23
jcastrooh so did you see the 2.0 roadmap video from today's UDS?20:23
InformatiQso developers write juju code and sysadmin run the juju infra?20:23
InformatiQhaven't seen the video yet20:24
jcastrowell the idea is to bridge dev and ops20:25
jcastrofor example being able to deploy something when developing it in a way that is similar to how you would run it in production20:26
InformatiQah you meant you care about them as your target users, ok20:27
InformatiQgot that point20:27
jcastrohttps://www.youtube.com/watch?v=ZjzImjEinB8&feature=c4-overview&list=UUyT3AcQaRx_yl1yYLa5ikXQ20:27
jcastrois the video20:27
jcastrooh for sure.20:27
InformatiQwell yeah that is my day job, do ops and get devs involved20:27
jcastroright, so the idea with dev charms in particular20:27
jcastrolike rails, or the django charm20:28
jcastrois that a developer will straight away be deploying to instances20:28
jcastroand he iterates in a way that can be deployed by ops20:28
jcastroI made a joke once, "You ever deploy something from a developer where he hardcoded in `localhost`? That's what we're trying to fix."20:29
jcastroso the local provider the guy is developing on uses the same cloud images you would use on say Amazon20:29
jcastroand he can rev at his pace on his laptop, and then when he's ready redeploy it to AWS20:30
jcastroor over to your internal hardware20:30
jcastrowe want to make it easy for people to shift workloads around in different clouds20:30
InformatiQyup, and make dev envs as colse as possible to prod20:30
InformatiQwhich might make a case for mking a juju local provider run on virtualbox for those devs using macs20:31
InformatiQbut anyway20:31
InformatiQcoming from a sysadmin and ansible background20:32
InformatiQthe playbook is a living thing, it changes as your conf changes so next time you dpeloy it it is uptodate and configured)20:33
InformatiQwhile that doesn't seem like the workflow in juju20:33
InformatiQi know you can always fork and edit the charm20:33
InformatiQjust was wondering what is the official view on that?20:33
zradminis anyone else using it with MAAS and having the issue where juju locks up because the maas api is throwing back "not authorized" errors?21:16
=== CyberJacob is now known as CyberJacob|Away
=== CyberJacob|Away is now known as CyberJacob
arosalesInformatiQ, I think a charm is flexible to accomodate a dynamic playboook.  It may be analogous to a git hub project branch that a charm pulls from (at any deploy that git branch could be updated, if not pinned).21:55
arosaleszradmin, not sure how you were setting up but did you leave any of the fields blank when issuing "createsuperuser"21:59
arosaleshttps://bugs.launchpad.net/ubuntu/+source/maas/+bug/124391721:59
_mup_Bug #1243917: 'maas createsuperuser' errors out if no email address is entered. <MAAS:Fix Committed by jtv> <maas (Ubuntu):New> <https://launchpad.net/bugs/1243917>21:59
thumperjcastro: you around?22:21
zradminarosales: yeah, i have an email address in the superuser but nothing under Full Name, my bug seems to be related to this entry: https://bugs.launchpad.net/maas/+bug/121899723:09
_mup_Bug #1218997: maas throws unauthorized sometimes for no reason <intermittent-failure> <maas> <juju-core:Triaged> <MAAS:Invalid> <https://launchpad.net/bugs/1218997>23:09
arosaleszradmin, can you confirm your clocks are within 5 minutes of each other?23:13
=== CyberJacob is now known as CyberJacob|Away
zradminarosales: yes, between maas & juju they are both on the same time, just different timezones23:27
sarnolddoes date -u on both return the same time?23:28
zradminsarnold: I just ran it on node 0 and maas and they are both returning the same time23:31
sarnoldzradmin: cool, thanks23:31
zradminsarnold: no problem23:32
arosaleszradmin, so it may not but be bug 1218997 your are hitting that roughly looked to be a clock sync issue23:32
_mup_Bug #1218997: maas throws unauthorized sometimes for no reason <intermittent-failure> <maas> <juju-core:Triaged> <MAAS:Invalid> <https://launchpad.net/bugs/1218997>23:33
arosaleshmm . ..23:35
arosaleszradmin, which version of juju and maas are you running?23:38
=== freeflying is now known as freeflying_away
zradminarosales: juju 1.16.3, MAAS 1.5.423:49
arosaleszradmin, yup that looks recent23:51
davecheneyzradmin: what does the maas log say23:51
davecheneyin maas/juju23:51
arosalesdavecheney, hello23:51
davecheneymaas returns very terse errors to the client23:51
davecheneyfor security reasons23:52
davecheneybut is usualy much more vocal in its own log23:52
* davecheney waves to arosales 23:52
zradmindavecheney: it's filled with these errors http://pastebin.ubuntu.com/6450947/23:53
davecheneybrilliant23:56
davecheneycan you generate a new user and try to authenticate with that user ?23:56
zradminoauth or just logon to the webpage23:59

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