text:
添加直通GPU参数后报错！

docker create
  --name='Virtual-DSM'
  --net='bridge'
  -e TZ="Asia/Shanghai"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="Tower"
  -e HOST_CONTAINERNAME="Virtual-DSM"
  -e 'DISK_SIZE'='10T'
  -e 'RAM_SIZE'='2048M'
  -e 'CPU_CORES'='2'
  -e 'DHCP'='N'
  -e 'ALLOCATE'='N'
  -e 'DEBUG'='Y'
  -e 'GPU'='Y'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:5000]'
  -l net.unraid.docker.icon='https://cdn.jsdelivr.net/gh/xushier/HD-Icons/border-radius/Synology_A.png'
  -p '5000:5000/tcp'
  -p '5001:5001/tcp'
  -v '/mnt/user/appdata/Virtual-dsm':'/storage':'rw'
  --device='/dev/dri'
  --device='/dev/vhost-net'
  --device='/dev/kvm'
  --stop-timeout 60
  --cap-add NET_ADMIN
  --device-cgroup-rule='c 241:* rwm' 'kroese/virtual-dsm:latest'

++ ip link add dev dockerbridge type bridge
++ rc=0
++ ((  rc != 0  ))
++ ip address add 20.20.20.1/24 broadcast 20.20.20.255 dev dockerbridge
++ ip link set dockerbridge up
++ ip tuntap add dev dsm mode tap
++ ip link set dsm up promisc on
++ ip link set dev dsm master dockerbridge
+++ ip address show dev eth0
+++ grep inet
+++ awk '/inet / { print $2 }'
+++ cut -f1 -d/
++ IP=172.17.0.15
++ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
++ iptables -t nat -A PREROUTING -i eth0 -d 172.17.0.15 -p tcp -j DNAT --to 20.20.20.21
++ iptables -t nat -A PREROUTING -i eth0 -d 172.17.0.15 -p udp -j DNAT --to 20.20.20.21
++ ((  KERNEL > 4  ))
++ iptables -A POSTROUTING -t mangle -p udp --dport bootpc -j CHECKSUM --checksum-fill
++ /usr/sbin/dnsmasq --dhcp-range=20.20.20.21,20.20.20.21 --dhcp-host=02:11:32:28:41:aa,,20.20.20.21,VirtualDSM,infinite --dhcp-option=option:netmask,255.255.255.0 --dhcp-option=option:dns-server,10.0.0.1,208.67.220.220 --dhcp-option=option:router,20.20.20.1

echo 129
qemu-system-x86_64 -nodefaults -boot strict=on -display egl-headless,rendernode=/dev/dri/renderD128 -device virtio-vga,id=video0,max_outputs=1,bus=pcie.0,addr=0x1 -smp 2,sockets=1,dies=1,cores=2,threads=1 -m 2048M -machine type=q35,usb=off,dump-guest-core=off,hpet=off,accel=kvm -enable-kvm -cpu host -monitor telnet:localhost:7100,server,nowait,nodelay -serial mon:stdio -device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,host=127.0.0.1,port=12345,reconnect=10 -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=vchannel -netdev tap,ifname=dsm,script=no,downscript=no,id=hostnet0,vhost=on,vhostfd=40 -device virtio-net-pci,romfile=,netdev=hostnet0,mac=02:11:32:28:41:aa,id=net0 -device virtio-scsi-pci,id=hw-synoboot,bus=pcie.0,addr=0xa -drive file=/storage/DSM_VirtualDSM_64561.boot.img,if=none,id=drive-synoboot,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on -device scsi-hd,bus=hw-synoboot.0,channel=0,scsi-id=0,lun=0,drive=drive-synoboot,id=synoboot0,rotation_rate=1,bootindex=1 -device virtio-scsi-pci,id=hw-synosys,bus=pcie.0,addr=0xb -drive file=/storage/DSM_VirtualDSM_64561.system.img,if=none,id=drive-synosys,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on -device scsi-hd,bus=hw-synosys.0,channel=0,scsi-id=0,lun=0,drive=drive-synosys,id=synosys0,rotation_rate=1,bootindex=2 -device virtio-scsi-pci,id=hw-userdata,bus=pcie.0,addr=0xc -drive file=/storage/data.img,if=none,id=drive-userdata,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on -device scsi-hd,bus=hw-userdata.0,channel=0,scsi-id=0,lun=0,drive=drive-userdata,id=userdata0,rotation_rate=1,bootindex=3 -device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x4 -object rng-random,id=objrng0,filename=/dev/urandom -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c
MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load driver: iris
MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load driver: zink
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load driver: kms_swrast
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load swrast driver
qemu-system-x86_64: egl: gbm_create_device failed
qemu-system-x86_64: egl: render node init failed
❯ Starting Virtual DSM for Docker v4.17...
❯ Container IP is 172.17.0.15 with gateway 172.17.0.1

/etc/resolv.conf:
Generated by dhcpcd from eth0.dhcp6, eth0.ra
Generated by rc.inet1
nameserver 10.0.0.1
nameserver 208.67.220.220
nameserver fdc7:356b:2220::1
❯ QEMU emulator version 7.2.5
char device redirected to /dev/pts/0 (label charserial0)
** 按任意键关闭此窗口 **

So if I want to keep my data, what files can I delete to reinstall the system?

Emm, @kroese 为了控制docker镜像的大小，目前暂时把gpu驱动的安装放在了install.sh里，这个脚本只有全新安装的时候才会执行，所以你应该是需要手动安装驱动 。

VirtualDSM login: [   28.986926] iSCSI:target_core_rodsp_server.c:1025:rodsp_server_init RODSP server started, login_key(ee18f58af596).
[   28.992795] iSCSI:extent_pool.c:766:ep_init syno_extent_pool successfully initialized
[   29.000100] iSCSI:target_core_device.c:612:se_dev_align_max_sectors Rounding down aligned max_sectors from 4294967295 to 4294967288
[   29.001654] iSCSI:target_core_configfs.c:5763:target_init_dbroot db_root: cannot open: /etc/target
[   29.003082] iSCSI:target_core_lunbackup.c:366:init_io_buffer_head 2048 buffers allocated, total 8388608 bytes successfully
[   29.017474] iSCSI:target_core_file.c:152:fd_attach_hba RODSP plugin for fileio is enabled.
[   29.018738] iSCSI:target_core_file.c:159:fd_attach_hba ODX Token Manager is enabled.
[   29.019924] iSCSI:target_core_multi_file.c:91:fd_attach_hba RODSP plugin for multifile is enabled.
[   29.021249] iSCSI:target_core_ep.c:795:ep_attach_hba RODSP plugin for epio is enabled.
[   29.022435] iSCSI:target_core_ep.c:802:ep_attach_hba ODX Token Manager is enabled.
[   29.078771] workqueue: max_active 1024 requested for vhost_scsi is out of range, clamping between 1 and 512
[   31.300657] findhostd uses obsolete (PF_INET,SOCK_PACKET)
[   33.338396] fuse init (API version 7.23)

