Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Device '/dev/video1' is not a output device - While device seen as output by v4l2-ctl #370

Closed
didier-durand opened this issue Nov 5, 2020 · 7 comments

Comments

@didier-durand
Copy link

didier-durand commented Nov 5, 2020

Hi there,

Please, let me know if additional info is needed: we'll be happy to provide it.

Is the disable due to the message below: 'v4l2loopback: module verification failed: signature and/or required key missing - tainting kernel' ?

Thanks for your help!

Didier

Step 2: Configuration

  • v4l2loopback version:
$ sudo dmesg  | grep -i v4l2loopback

[  853.969836] v4l2loopback: loading out-of-tree module taints kernel.
[  853.969896] v4l2loopback: module verification failed: signature and/or required key missing - tainting kernel
[  853.971377] v4l2loopback driver version 0.12.3 loaded
  • kernel version:
$ uname -a
Linux microk8s-akri 5.4.0-1028-gcp #29-Ubuntu SMP Mon Oct 5 16:42:23 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • Distribution (+version):
$ lsb_release -a

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

Step 3: Describe the problem:

The following command fails with the message below

sudo gst-launch-1.0 -v videotestsrc pattern=ball ! "video/x-raw,width=640,height=480,framerate=10/1" ! avenc_mjpeg ! v4l2sink device=/dev/video1 

ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: **Device '/dev/video1' is not a output device**
Additional debug info:
v4l2_calls.c(636): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
Capabilities: 0x85208000
Setting pipeline to NULL ...
Freeing pipeline ...

v4l2-ctl --all -d /dev/video1 produces:

$ v4l2-ctl --all -d /dev/video1
Driver Info:
	Driver name      : v4l2 loopback
	Card type        : Dummy video device (0x0000)
	Bus info         : platform:v4l2loopback-000
	Driver version   : 5.4.65
	Capabilities     : 0x85208002
		**Video Output**
		Video Memory-to-Memory
		Read/Write
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x85208000
		Video Memory-to-Memory
		Read/Write
		Streaming
		Extended Pix Format
		Device Capabilities
Priority: 0
Video output: 0 (loopback in)
Format Video Output:
	Width/Height      : 0/0
	Pixel Format      : 'BGR4' (32-bit BGRA/X 8-8-8-8)
	Field             : None
	Bytes per Line    : 0
	Size Image        : 0
	Colorspace        : sRGB
	Transfer Function : Default (maps to sRGB)
	YCbCr/HSV Encoding: Default (maps to ITU-R 601)
	Quantization      : Default (maps to Full Range)
	Flags             : 
Streaming Parameters Video Capture:
	Frames per second: 30.000 (30/1)
	Read buffers     : 8
Streaming Parameters Video Output:
	Frames per second: 30.000 (30/1)
	Write buffers    : 8

User Controls

                    keep_format 0x0098f900 (bool)   : default=0 value=0
              sustain_framerate 0x0098f901 (bool)   : default=0 value=0
                        timeout 0x0098f902 (int)    : min=0 max=100000 step=1 default=0 value=0
               timeout_image_io 0x0098f903 (bool)   : default=0 value=0

** lsmod** produces:

# lsmod
lsmod
Module                  Size  Used by
v4l2loopback           40960  0
videodev              225280  1 v4l2loopback
mc                     53248  1 videodev
btrfs                1253376  0
xor                    24576  1 btrfs
zstd_compress         167936  1 btrfs
raid6_pq              114688  1 btrfs
ufs                    81920  0
qnx4                   16384  0
hfsplus               110592  0
hfs                    61440  0
minix                  36864  0
ntfs                  106496  0
msdos                  20480  0
jfs                   188416  0
xfs                  1277952  0
ip6table_nat           16384  0
ip6_tables             32768  1 ip6table_nat
vxlan                  69632  0
ip6_udp_tunnel         16384  1 vxlan
udp_tunnel             16384  1 vxlan
ipt_rpfilter           16384  1
xt_set                 16384  4
xt_multiport           20480  56
iptable_raw            16384  1
ip_set_hash_ip         40960  1
ip_set_hash_net        49152  3
ip_set                 53248  3 ip_set_hash_ip,xt_set,ip_set_hash_net
xfrm_user              36864  1
xfrm_algo              16384  1 xfrm_user
veth                   28672  0
ipt_REJECT             16384  2
nf_reject_ipv4         16384  1 ipt_REJECT
overlay               114688  14
xt_nat                 16384  4
xt_tcpudp              20480  14
xt_addrtype            16384  7
ip_vs_sh               16384  0
ip_vs_wrr              16384  0
ip_vs_rr               16384  0
ip_vs                 155648  6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
iptable_mangle         16384  1
xt_MASQUERADE          20480  3
xt_conntrack           16384  25
xt_mark                16384  56
iptable_nat            16384  1
nf_nat                 40960  4 ip6table_nat,xt_nat,iptable_nat,xt_MASQUERADE
aufs                  262144  0
xt_comment             16384  268
iptable_filter         16384  1
bpfilter               32768  0
br_netfilter           28672  0
bridge                176128  1 br_netfilter
stp                    16384  1 bridge
llc                    16384  2 bridge,stp
nls_iso8859_1          16384  1
dm_multipath           32768  0
scsi_dh_rdac           16384  0
scsi_dh_emc            16384  0
scsi_dh_alua           20480  0
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
aesni_intel           372736  0
virtio_net             53248  0
net_failover           20480  1 virtio_net
crypto_simd            16384  1 aesni_intel
psmouse               155648  0
failover               16384  1 net_failover
input_leds             16384  0
cryptd                 24576  2 crypto_simd,ghash_clmulni_intel
serio_raw              20480  0
glue_helper            16384  1 aesni_intel
sch_fq_codel           20480  3
drm                   491520  0
virtio_rng             16384  0
ip_tables              32768  4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle
x_tables               40960  16 xt_conntrack,iptable_filter,xt_multiport,xt_tcpudp,xt_addrtype,xt_nat,xt_comment,xt_set,ip6_tables,ipt_REJECT,ipt_rpfilter,iptable_raw,ip_tables,xt_MASQUERADE,iptable_mangle,xt_mark
autofs4                45056  2

Steps to reproduce:

  1. Install Ubuntu 20.04 (here on Google GCE)
  2. sudo apt install -y linux-modules-extra-$(uname -r)
  3. sudo apt install -y v4l2loopback-dkms
  4. sudo modprobe v4l2loopback exclusive_caps=1 devices=2 video_nr=1,2
  5. sudo gst-launch-1.0 -v videotestsrc pattern=ball ! "video/x-raw,width=640,height=480,framerate=10/1" ! avenc_mjpeg ! v4l2sink device=/dev/video1 (install gstreamer packages before)

Observed Results:

  • See error message on trying to use the device described at beginning of ticket

Expected Results:

we would expect gst-launch to be able to stream on /dev/video1 given the output of v4l2-ctl saying the 'Video Output' is in the capabilities.

@didier-durand
Copy link
Author

