Hi,

Here's the summary of the IRC meeting.

---

COMMUNITY MEETING

Place: #openvpn-meeting on irc.freenode.net
Date: Thu 8th October 2020
Time: 20:00 CEST (18:00 UTC)

Planned meeting topics for this meeting were here:

<https://community.openvpn.net/openvpn/wiki/Topics-2020-10-08>

Your local meeting time is easy to check from services such as

<http://www.timeanddate.com/worldclock>

SUMMARY

cron2, dazo, mattock and yanv participated in this meeting.

---

Daynix Computing LTD has developed automation framework (hck-ci) for
running Windows HCK/HLK certification tests with sponsoring for Red Hat
to get virtio-win HCK/HLK tested:

<https://github.com/hck-ci>

Daynix is offering to let the OpenVPN project use their hck-ci
installation to test tap-windows6. This would allow them to generalize
their CI to work with drivers other than virtio-win as well and OpenVPN
project would benefit from getting proper Windows driver testing.
Potentially OpenVPN project could run its own test setup, but there's
not much need for it.

What we would have to do is create the base Windows images that will be
used in the test runs:

<https://github.com/HCK-CI/HLK-Setup-Scripts>

Some older documentation is here:

<https://github.com/daynix/VirtHCK>

The provisioning of the base Windows images could use some improvement.
At the moment the base images "go sour" when the evaluation licenses
expire. Building them from scratch would solve this problem.

Mattock will take a closer look at this next week.

The Daynix guys will start hanging out at #openvpn-devel to help us out
with any issues that may arise.

--

Noted that the https://openvpn.net website can't be modified until
Monday or Tuesday as the Wordpress instances are being upgraded. This
postpones the next 2.5 release slightly.

--

