/srv/irclogs.ubuntu.com/2017/01/31/#juju.txt

stormmorelazyPowe_ just for my knowledge and if you don't mind me know, what timezone does your team work in00:17
lazyPowe_stormmore most of us are US Central time00:58
stormmorelazyPowe_ good to know :)01:00
stormmorelazyPowe_ I am one of those weird people that works in whatever timezone is most suitable for the task at hand ;-)01:13
lazyPowe_stormmore - i hear ya. As a traveling monk of the python order, i tend to shift my schedule around but normally work CST hours.01:15
stormmorelazyPowe_ oh I am just a BOFH ;-)01:17
lazyPowe_I was told i had to quit sporting that title01:17
lazyPowe_and stop deleting my $lusers $HOME01:17
* stormmore will never stop sporting that title! computers would be so much better without their users! 01:19
lazyPowe_welp, have a good evening. Things are looking good here01:21
* lazyPowe_ dips out for the night01:21
anrahHi all! Is there a way to add another network interface for a unit deployed to OpenStack?07:09
=== frankban|afk is now known as frankban
BlackDexanrah: deployed via juju? bare-metal? using maas? what version of juju?08:27
BlackDexwhat version of ubuntu?08:27
kjackalGood morning Juju world!08:32
mikenaxw: Hi there. I've just added a comment on https://bugs.launchpad.net/juju/+bug/1643430 . Interested if you know of any other workaround... (it can wait 'til tomorrow though)08:33
mupBug #1643430: Unassigned units in an error state cannot be removed <juju:Triaged> <https://launchpad.net/bugs/1643430>08:33
Budgie^SmoreMorning! D*$n it is already :-/08:33
mikenMorning kjackal08:33
axwmiken: I'm not aware of any workaround at the moment, sorry08:35
axwmiken: I mean, apart from getting access to the controller and hacking the mongo DB08:35
anrahBlackDex: I mean that I am not deploying openstack but deploying own charms to existing openstack08:40
anrahBlackDex: 16.04 and juju 2.0.208:40
BlackDexmiken: what version of juju?08:43
BlackDexanrah: using maas? or juju local with juju add-machine?08:43
mikenaxw: Are there details of doing that on another bug? I could ask those with access to the controller to do so.08:44
mikenBlackDex: 2.0.208:44
BlackDexhmm, i know of a tool for juju 1.25 called mgopurge, don't know if that can be used for 2.0.208:45
BlackDexmiken: https://github.com/niedbalski/fix-145903308:46
axwmiken: not that I know of. mgopurge is for fixing broken transactions, that wouldn't help in this case.08:46
BlackDexow now08:46
BlackDexno wrong one08:46
BlackDexor that could also be a fix08:47
BlackDexmaybe08:47
BlackDexbut only for 1.25.208:47
BlackDexand the mongo cleanup is https://github.com/niedbalski/fix-161386608:47
BlackDexbut, i don't know if that works for 2.x08:47
axwmiken: don't try and remove the model (yet)08:48
mikenThanks BlackDex08:49
mikenaxw: oh, let me update that RT then :)08:49
mikenaxw: Did you want access to it, or what's possible?08:50
axwmiken: if you destroy-model then it gets into an even worse state. if you restart the controller agent, it should try to assign the unit to a machien again08:50
mikenAh - thanks. I'll note that.08:50
axwmiken: sorry, should have said before - memories are fading back in08:51
anrahBlackDex: Not maas, OpenStack is my cloud08:54
BlackDexmaas is not a cloud ;) it's a bare-metal provisioner08:55
anrahBlackDex: well yeah :) But anyway just to OpenStack08:55
BlackDexbut if i'm not mistaken, juju using lxd on 16.04 would add all bridged interface to the lxd's08:56
BlackDexif not, then you probably need to change the template/profile of the lxd containers juju created08:56
anrahI'm not using LXD Juju just provisions new instances to OpenStack08:57
BlackDexyou mean using openstack as a cloud provider?08:58
anrahYes08:58
anrahon my model config I say: network: 5c7cd500-c581-4491-86fa-af95a71e8c1808:59
anrahbasically i want another network to my model and from there to my instances08:59
BlackDexi haven't done that much with juju using openstack as a cloud provider09:05
BlackDexi would guess that creating a network and adding the id of that network would be enough09:05
anrahYes, that works for one network, but the need is basically to separate the mgt and data planes09:08
anrahSo for external communications the instances would use interface X and for management (ssh + other stuff) interfaxe /09:09
anrah*interface Y09:09
anrahI can do that by manually adding another network after the instance is running but I was wondering is there a way to do that with Juju09:10
BlackDexthen i think you have to look into the spaces for this09:10
BlackDexhttps://jujucharms.com/docs/2.0/network-spaces09:11
CoderEuropeAny time anywhere - twitter works on my phone http://imgur.com/v1sOmkB09:24
magicaltroutthat tweet is a lie09:25
magicaltroutyou don't see the london eye from canonical's office! :P09:25
anrahBlackDex: yep, currenly only for MAAS, Have to figure out something :)09:41
=== wesleyma` is now known as wesleymason
Zichi here, maybe it's an "RTFM" question: how can I check, without actually doing any action, if upgrades are available for all charms that I'm using in one juju command?10:51
marcoceppiZic: `juju status` should show if upgrades are available at the top of the status output10:56
marcoceppiZic: I could also write you a real quick `juju show-upgrades` plugin, because I don't think it's as apparent10:56
stubmagicaltrout: Not now, but the previous office had a great view of it.11:00
Zicmarcoceppi: oh I didn't notice for juju status, thanks11:03
=== barmaley is now known as barmaley-testing
=== barmaley-testing is now known as barmaley
surfwhat is the difference between model and controller in JUJU?12:10
Zichmm, I think EasyRSA did something wrong here: http://paste.ubuntu.com/23899101/12:14
verterokgood morning12:19
* verterok gets coffee and reads the backlog12:20
Zicif someone of the CDK team is around?12:29
=== sparkieg` is now known as sparkiegeek
marcoceppisurf: a controller is a special model which runs the Juju control plane that exposes the GUI, API server, and dispatches event in the deployment12:35
=== scuttle|afk is now known as scuttlemonkey
ZiclazyPower: do you believe me if I said that I have another problem and was spotting you come up? (hello anyway ^^)14:39
rick_hZic: lol, why does that sound like "I'mmmmm baaaaacccckkkk!" in my head14:41
Zichuhu :)14:41
ZicI'm back to haunt14:41
ZiclazyPower: when you will have a little time: http://paste.ubuntu.com/23899271/14:42
Zicsorry in advance14:42
lazyPowerZic it appears that the etcdoperator deployment has left some garbage behind, and potentially changed some tls certificates. I'm not positive which as i haven't used etcd-operator14:45
Zicoh, don't know it was possible, but as it was the only thing I did to encounter this error...14:46
Zicdo you think it's recoverable? or do I must restore to an old snapshot?14:46
lazyPowerwell you're getting TLS errors in your log spam here - Jan 31 12:13:18 mth-k8smaster-01 kube-apiserver[1177]: E0131 12:13:18.033706    1177 handlers.go:58] Unable to authenticate the request due to an error: crypto/rsa: verification error14:46
Zicyeah but don't know that etcd-operator will touch that part14:47
lazyPowertry dumping your kubernetes objects and seeing if it left something behind you can delete14:47
lazyPoweri imagine it added something to the k8s object store and thats whats causing the error14:47
lazyPowerbut thats just a guess14:47
ZiclazyPower: I can't run delete command over kubectl anymore btw :(14:49
lazyPoweri'm really baffled at how this keeps happening.14:50
Zicto reassure you, before all this exotic stuff (Vitess & etcd-operator) all was working fine (like an ElasticSearch cluster or a Cassandra one)14:51
ZicI was waiting your advice before return to a previous working state14:52
Zicbut then, I will avoid etcd-operator14:52
lazyPowermy thoughts are to check your tls certificates with x509 validation to ensure you have the correct IP Addresses14:52
lazyPowerincluding the SDN address14:53
lazyPowerZic - another thought would be to deploy the kubernetes-e2e charm, and run an e2e validation suite post restore/fix to ensure the cluster is behaving as we expect it to14:53
lazyPowerZic - https://jujucharms.com/u/containers/kubernetes-e2e/14:54
Zicoh, I was searching this kind of solution14:56
lazyPowerZic - i think its probably fine to use etcd-operator, but we need to know what its doing14:56
Zicit's like a conformity tools for CDK?14:56
lazyPowerand then account for anything its done14:56
lazyPoweryeah, e2e is written by google + contributors to validate the k8s deployment behaves as expected14:56
Zicsounds cool14:56
lazyPowerit runs very complex scenarios in kubernetes automatically, and generates quite a bit of load durin its testing suite14:56
lazyPowerand at the end will report any errors it discovers during the test run. we run this daily on CDK and publish the results to gubernator (their upstraem dashboard)14:57
lazyPowerhttps://k8s-gubernator.appspot.com/builds/canonical-kubernetes-tests/logs/kubernetes-gce-e2e-node14:58
ZiclazyPower: all my certficates have the good names in it (tested via openssl x509) and they was not modified since the 16th of this month15:22
lazyPowerseems like its something else thats caused the problem. did etcd-operator leave anything behind in the kube-system namespace?15:23
Zicnope, I search through RC, deployments, pods, PV and PVClaim, statefulset, thirdpartyressources, servicess... in --all-namespaces15:23
ZiclazyPower: I think I'm done with etcd enough, Vitess is capable to use an etcd cluster or ZooKeeper, I'm more confident with ZK, I think I will switch to it15:24
Zicand more, I will let you working :D15:24
Zicwe passed so many hours together, I don't have enough pizzas to send to you!15:24
lazyPower:D15:25
lazyPowerat this point i'd be happy with a pint and a pack of gum :D15:25
lazyPowerhowever i'm bummed you ran into so many errors that caused cluster crash, there's obviously something going on with that last deployment (i presume) that has altered the state of the cluster. I'm also wondering if you're using NTP on your servers to ensure there's no clock drift?15:26
lazyPoweri know that clock skew can cause some weird issues here and there to crop up15:26
=== zz_CyberJacob is now known as CyberJacob
kwmonroerick_h: reminder received (wrt juju ci show-and-tell tomorrow)16:11
rick_hkwmonroe: you ok for it?16:11
rick_hkwmonroe: and thank for the ack16:11
kwmonroeyou bet! what time is the show tomorrow?16:12
rick_hkwmonroe 2pm est16:12
rick_hkwmonroe: I'll get you an invite16:12
kwmonroethx rick_h16:12
mskalkamarcoceppi, Are you available for a minute? Also do you ever respond to pings with 'Polo!'?16:40
marcoceppimskalka: Polo, I mean no - never.16:41
mskalkaso I'm charming up Rocket.Chat just to get familiar with the reactive framework, and I've run into a roadblock, namely the MongoDB charm.16:42
marcoceppimskalka: how can I help?16:44
mskalkaafter some poking around I see you have a layered version in the works, but it's not completed. I'm interested in pushing it forwards a bit, what's a good place to start?16:46
marcoceppimskalka: we need to figure out replicasets, it's a bit out of my depth, but this is the latest layer: https://github.com/marcoceppi/layer-mongodb16:46
marcoceppimskalka: I also have this fork for the mongodb interface: https://github.com/marcoceppi/interface-mongodb which adds new support for a peer16:47
marcoceppimskalka: basically, when a charm is deployed, the leader should init the RS, then for each peer added the charm should check "am I the master of the RS" and if so, add the new unit to the RS16:48
marcoceppiI just can't get it to work for me, for the life of me16:48
mskalkaok. I'll look into how the old charm handles it, maybe I can suss it out16:48
marcoceppimskalka: thar be dragons in the old charm16:49
mskalkathar be dragons in most pre-reactive charms ;)16:49
marcoceppitruth16:49
mskalkaalright that's a good a place to start as any, thanks!16:50
marcoceppimskalka: I'm about to relocate, but I'll be online in a bit again, I'm happy to help work through it.16:50
mskalkamarcoceppi, sounds good, if I run into a major roadblock I'll ping you16:50
mbruzeklazyPower: Do you have some of the images for older kubernetes? I am working on my presentation and I don't know where to get our older images16:56
marcoceppimbruzek: I have some17:00
lazyPowermbruzek i do, hang on while i fish up a lightning talk slide17:00
bdxanyone interested in Juju <-> newrelic integration this would be a great time to make a ticket with them for a python sdk, I've started the commotion see http://i.imgur.com/dvPlFcb.png17:00
mbruzekThanks guys17:00
lazyPoweror marcoceppi can totally swoop in17:00
* marcoceppi HAWK SCREEEEECH17:00
mbruzekmurica17:00
marcoceppibdx: yassssss17:00
lazyPoweroh i totally lied - https://docs.google.com/presentation/d/1m69DG957JK9PMCEXNFL80_0DFXBfQbfIEB6obAK6HPY/edit#slide=id.g70d4533c6_0_2217:00
lazyPoweronly has one slide of k8s formation(s)17:01
lazyPowerpre circle icons to boot17:01
mskalkamarcoceppi, OK, I have a good idea of what's happening in the old Mongo charm (or a horribly myopic idea, we'll see) can we discuss later this afternoon when I've had a change to poke at it's ugly innards a little more?17:27
Zicdid you already have Flannel starting before the network target? I observe this only on my baremetal server where I use bonding interface17:29
lazyPowerZic - ts started after the network-online.target is reached  https://github.com/juju-solutions/charm-flannel/blob/master/templates/flannel.service17:34
=== mskalka is now known as mskalka|lunch
stormmorehola juju world! :)17:49
stormmorelazyPower should there we use a NTP charm as a subordinate on a cluster?17:51
lazyPowerstormmore - indeed17:51
lazyPowerstormmore https://jujucharms.com/ntp/17:51
stormmorelazyPower I am aware of that one, related to what though in the k8s model?17:52
lazyPowerkubernetes-master, kubernetes-worker, etcd17:52
lazyPowerwe should probably include that in the bundle at some point in  the near future17:53
stormmorebtw when I actually get my hardware, etc. setup, I plan on having a model just for "testing" the bundles, etc.17:53
stormmorelazyPower that is what I was thinking, I know it is part of the openstack bundle17:53
lazyPowerstormmore - yeah, thats a great idea to have a separate model for testing things like upgrades and what not before you execute against a production cluster17:53
lazyPowerdespite our best efforts, we're going to try to test every scenario but we'll find corner cases that are rough until we've gotten a few hundred upgrades under our belt and shaken all the bugs out of that path17:54
lazyPoweri'm sure Zic will testify :)17:54
stormmorelazyPower - exactly my thoughts, plus being able to help with developing things along side you guys :)17:56
lazyPower<317:56
=== mskalka|lunch is now known as mskalka
ZiclazyPower: I'm testifying everything lazyPower said <318:16
Zic(or, near that)18:16
rick_hmarcoceppi: do you know anyone that knows the nagios charms well I can bug?19:08
=== frankban is now known as frankban|afk
tvansteenburghrick_h: what do you make of this? http://pastebin.ubuntu.com/23901081/19:34
* rick_h goes ruh roh19:34
=== scuttlemonkey is now known as scuttle|afk
rick_htvansteenburgh: looks like they up'd the version of the terms to 1 and you haven't agreed to tht yet19:35
rick_htvansteenburgh: try juju agree but with a /1 vs a /0?19:35
tvansteenburghrick_h: right, but /1 isn't listed in the charm's terms19:35
rick_htvansteenburgh: oic, hmm19:36
tvansteenburghrick_h: also, it seems i'll never be able to agree to /0 anyway, according to this: https://github.com/juju/juju/blob/afeb62dd9f750437a97ffbf275b1d1524836d513/cmd/juju/romulus/agree/agree.go#L9519:37
rick_htvansteenburgh: that's fishy there..19:40
* rick_h is trying to see if he can list the terms for that team with charm terms -u xxx19:40
rick_htvansteenburgh: ok, so sounds like a question/bug for cmars19:42
rick_htvansteenburgh: I can agree to /1 and get the terms listed/etc19:42
rick_htvansteenburgh: but I also see I cannot agree to /0, but that's what's listed in charm terms -u ibmcharmers19:42
mskalkamarcoceppi: *puts on swim trunks* Marco?19:42
rick_htvansteenburgh: so it sure seems like the UX is trying to increment to revision to non-zero so that it doesn't do 0 based counting for users19:43
rick_htvansteenburgh: but not being complete19:43
tvansteenburghrick_h: okay. i've got automation that agrees to terms. it relies on the terms returned by the api being accurate. i guess in the meantime i could maybe parse the charm pull error message for the terms i need to agree to19:45
rick_htvansteenburgh: it cmars confirms the logic I'd just check that the version the charm API says and if that's 0 add one. The charm should be updated to say /119:45
rick_htvansteenburgh: and that should be reliable19:45
cmarsjust back from lunch19:46
tvansteenburghrick_h: oh, i see. cool, that would be easier.19:46
cmarstvansteenburgh, term revisions start with 119:46
tvansteenburghhttps://api.jujucharms.com/v5/~ibmcharmers/ibm-websphere-liberty-5/meta/any?include=revision-info&include=promulgated&include=id-name&include=owner&include=terms19:47
rick_hcmars: right, but if I charm terms -u ibmcharmes I get back a /0 for ibm-wlp/019:47
rick_hcmars: so the charm is set to that and that doesn't work as you note above19:47
rick_hsorry, -u ibmcharmers19:47
cmarsrick_h, just because the charm metadata has a term revision 0, doesn't mean that a term revision 0 exists19:48
cmarsit's an invalid term ID19:48
tvansteenburghok so that is just parsed out of the charm's metadata.yaml?19:49
rick_hcmars: ok, so that's from the user? I'd assumed that the terms api would auto handle incrementing the revision so that they can't change existing revisions/etc19:49
cmarstvansteenburgh, correct19:49
cmarsrick_h, ^^19:49
rick_hoic, I thought it was pulling form the terms api itself as to what terms are stored19:49
rick_hcmars: is there a way to query the terms service directly?19:49
cmarsrick_h, yes19:49
cmarsrick_h, see https://github.com/juju/terms-client for example19:50
rick_hcmars: ah ok, I was looking through juju/charm command and didn't see anything.19:51
tvansteenburghaha19:51
cmarsrick_h, we add terms-client to the charm snap19:51
cmarsplugins19:51
rick_hcmars: sorry, I'm missing something. So as a diff snap? I've got the charm snap but not finding any show-term and the like. Is that a recent update?19:54
stormmorelazyPower did you get a chance to talk to the team about elasticsearch/kibana?19:54
lazyPowerstormmore ah thanks for reminding me, i haven't.19:55
tvansteenburghcmars: my use case is, "for a given charm url, show me a list of the terms i need to agree to"19:55
stormmorelazyPower no problem, hence the reminder ;-)19:55
tvansteenburghrick_h: it's in the latest snap from --candidate19:55
rick_htvansteenburgh: ah, I'm on stable19:55
lazyPowerstormmore - let me table this for tomorrow and at bare minimum i'll run a bundle generation and kick a deploy before i EOD today to ensure it still turns up correctly19:55
rick_htvansteenburgh: k, I feel less out of it then ty19:56
lazyPowerstormmore - if it works as expected in its current form i'll send you over the bundle in my namespace, and we can pilot from there19:56
stormmorelazyPower no problem, my dev teams are being slow anyway :)19:56
lazyPowerstormmore - i know for a fact bdx wanted this integration in teh past, and i do believe that hasn't changed19:56
cmarstvansteenburgh, so for that, you'd use this API call: https://github.com/juju/terms-client/blob/master/api/api.go#L31519:57
cmarsit's macaroon authenticated, because the request is made for a logged in user19:57
tvansteenburghok19:58
stormmorein the meantime I am going to look at deploying Nexus 3 into the cluster for our private registry19:59
cmarstvansteenburgh, you'd build a list of term IDs from charm metadata, then add them to a CheckAgreementsRequest (https://github.com/juju/terms-client/blob/master/api/wireformat/entities.go#L171) and call GetUnsignedTerms with that19:59
tvansteenburghcmars, rick_h: i think i have what i need now, thanks for your help!20:03
cmarsok, great20:03
cmarscan someone review my merge proposal into charmhelpers? https://code.launchpad.net/~cmars/charm-helpers/add-metricenv/+merge/31595220:31
marcoceppicmars: any reason this isn't in hookenv?20:37
cmarsmarcoceppi, it's a different hook execution environment20:37
marcoceppiso are actions, but they're in hookenv20:37
marcoceppidifferent or not, it's still a hook environment?20:37
cmarsmarcoceppi, you can't use metricenv stuff from normal hooks at all. and vice-versa20:37
marcoceppicmars: likewise with relations (to an extent) and actions20:38
cmarsmarcoceppi, i thought separating them would make this distinction clearer to the API user. "these aren't available for hooks generally -- these are special"20:39
marcoceppicmars: it's better ot have the commands check if htey are in the right hook context and raise exceptions when not, but not even the actions do this20:40
marcoceppiI don't really see how this warrents a departure from existing hookenv.py20:40
marcoceppithat said, hookenv and charmhelpers in general needs to be reitred for something better. but that's a longer story20:40
lazyPowerour world is going to catch on fire when we do that20:41
cmarsmarcoceppi, i can concatenate it as well. hookenv is only 1037 LOC, there's room ;)20:41
lazyPoweryou're referring to gutting plumbing from 99.9% of all charms20:41
marcoceppilazyPower: gutting, improving, tomato, tomato20:41
* mskalka shudders20:42
lazyPower^20:42
marcoceppiI have an elaborate plan for this20:42
lazyPoweri have elaborate arguments for you every step of the way <320:42
lazyPowerbut trolling aside, whats your plan marcoceppi?20:43
marcoceppilazyPower: we've talked abou tthis before, years in the making20:43
marcoceppicharmhelpers is bloatware, I'd like to pull the things out of core and make them feel more like how juju presents it's tools20:44
lazyPoweryeah20:45
lazyPowerthats easily a 6 month project if not a year in terms of deprecation and cleanup effort20:45
lazyPowera lot of older charms are gonna get bit by that and die off slowly20:45
lazyPowerwhich i'm OK with20:45
lazyPowerif you're not maintaining it, let it die (i'm deeply seated in this camp of having unmaintained charms)20:46
cmarsmarcoceppi, i can move the code if necessary to get that landed. anything else need to change for that MP?20:46
lazyPowerls20:46
marcoceppicmars: you make a lot of assumptions that add-metric exists on disk20:46
cmarsmarcoceppi, no more than open-port20:47
marcoceppicmars: open-port has been in juju since 0.220:47
marcoceppicmars: I recommend taking a look at status-set and network-get on how they implement newer features without dealing with tracebacks20:47
magicaltroutif people didn't have elaborate plans they wouldn't work at Canonical.....20:49
stokachuworld domination20:49
mskalkamarcoceppi: while you're here, can I pick your brain for a minute?20:51
marcoceppimskalka: go for it20:51
mskalkamarcoceppi: just want to know what you've tried in the past to get the replset thing moving, then run what I have in mind past you20:52
mskalkamarcoceppi: just to be sure I'm not barking up the wrong trees20:52
marcoceppimskalka: so, I've never really tried to code it, I'll be honest I've never gotten it to work manually20:57
marcoceppimskalka: my plan was to do this: is-leader? does leader-settings say I've bootstrapped this rs? no - init rs, yes ignore20:58
marcoceppion each new peer addition, each unit checks to see if it's the RS leader (not the juju leader) and if it is, adds the peer20:58
mskalkamarcoceppi: that's what I had in mind as well, without the 'is rs init'd', just have a @only_once on leader elected to spin it up20:59
mskalkamarcoceppi: then again a sanity check is probably a good idea. Then just fill in the rest for broken/departedl(kick off new election if leader, else remove)21:01
marcoceppimskalka: yeah, I wouldn't always trusty @only_once we @when('leader.elected') can just see if leader_get('rs.init') is true (and even verify by probing mongo)21:02
marcoceppimskalka: there's a weird, potential race contention that could arrise, where juju re-elects a leader to a unit which has just done install but not get config / relations and so it'd run @only_once and is_leader, init a new RS and you've got split brain21:03
marcoceppiby checking (and setting) leadership settings you can persist that data between elections21:03
mskalkamarcoceppi: I thought about that, I don't have enough juju experience yet to know if that would be an issue haha21:04
mskalkamacroceppi: alright it seems like I'm headed in the right direction then. I'll see if I can finish this up today or tomorrow, time allowing21:05
marcoceppimskalka: \o/21:08
mskalkao721:08
cmarsmarcoceppi, updated, please take another look at https://code.launchpad.net/~cmars/charm-helpers/add-metricenv/+merge/315952 ?21:33
=== JoseeAntonioR is now known as jose
=== mskalka is now known as mskalka|afk
stormmoreso if I need to add an ingress entry point, do I modify the ingress controllers that are already in my cluster or should I be creating a new one?23:10
lazyPowerstormmore - you just add an ingress object23:20
lazyPowerthe rest should be handled transparently23:21
lazyPowerstormmore - something like https://bitbucket.org/chuckbutler/awesome-potato/src/f820bfc106fbbc00ca6045e07e27ac1f86b8b4f5/deploy/development.yaml?at=juju-demo&fileviewer=file-view-default#development.yaml-101:11523:21
stormmorecool thanks, that is what I thought. just a little tired after doing a few 18+ hour days lately23:31
lazyPoweri hear ya23:32
lazyPowerthere are cases where you will want to scale your ingress controller, but most of those reasons have vanished in the 1.5.x release of k8s as their ingress api uses teh same api-contoller pod for all namespaces so long as you scope your ingress objects with a namespace23:33
stormmoreis it better to use kind: Deployment vs kind: ReplicationController?23:33
lazyPowerbefore you had to deploy an ingress controller for every namespace, and it was tedius and resource intensive to run all those nginx pods23:33
lazyPoweryeah, you can use either, but deployments are favored as you can do rolling updates with them23:33
lazyPowerin blue/green style deployments23:33
stormmoreI am still getting my head around all the options in the YAML files23:34
lazyPowerdeployments create rc's which create pods23:34
lazyPowerso you can run a --rolling-update on a deployment, and it will upgrade the RC, and slowly phase out the pods under the old RC until it can successfully delete all of them23:34
lazyPowerif your rolling update fails, you can reasonably revert back to the existing RC23:34
stormmorenice so apparently a lot of the videos I have been watching by hightower is outdated :)23:36
lazyPowerkubes moves so fast though23:36
lazyPowerits hard not to be outdated23:36
stormmoreapparently!23:36
lazyPowerDeployments are also still a beta resource23:37
lazyPowerso thats possibly why its not promoted in the training material23:37
lazyPowerlike we tend to shy away from anything thats not listed as stable in the API because its subject to change. beta's dont usually get changes, but the time we decide to do that it'll break and we'll have to change an implementation detail23:37
lazyPowerand nobody wants that23:38
stormmorehow would recommend handling different paths? i.e. I really don't care about all the nodes responding to all the paths and it looks like I can create a single Ingress for the "host" and use paths to point to the right service23:38
stormmorewe were talking about creating api.domain.com/v1/<service> as our structure23:38
lazyPowerthats useful when you want to map a microservice into your url structure like foo.com/api  would route to your bacakend golang web-api impl23:39
lazyPowerand / routes to your expressjs frontend23:39
lazyPoweri dont use that particular format often, i tend to deploy with subdomains more often than i url mux23:39
lazyPowerbut it does work, and works reasonably well might i add23:39
stormmorelol :) yup sounds like I am on the right track for my thoughts23:40
stormmoreso it appears that the Ingress now uses the service lb, do you know if there is going to be other options for the LB than round robin? for instance least conn?23:40
lazyPoweri dont off hand23:43
lazyPoweri would need to go dig around in the issue tracker23:43
lazyPoweri'm fairly certain there's a lot of talk around this, a lot of users are going the route of cloud-provider LB's, but that gets expensive quickly. We're talking around making some supporting charms to enable that class of infrastructure but nothing concrete yet23:43
lazyPowerhttps://github.com/juju-solutions/bundle-canonical-kubernetes/issues/183 -- as an example23:44
stormmorepersonally I don't care if it in or out of cluster other than the fact that out of cluster comes at a cost for bare metal clusters but even between services in the cluster it would be nice to be able to better balance connections based on load or other metric23:46
stormmorefor now, I am pushing my dev teams to make their stuff fully stateless to account for the roundrobin service LB\23:47
lazyPowerhmm23:49
lazyPowerstormmore - remind me another time to revisit the haproxy lb approach.23:49
lazyPoweri'm fairly certain we can tune this behavior in the nginx/haproxy flavors of an ingress controller23:49
lazyPoweri'm totally open to trying to patch this with a configmap so we can further tune the ingress behavior23:50
lazyPowerwe have such a patch already submitted that needs additional vetting to enable running a registry in k8s23:51
lazyPowerstormmore - you might want to tag this issue and track it - https://github.com/juju-solutions/kubernetes/pull/10023:51
lazyPowers/issue/pr/23:51
stormmorecool thanks23:56

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