卡在这里了

卡在这里了

这里已经进系统了吧，是不是你自己限定的cgroup权限不够..

but
gzxiexl@VirtualDSM:~$ sudo ls /dev/dri
ls: cannot access '/dev/dri': No such file or directory

If gzxiexl@VirtualDSM is inside the SSH console of DSM then it's normal that you don't see /dev/dri, because it's running inside a VM. So /dev/dri is passed to the host (Debian) docker container, and not to the DSM VM.

这样意味着GPU直通的使用目的或者场景是怎样的呢？并不能给DSM VM用户emby转码之类的吗？

这样意味着GPU直通的使用目的或者场景是怎样的呢？并不能给DSM VM用于emby转码之类的吗？

场景就是你在想的那几个场景，但因为这是Virtual DSM，所以vdsm里用的是虚拟GPU，没有dri目录的，驱动就该装在容器宿主机，否则完全直通进去的话，你就得在vdsm镜像里装驱动了，这就不太合适了。
毕竟它正确的使用环境就是白群晖自己开的虚拟机，项目就是在模拟这个环境。

这样意味着GPU直通的使用目的或者场景是怎样的呢？并不能给DSM VM用于emby转码之类的吗？

场景就是你在想的那几个场景，但因为这是Virtual DSM，所以vdsm里用的是虚拟GPU，没有dri目录的，驱动就该装在容器宿主机，否则完全直通进去的话，你就得在vdsm镜像里装驱动了，这就不太合适了。
毕竟它正确的使用环境就是白群晖自己开的虚拟机，项目就是在模拟这个环境。

在容器控制台ls/dev/dri已经有了 说明 GPU 直通成了 但是没懂 vdsm 里如何设置能用到 GPU 呢，比如 emby 转码

这样意味着GPU直通的使用目的或者场景是怎样的呢？并不能给DSM VM用于emby转码之类的吗？

场景就是你在想的那几个场景，但因为这是Virtual DSM，所以vdsm里用的是虚拟GPU，没有dri目录的，驱动就该装在容器宿主机，否则完全直通进去的话，你就得在vdsm镜像里装驱动了，这就不太合适了。
毕竟它正确的使用环境就是白群晖自己开的虚拟机，项目就是在模拟这个环境。

在容器控制台ls/dev/dri已经有了 说明 GPU 直通成了 但是没懂 vdsm 里如何设置能用到 GPU 呢，比如 emby 转码

这个是虚拟的docker的虚拟GPU，显卡没有直通到docker里面去。不过确实能用GPU相关的功能了，很牛的方案，我这边十代的10400 CPU都能人脸识别了。之前用虚拟机直通显卡只能硬解视频，不能人脸识别。
你不要管在DSM里面运行ls dev/dri没结果，直接装Photos或VideoStation试试。人脸识别和硬解都能用的。Emby转码估计也能用。看你的界面是Unraid，外面的GPU统计看不到3D渲染的，只是流量大了许多。不知道是啥原理和机制。
能用就行， 牛

这样意味着GPU直通的使用目的或者场景是怎样的呢？并不能给DSM VM用于emby转码之类的吗？

场景就是你在想的那几个场景，但因为这是Virtual DSM，所以vdsm里用的是虚拟GPU，没有dri目录的，驱动就该装在容器宿主机，否则完全直通进去的话，你就得在vdsm镜像里装驱动了，这就不太合适了。
毕竟它正确的使用环境就是白群晖自己开的虚拟机，项目就是在模拟这个环境。

在容器控制台ls/dev/dri已经有了 说明 GPU 直通成了 但是没懂 vdsm 里如何设置能用到 GPU 呢，比如 emby 转码

这个是虚拟的docker的虚拟GPU，显卡没有直通到docker里面去。不过确实能用GPU相关的功能了，很牛的方案，我这边十代的10400 CPU都能人脸识别了。之前用虚拟机直通显卡只能硬解视频，不能人脸识别。
你不要管在DSM里面运行ls dev/dri没结果，直接装Photos或VideoStation试试。人脸识别和硬解都能用的。Emby转码估计也行，但是如果要选显卡的话，就不知道情况了。 看你用的是Unraid，外面的GPU统计看不到3D渲染的，只是流量大了许多，跟虚拟机直通显卡不一样，不知道是啥原理和机制。 话说Unraid里面可以直接建Emby的Docker啊，没必要在DSM的Docker里面弄。

我也是10400 系统是unraid 实测下来人脸识别ok 但是VideoStation离线转码不行。

这样意味着GPU直通的使用目的或者场景是怎样的呢？并不能给DSM VM用于emby转码之类的吗？

场景就是你在想的那几个场景，但因为这是Virtual DSM，所以vdsm里用的是虚拟GPU，没有dri目录的，驱动就该装在容器宿主机，否则完全直通进去的话，你就得在vdsm镜像里装驱动了，这就不太合适了。
毕竟它正确的使用环境就是白群晖自己开的虚拟机，项目就是在模拟这个环境。

在容器控制台ls/dev/dri已经有了 说明 GPU 直通成了 但是没懂 vdsm 里如何设置能用到 GPU 呢，比如 emby 转码

这个是虚拟的docker的虚拟GPU，显卡没有直通到docker里面去。不过确实能用GPU相关的功能了，很牛的方案，我这边十代的10400 CPU都能人脸识别了。之前用虚拟机直通显卡只能硬解视频，不能人脸识别。
你不要管在DSM里面运行ls dev/dri没结果，直接装Photos或VideoStation试试。人脸识别和硬解都能用的。Emby转码估计也行，但是如果要选显卡的话，就不知道情况了。 看你用的是Unraid，外面的GPU统计看不到3D渲染的，只是流量大了许多，跟虚拟机直通显卡不一样，不知道是啥原理和机制。 话说Unraid里面可以直接建Emby的Docker啊，没必要在DSM的Docker里面弄。

我也是10400 系统是unraid 实测下来人脸识别ok 但是VideoStation离线转码和jellyfin试了都不行。unraid下直接建个emby的docker了，么必要在vdsm里，就是测试一下。

人脸识别都行，应该GPU已经起作用了。硬解要找别的原因了。这个图里面是音轨无法识别，貌似跟GPU没啥关系。应该是VideoStation不支持的音轨，需要装个音频解码器。建议提前装好 AME 和 FFMPEG-Patcher 再试试。
或者换个别的音轨的电影试试。

这样意味着GPU直通的使用目的或者场景是怎样的呢？并不能给DSM VM用于emby转码之类的吗？

场景就是你在想的那几个场景，但因为这是Virtual DSM，所以vdsm里用的是虚拟GPU，没有dri目录的，驱动就该装在容器宿主机，否则完全直通进去的话，你就得在vdsm镜像里装驱动了，这就不太合适了。
毕竟它正确的使用环境就是白群晖自己开的虚拟机，项目就是在模拟这个环境。