Full chatlog attached
(21:02:20) mattock: hello
(21:02:49) mattock: meeting time
(21:02:53) mattock: anyone else? :)
(21:03:20) yanv: hello
(21:04:34) mattock: hi!
(21:08:53) yanv: I was invited by Samuli Sepp�nen to discuss possibility for 
automation of HLK\HCK tests of the OpenVPN drivers. We developed automation 
framework for the certification https://github.com/hck-ci and run it virtio-win 
drivers: https://github.com/virtio-win/kvm-guest-drivers-windows/pull/502.
(21:08:53) yanv: I wanted to see if it can be useful for your project as well.
(21:08:54) vpnHelper: Title: HCK-CI · GitHub (at github.com)
(21:09:30) mattock: that me
(21:09:41) yanv: :)
(21:09:51) mattock: it is surprisingly quiet today
(21:10:07) mattock: anyhow, I will write a summary so even if nobody else pops 
in here they can see all this
(21:10:39) mattock: yanv: what kind of test rigs do you have?
(21:10:42) mattock: all virtual?
(21:10:50) yanv: Yes
(21:10:56) mattock: ok
(21:11:04) yanv: We are working to enable it to run on the physical machines as 
well
(21:11:20) yanv: in general the part that automates the test runs can do it 
already today
(21:11:20) mattock: in our case it seemed necessary to use real hardware to be 
able to pass all the tests
(21:11:46) mattock: but we're not at this point really interested in HLK except 
for actual (regression) test purposes
(21:11:55) yanv: but we don't have the part that will re-provision the machines 
before the test execution (it is better to run on the clean machines and not 
ones that executed tests before)
(21:12:26) mattock: on what are the test VMs running on? VMWare, EC2, Azure?
(21:12:27) Pippin_ [Pippin_@gateway/vpn/protonvpn/pippin/x-75792076] è entrato 
nella stanza.
(21:12:35) yanv: QEMU\KVM
(21:12:41) mattock: ok, that should work as well
(21:12:45) yanv: Because we developed in to test virtio drivers
(21:12:59) mattock: is there any provisioning code in place?
(21:13:03) yanv: But then we changed it to be genreic
(21:13:04) mattock: or just manually installed KVM hosts
(21:13:14) mattock: +1 for the generic part :)
(21:13:18) yanv: The hosts are manual installed
(21:13:44) mattock: I've done my share of Windows automation with Puppet and 
Powershell DSC
(21:13:55) mattock: I actually do have some Puppet code that sets up HLK nodes
(21:14:05) yanv: also the initial preparation of the images is out of the scope 
now (the installation of the test kit).
(21:14:31) mattock: here: https://github.com/Puppet-Finland/puppet-hlk
(21:14:33) vpnHelper: Title: GitHub - Puppet-Finland/puppet-hlk: A Puppet 
module for setting up Windows Hardware Lab Kit (HLK) controllers and clients 
(at github.com)
(21:14:51) yanv: +1 > here: https://github.com/Puppet-Finland/puppet-hlk
(21:14:52) vpnHelper: Title: GitHub - Puppet-Finland/puppet-hlk: A Puppet 
module for setting up Windows Hardware Lab Kit (HLK) controllers and clients 
(at github.com)
(21:15:12) yanv: I saw it, can be a great idea to integrate it together.
(21:15:42) mattock: yeah, I think reprovisioning the test nodes makes perfect 
sense
(21:15:46) mattock: HLK beats them to death
(21:16:03) yanv: In any case, we use snapshots during the tests. So there are 
definitions of the platforms (which OS, which Kit to use, etc), then there is 
device under test definitions.
(21:16:41) mattock: ok
(21:16:53) yanv: the automation deployed the drivers to the VMs and configures 
the HLK or HCK studio machine pool and then test project.
(21:17:13) yanv: It execute tests either by MS playlist or by the definitions 
of white\black lists of the tests
(21:17:46) mattock: how does it report back the results?
(21:19:10) yanv: there is monitoring of the runs (so you get intermediate 
results for the running tests), we also can apply filters at the end of the 
test runs. Later the results are extracted (hlkx or hckx package) and also we 
parse the package to unpack individual result (can be useful for the people 
that don't have specific studio version installed , but want to see the results)
(21:19:58) yanv: Example: 
https://www.dropbox.com/sh/rp7fqrlcutcd5dz/AADG-lq2eqFSyDc7qsTtlhoDa?dl=0&lst=
(21:19:59) vpnHelper: Title: Dropbox - 
NetKVM-Win10_1903x64_q35-2020_08_26_03_54_11 - Simplify your life (at 
www.dropbox.com)
(21:20:14) yanv: You can see their results for NDIS miniport test run on 
Windows 10
(21:20:26) mattock: oh that's nice
(21:21:20) mattock: would be useful to us
(21:21:26) yanv: Currently we upload results to DropBox, but plugin for other 
services can be developed
(21:21:36) mattock: I suppose the CI tracks a Git repository and builds on 
every commit?
(21:21:37) yanv: also there is an update of github PR
(21:21:41) yanv: yes
(21:21:56) mattock: it handles queuing of the jobs etc.?
(21:22:03) mattock: jobs = commits to test
(21:22:16) yanv: we have also a definition of what devices to tests depending 
on the directory stricter.
(21:22:35) yanv: the queuing actually handled by Jenkins.
(21:22:42) mattock: ok
(21:22:49) mattock: that's good enough
(21:23:12) mattock: btw. zx2c4 in here is the main Wireguard/Wintun developer
(21:23:24) yanv: so auto_hck executed with command line that specifies 
device\platform\commit hash
(21:23:31) mattock: wintun could probably benefit from the same CI treatment as 
tap-windows6
(21:24:59) yanv: Trigger file example: 
https://github.com/HCK-CI/AutoHCK/blob/master/triggers.yml.example
(21:25:00) vpnHelper: Title: AutoHCK/triggers.yml.example at master · 
HCK-CI/AutoHCK · GitHub (at github.com)
(21:25:03) dazo: hey! sorry!  time flew away
(21:25:08) mattock: hi dazo!
(21:25:21) mattock: good to have you here!
(21:26:58) yanv: hi dazo
(21:27:57) ***dazo catches up on the scrollback
(21:30:32) mattock: yanv: now, we obviously would like tap-windows6 (and 
wintun) to be tested by HCK_CI
(21:30:43) mattock: are there any missing pieces at your end for that?
(21:31:10) mattock: anything we could help you guys with to make this happen?
(21:32:26) yanv: so now there is a certain coupling between device and driver. 
because part of the device info is used to configure the VM that will be the 
test client.
(21:32:36) yanv: this is something we are working now to resolve
(21:33:36) yanv: we did run tests for non-plug and play drivers (filesystem 
mini filters) with our system, but it is not 100% yet
(21:34:16) yanv: another thing is the initial VMs provisioning. it can be 
interested to integrate with the work you did with chef
(21:34:44) mattock: puppet, but yes
(21:34:55) yanv: sorry, my bad... puppet
(21:35:29) mattock: for me it would be fairly straightforward to help out with 
the VM provisioning, to return the favor
(21:36:17) mattock: install the basic HLK client stuff on the node, test 
certificates, all that
(21:37:05) mattock: puppet would probably not be even required, most of it is 
powershell mixed with some powershell dsc
(21:37:07) yanv: actually now we install  test certificates before the run. but 
it works both way.
(21:37:20) mattock: yeah
(21:38:06) mattock: the HLK controller is a long-living instance I suppose?
(21:38:11) mattock: not wiped out on every run
(21:38:12) yanv: and now we have Jenkins that trigger the runs. if you want to 
use something else, some configuration can be required.
(21:38:31) yanv: no, the idea is to run self-contained test setups.
(21:38:43) mattock: ok
(21:38:55) yanv: so that means , if you have powerful enough host, you can run 
several setups in parallel
(21:39:07) mattock: ok, that makes sense
(21:39:37) mattock: so each driver/environment would have its own set of HLK 
controllers and clients
(21:39:41) yanv: so atuo-hck starts "setup" that contains controller machine + 
at least one client (two for network devices)
(21:39:55) yanv: it also configures linux bridge (or ovs)
(21:40:29) yanv: no, the images can be shared
(21:40:45) mattock: ok
(21:40:45) yanv: during actual test run, we will use snapshots
(21:41:36) yanv: 
https://www.dropbox.com/sh/rp7fqrlcutcd5dz/AADG-lq2eqFSyDc7qsTtlhoDa?dl=0&lst=
(21:41:37) vpnHelper: Title: Dropbox - 
NetKVM-Win10_1903x64_q35-2020_08_26_03_54_11 - Simplify your life (at 
www.dropbox.com)
(21:41:38) mattock: so essentially the provisioning of the VMs would create the 
base image which can be snapshotted
(21:41:43) yanv: sorry, wrong link
(21:41:51) yanv: 
https://github.com/HCK-CI/AutoHCK/blob/master/lib/engines/hcktest/platforms.json
(21:41:52) vpnHelper: Title: AutoHCK/platforms.json at master · HCK-CI/AutoHCK 
· GitHub (at github.com)
(21:42:07) yanv: check the sample definition file for the platforms
(21:42:22) yanv: so for each os + test KIT you need to create base images
(21:42:49) yanv: the image names are used by convention of OS + kit type + kit 
version
(21:43:17) yanv: For example:
(21:43:17) yanv:  "name": "Win7x86",
(21:43:17) yanv:     "kit": "HCK",
(21:43:17) yanv:     "st_image": "HCK.qcow2",
(21:43:17) yanv:     "clients": {
(21:43:17) yanv:       "c1": {
(21:43:19) yanv:         "name": "CL1",
(21:43:21) yanv:         "cpus": "2",
(21:43:25) yanv:         "memory": "2G",
(21:43:26) mattock: I start to see why you'd want to automate the  base image 
creation / provisioning
(21:43:27) yanv:         "winrm_port": "4002",
(21:43:29) yanv:         "image": "HCK-C1-Win7x86.qcow2"
(21:43:31) yanv:       },
(21:43:33) yanv:       "c2": {
(21:43:35) yanv:         "name": "CL2",
(21:43:37) yanv:         "cpus": "2",
(21:43:39) yanv:         "memory": "2G",
(21:43:41) yanv:         "winrm_port": "4003",
(21:43:43) yanv:         "image": "HCK-C2-Win7x86.qcow2"
(21:43:45) yanv:       }
(21:43:47) yanv:     }
(21:43:49) yanv:   },
(21:43:50) mattock: you have quite a few platforms covered there
(21:44:31) mattock: does this allow you to get signatures from Microsoft that 
cover all the currently supported Windows versions?
(21:44:32) yanv: Actually once you created the base images you use then 
"forever". The problem is that Win10, is no longer 1 OS :) There are new kits 
releases with new builds
(21:44:44) mattock: yep
(21:44:54) yanv: yes, that was the idea.
(21:45:13) mattock: we never had such grand plans, lack of resources :D
(21:45:36) yanv: the project was supported by Red Hat for virtio-win drivers :)
(21:45:38) mattock: we operated on a false premise ("You need HLK to pass to 
get signatures for Windows Server 2016+")
(21:45:42) mattock: :P
(21:45:56) mattock: I had a hunch this is not a pure volunteer effort :D
(21:45:57) yanv: although they don't use it for certification, but it is used 
for upstream CI
(21:46:40) mattock: anyhow, "we are interested", so what do you propose for the 
next steps?
(21:47:11) yanv: some pieces we created before RH support. it started as a way 
for developer to run isolated test setups: https://github.com/daynix/VirtHCK
(21:47:12) vpnHelper: Title: GitHub - daynix/VirtHCK: QEMU-KVM Virtual 
Environment for Running Microsoft HCK Tests (at github.com)
(21:48:18) yanv: I guess the question is where do you want to run the tests :) 
if it is on your servers, we need to help you to bring up the CI, probably with 
some changes in the engine.
(21:48:34) yanv: we can run it on our servers as a best effort as well.
(21:48:36) mattock: I really don't mind you running the tests
(21:48:43) mattock: and best effort is more than enough
(21:49:06) mattock: the code is open source and it changes rarely, so our 
commits should not tax your system too much
(21:49:17) mattock: recently we've had "many" commits - like <10 in a month
(21:49:22) mattock: but that's very uncommon
(21:49:32) mattock: usually we have none in months
(21:49:32) yanv: so we can see what drivers exactly you have, start from win10 
or windows server 2016\2019 (pick one) and get your help for initial image 
creation
(21:49:55) mattock: +1
(21:50:02) yanv: for us it will be a good change to test the system more and 
make it more generic
(21:50:23) mattock: is the "initial image creation" documented somewhere?
(21:50:29) yanv: yes
(21:51:24) yanv: actually it is partially scripted. 
https://github.com/HCK-CI/HLK-Setup-Scripts
(21:51:25) vpnHelper: Title: GitHub - HCK-CI/HLK-Setup-Scripts: Helper scripts 
to configure VMs needed for HLK/HCK setup to be used with AutoHCK (at 
github.com)
(21:53:17) mattock: I'll note that down
(21:54:13) yanv: Older docs:
(21:54:13) yanv: 
https://github.com/daynix/VirtHCK/wiki#Checklist_for_a_New_Controller_VM
(21:54:14) yanv: 
https://github.com/daynix/VirtHCK/wiki#Checklist_for_a_New_Client_VM
(21:54:14) vpnHelper: Title: Home · daynix/VirtHCK Wiki · GitHub (at github.com)
(21:54:15) vpnHelper: Title: Home · daynix/VirtHCK Wiki · GitHub (at github.com)
(21:56:03) mattock: I'll go through the documentation next week
(21:56:15) mattock: the Windows images you are using are the evalution images, 
correct?
(21:57:42) yanv: yes and no. depending for what. for virtio-win CI we have 
licenses from Red Hat. for development and internal testing, those are 
evaluation images
(21:58:18) mattock: when you restore from snapshot the evaluation counter 
resets, right?
(21:58:39) mattock: that is, the images won't go "sour" over time?
(22:00:36) yanv: actually, you are right, they will go "sour" overtime... 
because Windows will also check the date...
(22:01:00) yanv: yes, more reasons to have image provisioning automation
(22:01:20) mattock: I need to take a closer look at the provisioning part
(22:01:31) mattock: perhaps I can improve it in the process as well
(22:02:14) mattock: I'm stretched pretty thin, but I will try to move this 
forward, starting with just one  target platform
(22:02:27) mattock: we're 2 minutes overtime
(22:02:39) mattock: plus it is getting late (EEST timezone here)
(22:03:02) mattock: if you hang around at #openvpn-devel perhaps I can poke you 
with questions occasionally?
(22:03:50) mattock: what I'm trying to ask is: "can you hang around at 
#openvpn-devel so that I can ask questions when needed?" :D
(22:04:26) yanv: no problem, I will also add Basil (he is mainly maintaining 
HCK_CI) now to the email thread we have and ask him to join #openvpn-devel as 
well
(22:04:33) mattock: ok great!
(22:04:49) mattock: I'll also try to inquire if I could get somebody else 
involved from our side
(22:04:55) dazo: mattock: just a quick recap on the 2.5 release ... what is 
missing here now?
(22:05:24) mattock: dazo: nothing afaik, but our website is in read-only mode 
due to Wordpress upgrade until Monday/Tuesday
(22:05:39) mattock: so, I can't _publish_ the release tomorrow as planned
(22:05:52) dazo: mattock: good ... I saw some comments on tagging rc3 .... so I 
was wondering why another rc cycle
(22:06:02) dazo: is there still outstanding issues we know about?
(22:06:33) mattock: I believe it is rc3 instead of 2.5.0 as the Windows part 
still feels a bit wobbly
(22:06:40) mattock: though it is getting into a pretty good shape
(22:07:06) mattock: and the Windows code is evenly distributed between 
different projects including openvpn itself
(22:07:28) dazo: "feels a bit wobbly" is a poor metric though :-P .... I would 
say that if we do not have any known issues or expect to see any issues, it 
should be 2.5.0
(22:07:35) mattock: I would prefer having the tapctl.exe and msica stuff in 
another repo
(22:07:49) mattock: well that is a fair argument :P
(22:07:50) dazo: yeah, that's something we'll fix after the 2.5.0 release
(22:08:12) mattock: personally I don't care if it is 2.5-rc3 or 2.5.0
(22:08:30) mattock: you can fight this out with cron2, or maybe I just 
misremembered the version number :)
(22:08:53) dazo: so, unless something really shows up before it's time to tag 
... I would vote for 2.5.0 now
(22:09:05) mattock: ok with me
(22:09:11) dazo: good :)
(22:09:14) mattock: yanv: one quick question
(22:09:23) yanv: yes
(22:09:39) mattock: who is "we" - that is, who should I attribute hck-ci to?
(22:09:57) yanv: Daynix Computing LTD.
(22:10:11) yanv: And mainly Basil Salman and me (Yan Vugenfirer)
(22:10:11) mattock: ok, that's what I thought but I wanted to be sure
(22:11:27) mattock: ok I think we're done for today
(22:12:23) cron2: re
(22:12:41) yanv: bye all
(22:13:14) mattock: oh cron2 made it to the summary
(22:13:15) mattock: bye!
(22:13:55) yanv ha abbandonato la stanza ("Leaving").

Attachment: pEpkey.asc
Description: application/pgp-keys

_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to