Monday, 2019-09-09

ianwany idea why this pull request with a depends-on: for system-config -> https://github.com/philpep/testinfra/pull/494/commits/c9320bce0708fce074ecb3e1cb06591b99f4c0ee00:29
ianwends up in -> https://zuul.opendev.org/t/openstack/build/54d18384d52d4f7f859a08bcb0f82b92/logs00:30
ianwnot seeming to notice the depends-on?00:30
ianwhttps://169d8cf58d4d97c4b367-c86e09fdca941b34a3fcb115361b332e.ssl.cf2.rackcdn.com/494/c9320bce0708fce074ecb3e1cb06591b99f4c0ee/third-party-check/system-config-run-base-ansible-devel/54d1838/zuul-info/inventory.yaml00:30
clarkbianw depends on goes in the first header comment of the PR00:33
clarkbnot the commit message00:33
ianwclarbk: does that mean i need to edit my comment in https://github.com/philpep/testinfra/pull/494#issue-314742565 ("don't merge this, testing only")?00:37
ianwclarkb: sorry, ^ :)00:38
ianwahh, it appearss the answer is yes!00:39
clarkbyup00:41
ianwhttps://github.com/philpep/testinfra/pull/494#issuecomment-52926536400:59
ianwi'm so happy to have that finally working i added a hooray emjoi00:59
*** sgw has quit IRC01:22
*** sgw has joined #zuul01:44
mnaserhttps://github.com/vexxhost/nodepool-provider - big "wip"/"poc" thing but i'm trying to work my way to get a nodepool provider with many resources.  as of now it just prints out the zookeeper endpoints for the service in cli, but there's a bit more work left (imho) to get it at least to use the k8s cluster its running on02:39
mnaseri'll probably have resources for each (i.e. NodepoolKubernetesProvider) or someting and that will systematically update the nodepool config02:40
mnaserthe goal is to be nothing but building components, not a "distro02:40
openstackgerritIan Wienand proposed zuul/zuul-jobs master: Add a netconsole role  https://review.opendev.org/68090102:46
openstackgerritIan Wienand proposed zuul/zuul-jobs master: Add a netconsole role  https://review.opendev.org/68090103:41
*** jank has joined #zuul04:11
openstackgerritJan Kubovy proposed zuul/zuul master: Evaluate CODEOWNERS settings during canMerge check  https://review.opendev.org/64455705:15
openstackgerritIan Wienand proposed zuul/zuul-jobs master: Add a netconsole role  https://review.opendev.org/68090105:29
openstackgerritIan Wienand proposed zuul/zuul-jobs master: Add a netconsole role  https://review.opendev.org/68090105:44
*** raukadah is now known as chandankumar05:46
openstackgerritIan Wienand proposed zuul/zuul-jobs master: Add a netconsole role  https://review.opendev.org/68090106:02
*** jank has quit IRC06:16
*** bolg has joined #zuul06:18
*** bolg has quit IRC06:23
*** bolg has joined #zuul06:24
*** saneax has joined #zuul06:25
openstackgerritMerged zuul/zuul-jobs master: Switch releasenotes to fetch-sphinx-tarball  https://review.opendev.org/67842906:28
*** snapiri has quit IRC06:35
*** snapiri has joined #zuul06:36
*** snapiri has quit IRC06:36
*** mattw4 has joined #zuul06:44
*** snapiri has joined #zuul06:49
*** shachar has joined #zuul06:58
*** mattw4 has quit IRC06:59
*** snapiri has quit IRC07:00
*** saneax has quit IRC07:08
*** saneax has joined #zuul07:08
*** aluria has quit IRC07:33
*** themroc has joined #zuul07:33
*** jpena|off is now known as jpena07:35
*** aluria has joined #zuul07:38
*** jangutter has joined #zuul07:47
*** pcaruana has joined #zuul07:49
*** sshnaidm|afk is now known as sshnaidm07:51
*** sshnaidm is now known as sshnaidm|ruck07:51
*** bjackman has joined #zuul07:54
openstackgerritSimon Westphahl proposed zuul/zuul master: Fix timestamp race occuring on fast systems  https://review.opendev.org/68093708:04
openstackgerritSimon Westphahl proposed zuul/zuul master: Fix timestamp race occuring on fast systems  https://review.opendev.org/68093708:06
*** panda has quit IRC08:09
*** panda has joined #zuul08:11
openstackgerritIan Wienand proposed zuul/zuul-jobs master: Add a netconsole role  https://review.opendev.org/68090108:14
openstackgerritSimon Westphahl proposed zuul/zuul master: Fix timestamp race occurring on fast systems  https://review.opendev.org/68093708:59
*** arxcruz_pto is now known as arxcruz09:27
*** shachar has quit IRC09:53
*** snapiri has joined #zuul09:53
*** spsurya has joined #zuul10:21
*** hashar has joined #zuul10:25
*** panda is now known as panda|rover10:42
*** bjackman_ has joined #zuul10:46
*** bjackman has quit IRC10:48
flaper87just to confirm, all the zuul container images are the same except for their CMD, right?10:51
*** noorul has joined #zuul10:53
openstackgerritSorin Sbarnea proposed zuul/zuul-jobs master: add-build-sshkey: add centos/rhel-8 support  https://review.opendev.org/67409210:54
openstackgerritSorin Sbarnea proposed zuul/zuul-jobs master: add-build-sshkey: add centos/rhel-8 support  https://review.opendev.org/67409210:54
noorulHi10:55
noorulDoes one need to sign CLA for contributing to Zuul project?10:55
*** shachar has joined #zuul11:02
*** snapiri has quit IRC11:03
*** sshnaidm|ruck is now known as sshnaidm|afk11:15
zbri was trying to investigate why zuul console does not wrap long lines and I made an interesting discovery: we have a table inside a pre element. AFAIK that was illegal in HTML.11:19
zbri found a less ideal trick to prevent the horizonal scroll from appearing, adding overflow-x: hidden; fro html block.11:25
*** jpena is now known as jpena|lunch11:35
*** shachar has quit IRC11:48
*** bjackman_ has quit IRC11:49
*** snapiri has joined #zuul12:02
*** noorul has quit IRC12:02
*** rlandy has joined #zuul12:03
*** rfolco has joined #zuul12:06
*** gtema has joined #zuul12:23
*** jpena|lunch is now known as jpena12:31
*** sshnaidm|afk is now known as sshnaidm|ruck12:32
*** saneax has quit IRC12:40
*** saneax has joined #zuul12:41
*** saneax has quit IRC12:51
*** saneax has joined #zuul12:52
fungiif noorul returns or looks at the channel log, there is no cla enforcement configured for zuul's repositories in gerrit13:14
*** gtema has quit IRC13:21
Shrewsfungi: how did your property do?13:23
*** Miouge has joined #zuul13:29
Shrewsflaper87: that would appear to be the case, except the zuul-executor has data in /usr/local/lib/zuul that the others may not, based on https://opendev.org/zuul/zuul/src/branch/master/Dockerfile#L4713:31
*** jangutter_ has joined #zuul13:34
*** jangutter has quit IRC13:35
corvusmnaser: i'm confused, what is https://github.com/vexxhost/nodepool-provider ?13:37
mnaserwow, dont commit code when you're tire,d that is meant to be nodepool-operator.13:38
mnasercorvus: it is a (wip) kubernetes nodepool-operator that is much more low level and granular (rather than "get me a nodepool")13:38
mnaseri.e. think more roles rather than a playbook13:39
corvusmnaser: there is an effort in progress to develop a zuul and nodepool operator -- it is intended to support nodepool alone too -- is there a reason that wouldn't work for you?13:39
mnasercorvus: the few things that seemed to be different was that the zuul and nodepool operators spec seems to imply its a "one resource to rule them all"13:40
mnaseri.e. it does things like deploy postgres/mysql, etc13:40
corvusmnaser: no, that's optional13:40
mnaserit seemed pretty hard-wired in from what i saw in the playbooks13:41
corvusmnaser: did you read the spec?13:41
mnaseri did go over it, it didn't seem to be encouraging of things like creating a resource called "ZuulTenant" etc13:41
*** bjackman_ has joined #zuul13:41
mnasermaybe i misinterpreted things13:41
corvusmnaser: okay, let's take things one at a time13:41
corvusmnaser: here's the section on external deps: https://zuul-ci.org/docs/zuul/developer/specs/kubernetes-operator.html#external-dependencies13:42
corvusmnaser: there should be a config override setting to allow a deployer to say “I already have one of these that’s located at Location, please don’t create one.”13:42
corvuser that was a quote13:42
corvusso that's the spec saying that we're not going to require that the operator control your rdbms, etc.  you can provide it13:43
corvusmnaser: regarding zuultenant -- that's correct, we absolutely don't want the operator to require you to create a zuultenant crd.  there's a really good reason for this which we discussed while developing the spec13:43
corvusthe tenant config is already a yaml file13:43
mnaserright, but what if you wanted to expose that ZuulTenant or ZuulProject resource so that certain specific users can add/remove projects without having a single owner of that tenant yaml config file?13:44
corvusit's not useful to *require* users of the zuul operator to write a *different* (k8s) form of yaml, which we would then have to document, merely to have that transformed into the zuul version13:44
openstackgerritTristan Cacqueray proposed zuul/zuul-jobs master: Add prepare-workspace-openshift role  https://review.opendev.org/63140213:45
corvusmnaser: i could totally see building something like that on top of the operator13:45
mnaserso zuul-...lifecycle..-operator or something along the lines?13:45
mnaser(im just throwing a name out there)13:45
corvusyeah (or heck, maybe even build it in to the operator as an optional thing?)  --  the main thing is that there is no one right way to build a tenant.yaml file -- it sounds like you want to do it using k8s primitives and access control -- other folks wouldn't want to expose k8s access to the project "owners" and might want to have their own management app write out the yaml, or use code review, etc13:47
corvusif we focus on making the zuul operator a good operator for the zuul application as it is, then we've got a good platform to build on top of13:47
corvusnow, the thing about the current source code in the zuul-operator repo is that it is an initial POC from tristan that was developed before the spec.  basically, it got us to the point where we could discuss things in the spec, and what we came up is different.  so the current work effort there is going to be to update the code in the operator repo to match the spec13:49
mnaseri thought the order was spec => zuul/zuul-operator13:50
mnaserwhich explains a bit of my confusion and the "well this doesn't seem to add up, the code says otherwise"13:50
corvuswe had an intern working on that, but that fell through.  SpamapS and pabelanger were interested on friday in contributing.  if you can help out too, we could probably get something going pretty quickly13:50
corvusideally, yes13:50
tristanCcorvus: mnaser: we also prototyped a sf-operator that setup a gerrit and inject the configuration to zuul: https://softwarefactory-project.io/cgit/software-factory/sf-operator/tree/ansible/roles/deploy_zuul/tasks/main.yaml13:50
mnaseri can put a significant amount of time working on it to be honest right now13:50
mnaserpersonally, i have really enjoyed working with the controller-runtime in golang because it gives a ton more flexibility13:51
mnaserlike watching other events (i.e. services) and triggering non-owners for reconcile (i.e. watching for non-owned services autoscale events)13:51
mnaseri.. dunno how much of that power we can get with the ansible stuff13:52
corvusmnaser: how about i set up a quick storyboard with what i think are the big work items on it and we can take a look13:52
fungiShrews: very minor wind damage and limited runoff flooding in the downstairs, as best we can tell. all in all a non-event, stuff i can take care of myself for the most part13:52
*** bjackman_ has quit IRC13:52
corvusfungi: \o/13:52
mnasercorvus: id be happy to start picking them up.  is the decision to use the ansible-variant of the operator an already decided one?13:53
fungifinally got home late last night and it's torrential thunderstorms all today but hopefully tomorrow i can check more closely and take all the plywood back down off the windows13:53
corvusmnaser: there are a couple advantages of ansible: 1 -- we have a lot of deployment tooling using ansible we can repurpose into the operator -- 2 tristanC has a bunch of ansible stuff in the current tree that probably just needs minor rearranging to work13:53
AJaeger_fungi: glad to hear!13:54
mnasersomething that i found rather tricky is how to watch another resource that you don't own for changes (i.e. if you specify `serviceName`) .. and im not sure how this can be done via ansible13:54
*** AJaeger_ is now known as AJaeger13:54
tristanCcorvus: though mnaser is correct, golang based operator seems to be much more flexible for complex resources13:54
mnaserwhile im generally happy to use ansible13:55
AJaegerzuul-maint, want to switch tox-docs job to fetch-sphinx-tarball? See https://review.opendev.org/67643013:56
mnaseri cant imagine writing stuff to do something like this: https://github.com/vexxhost/nodepool-operator/blob/master/pkg/controller/nodepool/nodepool_controller.go#L45-L57 + https://github.com/vexxhost/nodepool-operator/blob/master/pkg/controller/nodepool/nodepool_controller.go#L91 + https://github.com/vexxhost/nodepool-operator/blob/master/pkg/controller/nodepool/nodepool_controller.go#L136-L169 with ansible13:56
corvusi'm personally not opposed to changing it if we need to use the golang operator, i'd love to try to use the ansible operator if we can for now -- we seemed to think it was a pretty good idea at the time, and we have a lot of work already done on it.  moreover, maybe we can make the ansible operator better?  would there be a way to extend it to support the sort of thing you're talking about?13:56
mnaseri think the hard thing with it is ansible isn't too good at lookups/logic13:57
mnaserso while it can work, it will be a lot of register: + when:13:57
mnaserand im not sure if we can do mapped watches with the ansible operator-sdk13:57
mnaserwhere you can listen to $some_other_event and transform it and reconcile another resource13:58
mnaseryeah no it just seems like a straight "when this change run that"13:59
mnaserwe seem to miss out on the ability of having a well defined schema too, golang one allows us to have openapi defined schema so invalid requests can be validated at the api layer14:00
corvusmnaser: is this the sort of thing we would need to do for what's covered in the spec, or is it a more advanced followup?14:00
corvus(er, that last was before the openapi thing, that i grok)14:00
pabelangersorry, meeting. yes, i was interested in help with zuul-operator, I may be able to find some time to work on it.14:01
pabelangerI did like the idea of using ansible operator, given how much tooling we have with ansible14:02
pabelangerbut, TBH, i am not sure the differences between that and go based14:02
*** bolg has quit IRC14:03
mnaseri think going over the spec, we will struggle with watching non-owned resources for changes if we do this14:03
corvuswhat's a non-owned resource we might watch?14:03
mnasersecrets and endpoints14:03
mnaserif you change a secret, zuul should change the config.  if you scale up your zookeeper cluster (or the ip changes), zuul should update the zookeeper list14:04
mnaserthose are two off the top of my head14:04
mnaserif we don't watch them, then we need to somehow adopt zuul itself to watch them but i dont know if we want to start carrying k8s constructs there14:04
mnaserfor services, you can get away by using the cluster dns for some (like db), but for a headless service like zookeeper, you will ned to always have the ip of all nodes in there14:05
fungiby "secret" i assume you're talking about credentials zuul's services are using to connect to things like zk and rdbms, not talking about job secrets (which are in zuul-managed got repos and update automatically)14:06
tristanCi also noticed the ansible based operator takes a lot of time to go over all the task each time, resulting in auto-scaling to not kick fast enough for merge task14:06
corvusthat sounds pretty basic -- the ansible operator can't watch arbitrary resources?14:06
mnaserfungi: correct, im talking about the kubernetes 'secret' resource14:06
fungimakes sense then14:06
corvusand we're planning on building zuul.conf from k8s secrets (you'd put your gerrit password in there)14:07
mnaseri'm positive that it can, but the issue becomes is that now you start to have fairly complex code, because the code that watches the secret will trigger a playbook that a secret was updated14:08
mnaserbut then how does that trigger a 'zuul' updated event after, not sure the ansible one can do that14:08
mnaserand then if you say, well lets just run the zuul playbook everytime we get a secret change.. but the issue is you cant do that because your playbooks assume that the vars are all for `kind` `Zuul`14:09
mnaserand instead they just got vars for a secret, confusing it.  what you'd need to do is listen to a secret change and re-enqueue a reconciliation for zuul (that has the secretName set there)14:10
mnaserits quite the task, even in go.. i cant imagine it'll be easier in ansible, but i'll shush now with my wall of text :)14:10
tristanCmnaser: well, you can short-circuit the watches logic and include the zuul-deploy role from the secret watch14:11
mnasertristanC: but the zuul-deploy role will be called with the "secret" info, it won't magically contain the cluster that maps to it :)14:13
mnaserits tricky logic14:13
openstackgerritMerged zuul/nodepool master: Fix Kubernetes driver documentation  https://review.opendev.org/68087914:13
openstackgerritMerged zuul/nodepool master: Add extra spacing to avoid monospace rendering  https://review.opendev.org/68088014:13
openstackgerritMerged zuul/nodepool master: Fix chroot type  https://review.opendev.org/68088114:13
*** jamesmcarthur has joined #zuul14:15
corvusmnaser: okay, i'm not familiar enough with either operator to help out on a technical level, so my affinity for the ansible operator is based only on assuming that we made a good initial decision, that the ansible operator folks would welcome improvements, and that with tristanC's poc, we have a chunk of code written to help get us to the initial spec.  if that's wrong, i'm not opposed to changing it.  maybe14:16
corvusyou can write a patch to the spec to switch, and include the justifications?  we can ask tristanC, SpamapS, pabelanger, tobiash to look at that.  mordred would be nice, but he's still afk this week.14:16
mnasersure, i can do that.14:16
corvusi'll get that storyboard thing going14:16
mnasermeanwhile a fun ops story14:17
mnasernew ceph releases have a setting of osd_memory_target to manage their cache that defaults to 4gb14:17
mnaserbut if they detect that they are running inside a cgroup, they use `osd_memory_target_cgroup_limit_ratio` which defaults to 0.814:18
mnasercat /sys/fs/cgroup/memory/system.slice/system-ceph\\x2dosd.slice/memory.limit_in_bytes => 922337203685477580714:18
mnaserceph daemon osd.222 config get osd_memory_target => 737869762948382105614:18
corvusthat is > 4gb14:18
mnaserwell if it detects that its inside a cgroup14:18
mnaserit does ~dynamic~ calculation14:19
mnaserso i guess the math all went wrong and i ended up with ... 7378697629.483821 GB memory limit, and i wondered why my OSDs were running awy with memory :)14:19
corvusseems like maybe a min(4gb, 0.8*x) would be nice14:19
corvusyeah, i bet they ran really fast until they didn't :)14:20
mnaserand the fix https://github.com/ceph/ceph/pull/2958114:23
corvusmnaser: can you look at the paragraph "The Operator will shard" in the spec -- under ansible, we figured the best way to do that would be a utility pod (ie, when the nodepool configmap changes, the operator runs the utility pod which has a python script that parses the nodepool.yaml and shards it and creates a bunch of new configmaps) -- if we switched to golang, do you think that would be internal operator14:28
corvuslogic?14:28
*** hashar has quit IRC14:28
mnasercorvus: yes, we could probably build out the config via yaml and write out the configmaps there and then trigger a redeploy (avoiding that utility pod entirely)14:30
corvusmnaser: thanks.  i'll factor that into my storyboard list -- and you might want to revise that in your spec patch14:31
*** saneax has quit IRC14:41
*** saneax has joined #zuul14:41
pabelangertobiash: do you think it is possible for github driver to support more then 1 github app, as the user to github?  The issue is, today we have a single github app, with read / write permissions for commit. This is fine, if zuul is going to merge code, but in some cases (say ansible/ansible) we don't actually gate the code, we only do thirdparty CI (report results back and use statuses API).14:42
pabelangerbasically, we want to use a 2nd github app to drop the commit permissions needed on github app14:42
pabelangerbut, don't want to stand up another zuul14:42
tobiashpabelanger: you still can configure two connections14:43
tobiashWit different app settings14:43
tristanCiirc we did test successfully multiple apps on a single zuul14:43
pabelangerHmm, let me think14:43
tobiashyes, that should just work14:44
pabelangercan 2 connections, has the same canonical_hostname? I guess it could14:44
pabelangerI guess, if we create 2 tenants, it would be okay14:45
pabelangertenant A, would have read / write github.com, tenant B, read only github.com14:45
pabelangeras long as both connections we not on the same tenant, should be fine14:46
pabelangertobiash: tristanC: thanks, let me test that out14:47
clarkbconnections are global, does tenancy matter here?14:49
openstackgerritAndy Ladjadj proposed zuul/zuul master: Fix: prevent usage of hashi_vault  https://review.opendev.org/68104114:50
*** themroc has quit IRC14:50
corvusmnaser, tristanC, pabelanger, SpamapS: okay i started a storyboard here: https://storyboard.openstack.org/#!/story/2006516  --  note that each task has a note (which you have to click the little triangle to see) with a little more detail.  we may be able to split up the "implement nodepool" and "implement zuul" tasks a bit, but probably not until someone starts working on them to figure out how that might14:51
corvuswork.  the rest of the tasks should be pretty reasonably non-overlapping.14:51
openstackgerritAndy Ladjadj proposed zuul/zuul master: Fix: prevent usage of hashi_vault  https://review.opendev.org/68104114:52
openstackgerritAndy Ladjadj proposed zuul/zuul master: Fix: prevent usage of hashi_vault  https://review.opendev.org/68104114:53
*** jangutter has joined #zuul14:54
pabelangerclarkb: I think it means, if 2 github connections, a project could not be in both. So today I have ansible/ansible in read / write connection, I would need to create 2nd read-only connection and move ansible/ansible into it14:54
pabelangerbut, I cam guessing here until I try14:54
pabelangeram*14:54
*** jangutter_ has quit IRC14:55
mnasercorvus: ok cool, ill have a look shortly and see what i can do14:55
clarkbpabelanger: I see, I'm not sure if putting them in different tenants will fix that14:56
clarkbpabelanger: note you'll need different connections names which means different pipeline config too14:56
pabelangeryah, different pipelines should be okay today, we have check (which we merge) and third-party-check (report statuses) pipelines now15:00
*** hashar has joined #zuul15:01
AJaegerzuul-maint, could you review https://review.opendev.org/674334, please?15:10
AJaegerpabelanger: do we still need https://review.opendev.org/583350 and https://review.opendev.org/583346 - or is it time to abandon?15:10
openstackgerritFabien Boucher proposed zuul/zuul master: Pagure - handle Pull Request tags (labels) metadata  https://review.opendev.org/68105015:34
pabelangerAJaeger: done15:46
AJaegerthanks15:46
*** rlandy is now known as rlandy|brb15:52
*** chandankumar is now known as raukadah15:53
SpamapScorvus: neat!15:53
SpamapScorvus: should have some spare time next week to pick a few tasks up.15:53
*** igordc has joined #zuul15:54
mnaserSpamapS: how do you feel about the moving to go based operator part of things?15:56
*** mattw4 has joined #zuul15:58
*** sshnaidm|ruck is now known as sshnaidm|afk16:00
*** mattw4 has quit IRC16:01
*** mattw4 has joined #zuul16:01
*** mattw4 has quit IRC16:05
*** mattw4 has joined #zuul16:06
*** igordc has quit IRC16:09
*** mattw4 has quit IRC16:10
openstackgerritMohammed Naser proposed zuul/zuul master: spec: use operator-sdk for kubernetes operator  https://review.opendev.org/68105816:16
mnaseri put that up for discussion16:17
mnaserin the meantime i'll work with what we have and i can rebuilt it (relatively easily) in golang if we decide to.  i'd just like to have the operator up as quickly as possible :)16:17
*** bogdando has joined #zuul16:19
bogdandohi. I'm trying to make zuul executor filling in a non-empty hosts.primary.nodepool.private_ipv4 value. Not sure how to debug how it gets null... Where it comes from when running a job?16:21
bogdandopabelanger: ^^ perchance?16:21
clarkbbogdando: it comes from the provider's returned info16:22
clarkbthe openstack driver should set private to the public value if private is null16:22
bogdandoclarkb: thanks16:23
bogdandoin inventory.yaml is creates dynamically for jobs in /var/lib/zuul/builds/xxxxx/, I have public_ipv4 set though16:24
bogdandoclarkb: I'm using static-libvirt16:25
bogdandomultinode...16:25
clarkbbogdando: static-libvirt is your nodepool provider?16:25
bogdandonot sure where to start fixing that info that provider returns...16:25
bogdandoclarkb: yea16:25
clarkbI don't see that in nodepool16:25
bogdandorunning it locally16:26
clarkbso I can't help you with its behavior16:26
*** spsurya has quit IRC16:27
bogdandoclarkb: it's here https://review.rdoproject.org/r/gitweb?p=rdo-infra/ansible-role-tripleo-ci-reproducer.git;a=blob;f=templates/nodepool-libvirt.yaml.j2;h=3b64df83aca33303845d039dabbd99b03db20ece;hb=HEAD :)16:29
bogdandotrying to compare that beast to nodepool-openstack.yaml.j2 now...16:29
bogdandosorry for bothering with custom providers... :)16:29
Shrewsbogdando: what is the error you are getting at the zuul-executor? static driver should work fine (the IP or hostname used should come from pools.nodes.name (https://zuul-ci.org/docs/nodepool/configuration.html#attr-providers.[static].pools.nodes.name)16:31
bogdandowhere does the code live for openstack provider?16:31
clarkbShrews: this isn't the static provider, it is some libvirt-static provider16:31
bogdandoit uses static driver16:31
clarkbShrews: I think the problem is they don't set the private ip to == the public ip if there is no private ip16:31
Shrewsdriver: static16:32
Shrewsis in the config, so i'm more confused16:32
clarkbI see so libvirt before was just niose?16:32
openstackgerritMohammed Naser proposed zuul/zuul-operator master: Create zookeeper operator  https://review.opendev.org/67645816:32
bogdandoa kind of16:32
Shrewsclarkb: perhaps they are using libvirt for the "static" nodes, which is fine.16:32
Shrewsi've done that on my local machine16:33
bogdandoShrews: ++16:33
bogdandotrying the same path16:33
Shrewsbogdando: perhaps it's best to start at the beginning and show us the executor error16:33
clarkbbogdando: Shrews in that case I think the problem here is static nodes have a single IP address16:33
clarkbbut openstack nodes can have ~316:33
bogdandoclarkb: indeed the eth1 is down in VMs16:33
bogdandosubnodes16:34
clarkbin that case you probably want to update the jobs tohandle that case16:34
bogdandoclarkb: thanks I'll try that16:35
zbrtristanC: pabelanger clarkb: i removed molecule from https://review.opendev.org/#/c/674092/ - ok now?16:40
openstackgerritMohammed Naser proposed zuul/zuul-operator master: Create zookeeper operator  https://review.opendev.org/67645816:40
openstackgerritMohammed Naser proposed zuul/zuul-operator master: Deploy Zuul cluster using operator  https://review.opendev.org/68106516:40
*** rlandy|brb is now known as rlandy16:41
*** hashar has quit IRC16:45
openstackgerritMerged zuul/zuul-jobs master: Switch to fetch-sphinx-tarball for tox-docs  https://review.opendev.org/67643016:46
*** jpena is now known as jpena|off16:47
*** mattw4 has joined #zuul16:56
*** bogdando has quit IRC17:07
*** saneax has quit IRC17:18
*** jamesmcarthur has quit IRC17:28
*** mhu has quit IRC17:33
SpamapSmnaser: I'm fine with Go, Ansible, Python, just want something we can all work on.17:33
pabelangermnaser: SpamapS: corvus: I am happy to move to what others would like to do.  It does seem Go is what majority is using, however I also see if Ansible operator is used and way to help that community grow more too17:36
*** jangutter has quit IRC17:38
fungiup side to ansible/python there is no need to precompile the source to get something useful17:41
SpamapSAgreed. Mitigating it is that typically these go-based operators are pretty tiny and communities just maintain dockerhub images that can be mirrored pulled infrequently.17:43
SpamapSmirrored/pulled17:43
SpamapSPersonally I think it will challenge our community involvement a lot. If we *can* get it done w/ Ansible, we probably should.17:44
pabelangerI did share the link downstream with some ansible folks, my hope somebody more familiar on ansible-operator side to comment17:44
SpamapSI was just looking at it.. seems fine.17:46
mnaserfungi: when using golang, as long as you have a connection to a cluster active, you can just run operator-sdk up local --namespace=foo17:57
mnaserso while it involves compiling, you dont have to build the image/etc to get it up *locally*17:57
mnaserhaving said that, there is other options like kopf which allows building operators using python that might be interesting17:57
mnaserbut im not sure of how much that is adopted overall17:58
pabelangermnaser: I think your comment about disadvantages rings the most for me, I don't have golang XP, but am good at ansible. However, that said, I also am not good at k8s, so need to learn that too.18:00
fungii'm a fan of using the right too for the job, so if that means applying a programming language i'm not familiar with yet, i'm sure i'll muddle through18:01
pabelangerso, think I would get up to speed faster on ansible-operator but doesn't mean I can't use go18:01
pabelangerfungi: yah18:01
SpamapSHrm.. one thing that kind of sucks about using Ansible to build these objects is that it's not super great about conditionally adding/subtracting things from the container spec.18:08
SpamapSI can work around that with envvars in a configmap for the thing I'm currently hitting (conditionally adding AWS creds if they're passed in), but it may not work well for other things.18:09
* SpamapS decided to just plow through with an unexpected hour of free time today.. trying nodepool-launcher now.18:10
tristanCSpamapS: though you can use Python with a custom task/library to perform data mutation18:19
SpamapStristanC: indeed!18:25
SpamapSI'm 90% ready to change my vote to -1 for golang.18:25
SpamapSThis thing is pretty good.18:25
SpamapSFor all of us, ansibling is pretty natural.18:26
tristanCSpamapS: what both me with Ansible is that roles lack interfaces, which makes it difficult to combine things. Using a programming language such as go would give us types, which is great from a devel point of view :-)18:26
tristanCbother*18:26
SpamapSYeah the structure for keeping things consistent is difficult in Ansible.18:26
SpamapSBut, I don't think we have that much complexity, it's mostly just plumbing configs from the right place to the right place.18:27
SpamapSAnd the benefit of allowing anybody in the Zuul world who knows Ansible to write Ansible to deploy Zuul.. seems like a big win.18:28
tristanCon the other hand, golang or ansible is an implementation detail for the user, you shouldn't have to know how an operator is written18:29
tristanCwith the operator-lifecycle, you can just click on a dashboard to deploy an operator18:30
SpamapSYou don't need to know, until you do. :)18:33
SpamapSZuul has quite a few user/operators. I am one of them. It keeps the pool of folks who want to contribute large to use Ansible.18:34
SpamapS(I can totally golang.. but I'd rather not, and it would add friction for me. I imagine there are others less versed in Golang that would be completely unable to help.)18:35
tristanCi think we should stick to ansible for the current spec, e.g. takes a zuulYamlConfig and nodepoolYamlConfig and start the services18:36
*** jamesmcarthur has joined #zuul18:37
SpamapSya, TBH I'm almost done w/ NodepoolLauncher in that mode. :)18:37
tristanCbut if we want to also manage more fine grained resources like ZuulTenant or NodepoolProviders, e.g. with custom logic/rbac, then golang benefit may outweigh ansible18:38
SpamapSI don't want that.18:40
SpamapSNodepool and Zuul have their own configurations and I don't think we need to re-generate them in an operator.18:40
SpamapSJust bolt the user's configs onto the stuff the operator needs to know.18:41
tristanCSpamapS: if k8s api can enable rbac on those resources, then it may be interesting to let an operator generate the config18:42
SpamapSNot sure that's what the k8s API is for, but ok.18:43
SpamapSI can't say it's wrong either. :)18:43
SpamapSKinda feels like side-stepping the real problem which is that these configs are too static.18:45
SpamapSNot all Zuul users will be in k8s.18:45
fungiyeah, if that configuration were managed dynamically via a zuul api, then the problem could be solved more generally18:51
fungi(like the configs-in-zk conversation over the weekend)18:51
fungipeople could presumably still use kubernetes as a frontend to that, and just have it talk to the zuul api18:52
SpamapSya, I dislike putting that cart before that horse.18:53
SpamapSBut I also wonder if this is really all that important.18:53
SpamapSI know we have some use cases for dynamic tenant configuration. But nodepool pools.. seems less-so.18:53
fungiit seemed to be important enough to mnaser to want to write a separate kubernetes operator on his own18:53
SpamapSFor pools? interesting.18:54
fungioh, the nodepool pools. i was referring to the tenant configs18:54
SpamapSYeah for tenant configs, I think any shop bigger than 5-6 people will have repos coming and going all the time and a dynamic tenant config service makes a ton of sense.18:55
SpamapSGitOps is nice when you have it.. but not everybody will. :-P18:57
SpamapSone thing I can't seem to find is how the ansible operators handle deletion of the CR19:03
clarkbbringing the "how can zuul handle this better" discussion to here. I've discovered that if the root disk of a test node fills up then next ansible playbook run exits 4 and zuul sees that as a network failure19:05
clarkbI believe this is happening because ansible wants to be able to write data to /tmp on the remote host but cannot as the disk is full19:05
clarkbhowever the host is still up and accessible and for debugging purposes it would be nice to be able to get some data (even if locked up in the exceutor log)19:05
clarkbmaybe we can have zuul attempt to execute a canned raw module playbook for checking ifconfig and df output if it gets an rc 4?19:06
*** hashar has joined #zuul19:06
pabelangerclarkb: could we do that in a cleanup job?19:07
clarkbpabelanger: I don't think so because we need it to run each time a job is retried19:07
clarkbcleanup jobs run for the entire buildset iirc19:08
tristanCSpamapS: not sure what you meant by deletiong of the CR, but each resources should have an owner, and when you delete the top resources, e.g. Nodepool, then k8s should removes everything attached to it19:09
corvusclarkb: cleanup playbooks are job-level (i don't think we have any buildset-level playbooks)19:12
clarkboh playbook sorry I though pabelanger meant a job that depended on the others in a buildset19:13
clarkbso ya we could add a cleanup playbook to the base job that tries to use raw module to grab basic essentials maybe19:13
corvus++19:13
pabelangeryah, sorry. that is what I meant, and clean up playbook to base19:14
openstackgerritSorin Sbarnea proposed zuul/zuul-jobs master: Improve job and node information banner  https://review.opendev.org/67797119:33
openstackgerritSorin Sbarnea proposed zuul/zuul-jobs master: Improve job and node information banner  https://review.opendev.org/67797119:34
SpamapStristanC: how does k8s know that Nodepool owns that deployment though?19:36
SpamapStristanC: in the ansible operator .. it just has a role that creates. But there's no annotation in there that I can see that ties it to anything else.19:36
SpamapSMaybe something in envvars or ansible-runner that magically adds things to k8s calls?19:36
tristanCSpamapS: yeah maybe, don't remember how it happen19:37
tristanCSpamapS: the ansible sdk does it, from the source: ""The ansible operator will inject owner references unless this flag is false"  the flag being inject-owner-ref19:39
clarkbdoes cleanup-run happen after run playbook but before post?19:39
tristanCclarkb: iirc after post19:40
tristanCclarkb: right before the ssh-agent is stopped19:41
SpamapStristanC:thanks thats what I was looking for. Neat.19:41
tristanCSpamapS: when testing locally, i used a state|default('present') variable, and to cleanup, ran the playbook with -e state=absent19:42
SpamapSOne good reason to have config object kinds would be to be able to say "If there aren't any NodepoolImage resource, don't bother running nodepool-builder"19:42
SpamapStristanC: yeah that makes sense.19:42
clarkbtristanC: thanks I won't worry about logging it on the host then (whcih may be difficult with no disks pace)19:44
tristanCjust found that etcd operator written with ansible, it seems to manage ha operation easily, usinc a couple of python plugin, e.g.: https://github.com/openshift/etcd-ha-operator/blob/master/roles/reconcile/lookup_plugins/etcd_member.py19:48
tristanCand using tricky when conditions such as: https://github.com/openshift/etcd-ha-operator/blob/master/roles/reconcile/tasks/reconcile_pods.yaml#L128-L13019:51
*** igordc has joined #zuul20:00
*** michael-beaver has joined #zuul20:04
*** hashar has quit IRC20:48
*** jamesmcarthur has quit IRC21:29
*** snapiri has quit IRC21:41
*** armstrongs has joined #zuul21:46
openstackgerritJames E. Blair proposed zuul/zuul master: WIP: Add support for the Gerrit checks plugin  https://review.opendev.org/68077821:49
openstackgerritJames E. Blair proposed zuul/zuul master: WIP: Add enqueue reporter action  https://review.opendev.org/68113221:49
*** armstrongs has quit IRC21:56
*** EmilienM is now known as little_script22:39
*** little_script is now known as EmilienM22:42
*** rlandy is now known as rlandy|bbl22:50
*** threestrands has joined #zuul23:14

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