didier-durand commented Nov 6, 2020

Additional info : the gst-launch above works fine if the sink is a filesink

$ sudo gst-launch-1.0 -v videotestsrc pattern=ball ! "video/x-raw,width=640,height=480,framerate=10/1" ! avenc_mjpeg ! filesink location=test.vid1

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/avenc_mjpeg:avenc_mjpeg0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/avenc_mjpeg:avenc_mjpeg0.GstPad:src: caps = image/jpeg, parsed=(boolean)true, width=(int)640, height=(int)480, framerate=(fraction)10/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, chroma-site=(string)jpeg, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = image/jpeg, parsed=(boolean)true, width=(int)640, height=(int)480, framerate=(fraction)10/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, chroma-site=(string)jpeg, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:09.649415847
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

$ ls -l test.vid1
-rw-r--r-- 1 root root 7639952 Nov  6 04:58 test.vid1

@umlaeute
Copy link
Owner

umlaeute commented Nov 6, 2020

your pipeline works nicely for me.

$ uname -a
Linux xenakis 5.9.0-1-amd64 #1 SMP Debian 5.9.1-1 (2020-10-17) x86_64 GNU/Linux
$ sudo dmesg  | grep v4l2
[848422.306793] v4l2loopback driver version 0.12.5 loaded
$ gst-launch-1.0 -v videotestsrc pattern=ball ! "video/x-raw,width=640,height=480,framerate=30/1" ! avenc_mjpeg ! v4l2sink device=/dev/video1 
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)Y444, width=(int)640, height=(int)480, framerate=(fraction)30/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)Y444, width=(int)640, height=(int)480, framerate=(fraction)30/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/avenc_mjpeg:avenc_mjpeg0.GstPad:sink: caps = video/x-raw, format=(string)Y444, width=(int)640, height=(int)480, framerate=(fraction)30/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)Y444, width=(int)640, height=(int)480, framerate=(fraction)30/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/avenc_mjpeg:avenc_mjpeg0.GstPad:src: caps = image/jpeg, parsed=(boolean)true, width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0.GstPad:sink: caps = image/jpeg, parsed=(boolean)true, width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:41.3 / 99:99:99.

and while the pipeline is running:

$ v4l2-ctl --all -d /dev/video1 
Driver Info:
	Driver name      : v4l2 loopback
	Card type        : Dummy video device (0x0000)
	Bus info         : platform:v4l2loopback-000
	Driver version   : 5.9.1
	Capabilities     : 0x85208003
		Video Capture
		Video Output
		Video Memory-to-Memory
		Read/Write
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps      : 0x05208003
		Video Capture
		Video Output
		Video Memory-to-Memory
		Read/Write
		Streaming
		Extended Pix Format
Priority: 0
Video input : 0 (loopback: ok)
Video output: 0 (loopback in)
Format Video Capture:
	Width/Height      : 640/480
	Pixel Format      : 'JPEG' (JFIF JPEG)
	Field             : None
	Bytes per Line    : 0
	Size Image        : 1228800
	Colorspace        : sRGB
	Transfer Function : sRGB
	YCbCr/HSV Encoding: ITU-R 601
	Quantization      : Limited Range
	Flags             : 
Format Video Output:
	Width/Height      : 640/480
	Pixel Format      : 'JPEG' (JFIF JPEG)
	Field             : None
	Bytes per Line    : 0
	Size Image        : 1228800
	Colorspace        : sRGB
	Transfer Function : sRGB
	YCbCr/HSV Encoding: ITU-R 601
	Quantization      : Limited Range
	Flags             : 
Streaming Parameters Video Capture:
	Frames per second: 30.000 (30/1)
	Read buffers     : 2
Streaming Parameters Video Output:
	Frames per second: 30.000 (30/1)
	Write buffers    : 2

User Controls

                    keep_format 0x0098f900 (bool)   : default=0 value=0
              sustain_framerate 0x0098f901 (bool)   : default=0 value=0
                        timeout 0x0098f902 (int)    : min=0 max=100000 step=1 default=0 value=0
               timeout_image_io 0x0098f903 (bool)   : default=0 value=0

could you try with the latest release of v4l2loopback-0.12.5?

nitpicks
  • in general, you shouldn't run gstreamer-pipelines as root (in general you shouldn't run any command as root that doesn't absolutely require it)
  • i trust you that GStreamer works by itself, so there's not very much use in uploading a video-file from a pipeline that doesn't involve a loopback device (though of course the attempt to provide as much info as possible is appreciated)

@didier-durand
Copy link
Author

didier-durand commented Nov 6, 2020

Thanks for your hints!

In the meantime, I replaced GStreamer by ffmpeg to stream to the sink and it works fine.

I will try GTSteamer with v4l2loopback-0.12.5 and let you know.

Didier

@didier-durand
Copy link
Author

didier-durand commented Nov 6, 2020

Hi there

You had the right idea : I upgraded to v4l2loopback-0.12.5 and it works fine. See below.

To reach this, I used

sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ groovy universe multiverse"
sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ groovy-updates universe multiverse"

Then, sudo apt install -y v4l2loopback-dkms will install the required 0.12.5 in place of previous 0.12.3

It's fine for me because I am on a test system. But, I am on Ubuntu 20.04 LTS. So, groovy repos (=20.10) are not supposed to be used with 20.04. Am I correct?

If yes, it may be an issue for shops using only LTS versions. The next one will be 22.04. Maybe quite far away for some folks.

Anyway, solved for me. Thanks a lot!

Didier

dmesg output after upgrade

[ 505.470735] v4l2loopback driver version 0.12.5 loaded

GSteamer exec log

$ gst-launch-1.0 -v videotestsrc pattern=ball ! "video/x-raw,width=640,height=480,framerate=10/1" ! avenc_mjpeg ! v4l2sink device=/dev/video1

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/avenc_mjpeg:avenc_mjpeg0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)640, height=(int)480, framerate=(fraction)10/1, multiview-mode=(string)mono, colorimetry=(string)2:4:7:1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/avenc_mjpeg:avenc_mjpeg0.GstPad:src: caps = image/jpeg, parsed=(boolean)true, width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, framerate=(fraction)10/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0.GstPad:sink: caps = image/jpeg, parsed=(boolean)true, width=(int)640, height=(int)480, colorimetry=(string)2:4:7:1, framerate=(fraction)10/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:27.807473202
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

@umlaeute
Copy link
Owner

umlaeute commented Nov 6, 2020

you could have also just downloaded the dkms-package and installed it manually wit dpkg -i (this basically works, because the v4l2loopback-dkms package is very simple dependency-wise).

anyhow, glad it worked out for you.

@umlaeute umlaeute closed this as completed Nov 6, 2020
bfjelds added a commit to project-akri/akri that referenced this issue Nov 20, 2020
Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>
@j2l
Copy link

j2l commented Nov 27, 2020