在容器控制台ls/dev/dri已经有了 说明 GPU 直通成了 但是没懂 vdsm 里如何设置能用到 GPU 呢，比如 emby 转码

这个是虚拟的docker的虚拟GPU，显卡没有直通到docker里面去。不过确实能用GPU相关的功能了，很牛的方案，我这边十代的10400 CPU都能人脸识别了。之前用虚拟机直通显卡只能硬解视频，不能人脸识别。
你不要管在DSM里面运行ls dev/dri没结果，直接装Photos或VideoStation试试。人脸识别和硬解都能用的。Emby转码估计也行，但是如果要选显卡的话，就不知道情况了。 看你用的是Unraid，外面的GPU统计看不到3D渲染的，只是流量大了许多，跟虚拟机直通显卡不一样，不知道是啥原理和机制。 话说Unraid里面可以直接建Emby的Docker啊，没必要在DSM的Docker里面弄。

我也是10400 系统是unraid 实测下来人脸识别ok 但是VideoStation离线转码和jellyfin试了都不行。unraid下直接建个emby的docker了，么必要在vdsm里，就是测试一下。

人脸识别都行，应该GPU已经起作用了。硬解要找别的原因了。这个图里面是音轨无法识别，貌似跟GPU没啥关系。应该是VideoStation不支持的音轨，需要装个音频解码器。建议提前装好 AME 和 FFMPEG-Patcher 再试试。 或者换个别的音轨的电影试试。

AME 和 FFMPEG-Patcher都装了试了，包括emby和jellyfin，都无法硬解，不知道photos是如何调用GPU的 如果有大佬能研究出来估计也适用于视频解码。

AME 和 FFMPEG-Patcher都装了试了，包括emby和jellyfin，都无法硬解，不知道photos是如何调用GPU的 如果有大佬能研究出来估计也适用于视频解码。

建议自查一下部署细节，实测在正确安装上述软件后音视频解码都不会有问题..

AME 和 FFMPEG-Patcher都装了试了，包括emby和jellyfin，都无法硬解，不知道photos是如何调用GPU的 如果有大佬能研究出来估计也适用于视频解码。

建议自查一下部署细节，实测在正确安装上述软件后音视频解码都不会有问题..

能否贴下您的docker命令

AME 和 FFMPEG-Patcher都装了试了，包括emby和jellyfin，都无法硬解，不知道photos是如何调用GPU的 如果有大佬能研究出来估计也适用于视频解码。

建议自查一下部署细节，实测在正确安装上述软件后音视频解码都不会有问题..

确定视频可以GPU转码？？emby jellyfin的转码设置我都试了 只能软解啊

authors: Kissycat gzxiexl jinlife

repo: kroese/virtual-dsm


text:
Inconsistent naming across exchange markets

HitBTC exchange has both DASH/BTC and DSH/BTC pairs with different prices. I'd expect naming pair would be consistent across various markers, however following code proves me otherwise:
import ccxt
h = ccxt.bitfinex()
h.load_products()
pp.pprint(h.fetch_ticker("DSH/BTC"))

k = ccxt.hitbtc()
k.load_products()
pp.pprint(k.fetch_ticker("DSH/BTC"))

Output:
{'ask': 0.081222,
 'average': 0.080965,
 'baseVolume': None,
 'bid': 0.080708,
 'change': None,
 'close': None,
 'datetime': '2017-07-06T15:21:00.000Z',
 'first': None,
 'high': 0.087383,
 'info': {'ask': '0.081222',
          'bid': '0.080708',
          'high': '0.087383',
          'last_price': '0.080573',
          'low': '0.07499',
          'mid': '0.080965',
          'timestamp': '1499354460.27357124',
          'volume': '11299.25037405'},
 'last': 0.080573,
 'low': 0.07499,
 'open': None,
 'percentage': None,
 'quoteVolume': 11299.25037405,
 'timestamp': 1499354460273.5713,
 'vwap': None}
{'ask': 1.2085e-05,
 'average': None,
 'baseVolume': 11216.0,
 'bid': 1.2023e-05,
 'change': None,
 'close': None,
 'datetime': '2017-07-06T15:21:00.000Z',
 'first': None,
 'high': 1.2999e-05,
 'info': {'ask': '0.000012085',
          'bid': '0.000012023',
          'high': '0.000012999',
          'last': '0.000012085',
          'low': '0.000012023',
          'open': '0.000012015',
          'timestamp': 1499354460429,
          'volume': '11216',
          'volume_quote': '0.000000000'},
 'last': 1.2085e-05,
 'low': 1.2023e-05,
 'open': 1.2015e-05,
 'percentage': None,
 'quoteVolume': 0.0,
 'timestamp': 1499354460429,
 'vwap': None}

Also with HitBTC I get a lot of internal server errors when querying their API via this library.

This is not inconsistency actually, DSH and DASH are not the same currency/token. You should probably google it first,  but if you do, you are likely to find mixed information about both in one search query.
As written here:
https://minergate.com/blog/dashcoin-and-dash/
These are two totally different currencies with similar names. Dash was launched as XCoin in January 18, 2014, and 10 days later was rebranded as Darkcoin. On March 26, 2015 Darkcoin was renamed to Dash. Partly in order to gain over Dashcoin users and partly to expand the brand, and that was the time when this confusion began.
Dash (DASH) is a coin based on X11 algorithm. It’s a system which consists of 11 chain hashing algorithms for the-proof-of-work. Another feature of Dash is Darksend, a special scheme which allows you to always stay anonymous. Dash is designed for powerful CPUs.
How to distinguish

Pay attention to the logo.
dashcoin:

Dash:

Mind the initial letter of a wallet address. A Dashcoin wallet always starts with the letter ’d’, while a Dash one starts with an ‘x ‘, which is the legacy of its first title XCoin.

Notice the ticker, an abbreviated cryptocurrency name. Dashcoin is referred to as DSH, whereas Dash is known as DASH. It’s pretty simple: the longest name has the shortest ticker.

Finally, you may explore the currencies’ official websites and accounts in social media.

Official Dashcoin website http://dashcoin.info/
Official Dash website https://www.dash.org/

Nevertheless, I expect that naming scheme be consistent under different markets, that is if I ask for DSH/BTC pair in one market, I'll get same pair on other markets too.

It's not in issue whether there exist DASH and DSH, but the naming consistency across markets.

There's also reverse pair naming in different markets with similar ask/bid/last price:
import ccxt
h = ccxt.kraken()
h.load_products()
pp.pprint(h.fetch_ticker("ETH/BTC"))

k = ccxt.bittrex()
k.load_products()
pp.pprint(k.fetch_ticker("BTC/ETH"))

Output:
{'ask': 0.102895,
 'average': None,
 'baseVolume': None,
 'bid': 0.102745,
 'change': None,
 'close': None,
 'datetime': '2017-07-06T15:57:31.000Z',
 'first': None,
 'high': 0.105472,
 'info': {'a': ['0.102895', '3', '3.000'],
          'b': ['0.102745', '30', '30.000'],
          'c': ['0.102896', '1.50000000'],
          'h': ['0.105472', '0.105472'],
          'l': ['0.100500', '0.099300'],
          'o': '0.102000',
          'p': ['0.103227', '0.100233'],
          't': [4984, 8575],
          'v': ['18455.17522042', '30599.50119370']},
 'last': 0.102896,
 'low': 0.0993,
 'open': 0.102,
 'percentage': None,
 'quoteVolume': 30599.5011937,
 'timestamp': 1499356650937,
 'vwap': 0.100233}
{'ask': 0.10309993,
 'average': None,
 'baseVolume': None,
 'bid': 0.10300001,
 'change': None,
 'close': None,
 'datetime': '2017-07-06T15:53:59.000Z',
 'first': None,
 'high': 0.1055,
 'info': {'Ask': 0.10309993,
          'BaseVolume': 3300.39366237,
          'Bid': 0.10300001,
          'Created': '2015-08-14T09:02:24.817',
          'High': 0.1055,
          'Last': 0.10300001,
          'Low': 0.099485,
          'MarketName': 'BTC-ETH',
          'OpenBuyOrders': 5491,
          'OpenSellOrders': 11723,
          'PrevDay': 0.10000201,
          'TimeStamp': '2017-07-06T15:53:59.59',
          'Volume': 32130.16436321},
 'last': 0.10300001,
 'low': 0.099485,
 'open': None,
 'percentage': None,
 'quoteVolume': 32130.16436321,
 'timestamp': 1499356439000,
 'vwap': None}

If I reverse the arguments under any market it screams with some exceptions, depending on where it breaks.

When you ask for DSH/BTC from Bitfinex and then ask DSH/BTC from HitBTC, you are getting the same pair. But notice that the HitBTC DSH volume is 0.0, meaning that the price for DSH/BTC may be outdated there (this is what their API gives). Whereas on Bitfinex the price is up to date.
As for reverse pair naming – I will fix that for bittrex, thank you for noting that!

You cannot reverse pairs manually, and should only be using the keys of market.products array.
import ccxt

kraken = ccxt.kraken()
kraken.load_products ()
print (list (kraken.products.keys ())) # use these symbols only

bittrex = ccxt.bittrex ()
bittrex.load_products ()
print (list (bittrex.products.keys ())) # use these symbols only

Thank you for your report, I will investigate further into the reversed pairs to fix that for more consistency across markets.

When you ask for DSH/BTC from Bitfinex and then ask DSH/BTC from HitBTC, you are getting the same pair. But notice that the HitBTC DSH volume is 0.0, meaning that the price for DSH/BTC may be outdated there (this is what their APIs return). Whereas on Bitfinex the price is up to date.

I'm not really following you here. From Bitfinex I'm getting DASH/BTC pair instead of DSH/BTC(which IIRC doesn't exist on that exchange). Prices match approximately.

Thank you for your report, I will investigate further into the reversed pairs to fix that for more consistency across markets.

import ccxt
h = ccxt.poloniex()
h.load_products()
pp.pprint(h.fetch_ticker("BTC/ETH"))

k = ccxt.gdax()
k.load_products()
pp.pprint(k.fetch_ticker("ETH/BTC"))

There are more markets where they have internal inconsistencies. Those are ones I found for now, though I haven't been looking too hard.

Oh yeah, and there's this market API/consistency gem:
import ccxt
h = ccxt.btce()
h.load_products()
pp.pprint(h.fetch_ticker("ETH/LTC"))

k = ccxt.bittrex()
k.load_products()
pp.pprint(k.fetch_ticker("ETH/LTC"))

{'ask': 5.262,
 'average': 5.23501,
 'baseVolume': 6538.3599,
 'bid': 5.28339,
 'change': None,
 'close': None,
 'datetime': '2017-07-06T16:25:01.000Z',
 'first': None,
 'high': 5.52,
 'info': {'avg': 5.23501,
          'buy': 5.28339,
          'high': 5.52,
          'last': 5.262,
          'low': 4.95002,
          'sell': 5.262,
          'updated': 1499358301,
          'vol': 34721.04192,
          'vol_cur': 6538.3599},
 'last': 5.262,
 'low': 4.95002,
 'open': None,
 'percentage': None,
 'quoteVolume': 34721.04192,
 'timestamp': 1499358301000,
 'vwap': None}
{'ask': 0.19299995,
 'average': None,
 'baseVolume': None,
 'bid': 0.19,
 'change': None,
 'close': None,
 'datetime': '2017-07-06T16:24:54.000Z',
 'first': None,
 'high': 0.20499999,
 'info': {'Ask': 0.19299995,
          'BaseVolume': 1658.76170155,
          'Bid': 0.19,
          'Created': '2017-06-25T03:06:46.83',
          'High': 0.20499999,
          'Last': 0.19,
          'Low': 0.18341639,
          'MarketName': 'ETH-LTC',
          'OpenBuyOrders': 173,
          'OpenSellOrders': 98,
          'PrevDay': 0.19999979,
          'TimeStamp': '2017-07-06T16:24:54.123',
          'Volume': 8434.69400369},
 'last': 0.19,
 'low': 0.18341639,
 'open': None,
 'percentage': None,
 'quoteVolume': 8434.69400369,
 'timestamp': 1499358294000,
 'vwap': None}

I check on their webpages, https://i.imgur.com/WyeOSQu.png  and it's ok from API perspective. Those numbers are reciprocal as if they reversed the pairing but not the names

I'm not really following you here. From Bitfinex I'm getting DASH/BTC pair instead of DSH/BTC(which IIRC doesn't exist on that exchange). Prices match approximately.
Oh, I see. The Bitfinex lists Dash as DSH, instead of DASH.
I will fix that too. Appreciate your help!

Oh yeah, and there's this market API/consistency gem:

Bittrex seems to have reverse pair naming, I will fix that. Thanks!

Bittrex pairs are now fixed (reversed the way they should be, consistent with the other markets). Working on Bitfinex (DSH) and other issues you mentioned... Will let you know when it's done.

Fixed Bitfinex DSH → DASH inconsistency. Investigating Poloniex vs GDAX now.

Poloniex is also fixed now with proper pair ordering. Thank you for reporting this!

source: gharchive/issue

authors: kroitor nmiculinic

repo: kroitor/ccxt

license: MIT

license_type: permissive

license_source: github-api


text:
Descripition spells on iOS

On iOS, the description of the spells does not appear, and it is not even possible to add icons.

Hey @burukabrk, thanks for raising the issue. Unfortunately, mobile browsers are not supported by Krosmaker at all, and likely never will be for a number of reasons. The user interface would have to be redesigned and retested to support different resolutions. Crucial features like image cropping or card saving and export are not guaranteed to work on mobile due to lack of support for certain browser features or libraries.
I had a colleague test the application on an iMac. Safari didn't export the card images correctly, but Chrome seems to support all Krosmaker features. If you're on an iPad, perhaps you could try using Google Chrome to see if it helps.
I could look into a simplified mobile version, perhaps with much less features, but honestly I'm not sure it's worth the effort given the state of the franchise. For now, please use the desktop version.

authors: burukabrk czyzby

repo: krosmaker/krosmaker


text:
🛑 Web is down

In 8c926ff, Web (https://www.krown.one/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Web is back up in 04b9c5a after 16 minutes.

repo: krown-one/status


text:
belt speed multiplier problem

Hi, there is an speed issue if you are using Belt Speed Multiplier mod, the speed isn't update properly, i.e. I've set the speed x2, but loaders still show old speed.

It seems that if Belt Speed Multiplier author adds to data-final-fixes.lua this code:
if (mods["loaders-modernized"]) then
local type = data.raw['loader-1x1']
for _, prot in pairs(type) do
    prot.speed = prot.speed*multiplier
end

end
it solves the problem. I'll try to contact the author of this mod.
Sorry for bothering ;)

repo: kryojenik/loaders-modernized


text:
Upload to cocoapods

SPM doesn't always work well, could you please upload the package to Cocoapods please

Yes please.

authors: lockieluke nunogoncalves

repo: krzysztofzablocki/Inject


text:
A persistent graph index? DRIFT Search?

This is a great implementation using langchain, thanks for sharing it!
I have some questions:

how can we index on a continuous basis, i.e. indexing takes new text docs and merges it into the same reusable graph?
how/will you be implementing the ms version's DRIFT Search?

Thanks for the questions and feedback. I haven't looked at DRIFT yet but may do it in coming weeks.

repo: ksachdeva/langchain-graphrag


text:
CVE-2024-28110 security upgrade

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Type of changes
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Logs

Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[ ] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[ ] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

/lgtm
/approve

source: gharchive/pull-request

repo: kserve/kserve


text:
Queue.ConsumerUtilisation can be null. Changed type to double?

Hi @kuanysh-nabiyev,
I have found a JSON deserialization issue with Queueue.ConsumerUtilistation. This PR should help.

Hi @delixfe,
I am working on new package version

authors: delixfe kuanysh-nabiyev

repo: kuanysh-nabiyev/RabbitMqHttpApiClient


text:
Trouble Understanding Backend Configuration

I am having trouble getting the backend configured for download functionality.  What am I supposed to put for the host and port?

You don't need to change it, the defaults are just fine. In the Spotify app, enter 127.0.0.1:23287 in the hostname field, as shown on the screenshot.

I get this error when trying to download.  I had figured I had the configuration incorrect...

Did you set the beat saber directory correctly?

Yes.  Just double-checked.

Well, then post the .env file here so I can see what's wrong. Also post a screenshot of the settings pop-up in Spotify. Most likely the authentication parameter is wrong.

Text version of .beatsaber.env
(file was renamed so that GitHub would accept it)
Sorry for the delay.

You don't need to change AUTH_USERNAME and AUTH_PASSWORD, leave the defaults. Otherwise it will fail with an authentication error if you don't configure it properly. The username and password are only used locally and don't mean anything.

I'm also getting this when the backend attempts to initialize:

Well, in this case you didn't put the .beatsaber.env file in the .spicetify directory. If the directory doesn't exist, create it and place the file there.

I did, but maybe it's not the correct one.  I have one in the
AppData/Local/spicetify and AppData/Roaming/spicetify directories.  Is
there another?
On Thu, Aug 3, 2023, 04:06 Kuba Szczodrzyński @.***>
wrote:

Well, in this case you didn't put the .beatsaber.env file in the
.spicetify directory. If the directory doesn't exist, create it and place
the file there.
—
Reply to this email directly, view it on GitHub
https://github.com/kuba2k2/spicetify-beat-saber/issues/4#issuecomment-1663484980,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACKAHQODPBSKCFFAOCLF5ETXTNLXFANCNFSM6AAAAAA2IIRYUU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Yes, the directory is called .spicetify (note the dot in front) and is placed in your user folder (one level higher than AppData.

I've just released version 2.1.0, which doesn't require any configuration steps in .env files.
Uninstall the backend and install the new version (2.0.1) first.
Then update the Spicetify extension to 2.1.0.
Then open the settings popup, click the three dots icon and browse to your Beat Saber directory:

I've removed the old backend, and installed the new one.  I've also installed the new plugin version.
I'm setting the Hostname field in the in-app configuration as directed, but now it can't seem to connect to the backend.

It won't let me enter anything in the directory field, probably because of the backend error.

Thanks, this should be fixed in extension v2.1.1 and backend v2.0.2.

I was able to update both.
The UI now shows all is well, but when a download is attempted, the same "Error: Couldn't connect to backend" toast appears.

Is the backend running and showing as connected on the UI? Did you reboot your PC after installing backend?

You might not have enough permissions for the ProgramFiles folder. It's best to install BeatSaber in a different Steam library, such as on C:\ or somewhere else. Otherwise you can assign permissions to the BS directory using the windows "Properties" sheet.

Backend is confirmed (via Process Explorer) to be running, and the UI shows as "Connected: v2.0.2," as shown in the above screenshot.  Permissions shouldn't be an issue, but I tried setting "Everyone" to have Full Control access anyway, just to see if it would change anything.  Unfortunately, no dice.

Open your browser and go to http://localhost:23287/levels/download/1591e1210ddb60bfe5ad2434359246ee7e888c1f (the hash is the level ID, first one I had at hand). Post a screenshot of the output.

Sorry, it's been a busy week.
A text output is displayed, and nothing more:
{"levelDir":"b0b5 (Paranoid - ggdruber)","hash":"1591e1210ddb60bfe5ad2434359246ee7e888c1f","name":"Paranoid","subName":"","authorName":"Black Sabbath","mapperName":"ggdruber","characteristics":{"Standard":["Expert","ExpertPlus"]},"songFilename":"song.egg","coverFilename":"cover.jpg"}

I decided to try it again today.  I remembered that I had switched the queue block on for a while after troubleshooting with it, so I turned the block off and tried to download the next available track in my queue, which so happened to be Wintergatan's "Marble Machine."
Huh.  It downloaded the song with no errors.

Haha, I'm glad that worked. The JSON you posted today would indicate that no errors occur. Maybe it was just a temporary problem.


text:
breaking: remove sumologic filter and output, enchance_k8s filter

Fixes: #1856

The new image versions are:
v1.17-v5.0-full and v1.17-v5.0-base for the e2e tests

@pepov Bumped the images in the latest commit.

The second v prefix is not needed sorry

repo: kube-logging/logging-operator


text:
refactor(Unit tests): refactore code and fix lint issues

Signed-off-by: Achref ben saad achref@accuknox.com
Purpose of PR?: Refactor unit tests and fix lint issues
Fixes #
Does this PR introduce a breaking change? No
If the changes in this PR are manually verified, list down the scenarios covered::
Additional information for reviewer? :
Mention if this PR is part of any design or a continuation of previous PRs
Checklist:

[ ] Bug fix. Fixes #
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[x] PR Title follows the convention of  <type>(<scope>): <subject>
[x] Commit has unit tests
[x] Commit has integration tests

Codecov Report

Merging #1030 (c708969) into main (4f66f09) will decrease coverage by 1.64%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1030      +/-   ##
==========================================
- Coverage   38.78%   37.14%   -1.65%
==========================================
  Files          31       31
  Lines       10013    10013
==========================================
- Hits         3884     3719     -165
- Misses       5616     5794     +178
+ Partials      513      500      -13

Impacted Files
Coverage Δ

KubeArmor/core/crioHandler.go
0.00% <0.00%> (-60.52%)
:arrow_down:

KubeArmor/core/containerdHandler.go
53.18% <0.00%> (-4.50%)
:arrow_down:

KubeArmor/core/kubeArmor.go
48.23% <0.00%> (-1.77%)
:arrow_down:

KubeArmor/core/kubeUpdate.go
38.19% <0.00%> (-0.23%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Needs #1029 to be merged, in order for the CI to pass.

@achrefbensaad can you please handle all the lint issues in the karmor.go file, thanks, rest LGTM :+1:

repo: kubearmor/KubeArmor


text:
Update default deny/audit behaviour

Reintroduce default deny/audit changes f383637 (#602)
Revert default deny/audit changes in 30c8f54 (#668)
TODO

[x] Add more test cases
[x] Verify Audit Mode behaviour

Codecov Report

Merging #724 (2ec5f6f) into main (1aaee57) will decrease coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #724      +/-   ##
==========================================
- Coverage   37.91%   37.84%   -0.07%
==========================================
  Files          24       24
  Lines        8643     8637       -6
==========================================
- Hits         3277     3269       -8
- Misses       4929     4933       +4
+ Partials      437      435       -2

Impacted Files
Coverage Δ

KubeArmor/enforcer/appArmorProfile.go
44.82% <ø> (-0.04%)
:arrow_down:

KubeArmor/monitor/syscallParser.go
58.44% <0.00%> (-1.11%)
:arrow_down:

KubeArmor/feeder/policyMatcher.go
40.58% <0.00%> (-0.11%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1aaee57...2ec5f6f. Read the comment docs.

Handled in #727


text:
WIP: Add proposal for new feature to enable data cache

Ⅰ. Describe what this PR does
Add proposal for a new feature to enable data cache
II. Does this pull request fix one issue?

None
III. Special notes for reviewers if any.
task list

[x]  design and finish cache crd
[x] interact with fluid to get pvc
[x] use patch api to inject pvc to job
[ ] unit & performance test

Codecov Report

Merging #166 (0eb7eae) into master (f408cc8) will increase coverage by 1.41%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #166      +/-   ##
==========================================
+ Coverage   21.74%   23.15%   +1.41%
==========================================
  Files          73       75       +2
  Lines        4374     4466      +92
==========================================
+ Hits          951     1034      +83
- Misses       3292     3299       +7
- Partials      131      133       +2

Flag
Coverage Δ

unittests
23.15% <ø> (+1.41%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/gang_schedule/volcano_scheduler/scheduler.go
68.88% <0.00%> (ø)

pkg/gang_schedule/batch_scheduler/scheduler.go
68.88% <0.00%> (ø)

pkg/gang_schedule/coscheduler/scheduler.go
64.70% <0.00%> (+61.58%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f408cc8...0eb7eae. Read the comment docs.

The commits in this pull request are messy. I opened another PR and rewritten the code of the cacheEngine part

authors: codecov-commenter zjchenn

repo: kubedl-io/kubedl


text:
Update GenGeneralName func

Ⅰ. Describe what this PR does
I found a bug in mpijob.
https://github.com/kubedl-io/kubedl/blob/8e231e86dc82bc80c6e044d8dd9f385100277f75/controllers/mpi/mpi_config.go#L85-L87
(a)These codes write hostfile data in configmap. It writes {mpiJob.Name}-launcher slots=1
https://github.com/kubedl-io/kubedl/blob/8e231e86dc82bc80c6e044d8dd9f385100277f75/pkg/util/util.go#L74-L77
(b)These codes decide the mpijob launcher podName. The name is {mpiJob.Name}-launcher-0
(a) and (b) conflicts.
Why do I change (b) to (a)?
Although I do not know how the kubedl/kubectl-delivery:latest was built. I guess that it's source code from
https://github.com/kubeflow/mpi-operator/blob/c5c0c3ef99ec9de948600766988ea7134d3d2af6/cmd/kubectl-delivery/app/server.go#L120. From this code, I know that kubectl-delivery use the (a) form. So I change (b) to (a)
II. Does this pull request fix one issue?

NONE
III. Special notes for reviewers if any.
Please have an attention. I just focus on mpijob. I am not 100 percent sure that this PR does not influence others operators. Please review it's influence.

Codecov Report

Merging #179 (21653f5) into master (8e231e8) will increase coverage by 0.00%.
The diff coverage is 50.00%.

:exclamation: Current head 21653f5 differs from pull request most recent head b5c4876. Consider uploading reports for the commit b5c4876 to get more accurate results

@@           Coverage Diff           @@
##           master     #179   +/-   ##
=======================================
  Coverage   23.15%   23.15%
=======================================
  Files          75       75
  Lines        4466     4470    +4
=======================================
+ Hits         1034     1035    +1
- Misses       3299     3300    +1
- Partials      133      135    +2

Flag
Coverage Δ

unittests
23.15% <50.00%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/util/util.go
10.71% <50.00%> (+2.38%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8e231e8...b5c4876. Read the comment docs.

@HeGaoYuan utils. GenGeneralName is shared by all controller implementations and I'd prefer amend kubexec script in mpi controller:
buffer.WriteString(fmt.Sprintf("%s%s-0 slots=%d\n", mpiJob.Name, launcherSuffix, slots))

suffix with -0 and there should only be one launcher in mpijob

@SimonCqk Hi,
As I described, I explained the reason Why do I change (b) to (a)?
If you change (a) to (b), I think you should also change the kubedl/kubectl-delivery

@SimonCqk Hi,
As I described, I explained the reason Why do I change (b) to (a)?
If you change (a) to (b), I think you should also change the kubedl/kubectl-delivery

kubectl-delivery does need to be changed because /etc/mpi/hostfile content is generated by kubedl, and launcher pod name in hostfile is xxx-launcher-0 already.

Do you consider to add the source code of kubectl-delivery into the kubedl repository?

Do you consider to add the source code of kubedl/kubectl-delivery:latest into the kubedl repository?

for now image of  kubectl-delivery is same as kubeflow/kubectl-delivery

Do you consider to add the source code of kubedl/kubectl-delivery:latest into the kubedl repository?

for now image of kubectl-delivery is same as kubeflow/kubectl-delivery

So I will change the PR to "change (a) to (b)", then you will change the image of kubedl/kubectl-delivery:latest?

Do you consider to add the source code of kubedl/kubectl-delivery:latest into the kubedl repository?

for now image of kubectl-delivery is same as kubeflow/kubectl-delivery

So I will change the PR to "change (a) to (b)", then you will change the image of kubedl/kubectl-delivery:latest?

I think what @SimonCqk meant is : "kubectl-delivery does need to be changed because /etc/mpi/hostfile content is generated by kubedl, and launcher pod name in hostfile is xxx-launcher-0 already."
So no need to change the image ?

So I will change the PR to "change (a) to (b)", then you will change the image of kubedl/kubectl-delivery:latest?

As jian said, I've updated the delivery image and change code to (b) approach is fine

authors: HeGaoYuan SimonCqk codecov-commenter jian-he


text:
Update org.yaml

i am interested to do some contribution on the project and hope my changes fine

Please read https://github.com/kubeflow/internal-acls?tab=readme-ov-file#joining-kubeflow-github-organization

authors: chensun devopsdymyr

repo: kubeflow/internal-acls

license_source: bigquery


text:
Add an explicit platform parameter to the kf_is_ready_test.py

For GCP blueprints we no longer provide a KFDef file so we need some
other mechanism to tell it that the test is running on GCP and
to invoke GCP specific tests.

Related to kubeflow/gcp-blueprints#74 and kubeflow/gcp-blueprints#73

ISTIO telemetry, tracing, and prometheus are no longer included in
the default profile.

/assign @Bobgy

/lgtm

/approved

/approve

authors: Bobgy crobby jlewi

repo: kubeflow/kfctl


text:
make tensorflow protocol default

Tensorflow protocol was not default in latest python changes. This fixes this.
Current samples won't work until this is merged.

This change is

/assign @ellis-bigelow

/lgtm
/approve

authors: cliveseldon yuzisun

repo: kubeflow/kfserving


text:
[QUESTION] Spark-Operator deprecation on envVars

Hi,
I'm part of a team that deployed Spark Operator (v1beta2-1.6.1-3.5.0) on a highly secured internally managed Kubernetes cluster where webhooks are completely forbidden (amongst other things).
We're relying heavily on envVars for our Spark Application deployments and I was wondering :

Why this feature was marked as deprecated
On which version/ApiVersion will it be removed ?

In the case of a removal, is there any workaround or other method implemented (knowing that webhooks aren't an option) ?
Thanks !

@JeanMichelApeupres envVars was not marked as deprecated, this feature still works even without webhook enabled.

The webhook is enabled by default and cannot be disabled in the 2.0.0-rc.0 version, and it will be used to default/validate SparkApplication/ScheduledSparkApplication and mutate Spark pods. If you disable the webhook server, many k8s features will not work. But if that is you want, we can add the option webhook.enable back.

@ChenYi015 I'm a bit confused, I saw the note here saying "Note: legacy field envVars that can also be used for specifying environment variables is deprecated and will be removed in a future API version.", is the documentation up-to-date or am I looking at the right documentation ?
Regarding the webhook.enable, yes if possible I would like it to be reintroduced, even with a limited set of features

I saw the note here saying "Note: legacy field envVars that can also be used for specifying environment variables is deprecated and will be removed in a future API version.", is the documentation up-to-date or am I looking at the right documentation ?

@JeanMichelApeupres Sorry, I did not notice that. The field envVars is marked as deprecated, as environment variables can be specified by using spec.[driver|executor].env and spec.[driver|executor].envFrom in a more universal way when the webhook is enabled. It is likely to be removed in the next API version (maybe v1beta3). But don't worry, we are introducing pod template feature for Spark 3.x applications, which will allow you to define environment variables without relying on the webhook.

@ChenYi015 Looking forward for the pod template feature ! This should help us customize ephemeral storage as well.
Will there be an issue/PR for the webhook.enable reintroduction (if validated) ?

Will there be an issue/PR for the webhook.enable reintroduction (if validated) ?

@JeanMichelApeupres Yes, I have already raised a PR #2142 to reintroduce the option webhook.enable.

repo: kubeflow/spark-operator


text:
feat: manage PodDisruptionBudget for SparkApplication driver and executor

Purpose of this PR

Provide the ability to create PodDisruptionBudget per Spark Application
Proposed changes:

Expose PodDisruptionBudgetSpec for driver definition

Expose PodDisruptionBudgetSpec for executor definition

Change Category

[ ] Bugfix (non-breaking change which fixes an issue)
[x] Feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that could affect existing functionality)
[ ] Documentation update

Rationale

Our spark pipelines cannot be interrupted and during node drain, we want to prevent eviction of executor and driver pods. Once the pipeline is complete, then the node can be drained. This is natively supported via PodDisruptionBudget with maxUnavailable: 0
Checklist

[x] I have conducted a self-review of my own code.
[x] I have updated documentation accordingly.
[x] I have added tests that prove my changes are effective or that my feature works.
[x] Existing unit tests pass locally with my changes.

Additional Notes

@a7i , I'm wondering if we can use the new feature of the pod template to specify the PDB per PR https://github.com/kubeflow/spark-operator/pull/2141

Ah right, it’s PDB which need a specific configuration item for it. My brain was stuck :(

Happy to take a look at the PR as well because this may be a useful feature, but if this is specifically for node draining, you could add annotations to prevent eviction: karpenter.sh/do-not-disrupt: "true" for Karpenter and "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" for cluster-autoscaler.

"cluster-autoscaler.kubernetes.io/safe-to-evict"

Thanks! The context here is nodegroup upgrades, so we drain the nodes from the old nodegroup. so karpenter or cluster-autoscaler don't come into play.

This would be a great addition - thanks @a7i

"cluster-autoscaler.kubernetes.io/safe-to-evict"

Thanks! The context here is nodegroup upgrades, so we drain the nodes from the old nodegroup. so karpenter or cluster-autoscaler don't come into play.

Ah, so this is a user initiated drain and not one done automatically by either node provisioner e.g. Karpenter drift detection or node consolidation. In that case definitely understand your issue with needing to provision PDBs.
Will review this tonight.

Will review this tonight.

@jacobsalway let me know if there's interest and I can rebase


text:
Offline book format (Kindle/EPUB/PDF) for website

There needs to be a kindle book avaialable for this documentation as its too tedious to read this for a offline reference

@cloudbow That's an interesting idea. A Kindle format (mobi), or EPUB, PDF,  or some other offline format would be a very nice feature to add to the website. I'd like to see an option for users to generate and download the content at the time they need it (rather than the documentation maintainers needing to generate and maintain a static copy of the docs).
I think the generated file needs to:

Include the date of generation and the Kubeflow version information on every page, so that people know how up-to-date the generated file is.
Comply with the CC BY 4.0 licence, as the Kubeflow doc is distributed under that licence.

@theadactyl @abhi-g @jbottum Do you have any thoughts here? This could be a nice doc sprint project.

@sarahmaddox I think this request is interesting.   I have a few questions - how much time will it take to convert the format and scrub the results into something that can be published?  Is this a low, medium or high work effort ?   Will get easier for the next release?  and how many people will use it ?   and how will they use it i.e. for offline reading and/or as a guide in configuration, debugging ?

\priority p2

authors: cloudbow jbottum jtfogarty sarahmaddox

repo: kubeflow/website


text:
Add goswamig for AWS documentation

I've submitted few pr in this repo
https://github.com/kubeflow/website/pull/3019
https://github.com/kubeflow/website/pull/2716
https://github.com/kubeflow/website/pull/1916

CC @Jeffwan


text:
Added myself as one of the approvers and reviewers

adding myself as one of the owners.

/lgtm
/approve

authors: abhi-g ankushagarwal


text:
Security upgrade on images

We could run "sudo unattended-upgrades -d" (installs security updates only) in bootstrap script to make sure nodes gets latest security updates.

I think this is included in sudo apt-get update, don't we already run this? I think we need to have a playbook to run the security updated while a cluster is running as well.

We only run it at build process - not when image is a few weeks old. I think a playbook or maybe a scheduled task in kubernetes is a good option?

https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

Oh yes, that looks good!

Closing in favour of #265

authors: andersla mcapuccini

repo: kubenow/KubeNow


text:
boilerplate verification is needed.

The initial Makefile is merged in https://github.com/kubernetes-incubator/cri-containerd/pull/7.
Currently, we already have lint and fmt verification. We need a boilerplate verification.
Ref https://github.com/kubernetes/repo-infra.

@Random-Liu How about reusing  repo-infra like cri-tools?  and use lint and fmt verification in repo-infra.

repo-infra currently has some issues.. cri-tools isn't using it via vendor it has it's own copy...
Not sure of the benefits here just yet.

@heartlock Since, repo-infra are just a group of script, I don't think we could vendor them anyway. We have to copy and rewrite them. :)
For the boilerplate verification, I think we could reuse it if it works similar with https://github.com/kubernetes/kubernetes/tree/master/hack/boilerplate.

^ agreed. I planned on working this Friday after dockercon

actually they can and are vendored. all of the scripts can run from inside vendor. if they don't work for you, fix them. the main kube repo will be converted one of these days.

I think you'll find the external-provisioner using it as a submodule and the service catalog group using it as vendor if you need examples.

for the go tools it feels odd to vendor what amounts to configuration options/choices for running lint... I opened up an issue a few days ago with some questions, haven't received comments, it's the only and first issue ever filed in the repo. :-) I'll take a look at the boilerplate testing code soon.
Cheers.

actually they can and are vendored. all of the scripts can run from inside vendor. if they don't work for you, fix them. the main kube repo will be converted one of these days.

Hm, can we use godep to vendor script project?

The readme for repo-infra says "This repository can be used via some golang "vendoring" mechanism (such as glide), or it can be used via git subtree."  @Random-Liu unless you want to use glide.. I might just subtree repo-infra into hack/repo-infra

Close this one since this is added. @mikebrow Thanks a lot!

authors: Random-Liu eparis heartlock mikebrow

repo: kubernetes-incubator/cri-containerd


text:
apparmor: package not limited to server

- What I did
Moved apparmor package in to the broader ./pkg/ directory
In refactoring the sever package for cross platform, apparmor is not exclusive to server.

/test all

authors: runcom vbatts

repo: kubernetes-incubator/cri-o


text:
Add SECURITY_CONTACTS file

closes #314
/cc @jessfraz @Random-Liu @mrunalp

/lgtm

authors: Random-Liu feiskyer

repo: kubernetes-incubator/cri-tools


text:
add hostNetwork test case

Signed-off-by: Helen-Xie yulinxie@zju.edu.cn

part of #20
ready for review @feiskyer

PTAL. @feiskyer

Re-run travis CI.

LGTM

authors: Helen-Xie feiskyer


text:
rbd-provisioner: cannot create image in format 1 against jewel cluster with mimic rbd

I am running a ceph cluster of jewel cluster.
rbd-provisioner is able to create image in format 1 with luminous rbd, after upgrading to mimic, it fails to create image in format 1.
rbd: create error: 2018-07-31 04:07:44.792 7fcae8a44900 -1 librbd: Format 1 image creation unsupported.

From minic docs, image format 1 is supported (although deprecated).
I don't know if this is bug or expected behavior (may be broken if client/server not match), I created a ceph issue too: https://tracker.ceph.com/issues/25187.
Probably, we can build rbd/cephfs provisioner for different ceph releases, e.g.

rbd-provisioner-jewel
rbd-provisioner-luminious
rbd-provisioner-minic

Users can choose provisioner with ceph packages same as server-side.
/cc @wongma7
What do you think?

sure, let's do it, we just need 3 dockerfiles. And I guess I will write some script so i don't have to build-push each on my local machine and I can make travis do it instead

repo: kubernetes-incubator/external-storage


text:
Update calico-node systemd unit

New calicoctl does not support --detach=false option, so we should
use a recommended way to run calico-node service:
http://docs.projectcalico.org/v2.0/usage/configuration/as-service
Closes #674, #675

Is it still WIP?

Is it still WIP?
Yes

It's ready now.

authors: adidenko bogdando

repo: kubernetes-incubator/kargo


text:
Create test

👋

Closing this PR as everything is working as expected now.

authors: balajismaniam danielscottt


text:
Breaking changes with patch release

Hey Maintainers :wave:
Bit of a funny one but I feel like such changes should be breaking and be reflected as such with a major release?
https://github.com/kubernetes-sigs/aws-iam-authenticator/commit/0221afb8e2a5d14a20a93473edc4c2aa7676ce95
No point being shy with version numbers!
For more context, I was running version 0.5.0 and a team  mate was running 0.5.5 and we found though we had the same kube_config the latter would through the API error:
Error: UPGRADE FAILED: Kubernetes cluster unreachable: Get "https://our-cluster.aws-region.eks.amazonaws.com/version?timeout=32s": getting credentials: exec plugin is configured to use API version client.authentication.k8s.io/v1alpha1, plugin returned version client.authentication.k8s.io/v1beta1

Thanks for pointing this out, we will revert and bump the major version.

Sorry for the delay.  So I think with https://github.com/kubernetes-sigs/aws-iam-authenticator/pull/439, its no longer a breaking change and we don't need to bump the major version.  I'm inclined to put out an v0.5.6 for that reason since there's only a handful of changes.  LMK if anyone thinks differently.

I'll add that I would like to do a 1.0 release, but perhaps we can discuss it separately.

Thanks for your response @nckturner :)
I'm currently stuck trying to figure out how to solve our macos issues as the EKS docs say we should continue to use v1alpha1 and the newly built (but still older than 0.5.2 versions of) aws-iam-authenticator binaries throw this error on our systems:
./aws-iam-authenticator
fatal error: runtime: bsdthread_register error

Hence my annoyed tone 😅

Thanks @wongma7 as well for reverting the commit. Looking forward to 0.5.6 🎉
It's less of a headache for us now 👍

repo: kubernetes-sigs/aws-iam-authenticator