"you could have also just downloaded the dkms-package and installed it manually wit dpkg -i (this basically works, because the v4l2loopback-dkms package is very simple dependency-wise)" didn't work for me on ubuntu 20.04
Thanks @didier-durand for finding a fix to this. @umlaeute I don't understand your LinusTorvald attitude but hey, I don't care, you didn't reply to me and I won't subscribe.

@umlaeute
Copy link
Owner

@umlaeute I don't understand your LinusTorvald attitude

@j2l could you explain that a bit?
i agree that i might be often be snarky, but in this special case i really don't see how and why.
what i was suggesting ("download the dkms and install it manually"), was merely a way to circumvent the problem that adding a repository of another distro release to a ubuntu installation (in this case: adding "groovy" repos on a "focus" installation) is bound to give you a lot of problems.

bfjelds added a commit to project-akri/akri that referenced this issue Dec 9, 2020
* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: #102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (#134)

* Update end-to-end-demo.md (#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (#140)

* end-to-end-demo-rpi4: fixing 1 typo (#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (#139)

* Minor flow change

* Cleanup

* Expand udev rule support (#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (#159)

* Update user guide with first release tag for Akri release chart (#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>
bfjelds added a commit to project-akri/akri that referenced this issue Dec 9, 2020
* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: #102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (#134)

* Update end-to-end-demo.md (#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (#140)

* end-to-end-demo-rpi4: fixing 1 typo (#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (#139)

* Minor flow change

* Cleanup

* Expand udev rule support (#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (#159)

* Update user guide with first release tag for Akri release chart (#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>
kate-goldenring added a commit to project-akri/akri that referenced this issue Jan 7, 2021
* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: #102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (#134)

* Update end-to-end-demo.md (#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (#140)

* end-to-end-demo-rpi4: fixing 1 typo (#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (#139)

* Minor flow change

* Cleanup

* Expand udev rule support (#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (#159)

* Update user guide with first release tag for Akri release chart (#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>
kate-goldenring added a commit to kate-goldenring/akri that referenced this issue Apr 26, 2021
…kri#135)

* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: project-akri#102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (project-akri#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (project-akri#134)

* Update end-to-end-demo.md (project-akri#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (project-akri#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (project-akri#140)

* end-to-end-demo-rpi4: fixing 1 typo (project-akri#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (project-akri#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (project-akri#139)

* Minor flow change

* Cleanup

* Expand udev rule support (project-akri#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (project-akri#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (project-akri#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (project-akri#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (project-akri#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (project-akri#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (project-akri#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (project-akri#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (project-akri#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (project-akri#159)

* Update user guide with first release tag for Akri release chart (project-akri#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (project-akri#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>
kate-goldenring added a commit to kate-goldenring/akri that referenced this issue Apr 27, 2021
…kri#135)

* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: project-akri#102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (project-akri#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (project-akri#134)

* Update end-to-end-demo.md (project-akri#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (project-akri#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (project-akri#140)

* end-to-end-demo-rpi4: fixing 1 typo (project-akri#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (project-akri#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (project-akri#139)

* Minor flow change

* Cleanup

* Expand udev rule support (project-akri#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (project-akri#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (project-akri#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (project-akri#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (project-akri#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (project-akri#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (project-akri#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (project-akri#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (project-akri#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (project-akri#159)

* Update user guide with first release tag for Akri release chart (project-akri#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (project-akri#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>
kate-goldenring added a commit to project-akri/akri that referenced this issue Apr 27, 2021
* test latest k8s versions [SAME VERSION] (#188)

* update changelog for 0.1.5 release (#189)

* add more description and simplify commands in e2e demo (#191)

* Various typos fixed on new OPCUA documentation (#195)

* Various typos fixed on new OPCUA documentation

Signed-off-by: Didier Durand <[email protected]>

* Fixes on extensibility documentation

Signed-off-by: Didier Durand <[email protected]>

* Make end-to-end demo on Raspberry Pi simpler and more descriptive (#193)

* mirror updates in e2e demo in rasp-pi demo

* syntax changes, capacity specification, building kernel module

* fix syntax issues

* Get Agent logs before testing their contents [SAME VERSION] (#197)

* add additional checks to see why getting logs failing

* log information when get crictl error

* use os.system to log info

* try using shell with subprocess when doing complex commands

* Fix failing to query container runtime in test workflow on MicroK8s [SAME VERSION] (#202)

* loop query containerd several times instead of sleeping

* shorten agent log query

* Allow overwriting controller.nodeSelectors (#194)

* Allow overwriting controller.nodeSelectors

* Add note about `sed` for MacOS contributors

* Allow conditional compilation of agent protocols (#196)

* Allow conditional compilation of agent protocols

* Bump patch version

Co-authored-by: Jiayi Hu <[email protected]>

* Prometheus (#190)

* add frame count metric to udev broker

* add prometheus metrics

* format metrics.rs

* update Helm charts for Prometheus support

* Prometheus documentation

* increase supported rust version to latest

* fix metrics chart

* use PodMonitor instead of ServiceMonitor for Akri Agent and Controller

* update tarpaulin to latest version to fix protobuf issue

* remove debug echo shared setting

* update version

* Use anyhow instead of the deprecated failure crate (#201)

* Switch to use anyhow crate instead of failure crate

Include Cargo.lock updates

* Rebase and increment patch version

* Merge conflict

* Add missing version updates after rebase

* [Helm] Added CRD variables (#205)

* Added CRD variables

* `version.sh` updates Helm `crds.version`

* Bump version

* Document naming convention (#204)

* Initial commit

* Remove references to `http` example

* Added `udev-broker`

* Added `akri-udev`

* Rephrased

* Typo

* naming-guidelines >> development.md

* r/udev-broker/udev-video-broker

* punctuation

* r/Resources/resources

* r/Compute/Computer (#210)

* fix instructions for cloning and building v4l2 (#209)

* Update hyper version and other dependencies

* Update patch version

* Explicitly specify h2 patch version dependency to avoid future accidentl updates by cargo-update or similar

* Remove redundant unnecessary hyper dependencies

* Add security audit workflow

* Move security audit to existing check-rust workflow

* Simplify mockall usage (#214)

* Simplify mockall usage

* Bump patch version

* add project logo and art [SAME VERSION] (#149)

* add akri branding and artwork

Signed-off-by: flynnduism <[email protected]>

* edit artwork README

Signed-off-by: flynnduism <[email protected]>

* re-render dark logos

Signed-off-by: flynnduism <[email protected]>

* redraw the svg icon to fix glitchy render

Signed-off-by: flynnduism <[email protected]>

* update logo.svg

Signed-off-by: flynnduism <[email protected]>

* fix the mixed up color hex values

Signed-off-by: flynnduism <[email protected]>

* update branding with inconsolata typeface

Signed-off-by: flynnduism <[email protected]>

* use correct casing for mentions of Akri

Signed-off-by: flynnduism <[email protected]>

* remove default documentation to use latest containers (#218)

* Image pull policy (#207)

* change default image pull policy to IfNotPresent

* set ImagePullPolicy to default to empty

* increase version

* only add ImagePullPolicy if specified

* Add a workflow to automated dependencies update

* fix the instruction of the end to end demo and the rspi4 demo. (#217)

* Add comment for  cargo-audit action behavior

* use akri bot PAT for the autoupdate workflow

* update token  secret name

* Patch anomaly detection app (#229)

* close connection to grpc service each loop

* update version

* use local subchannel pool

* fix title typo

* Add logo to README [SAME VERSION] (#220)

* Auto-updated dependencies

* Auto-updated dependencies

* Allow unreachable code introduced with feature-driven protocols [SAME VERSION] (#232)

* Allow unreachable code introduced with feature-driven protocols [SAME VERSION]

The catchall match is there in case someone turns off one of the handlers via features ... but at runtime the disabled feature is configured.

* update for cargo fmt

* add comment explanation

* fix cargo fmt

* Improve development experience with timestamped container labels (#234)

Using labels based on version.txt can make it difficult to iterate during development.  Creating timestamped labels for the local build experience should make it easier to differentiate between development builds.

* Reduce frequency of dependency update [SAME VERSION] (#236)

* Reduce frequency of dependency update

Our dependencies update on a daily basis ... not sure it makes sense for us to update our version each time someone else's do.  I chose a monthly cadence because it would, at most, cause us to update our version 12x per year, which doesn't seem too bad.

* Update auto-update-dependencies.yml

* update code owners

* Lazy eval of makefile timestamp breaks local build [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (#242)

* Update hyper crate for security risk

* patch version update

* force override kubernetes package to deal with installation errors

* Fix typo

* Simplify matrix; Use all versions 1.16+ for all distros (#244)

* Simplify matrix; Use all versions 1.16+ for all distros

* Remove non-existent webhook test

* Remove `microk8s.enable helm3` appears redundant and fails

* Link Kubernetes and crictl for K3s|MicroK8s

* Per: #206 (comment)

* Typo

* fix matrix and crictl path

* Consistency and double-quote to expand `${PWD}`

* Temporarily (!) block K3s 1.16 due to hard-coded device plugs (k3s-io/k3s#1390)

* Test mapping K3s 1.16 device plugins to default K8s location

* Create kubectl path in expected location if not present

* Consistent w/ MicroK8s step

* Wait until cluster has stabilized before wrangling device-plugins

* Initial documentation for `run-test-cases.yml`

* Correct indentation

Co-authored-by: bfjelds <[email protected]>

* add microk8s inspect to installation

* try waiting repeatedly for microk8s to be ready

* Cleanup streaming app sample (#173)

* Initial version

* Create logical classes

* Fixes and optimizations

* Use naming guideline for method names

* Version bump

* Version bump

Co-authored-by: Brian Fjeldstad <[email protected]>

* Admission Controller (Webhook) for Akri Configuration(s) (#206)

* Helm Chart updates

* Add 'webhooks' to the project

* Commented Helm Chart `webhook-configuration`

* Template `webhook-configuration`

* Webhook service

* Dockerfile (draft)

* GitHub Action (draft)

* Force build

* Trying again

* And again

* Added GHCR secret to fork

* Grrr

* Grrr

* Issue w/ GitHub Action build

* Undo

* Consistency

* Revised Rust Webhook to not require these

* Preliminary README

* Update `version.sh` and run `./version.sh -u -s`

* Added `webhook-configuration`

* Does this resolve Helm Linting concern?

* r/AMD32V7/AMR32V7

* Are these required?

* Follow pattern

* Follow Akri pattern

* r/webhook-configuration/webhookConfiguration

* correct path references

* Cross-build Rust

* Exceptions no longer required

* Assume `./target/release/webhook-configuration`

* Expose x-plat targets to docker

* Omission

* Improve handling of flags

* Tidy

* Correct indendation

* Version bump

* Update `CHANGELOG`

* `cargo.lock` versions now bumped too

* Temporarily (!) bumping build timeouts

* Corrected component reference

* Missed `build-arg=CROSS_BUILD_TARGET=...`

* Avoid Helm issue with un-`named` `Lists`

* Revert `CHANGELOG`

* Added unit tests

* Filters Akri Configuration manifest so that it validates

* Added test for filtered `generation`

* Added test for extended (complete) Config

* To avoid GitHub Actions build failure

* End-to-End Webhook tests

* Integration tests require `actix-rt`

* Include `webhook-configuration` container image

* Learns all the things!

* Typo

* Added `webhook` to `test-case`s

* Removed `get_agent_and_controller` reference

* Simplified Actions `matrix`; Updated Webhook certs

* Override `webhookConfiguration.image.tag` to `pr-amd64`

* Add debugging

* Typo

* sudo'ing `kubectl` commands

* Try subprocess; reduce test matrix

* Add `shell=True`

* More `describe`s

* Correct `kubectl --selector` commands

* Reflect r/ENTRYPOINT/CMD in Dockerfile

* Try matrix

* Debugging Kubenernetes 1.16

* Additional MicroK8s 1.16+1.17 and debugging

* Generate: `*-webhook-log` from GitHub Actions

* Add some debugging statements

* K8s 1.16 expects AdmissionReview to be v1beta1

* Checking K3s 1.16+1.17

* Ordering may be significant

* Reverted

* Don't delete CRDs; Remove redundant debugging

* Limit to distro-versions known to work for E2Es

* Bumped OpenAPI-generated sources due to Akri security audit issues

* Documents `run-webook.py`

* Typo

* `expect` only when providing useful message

* fix Makefile formatting for image push [SAME VERSION]

* add updates to lock file fir admission controller webhook dependencies (#254)

* proposal for logging standards

* Fix typo

* Simplify containers makefile (#256)

* simplify makefile for containers

* add for all containers

* fix indent

* bump version

* try to fix indentation

* fix manifest creation error (#257)

* Fix onvif

* changes to the particular makefiles should invoke container workflow (#258)

* Add more docs for akri build (#260)

* add docs for akri build

* address feedback

* add local instructions

* fix mistakes

* Auto-updated dependencies

* Allow dependencies auto update to be manually run

* Auto-updated dependencies

* increase timeout for tarpaulin and check-rust workflows (#266)

* Increase docker create timeout to 600 minutes and document this hidden timeout (#267)

* Try same env var for action and container timeout

* output script to verify

* try reusing timeout-minutes directly

* Try moving timeout to step and access that directly

* try fixing env var creation

* try using env var again

https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#job-context suggests timeout-minutes can be set from env

* Use step.timeout-minutes because it can pull from env var

* Update run-tarpaulin.yml

* just make the docker keep alive script sleep 600 minutes

* remove env var

* fix typo

* typos, typos, typos

* create certs for webhook e2e tests with longer lasting CA (#271)

* Enable Discovery Handlers as Pods (#252)

* Move security audit checks to a daily schedule instead of on PRs

* Fix typo

* Link to specific github run url from github context

* rename rust jobs

* remove unnecessary job

* only run on main and not forks

* Update security-audit.yml

Restrict the action to main repo and not forks

* Serialize Configuration Properties for Webhook (#276)

* don't skip serializing configuration properties

* increase version

* rust fmt fixes

* Try to ONLY build rust once per platform (#270)

* build rust once/platform, share with artifacts

* timeout => timeout-minutes

* trigger when build-rust-code changes

* only run container builds after successful rust build

* install rust toolchain to build rust

* add crossbuild qemu

* reduce retention to minimum

* make test timeout longer

* update version

* Fix artifact name [SAME VERSION] (#280)

* fix artifact name [SAME VERSION]

* only run for main

* Add Workflow to Cancel Previous PR Workflows [SAME VERSION] (#281)

* add workflow to cancel all previous workflows on a pr

* remove security workflow and cancel workflow from list

* Build both slim and full Agents [IGNORE INTERMEDIATE BUILDS] (#279)

* specify component name in agent multiarch build (#285)

* Build discovery handler images [SAME VERSION] (#286)

* Enable Canceling Previous Workflows on PRs from Forks [SAME VERSION] (#284)

* use workflow_run trigger in cancel workflow

* only run cancel workflow explicitly for pull_request events

* Increase e2e test timeout [SAME VERSION] (#287)

* increase e2e test timeout

* increase timeout further

* Ensure Discovery Handler is marked as available again after Configuration deletions (#282)

* Make sure `shared` environment variable is set in debug echo Discovery Handler (#289)

* Overwrite latest tag when user specifies a tag (#293)

* overwrite latest tag when user supplies tag

* increase version

* Auto-updated dependencies

* Reference correct Agent features for embedding Discovery Handlers [IGNORE INTERMEDIATE BUILDS] (#295)

* Debug echo properties (#288)

* Add Documentation on using Debug Echo [SAME VERSION] (#296)

* make sure webhook-configuration version updated in lock file (#300)

* Remove un-utilized CRD field (#290)

* remove rbac property from Instance CRD

* bump minor version to 0.5.0 for breaking change

* Rename CRD fields to be more descriptive (#297)

* change Configuration.properties to Configuration.brokerProperties

* change Instance.metadata to Instance.brokerProperties

* increase minor version due to CRD breaking change

* fix errors in user guide (#302)

* Remove udev directory mount from Agent (#304)

* Extend documentation (#303)

* Documentation fixes (#307)

A few simple fixes to the Debug Echo documentation.

Signed-off-by: Hernan Gatta <[email protected]>

* fix opc ua configuration table in docs (#309)

* use sudo when getting logs in e2e tests (#312)

* suggest background reading before discovery handler development (#310)

* Update cluster setup documentation (#308)

* lint helm chart with values (#306)

* Add documentation on setting a Configuration's `brokerProperties` (#311)

* Fix end-to-end tests (#301)

* Reduce K3s and MicroK8s eviction limits for tests [SAME VERSION] (#313)

* reduce K3s eviction limits for tests

* reduce MicroK8s limits

* Rename configuration templates (#315)

* rename configuration templates

* increase version

* Set compute resource limits and requests for all Akri components (#305)

* Extensibility example fixes [SAME VERSION] (#321)

* Use latest Rust and Tarpaulin (#318)

* use latest tarpaulin in workflow

* use latest rust in workflows

* increase version

* use previous tarpaulin version due to segfault issue

* Increase dependency minor versions where possible [SAME VERSION] (#323)

* increase cfg-if, env_logger, mockall_double, prometheus, udev, opcua-client, and rand crate minor versions

* increase version

* extend sleep in test case workflow to 45 minutes for component builds to complete (#326)

* Test e2e tests on latest K8s version [SAME VERSION] (#317)

* reference Akri's release Helm chart in documentation (#325)

* Update CHANGELOG for v0.6.5 release (#319)

* [Extensibility] HTTP protocol (branch: http-extensibility) (#135)

* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: #102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (#134)

* Update end-to-end-demo.md (#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (#140)

* end-to-end-demo-rpi4: fixing 1 typo (#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (#139)

* Minor flow change

* Cleanup

* Expand udev rule support (#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (#159)

* Update user guide with first release tag for Akri release chart (#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>

* add http discovery handler to the discovery handler modules folder

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: Jiayi Hu <[email protected]>
Co-authored-by: Jiayi Hu <[email protected]>
Co-authored-by: Roaa <[email protected]>
Co-authored-by: Daz Wilkin <[email protected]>
Co-authored-by: Ronan Flynn-Curran <[email protected]>
Co-authored-by: romoh <[email protected]>
Co-authored-by: Chao Zheng <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Hernan Gatta <[email protected]>
kate-goldenring pushed a commit to project-akri/akri-docs that referenced this issue Aug 5, 2021
Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>
kate-goldenring added a commit to kate-goldenring/akri that referenced this issue Oct 29, 2021
…kri#135)

* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: project-akri#102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (project-akri#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (project-akri#134)

* Update end-to-end-demo.md (project-akri#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (project-akri#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (project-akri#140)

* end-to-end-demo-rpi4: fixing 1 typo (project-akri#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (project-akri#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (project-akri#139)

* Minor flow change

* Cleanup

* Expand udev rule support (project-akri#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (project-akri#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (project-akri#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (project-akri#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (project-akri#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (project-akri#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (project-akri#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (project-akri#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (project-akri#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (project-akri#159)

* Update user guide with first release tag for Akri release chart (project-akri#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (project-akri#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>
kate-goldenring added a commit to kate-goldenring/akri that referenced this issue Oct 29, 2021
* test latest k8s versions [SAME VERSION] (project-akri#188)

* update changelog for 0.1.5 release (project-akri#189)

* add more description and simplify commands in e2e demo (project-akri#191)

* Various typos fixed on new OPCUA documentation (project-akri#195)

* Various typos fixed on new OPCUA documentation

Signed-off-by: Didier Durand <[email protected]>

* Fixes on extensibility documentation

Signed-off-by: Didier Durand <[email protected]>

* Make end-to-end demo on Raspberry Pi simpler and more descriptive (project-akri#193)

* mirror updates in e2e demo in rasp-pi demo

* syntax changes, capacity specification, building kernel module

* fix syntax issues

* Get Agent logs before testing their contents [SAME VERSION] (project-akri#197)

* add additional checks to see why getting logs failing

* log information when get crictl error

* use os.system to log info

* try using shell with subprocess when doing complex commands

* Fix failing to query container runtime in test workflow on MicroK8s [SAME VERSION] (project-akri#202)

* loop query containerd several times instead of sleeping

* shorten agent log query

* Allow overwriting controller.nodeSelectors (project-akri#194)

* Allow overwriting controller.nodeSelectors

* Add note about `sed` for MacOS contributors

* Allow conditional compilation of agent protocols (project-akri#196)

* Allow conditional compilation of agent protocols

* Bump patch version

Co-authored-by: Jiayi Hu <[email protected]>

* Prometheus (project-akri#190)

* add frame count metric to udev broker

* add prometheus metrics

* format metrics.rs

* update Helm charts for Prometheus support

* Prometheus documentation

* increase supported rust version to latest

* fix metrics chart

* use PodMonitor instead of ServiceMonitor for Akri Agent and Controller

* update tarpaulin to latest version to fix protobuf issue

* remove debug echo shared setting

* update version

* Use anyhow instead of the deprecated failure crate (project-akri#201)

* Switch to use anyhow crate instead of failure crate

Include Cargo.lock updates

* Rebase and increment patch version

* Merge conflict

* Add missing version updates after rebase

* [Helm] Added CRD variables (project-akri#205)

* Added CRD variables

* `version.sh` updates Helm `crds.version`

* Bump version

* Document naming convention (project-akri#204)

* Initial commit

* Remove references to `http` example

* Added `udev-broker`

* Added `akri-udev`

* Rephrased

* Typo

* naming-guidelines >> development.md

* r/udev-broker/udev-video-broker

* punctuation

* r/Resources/resources

* r/Compute/Computer (project-akri#210)

* fix instructions for cloning and building v4l2 (project-akri#209)

* Update hyper version and other dependencies

* Update patch version

* Explicitly specify h2 patch version dependency to avoid future accidentl updates by cargo-update or similar

* Remove redundant unnecessary hyper dependencies

* Add security audit workflow

* Move security audit to existing check-rust workflow

* Simplify mockall usage (project-akri#214)

* Simplify mockall usage

* Bump patch version

* add project logo and art [SAME VERSION] (project-akri#149)

* add akri branding and artwork

Signed-off-by: flynnduism <[email protected]>

* edit artwork README

Signed-off-by: flynnduism <[email protected]>

* re-render dark logos

Signed-off-by: flynnduism <[email protected]>

* redraw the svg icon to fix glitchy render

Signed-off-by: flynnduism <[email protected]>

* update logo.svg

Signed-off-by: flynnduism <[email protected]>

* fix the mixed up color hex values

Signed-off-by: flynnduism <[email protected]>

* update branding with inconsolata typeface

Signed-off-by: flynnduism <[email protected]>

* use correct casing for mentions of Akri

Signed-off-by: flynnduism <[email protected]>

* remove default documentation to use latest containers (project-akri#218)

* Image pull policy (project-akri#207)

* change default image pull policy to IfNotPresent

* set ImagePullPolicy to default to empty

* increase version

* only add ImagePullPolicy if specified

* Add a workflow to automated dependencies update

* fix the instruction of the end to end demo and the rspi4 demo. (project-akri#217)

* Add comment for  cargo-audit action behavior

* use akri bot PAT for the autoupdate workflow

* update token  secret name

* Patch anomaly detection app (project-akri#229)

* close connection to grpc service each loop

* update version

* use local subchannel pool

* fix title typo

* Add logo to README [SAME VERSION] (project-akri#220)

* Auto-updated dependencies

* Auto-updated dependencies

* Allow unreachable code introduced with feature-driven protocols [SAME VERSION] (project-akri#232)

* Allow unreachable code introduced with feature-driven protocols [SAME VERSION]

The catchall match is there in case someone turns off one of the handlers via features ... but at runtime the disabled feature is configured.

* update for cargo fmt

* add comment explanation

* fix cargo fmt

* Improve development experience with timestamped container labels (project-akri#234)

Using labels based on version.txt can make it difficult to iterate during development.  Creating timestamped labels for the local build experience should make it easier to differentiate between development builds.

* Reduce frequency of dependency update [SAME VERSION] (project-akri#236)

* Reduce frequency of dependency update

Our dependencies update on a daily basis ... not sure it makes sense for us to update our version each time someone else's do.  I chose a monthly cadence because it would, at most, cause us to update our version 12x per year, which doesn't seem too bad.

* Update auto-update-dependencies.yml

* update code owners

* Lazy eval of makefile timestamp breaks local build [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (project-akri#242)

* Update hyper crate for security risk

* patch version update

* force override kubernetes package to deal with installation errors

* Fix typo

* Simplify matrix; Use all versions 1.16+ for all distros (project-akri#244)

* Simplify matrix; Use all versions 1.16+ for all distros

* Remove non-existent webhook test

* Remove `microk8s.enable helm3` appears redundant and fails

* Link Kubernetes and crictl for K3s|MicroK8s

* Per: project-akri#206 (comment)

* Typo

* fix matrix and crictl path

* Consistency and double-quote to expand `${PWD}`

* Temporarily (!) block K3s 1.16 due to hard-coded device plugs (k3s-io/k3s#1390)

* Test mapping K3s 1.16 device plugins to default K8s location

* Create kubectl path in expected location if not present

* Consistent w/ MicroK8s step

* Wait until cluster has stabilized before wrangling device-plugins

* Initial documentation for `run-test-cases.yml`

* Correct indentation

Co-authored-by: bfjelds <[email protected]>

* add microk8s inspect to installation

* try waiting repeatedly for microk8s to be ready

* Cleanup streaming app sample (project-akri#173)

* Initial version

* Create logical classes

* Fixes and optimizations

* Use naming guideline for method names

* Version bump

* Version bump

Co-authored-by: Brian Fjeldstad <[email protected]>

* Admission Controller (Webhook) for Akri Configuration(s) (project-akri#206)

* Helm Chart updates

* Add 'webhooks' to the project

* Commented Helm Chart `webhook-configuration`

* Template `webhook-configuration`

* Webhook service

* Dockerfile (draft)

* GitHub Action (draft)

* Force build

* Trying again

* And again

* Added GHCR secret to fork

* Grrr

* Grrr

* Issue w/ GitHub Action build

* Undo

* Consistency

* Revised Rust Webhook to not require these

* Preliminary README

* Update `version.sh` and run `./version.sh -u -s`

* Added `webhook-configuration`

* Does this resolve Helm Linting concern?

* r/AMD32V7/AMR32V7

* Are these required?

* Follow pattern

* Follow Akri pattern

* r/webhook-configuration/webhookConfiguration

* correct path references

* Cross-build Rust

* Exceptions no longer required

* Assume `./target/release/webhook-configuration`

* Expose x-plat targets to docker

* Omission

* Improve handling of flags

* Tidy

* Correct indendation

* Version bump

* Update `CHANGELOG`

* `cargo.lock` versions now bumped too

* Temporarily (!) bumping build timeouts

* Corrected component reference

* Missed `build-arg=CROSS_BUILD_TARGET=...`

* Avoid Helm issue with un-`named` `Lists`

* Revert `CHANGELOG`

* Added unit tests

* Filters Akri Configuration manifest so that it validates

* Added test for filtered `generation`

* Added test for extended (complete) Config

* To avoid GitHub Actions build failure

* End-to-End Webhook tests

* Integration tests require `actix-rt`

* Include `webhook-configuration` container image

* Learns all the things!

* Typo

* Added `webhook` to `test-case`s

* Removed `get_agent_and_controller` reference

* Simplified Actions `matrix`; Updated Webhook certs

* Override `webhookConfiguration.image.tag` to `pr-amd64`

* Add debugging

* Typo

* sudo'ing `kubectl` commands

* Try subprocess; reduce test matrix

* Add `shell=True`

* More `describe`s

* Correct `kubectl --selector` commands

* Reflect r/ENTRYPOINT/CMD in Dockerfile

* Try matrix

* Debugging Kubenernetes 1.16

* Additional MicroK8s 1.16+1.17 and debugging

* Generate: `*-webhook-log` from GitHub Actions

* Add some debugging statements

* K8s 1.16 expects AdmissionReview to be v1beta1

* Checking K3s 1.16+1.17

* Ordering may be significant

* Reverted

* Don't delete CRDs; Remove redundant debugging

* Limit to distro-versions known to work for E2Es

* Bumped OpenAPI-generated sources due to Akri security audit issues

* Documents `run-webook.py`

* Typo

* `expect` only when providing useful message

* fix Makefile formatting for image push [SAME VERSION]

* add updates to lock file fir admission controller webhook dependencies (project-akri#254)

* proposal for logging standards

* Fix typo

* Simplify containers makefile (project-akri#256)

* simplify makefile for containers

* add for all containers

* fix indent

* bump version

* try to fix indentation

* fix manifest creation error (project-akri#257)

* Fix onvif

* changes to the particular makefiles should invoke container workflow (project-akri#258)

* Add more docs for akri build (project-akri#260)

* add docs for akri build

* address feedback

* add local instructions

* fix mistakes

* Auto-updated dependencies

* Allow dependencies auto update to be manually run

* Auto-updated dependencies

* increase timeout for tarpaulin and check-rust workflows (project-akri#266)

* Increase docker create timeout to 600 minutes and document this hidden timeout (project-akri#267)

* Try same env var for action and container timeout

* output script to verify

* try reusing timeout-minutes directly

* Try moving timeout to step and access that directly

* try fixing env var creation

* try using env var again

https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#job-context suggests timeout-minutes can be set from env

* Use step.timeout-minutes because it can pull from env var

* Update run-tarpaulin.yml

* just make the docker keep alive script sleep 600 minutes

* remove env var

* fix typo

* typos, typos, typos

* create certs for webhook e2e tests with longer lasting CA (project-akri#271)

* Enable Discovery Handlers as Pods (project-akri#252)

* Move security audit checks to a daily schedule instead of on PRs

* Fix typo

* Link to specific github run url from github context

* rename rust jobs

* remove unnecessary job

* only run on main and not forks

* Update security-audit.yml

Restrict the action to main repo and not forks

* Serialize Configuration Properties for Webhook (project-akri#276)

* don't skip serializing configuration properties

* increase version

* rust fmt fixes

* Try to ONLY build rust once per platform (project-akri#270)

* build rust once/platform, share with artifacts

* timeout => timeout-minutes

* trigger when build-rust-code changes

* only run container builds after successful rust build

* install rust toolchain to build rust

* add crossbuild qemu

* reduce retention to minimum

* make test timeout longer

* update version

* Fix artifact name [SAME VERSION] (project-akri#280)

* fix artifact name [SAME VERSION]

* only run for main

* Add Workflow to Cancel Previous PR Workflows [SAME VERSION] (project-akri#281)

* add workflow to cancel all previous workflows on a pr

* remove security workflow and cancel workflow from list

* Build both slim and full Agents [IGNORE INTERMEDIATE BUILDS] (project-akri#279)

* specify component name in agent multiarch build (project-akri#285)

* Build discovery handler images [SAME VERSION] (project-akri#286)

* Enable Canceling Previous Workflows on PRs from Forks [SAME VERSION] (project-akri#284)

* use workflow_run trigger in cancel workflow

* only run cancel workflow explicitly for pull_request events

* Increase e2e test timeout [SAME VERSION] (project-akri#287)

* increase e2e test timeout

* increase timeout further

* Ensure Discovery Handler is marked as available again after Configuration deletions (project-akri#282)

* Make sure `shared` environment variable is set in debug echo Discovery Handler (project-akri#289)

* Overwrite latest tag when user specifies a tag (project-akri#293)

* overwrite latest tag when user supplies tag

* increase version

* Auto-updated dependencies

* Reference correct Agent features for embedding Discovery Handlers [IGNORE INTERMEDIATE BUILDS] (project-akri#295)

* Debug echo properties (project-akri#288)

* Add Documentation on using Debug Echo [SAME VERSION] (project-akri#296)

* make sure webhook-configuration version updated in lock file (project-akri#300)

* Remove un-utilized CRD field (project-akri#290)

* remove rbac property from Instance CRD

* bump minor version to 0.5.0 for breaking change

* Rename CRD fields to be more descriptive (project-akri#297)

* change Configuration.properties to Configuration.brokerProperties

* change Instance.metadata to Instance.brokerProperties

* increase minor version due to CRD breaking change

* fix errors in user guide (project-akri#302)

* Remove udev directory mount from Agent (project-akri#304)

* Extend documentation (project-akri#303)

* Documentation fixes (project-akri#307)

A few simple fixes to the Debug Echo documentation.

Signed-off-by: Hernan Gatta <[email protected]>

* fix opc ua configuration table in docs (project-akri#309)

* use sudo when getting logs in e2e tests (project-akri#312)

* suggest background reading before discovery handler development (project-akri#310)

* Update cluster setup documentation (project-akri#308)

* lint helm chart with values (project-akri#306)

* Add documentation on setting a Configuration's `brokerProperties` (project-akri#311)

* Fix end-to-end tests (project-akri#301)

* Reduce K3s and MicroK8s eviction limits for tests [SAME VERSION] (project-akri#313)

* reduce K3s eviction limits for tests

* reduce MicroK8s limits

* Rename configuration templates (project-akri#315)

* rename configuration templates

* increase version

* Set compute resource limits and requests for all Akri components (project-akri#305)

* Extensibility example fixes [SAME VERSION] (project-akri#321)

* Use latest Rust and Tarpaulin (project-akri#318)

* use latest tarpaulin in workflow

* use latest rust in workflows

* increase version

* use previous tarpaulin version due to segfault issue

* Increase dependency minor versions where possible [SAME VERSION] (project-akri#323)

* increase cfg-if, env_logger, mockall_double, prometheus, udev, opcua-client, and rand crate minor versions

* increase version

* extend sleep in test case workflow to 45 minutes for component builds to complete (project-akri#326)

* Test e2e tests on latest K8s version [SAME VERSION] (project-akri#317)

* reference Akri's release Helm chart in documentation (project-akri#325)

* Update CHANGELOG for v0.6.5 release (project-akri#319)

* [Extensibility] HTTP protocol (branch: http-extensibility) (project-akri#135)

* Initial commit

* Working

* Correct errors & revise for Device|Discovery v2

* Working

* Should (!) work

* Typo

* Enrich

* Refine

* Fixes: project-akri#102

* Moves

* Resolved

* Revised for `dnsPolicy`

* Dockerfiles

* Added gRPC solution

* Replaced

* Kubernetes specs

* Merge

* Correct Kubernetes config filenames

* Typo

* Removed duplicate

* Standalone broker exposes no ports

* end-to-end-demo-gce.md: fixing 1 typo (project-akri#131)

Hi,
just removing the superfluous 's'
Didier

* link to codecov.io and use codecov action (project-akri#134)

* Update end-to-end-demo.md (project-akri#112)

* Update end-to-end-demo.md

Hi there
I extended the documentatio with the installation of linux-modules-extra because I had to add this package on Ubuntu 20.04 LTS (on a GCE instance): it seems that it doesn't come by default on distros / images aimed at backend servers. v4l loopback won't load if this other module is not present.
Didier

* Update end-to-end-demo.md

fixing initial text according to revision notes in PR review

* Update end-to-end-demo.md

fixing style

* Update end-to-end-demo.md

simplifying text, based on PR review by Kate

* rebase to finalize PR

* Fix codecov for pull_request_target [SAME VERSION] (project-akri#138)

* fix codecov for pull_request_target

* add anti-pull-request-* conditional

* Do not upload to codecov on PRs (project-akri#140)

* end-to-end-demo-rpi4: fixing 1 typo (project-akri#143)

Hello,
Title says it all
Didier

* end-to-end demo : fixing 1 typo (project-akri#141)

Hi there,
The title says it all
Didier

* Minor e2e demo doc flow change (project-akri#139)

* Minor flow change

* Cleanup

* Expand udev rule support (project-akri#130)

* add support for SUBSYSTEMS, KERNELS, ATTRIBUTES, DRIVERS, and TAGS fields

* fix formatting and add comments

* add recursive search for subsystems

* update udev configuration document with newly supported fields

* check child device for field before looking up hierarchy

* update version

* document how to filter for only devices with devnodes when testing

* reuse shared code

* rust fmt fixes

* add inline documentation for regex matching

* Update end-to-end-demo.md (project-akri#113)

Hi there,
I added a comment regarding the importance of the version of v4l2loopback to avoid my personal initial mistake to others: I did not realize at start that the version was so important. So I went through this ticket with the dev: umlaeute/v4l2loopback#370
Didier

Co-authored-by: bfjelds <[email protected]>

* Add sudo into udev configuration doc (project-akri#144)

* Use arm7

* Reference arm7

* Reference branch on clone

* `REPO="akri"`

* Helm template for Agent already revised

* Consistency

* Use `./version.txt` for Akri version

* Automate IMAGE updates

* Build|Push gRPC images; Add'l consistency

* Add Action to build HTTP Broker containers

* I guess `http-extensibility` not `main`

* Enable PRs to test changes to helm charts [SAME VERSION] (project-akri#146)

* enable PRs to test changes to helm charts

* handle manual job, fix push and release conditional

* trigger e2e for helm changes

* Updates references to `armv7`

* Removed `shared`  from HTTP Broker Dockerfiles

* Correct version reference for image tags

* Typo

* Adds Golang Device|Discovery and alt-gRPC

* s/println!/trace!

* Consistency

* Reflect relocation of apps

* Simplify environment

* Typo

* Consistency on repo names for HTTP apps

* Rename HTTP apps gRPC images

* GitHub Actions to build HTTP apps containers

* Configure broker security context (project-akri#148)

* make udev broker security context configurable

* update version

* change group permissions to be default in example

* fix comment with group id

* Remove privileged security context from Akri Agent (project-akri#147)

* Remove (redundant!?) aliasing

* Remove healthchecks (`/healthz`)

* Removed `akri-shared` dep

* Simplified using `strategy.matrix`

* Revised to use `strategy.matrix`

* reference macro using fully-qualified module name

* r|Microsoft|deislabs/akri

* Remove unnecessary include

* Add precision on arch being built

* Consistent image naming and v1

* Remove `/v2/` references

* Explantion of different broker implementations

* Cleanup Workflows [IGNORE INTERMEDIATE BUILDS][SAME VERSION] (project-akri#155)

* don't persist github creds and remove setup.sh from workflows

* Update CHANGELOG for release v0.0.44 (project-akri#153)

* Update CHANGELOG for release v0.0.44

* update release to better describe helm changes and supported flavors

* add note about known k3s incompat

* Pin CHANGELOG changes to the expected label

* Fix CHANGELOG typo

* Optimize build and test all supported versions (project-akri#157)

* build once, test all supported versions

* test step needs build step

* fix copy-paste error

* use startsWith instead of '==' to check kube-runtime

* for download, specifying path introduces an unwanted directory

* load the artifact containers into docker for Kubernetes

* microk8s ctr images import is mysteriously failing with 'context deadline exceeded'

* avoid k3s' crictl, add more testing versions for kubernetes & k3s

* allow downgrades for kubernetes install, try to understand microk8s image import failure

* swallow the return code of version checks

* use persist-creds=false

* disable microk8s 1.19 for now

* microk8s 1.19 requires small sleep before it is ready for ctr requests

* to ensure sequential running, we cannot skip the build-containers job (just its steps) (project-akri#159)

* Update user guide with first release tag for Akri release chart (project-akri#160)

* update user guide with first release tag for akri release chart

* reference akri release chart instead of dev chart in docs

* Remove pull_request_target triggers and minimize credential use [SAME VERSION] [IGNORE INTERMEDIATE BUILDS] (project-akri#161)

* remove dockerhub credentials from workflows

* add link to repo to intermediate containers

* remove pull_request_target

* only log into docker when pushing changes to ghcr

* Typos

* Added existing "Extensibility" preamble

* Tidy

* Replace "Extensibility"

* attempt to merge extensibility.md

i focused on the standalone to cut down on the size (the file is still 800+ lines) with a thought towards linking to some md files in http-extensibility branch for more details (on the rust grpc and golang grpc).

* tighten up to reduce size

combine device and discovery into one http server/pod, remove some comments from quoted code

* provide a few more explanations

* fix typo

* Use matrix for build-http-broker-containers.yaml

* Replace backup md file with extensibility-http-grpc.md

Create document for deeper dive into gRPC broker/client code.  This can be referenced from extensibility.md.

* update extensibility.md to be consistent 'HTTP'

* create links to http-extensibility branch

* after walkthrough, make a couple fixes

* use different curl container

busyboxplus seems to have a dns problem that manifests on k3s

* remove workflows for http-extensibility

* remove new workflows in extensibility branch

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Kate Goldenring <[email protected]>

* add http discovery handler to the discovery handler modules folder

Co-authored-by: Didier Durand <[email protected]>
Co-authored-by: Jiayi Hu <[email protected]>
Co-authored-by: Jiayi Hu <[email protected]>
Co-authored-by: Roaa <[email protected]>
Co-authored-by: Daz Wilkin <[email protected]>
Co-authored-by: Ronan Flynn-Curran <[email protected]>
Co-authored-by: romoh <[email protected]>
Co-authored-by: Chao Zheng <[email protected]>
Co-authored-by: bfjelds <[email protected]>
Co-authored-by: Jiri Appl <[email protected]>
Co-authored-by: Hernan Gatta <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants