[Question] Unable to do "kubectl logs" for pods running in edge node.

What happened:
Unable to do "kubectl logs" for pods in edge node.
What you expected to happen:
Success to view logs in edge node.
How to reproduce it (as minimally and precisely as possible):
Control-panel setup:
Kubernetes version:
kubeadm version: &version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.17", GitCommit:"953be8927218ec8067e1af2641e540238ffd7576", GitTreeState:"clean", BuildDate:"2023-02-22T13:33:14Z", GoVersion:"go1.19.6", Compiler:"gc", Platform:"linux/amd64"}
Kubernete initialization:
sudo kubeadm init --pod-network-cidr=<IP_ADDRESS>/16 --service-cidr=<IP_ADDRESS>/12
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
OpenYurt installation:
helm upgrade --install yurt-manager -n kube-system openyurt/yurt-manager --version 1.3.4
helm upgrade --install yurt-hub -n kube-system --set kubernetesServerAddr=https://${KUBERNETES_SERVER_ADDRESS}:6443 openyurt/yurthub --version 1.3.4
helm upgrade --install raven-agent -n kube-system openyurt/raven-agent
Edge node:
Installation:
sudo rm which kubelet kubeadm kubectl
wget https://github.com/openyurtio/openyurt/releases/download/v1.3.4/yurtadm-v1.3.4-linux-amd64.zip
unzip yurtadm-v1.3.4-linux-amd64.zip
sudo cp linux-amd64/yurtadm /usr/local/bin/yurtadm &&
sudo chmod +x /usr/local/bin/yurtadm
Joining:
sudo yurtadm join
${CONTROL_PANEL_ADDRESS}:6443
--token=${JOIN_TOKEN} --node-type=edge
--cri-socket=unix:///run/containerd/containerd.sock
--discovery-token-ca-cert-hash=${CA_HASH} --v=5
kubectl logs -n kube-system raven-agent-ds-r7lbl
Error from server: Get "https://<IP_ADDRESS>:10250/containerLogs/kube-system/raven-agent-ds-r7lbl/raven-agent": dial tcp <IP_ADDRESS>:10250: i/o timeout

NAMESPACE      NAME                                               READY   STATUS    RESTARTS   AGE
kube-flannel   kube-flannel-ds-ncq42                              1/1     Running   0          21h
kube-flannel   kube-flannel-ds-pjl2w                              1/1     Running   0          21h
kube-system    coredns-bd6b6df9f-4bwgn                            1/1     Running   0          21h
kube-system    coredns-bd6b6df9f-f9dwj                            1/1     Running   0          21h
kube-system    etcd-adl-control                                   1/1     Running   0          21h
kube-system    kube-apiserver-adl-control                         1/1     Running   0          21h
kube-system    kube-controller-manager-adl-control                1/1     Running   0          21h
kube-system    kube-proxy-4ct9t                                   1/1     Running   0          21h
kube-system    kube-proxy-55vls                                   1/1     Running   0          21h
kube-system    kube-scheduler-adl-control                         1/1     Running   0          21h
kube-system    raven-agent-ds-2hvct                               1/1     Running   0          21h
kube-system    raven-agent-ds-r7lbl                               1/1     Running   0          21h
kube-system    yurt-hub-ubuntu-platform                           1/1     Running   0          21h
kube-system    yurt-manager-7f5bbb5744-fp5m8                      1/1     Running   0          21h

Anything else we need to know?:
Control panel node in subnet <IP_ADDRESS>/23, while edge node in <IP_ADDRESS>/24.
I am able to join and deploy workload, but failed to view its logs.
I am not sure which steps I missed?
Environment:

OpenYurt version: 1.3.4
Kubernetes version (use kubectl version): 1.23.17
OS (e.g: cat /etc/os-release): Ubuntu 22.04.3 LTS
Kernel (e.g. uname -a): 6.2.0-37-generic
Install tools:
Others:

others
/kind question

Hi,
Thank you for your suggestion.
I modified my steps as below:

Raven deployment change(Note: Raven image 0.4.0 still N/A):

helm upgrade --install raven-agent -n kube-system openyurt/raven-agent --set vpn.forwardNodeIP=true \
--set image.tag=latest --version 0.4.0

Nodes labelling:

# Edge node
kubectl label nodes adl-edge-node raven.openyurt.io/gateway=gw-edge
# Cloud node
kubectl label nodes adl-cloud-node raven.openyurt.io/gateway=gw-cloud

Gateway settings:

cat <<EOF | kubectl apply -f -
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-edge
spec:
  endpoints:
    - nodeName: adl-edge-node
      underNAT: true
---
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-cloud
spec:
  endpoints:
    - nodeName: adl-cloud-node
      underNAT: false
EOF

Modified Raven agent according to here(https://github.com/openyurtio/raven/blob/main/docs/raven-agent-tutorial.md#install-raven-agent). I can see Raven pods restart after deploy.

make deploy
bash hack/gen-yaml.sh openyurt/raven-agent:latest libreswan false ":8080"
==== create raven-agent.yaml in /home/chunfung/Github/raven/_output/yamls ====
# Warning: 'bases' is deprecated. Please use 'resources' instead. Run 'kustomize edit fix' to update your Kustomization automatically.
# Warning: 'patchesStrategicMerge' is deprecated. Please use 'patches' instead. Run 'kustomize edit fix' to update your Kustomization automatically.
kubectl apply -f _output/yamls/raven-agent.yaml
Warning: resource serviceaccounts/raven-agent-account is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
serviceaccount/raven-agent-account configured
Warning: resource clusterroles/raven-agent-role is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
clusterrole.rbac.authorization.k8s.io/raven-agent-role configured
Warning: resource clusterrolebindings/raven-agent-role-binding is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
clusterrolebinding.rbac.authorization.k8s.io/raven-agent-role-binding configured
Warning: resource configmaps/raven-agent-config is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
configmap/raven-agent-config configured
Warning: resource secrets/raven-agent-secret is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
secret/raven-agent-secret configured
Warning: resource daemonsets/raven-agent-ds is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
daemonset.apps/raven-agent-ds configured

Unfortunately, I still unable to do 'kubectl logs' on edge node successfully. Any idea yet? :)

@chunfungintel I think you should use v0.3.2 instead of v0.4 for raven's image version if you are still deploying v1.3 openyurt

Hi @YTGhost
Actually, these are the only available versions available in helm
helm search repo raven-agent --versions
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
openyurt/raven-agent    0.4.0           0.4.0           A Helm chart for Kubernetes
openyurt/raven-agent    0.1.1           0.2.0           A Helm chart for Kubernetes
openyurt/raven-agent    0.1.0           0.2.0           A Helm chart for Kubernetes

I do not need to specifically need to use v1.3 OpenYurt, do you have any version that I should try on?
It seems in specific version, Raven controller is merged into yurt-manager(correct me if I am wrong), is that a version before 1.3?

Revised steps:
Control-panel initialization:
sudo kubeadm init --pod-network-cidr=<IP_ADDRESS>/16 --service-cidr=<IP_ADDRESS>/12
mkdir -p $HOME/.kube && sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
kubectl taint nodes --all node-role.kubernetes.io/master-

Using OpenYurt 1.4.0 + Raven agent 0.4.0
helm upgrade --install yurt-manager -n kube-system openyurt/yurt-manager --version 1.4.0 --set image.tag=latest
helm upgrade --install yurt-hub -n kube-system --set kubernetesServerAddr=https://${KUBERNETES_SERVER_ADDRESS}:6443 openyurt/yurthub --version 1.4.0
helm upgrade --install raven-agent -n kube-system openyurt/raven-agent --set vpn.forwardNodeIP=true \
--set image.tag=0.4.0 --version 0.4.0

Install OpenYurt 1.4 in Edge
wget https://github.com/openyurtio/openyurt/releases/download/v1.4.0/yurtadm-v1.4.0-linux-amd64.tar.gz
tar -xvf yurtadm-v1.4.0-linux-amd64.tar.gz
sudo cp linux-amd64/yurtadm /usr/local/bin/yurtadm && sudo chmod +x /usr/local/bin/yurtadm

Edge node joining:
sudo yurtadm join \
${CONTROL_PANEL_ADDRESS}:6443 \
--token=${JOIN_TOKEN} --node-type=edge \
--cri-socket=unix:///run/containerd/containerd.sock \
--discovery-token-ca-cert-hash=${CA_HASH} --v=5

Gateway configuration:
kubectl label nodes adl-edge-node raven.openyurt.io/gateway=gw-edge; \
kubectl label nodes adl-cloud-node raven.openyurt.io/gateway=gw-cloud

cat <<EOF | kubectl apply -f -
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-edge
spec:
  endpoints:
    - nodeName: adl-edge-node
      underNAT: true
---
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-cloud
spec:
  endpoints:
    - nodeName: adl-cloud-node
      underNAT: false
EOF

git clone https://github.com/openyurtio/raven.git
cd raven && git checkout v0.4.0
make deploy

Results:
Still unable to do 'kubectl logs'
Anything still missing?

@YTGhost
W1208 03:07:36.262826       1 client_config.go:617] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I1208 03:07:36.283129       1 start.go:61] Start raven agent
I1208 03:07:36.283810       1 engine.go:69] RavenEngine: engine successfully start
I1208 03:07:36.385317       1 engine.go:107] "RavenEngine: adding gateway gw-edge"
I1208 03:07:36.385426       1 engine.go:95] RavenEngine: enqueue gateway gw-edge to tunnel queue
I1208 03:07:36.385472       1 engine.go:100] RavenEngine: enqueue gateway gw-edge to proxy queue
I1208 03:07:36.385541       1 engine.go:107] "RavenEngine: adding gateway gw-cloud"
I1208 03:07:36.385567       1 engine.go:95] RavenEngine: enqueue gateway gw-cloud to tunnel queue
I1208 03:07:36.385594       1 engine.go:100] RavenEngine: enqueue gateway gw-cloud to proxy queue
I1208 03:07:36.385897       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-edge
I1208 03:07:36.390257       1 tunnel.go:80] RavenEngine: route driver vxlan initialized
I1208 03:07:36.393717       1 libreswan.go:363] starting pluto
Initializing NSS database
I1208 03:07:37.395489       1 libreswan.go:385] start pluto successfully
I1208 03:07:37.395594       1 tunnel.go:89] RavenEngine: VPN driver libreswan initialized
E1208 03:09:07.398446       1 tunnelagent.go:92] "error config gateway public ip" err="error get public ip by any of the apis: [https://api.ipify.org https://api.my-ip.io/ip https://ip4.seeip.org]" gateway="gw-cloud"
I1208 03:09:07.398573       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-edge"
I1208 03:09:07.398598       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-cloud"
I1208 03:09:07.398698       1 tunnelagent.go:113] "applying network" localEndpoint= remoteEndpoint=map[]
I1208 03:09:07.398723       1 libreswan.go:102] Tunnel: no local gateway or remote gateway is found, cleaning vpn connections
I1208 03:09:07.420646       1 vxlan.go:77] Tunnel: no local gateway or remote gateway is found, cleaning up route setting
I1208 03:09:07.467244       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-cloud
E1208 03:10:37.470153       1 tunnelagent.go:92] "error config gateway public ip" err="error get public ip by any of the apis: [https://api.ipify.org https://api.my-ip.io/ip https://ip4.seeip.org]" gateway="gw-cloud"
I1208 03:10:37.470231       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-edge"
I1208 03:10:37.470261       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-cloud"
I1208 03:10:37.470303       1 tunnelagent.go:109] network not changed, skip to process
It seems to me the configuration failed due to I am behind cooperate proxy?

@YTGhost This is logs from control panel only:
W1208 03:07:36.262826 1 client_config.go:617] Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work. I1208 03:07:36.283129 1 start.go:61] Start raven agent I1208 03:07:36.283810 1 engine.go:69] RavenEngine: engine successfully start I1208 03:07:36.385317 1 engine.go:107] "RavenEngine: adding gateway gw-edge" I1208 03:07:36.385426 1 engine.go:95] RavenEngine: enqueue gateway gw-edge to tunnel queue I1208 03:07:36.385472 1 engine.go:100] RavenEngine: enqueue gateway gw-edge to proxy queue I1208 03:07:36.385541 1 engine.go:107] "RavenEngine: adding gateway gw-cloud" I1208 03:07:36.385567 1 engine.go:95] RavenEngine: enqueue gateway gw-cloud to tunnel queue I1208 03:07:36.385594 1 engine.go:100] RavenEngine: enqueue gateway gw-cloud to proxy queue I1208 03:07:36.385897 1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-edge I1208 03:07:36.390257 1 tunnel.go:80] RavenEngine: route driver vxlan initialized I1208 03:07:36.393717 1 libreswan.go:363] starting pluto Initializing NSS database
I1208 03:07:37.395489 1 libreswan.go:385] start pluto successfully I1208 03:07:37.395594 1 tunnel.go:89] RavenEngine: VPN driver libreswan initialized E1208 03:09:07.398446 1 tunnelagent.go:92] "error config gateway public ip" err="error get public ip by any of the apis: [https://api.ipify.org https://api.my-ip.io/ip https://ip4.seeip.org]" gateway="gw-cloud" I1208 03:09:07.398573 1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-edge" I1208 03:09:07.398598 1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-cloud" I1208 03:09:07.398698 1 tunnelagent.go:113] "applying network" localEndpoint= remoteEndpoint=map[] I1208 03:09:07.398723 1 libreswan.go:102] Tunnel: no local gateway or remote gateway is found, cleaning vpn connections I1208 03:09:07.420646 1 vxlan.go:77] Tunnel: no local gateway or remote gateway is found, cleaning up route setting I1208 03:09:07.467244 1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-cloud E1208 03:10:37.470153 1 tunnelagent.go:92] "error config gateway public ip" err="error get public ip by any of the apis: [https://api.ipify.org https://api.my-ip.io/ip https://ip4.seeip.org]" gateway="gw-cloud" I1208 03:10:37.470231 1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-edge" I1208 03:10:37.470261 1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-cloud" I1208 03:10:37.470303 1 tunnelagent.go:109] network not changed, skip to process
It seems to me the configuration failed due to I am behind cooperate proxy?

@chunfungintel I think it should be, raven will go to the public network and request to get the PublicIp, however maybe it's because of your network environment, there was a problem with the request process.
If there is no way to get it automatically, you can also get it manually and set the PublicIP field directly in the CR.

@chunfungintel Hi, has this been resolved or any progress made?

@YTGhost Actually I was collecting logs when you asking :)
What I do currently is inject http_proxy, https_proxy and no_proxy with
kubectl edit daemonsets.apps -n kube-system raven-agent-ds

        env:
        - name: http_proxy
          value: http://PROXY_NAME:PORT
        - name: https_proxy
          value: http://PROXY_NAME:PORT
        - name: no_proxy
          value: <IP_ADDRESS>/32,<IP_ADDRESS>/8,<IP_ADDRESS>/16,localhost,.local,<IP_ADDRESS>/8,<IP_ADDRESS>/12,<IP_ADDRESS>/16,<IP_ADDRESS>/23,.svc,kube-system.svc,<IP_ADDRESS>/24
        - name: HTTP_PROXY
          value: http://PROXY_NAME:PORT
        - name: HTTPS_PROXY
          value: http://PROXY_NAME:PORT
        - name: NO_PROXY
          value: <IP_ADDRESS>/32,<IP_ADDRESS>/8,<IP_ADDRESS>/16,localhost,.local,<IP_ADDRESS>/8,<IP_ADDRESS>/12,<IP_ADDRESS>/16,<IP_ADDRESS>/23,.svc,kube-system.svc,<IP_ADDRESS>/24

Raven's logs from control panel:
W1219 05:49:53.701467       1 client_config.go:617] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I1219 05:49:53.711849       1 start.go:61] Start raven agent
I1219 05:49:53.711976       1 engine.go:69] RavenEngine: engine successfully start
I1219 05:56:08.179137       1 engine.go:107] "RavenEngine: adding gateway gw-edge"
I1219 05:56:08.179159       1 engine.go:95] RavenEngine: enqueue gateway gw-edge to tunnel queue
I1219 05:56:08.179169       1 engine.go:100] RavenEngine: enqueue gateway gw-edge to proxy queue
I1219 05:56:08.179210       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-edge
I1219 05:56:08.185324       1 engine.go:107] "RavenEngine: adding gateway gw-cloud"
I1219 05:56:08.185340       1 engine.go:95] RavenEngine: enqueue gateway gw-cloud to tunnel queue
I1219 05:56:08.185348       1 engine.go:100] RavenEngine: enqueue gateway gw-cloud to proxy queue
I1219 05:56:08.185681       1 engine.go:121] "RavenEngine: updating gateway, gw-edge"
I1219 05:56:08.185696       1 engine.go:95] RavenEngine: enqueue gateway gw-edge to tunnel queue
I1219 05:56:08.185703       1 engine.go:100] RavenEngine: enqueue gateway gw-edge to proxy queue
I1219 05:56:08.185762       1 tunnel.go:80] RavenEngine: route driver vxlan initialized
I1219 05:56:08.186634       1 libreswan.go:363] starting pluto
I1219 05:56:08.191901       1 engine.go:121] "RavenEngine: updating gateway, gw-cloud"
I1219 05:56:08.191916       1 engine.go:95] RavenEngine: enqueue gateway gw-cloud to tunnel queue
I1219 05:56:08.191924       1 engine.go:100] RavenEngine: enqueue gateway gw-cloud to proxy queue
Initializing NSS database

I1219 05:56:09.187474       1 libreswan.go:385] start pluto successfully
I1219 05:56:09.187628       1 tunnel.go:89] RavenEngine: VPN driver libreswan initialized
I1219 05:56:11.682578       1 engine.go:121] "RavenEngine: updating gateway, gw-cloud"
I1219 05:56:11.682643       1 engine.go:95] RavenEngine: enqueue gateway gw-cloud to tunnel queue
I1219 05:56:11.682680       1 engine.go:100] RavenEngine: enqueue gateway gw-cloud to proxy queue
I1219 05:56:11.684039       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-cloud"
I1219 05:56:11.684187       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-edge"
I1219 05:56:11.684374       1 tunnelagent.go:113] "applying network" localEndpoint=<nil> remoteEndpoint=map[]
I1219 05:56:11.684473       1 libreswan.go:102] Tunnel: no local gateway or remote gateway is found, cleaning vpn connections
I1219 05:56:11.700547       1 engine.go:121] "RavenEngine: updating gateway, gw-cloud"
I1219 05:56:11.700624       1 engine.go:95] RavenEngine: enqueue gateway gw-cloud to tunnel queue
I1219 05:56:11.700666       1 engine.go:100] RavenEngine: enqueue gateway gw-cloud to proxy queue
I1219 05:56:11.709070       1 vxlan.go:77] Tunnel: no local gateway or remote gateway is found, cleaning up route setting
I1219 05:56:11.746785       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-cloud
I1219 05:56:11.746981       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-edge"
I1219 05:56:11.747062       1 tunnelagent.go:113] "applying network" localEndpoint="<IP_ADDRESS>" remoteEndpoint=map[]
I1219 05:56:11.747082       1 libreswan.go:102] Tunnel: no local gateway or remote gateway is found, cleaning vpn connections
I1219 05:56:11.762037       1 vxlan.go:77] Tunnel: no local gateway or remote gateway is found, cleaning up route setting
I1219 05:56:11.784486       1 engine.go:121] "RavenEngine: updating gateway, gw-edge"
I1219 05:56:11.784538       1 engine.go:95] RavenEngine: enqueue gateway gw-edge to tunnel queue
I1219 05:56:11.784566       1 engine.go:100] RavenEngine: enqueue gateway gw-edge to proxy queue
I1219 05:56:11.797713       1 engine.go:121] "RavenEngine: updating gateway, gw-edge"
I1219 05:56:11.797737       1 engine.go:95] RavenEngine: enqueue gateway gw-edge to tunnel queue
I1219 05:56:11.797754       1 engine.go:100] RavenEngine: enqueue gateway gw-edge to proxy queue
I1219 05:56:11.818785       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-edge
I1219 05:56:11.819122       1 tunnelagent.go:113] "applying network" localEndpoint="<IP_ADDRESS>" remoteEndpoint=map[gw-edge:<IP_ADDRESS>]
I1219 05:56:11.822511       1 libreswan.go:316] "whacking with" args=[--psk --encrypt --forceencaps --name <IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/24 --id @<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/24 --host <IP_ADDRESS> --client <IP_ADDRESS>/32 --ikeport 4500 --to --id @<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/32 --host %any --client <IP_ADDRESS>/24] output="002 \"<IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/24\": added IKEv2 connection\n"
I1219 05:56:11.835984       1 libreswan.go:316] "whacking with" args=[--psk --encrypt --forceencaps --name <IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/32 --id @<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/32 --host <IP_ADDRESS> --client <IP_ADDRESS>/32 --ikeport 4500 --to --id @<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/32 --host %any --client <IP_ADDRESS>/32] output="002 \"<IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/32\": added IKEv2 connection\n"
I1219 05:56:11.842535       1 libreswan.go:316] "whacking with" args=[--psk --encrypt --forceencaps --name <IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/24 --id @<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/24 --host <IP_ADDRESS> --client <IP_ADDRESS>/24 --ikeport 4500 --to --id @<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/24 --host %any --client <IP_ADDRESS>/24] output="002 \"<IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/24\": added IKEv2 connection\n"
I1219 05:56:11.849240       1 libreswan.go:316] "whacking with" args=[--psk --encrypt --forceencaps --name <IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/32 --id @<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/32 --host <IP_ADDRESS> --client <IP_ADDRESS>/24 --ikeport 4500 --to --id @<IP_ADDRESS>-<IP_ADDRESS>/32-<IP_ADDRESS>/24 --host %any --client <IP_ADDRESS>/32] output="002 \"<IP_ADDRESS>-<IP_ADDRESS>-<IP_ADDRESS>/24-<IP_ADDRESS>/32\": added IKEv2 connection\n"
I1219 05:56:11.853424       1 vxlan.go:81] Tunnel: only gateway node exist in current gateway, cleaning up route setting
I1219 05:56:11.910735       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-cloud
I1219 05:56:11.911057       1 tunnelagent.go:109] network not changed, skip to process
I1219 05:56:11.911077       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-cloud
I1219 05:56:11.911198       1 tunnelagent.go:109] network not changed, skip to process
I1219 05:56:11.911224       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-cloud
I1219 05:56:11.911335       1 tunnelagent.go:109] network not changed, skip to process
I1219 05:56:11.911349       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-edge
I1219 05:56:11.911477       1 tunnelagent.go:109] network not changed, skip to process
I1219 05:56:11.911495       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-edge
I1219 05:56:11.911600       1 tunnelagent.go:109] network not changed, skip to process

Raven's logs from edge node(grabbed from /var/log/pods/kube-system_raven-agent-ds)
2023-12-19T13:55:18.916883189+08:00 stderr F W1219 05:55:18.916769       1 client_config.go:617] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.

Another observation I noticed after setting up gateway, is the nodes became "nonready" shortly after
NAME             STATUS     ROLES                  AGE    VERSION
adl-cloud-node   Ready      control-plane,master   127m   v1.23.17
adl-edge-node    NotReady   <none>                 119m   v1.23.17

From YurtHub logs, it failed to connect to the control-panel:
2023-12-19T22:36:59.056936515+08:00 stderr F E1219 14:36:59.056667       1 prober.go:97] failed to probe: backoff ensure lease error: Get "https://<IP_ADDRESS>:6443/apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/adl-edge-node?timeout=2s": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers), remote server https://<IP_ADDRESS>:6443

@YTGhost Can I know how to do this?
If there is no way to get it automatically, you can also get it manually and set the PublicIP field directly in the CR.

@YTGhost Can I know how to do this?
If there is no way to get it automatically, you can also get it manually and set the PublicIP field directly in the CR.

@chunfungintel
Hi, Sorry I've been so busy the last couple days, I'll check it out tonight.
@River-sh Can you help with this issue?

@YTGhost Can I know how to do this?
If there is no way to get it automatically, you can also get it manually and set the PublicIP field directly in the CR.

About How to get PublicIp manually, you can use some public API to get it, for example, https://ifconfig.me/.
After you get the publicIP, you can check the gateway crd, and then you can find the publicIP field.

@YTGhost Can I know how to do this?
If there is no way to get it automatically, you can also get it manually and set the PublicIP field directly in the CR.

Please refer to the document https://openyurt.io/zh/docs/next/user-manuals/network/raven , you can set the field spec.endpoints.publicIP = 129.xxx.xxx.xxx

Hi @River-sh @YTGhost
This is my testing topology and gateway configuration, please advice.
For the edge node, what PublicIP shall I used?
graph
B("Control-Panel (adl-cloud-node)")
    B ---|10.226.xx.xx/23| C{Router}
    C ---|<IP_ADDRESS>/24| D["Edge (adl-edge-node)"]
    C ---|<IP_ADDRESS>/24| E["Edge (adl-edge-node-2)"]

kubectl label nodes adl-cloud-node raven.openyurt.io/gateway=gw-cloud

cat <<EOF | kubectl apply -f -
apiVersion: raven.openyurt.io/v1beta1
kind: Gateway
metadata:
  name: gw-cloud
spec:
  exposeType: PublicIP
  proxyConfig:
    Replicas: 1
    proxyHTTPPort: 10255,9445
    proxyHTTPSPort: 10250,9100
  tunnelConfig:
    Replicas: 1
  endpoints:
    - nodeName: adl-cloud-node
      underNAT: false
      port: 10262
      type: proxy
      publicIP: 10.226.xx.xx
    - nodeName: adl-cloud-node
      underNAT: false
      port: 4500
      type: tunnel
      publicIP: 10.226.xx.xx
EOF

kubectl label nodes adl-edge-node raven.openyurt.io/gateway=gw-edge

cat <<EOF | kubectl apply -f -
apiVersion: raven.openyurt.io/v1beta1
kind: Gateway
metadata:
  name: gw-edge
spec:
  proxyConfig:
    Replicas: 1
  tunnelConfig:
    Replicas: 1
  endpoints:
    - nodeName: adl-edge-node
      underNAT: true
      port: 4500
      type: tunnel
EOF

Logs from raven in edge node:
2024-01-02T22:33:07.857685277+08:00 stderr F I0102 14:33:07.857475       1 tunnelagent.go:203] "no public IP for gateway, waiting for sync" gateway="gw-edge"
2024-01-02T22:33:07.857689261+08:00 stderr F I0102 14:33:07.857520       1 tunnelagent.go:113] "applying network" localEndpoint=<nil> remoteEndpoint=map[gw-cloud:<IP_ADDRESS> gw-rbf:<IP_ADDRESS>]
2024-01-02T22:33:07.857690312+08:00 stderr F I0102 14:33:07.857531       1 libreswan.go:102] Tunnel: no local gateway or remote gateway is found, cleaning vpn connections
2024-01-02T22:33:07.86175371+08:00 stderr F I0102 14:33:07.861604       1 vxlan.go:77] Tunnel: no local gateway or remote gateway is found, cleaning up route setting
2024-01-02T22:33:07.901832865+08:00 stderr F I0102 14:33:07.901692       1 tunnel.go:55] RavenEngine: update raven l3 tunnel config for gateway gw-rbf
2024-01-02T22:33:30.581124834+08:00 stderr F I0102 14:33:30.580844       1 engine.go:121] "RavenEngine: updating gateway, gw-rbf"
2024-01-02T22:33:30.581136463+08:00 stderr F I0102 14:33:30.580854       1 engine.go:95] RavenEngine: enqueue gateway gw-rbf to tunnel queue
2024-01-02T22:33:30.58114176+08:00 stderr F I0102 14:33:30.580860       1 engine.go:100] RavenEngine: enqueue gateway gw-rbf to proxy queue
2024-01-02T22:33:32.20392066+08:00 stderr F I0102 14:33:32.203602       1 engine.go:121] "RavenEngine: updating gateway, gw-rbf"
2024-01-02T22:33:32.203930395+08:00 stderr F I0102 14:33:32.203611       1 engine.go:95] RavenEngine: enqueue gateway gw-rbf to tunnel queue
2024-01-02T22:33:32.203931555+08:00 stderr F I0102 14:33:32.203616       1 engine.go:100] RavenEngine: enqueue gateway gw-rbf to proxy queue
2024-01-02T22:34:15.668335876+08:00 stderr F I0102 14:34:15.668216       1 engine.go:121] "RavenEngine: updating gateway, gw-rbf"
2024-01-02T22:34:15.668344997+08:00 stderr F I0102 14:34:15.668226       1 engine.go:95] RavenEngine: enqueue gateway gw-rbf to tunnel queue
2024-01-02T22:34:15.668346022+08:00 stderr F I0102 14:34:15.668232       1 engine.go:100] RavenEngine: enqueue gateway gw-rbf to proxy queue
2024-01-02T22:34:37.903910881+08:00 stderr F E0102 14:34:37.903642       1 tunnelagent.go:92] "error config gateway public ip" err="error get public ip by any of the apis: [https://api.ipify.org https://api.my-ip.io/ip https://ip4.seeip.org]" gateway="gw-edge"

Obviously, my cooperate network blocking used of stun, checking with pystun3:
pystun3
NAT Type: Blocked
External IP: None
External Port: None
Press any key to continue

Update:
I managed to get "kubectl logs" working by using configuration as below:
apiVersion: raven.openyurt.io/v1beta1
kind: Gateway
metadata:
  name: gw-cloud
spec:
  exposeType: PublicIP
  endpoints:
  - nodeName: adl-cloud-node
    port: 4500
    type: tunnel
    publicIP: LOCAL_NETWORK_IP
  proxyConfig:
    Replicas: 1
  tunnelConfig:
    Replicas: 1
EOF
---
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-edge
spec:
  endpoints:
    - nodeName: adl-edge-node
      underNAT: true

AND
set correct proxy settings in raven-agent-ds
kubectl set env -n kube-system daemonset raven-agent-ds http_proxy=${http_proxy}
kubectl set env -n kube-system daemonset raven-agent-ds https_proxy=${https_proxy}
kubectl set env -n kube-system daemonset raven-agent-ds no_proxy=${no_proxy}
kubectl set env -n kube-system daemonset raven-agent-ds HTTP_PROXY=${HTTP_PROXY}
kubectl set env -n kube-system daemonset raven-agent-ds HTTPS_PROXY=${HTTPS_PROXY}
kubectl set env -n kube-system daemonset raven-agent-ds NO_PROXY=${NO_PROXY}

Thanks a lot for yours support!

You don't need this complicated configuration, you just need to enable Raven's Tunnel mode and configure the correct Gateway CR https://openyurt.io/zh/docs/user-manuals/network/raven/

Update: I managed to get "kubectl logs" working by using configuration as below:
apiVersion: raven.openyurt.io/v1beta1
kind: Gateway
metadata:
  name: gw-cloud
spec:
  exposeType: PublicIP
  endpoints:
  - nodeName: adl-cloud-node
    port: 4500
    type: tunnel
    publicIP: LOCAL_NETWORK_IP
  proxyConfig:
    Replicas: 1
  tunnelConfig:
    Replicas: 1
EOF
---
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-edge
spec:
  endpoints:
    - nodeName: adl-edge-node
      underNAT: true

AND
set correct proxy settings in raven-agent-ds
kubectl set env -n kube-system daemonset raven-agent-ds http_proxy=${http_proxy}
kubectl set env -n kube-system daemonset raven-agent-ds https_proxy=${https_proxy}
kubectl set env -n kube-system daemonset raven-agent-ds no_proxy=${no_proxy}
kubectl set env -n kube-system daemonset raven-agent-ds HTTP_PROXY=${HTTP_PROXY}
kubectl set env -n kube-system daemonset raven-agent-ds HTTPS_PROXY=${HTTPS_PROXY}
kubectl set env -n kube-system daemonset raven-agent-ds NO_PROXY=${NO_PROXY}

Thanks a lot for yours support!

You don't need this complicated configuration, you just need to enable Raven's Tunnel mode and configure the correct Gateway CR https://openyurt.io/zh/docs/user-manuals/network/raven/ and yurt-manager will elect activeEndpoints in Gateway.Status.ActiveEndpoints.
You can kubectl get gw gw-cloud -o yaml to verify that the gateway node is elected

@River-sh Thank you, I will try and let you know.

Troubled by same question several days. Maybe a bit different network environments from @chunfungintel .
Both my control-plane nodes and edge nodes are behind NAT. I'm able to join edge nodes successfully(using cmd: yurtadm join k8s-api-server-PublicIP:Port --token xxxxx --discovery-token-ca-cert-hash xxxxxx --node-type=edge, k8s-api-server-PublicIP:Port mapped to PrivateIP:6443 in cloud). I am able to deploy busybox workload to edge nodes too, but I am not able to do "kubectl exec/logs" for pods running in edge nodes.
How could I configure Gateway CR correctly when both control-plane nodes and edge nodes are behind NAT?

Troubled by same question several days. Maybe a bit different network environments from @chunfungintel . Both my control-plane nodes and edge nodes are behind NAT. I'm able to join edge nodes successfully(using cmd: yurtadm join k8s-api-server-PublicIP:Port --token xxxxx --discovery-token-ca-cert-hash xxxxxx --node-type=edge, k8s-api-server-PublicIP:Port mapped to PrivateIP:6443 in cloud). I am able to deploy busybox workload to edge nodes too, but I am not able to do "kubectl exec/logs" for pods running in edge nodes.
How could I configure Gateway CR correctly when both control-plane nodes and edge nodes are behind NAT?

You can choose to expose the gateway node of the control plane on the public network (configure DNAT on the NAT so that the UDP 4500 of this gateway node can be accessed), and the Gateway is set to UnderNAT=false. You can also set underNat = true to test whether NAT traversal is implemented to build a VPN between two gateway nodes.

I used the same revised step except that raven-agent-0.4.1 was used.

Revised steps:
Control-panel initialization:
sudo kubeadm init --pod-network-cidr=<IP_ADDRESS>/16 --service-cidr=<IP_ADDRESS>/12
mkdir -p $HOME/.kube && sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
kubectl taint nodes --all node-role.kubernetes.io/master-

Using OpenYurt 1.4.0 + Raven agent 0.4.0
helm upgrade --install yurt-manager -n kube-system openyurt/yurt-manager --version 1.4.0 --set image.tag=latest
helm upgrade --install yurt-hub -n kube-system --set kubernetesServerAddr=https://${KUBERNETES_SERVER_ADDRESS}:6443 openyurt/yurthub --version 1.4.0
helm upgrade --install raven-agent -n kube-system openyurt/raven-agent --set vpn.forwardNodeIP=true \
--set image.tag=0.4.0 --version 0.4.0

Install OpenYurt 1.4 in Edge
wget https://github.com/openyurtio/openyurt/releases/download/v1.4.0/yurtadm-v1.4.0-linux-amd64.tar.gz
tar -xvf yurtadm-v1.4.0-linux-amd64.tar.gz
sudo cp linux-amd64/yurtadm /usr/local/bin/yurtadm && sudo chmod +x /usr/local/bin/yurtadm

Edge node joining:
sudo yurtadm join \
${CONTROL_PANEL_ADDRESS}:6443 \
--token=${JOIN_TOKEN} --node-type=edge \
--cri-socket=unix:///run/containerd/containerd.sock \
--discovery-token-ca-cert-hash=${CA_HASH} --v=5

Gateway configuration:
kubectl label nodes adl-edge-node raven.openyurt.io/gateway=gw-edge; \
kubectl label nodes adl-cloud-node raven.openyurt.io/gateway=gw-cloud

cat <<EOF | kubectl apply -f -
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-edge
spec:
  endpoints:
    - nodeName: adl-edge-node
      underNAT: true
---
apiVersion: raven.openyurt.io/v1alpha1
kind: Gateway
metadata:
  name: gw-cloud
spec:
  endpoints:
    - nodeName: adl-cloud-node
      underNAT: false
EOF

git clone https://github.com/openyurtio/raven.git
cd raven && git checkout v0.4.0
make deploy

Results: Still unable to do 'kubectl logs'
Anything still missing?

As you said, your cloud nodes cannot be accessed on the public network, cross-network domain VPNs cannot be established, and kubectl logs/exec cannot

@qpanpony   You can read this document step by step. https://openyurt.io/zh/docs/user-manuals/network/raven

Just a feedback. I quitted to use raven-agent component since cross-network domain VPNs cannot be established under my network environment. Have deployed edgemesh which provided the ability to communicate across subnets based on LibP2P tunnel.


[FEAT]: Google Gemma Model

What would you like to see?
New Open Model by Google.
https://blog.google/technology/developers/gemma-open-models/

This can be done by using the HuggingFace connector - however we should support VertexAI, which is the more native way to run these models on GCP infra.
Going to close this and open VertexAI issue

Also this can be done in Ollama as of today
https://twitter.com/ollama/status/1760373589201600593


why the adapter is not been removed?

Dear there,
I am using Scythe to remove my adapters. But, I found the adapter did not get removed after running it (I did not meet this problem before). I don't know why and I did provide adapter file to it.
Here is the screen shot before removing adapters:

Here it is after running scythe and sickle:

Why this trueseq adapter is still there after running scythe? I believe it is 3'-end adapter contaminants, right?

Here is the code that I used:
scythe -a illumina_adapters_all.fa -o sc.${ARRAYFILE}_1.fq ${ARRAYFILE}_1.fq.gz
Here is the adapter file:
illumina_adapters_all.txt
Thanks a lot!

It looks like your adapters file is not FASTA formatted. This is why it's not properly reading the adapter file and not trimming the results. I have validated this — I will add in later versions a check to ensure the adapter file is properly formatted.

Here is the screenshot for my adapter [

The above one is just wrong copy format.
Thank you so much for your quick response!

If you look at the screenshot to compare the counts of adapter contaminants, you will find the count after removing is less than before. It means it read my my adapter file?

I fixed the issue finally. The reason is that there are severe contaminations in the sequences. For the previous adapter file, it is not enough to remove all of them. I added more sequences associated with contamination in the adapter file and finally got removed all of them.


Register domain name

A domain name will be needed for email, publishing the web app, and backend services for mobile apps.

Registered the domain examplium.com.


purrr: imap works on index or name

The new cheatsheets look great!
I was recently using purrr::imap and I found it confusing at first and convenient later that, if the list is named, imap takes the name as the second argument instead of the numeric index.
Maybe the cheatsheet could specify that imap passes the name if available and otherwise it passes the index.
I guess it would have been better to have purrr::imap passing the index and purrr::nmap passing the name as second argument to have type stability... but it's probably too late to change that now.
Thanks again

Thanks! I'll update the note at the bottom of the imap() examples to say

Use ~ .x .y with functions like imap(). .x will get the list value and .y will get the index**, or name if available.**

(bolded portion is new text)


Error localization

Risk analysis
Instruction: Remove bullets not included to the analysis results._

[x] Risks of the implementation in this pull request have been analyzed with following results:
No significant risks.

Significance
Instruction: Remove bullet, which is not the analysis result.

[x] Analysis, is the software change considered significant (ref. MDCG 2020-3, chart C), has been made with following result:
Not significant change, can be made to the product certified according MDD.

Reasons for the decision - A minor bug fix only

Security check-up
Instruction: Check that the OWASP top 10 have been taken into account.
https://github.com/OWASP/www-project-top-ten/blob/master/index.md

[x] 1 Injection - A localization fix only
[x] 2 Broken Authentication - A localization fix only
[x] 3 Sensitive Data Exposure - A localization fix only
[x] 4 XML External Entities (XXE) - A localization fix only
[x] 5 Broken Access Control - A localization fix only
[x] 6 Security Misconfiguration - A localization fix only
[x] 7 Cross-Site Scripting XSS - A localization fix only
[x] 8 Insecure Deserialization - A localization fix only
[x] 9 Using Components with Known Vulnerabilities - A localization fix only
[x] 10 Insufficient Logging & Monitoring - A localization fix only

Ps. Pitäisikö versionumeroa package.json:ssa kasvattaa?

Ei ehkä tarvitse nyt, kun muutos menee deviin. Kasvatetaan, kun menee masteriin. Otan sieltä sitten taas deviin ja käännän versiot.

Implemented in a PR towards the main branch, https://github.com/Sensotrend/sensotrend-uploader/pull/78


[Proposal] Change most of structs to class.

There seems no criterion what to choose between class and struct.
For example, PushOperation is class, while Operation is struct.
Operation: struct
PushOperation: class
Stream: struct
PushStream: class

RawStream: struct
RawConnectableStream: class

Property: class
CollectionProperty: class

Observer: struct

most of Disposable: class
NotDisposable: struct

I think all of above types are semantically reference type, not value type, so they should be class, not struct.
Strong evidence is that above types are not feasible to adopt Equatable protocol.
See WWDC 2015: Building Better Apps with Value Types in Swft that says

"Value types should implement Equatable"

If you agree, I can do the work.

Personally, I think a good convention is "struct by default", since structs provide various performance improvements/optimizations and there's often no reason to make them reference types.
I haven't look at the codebase in detail, but for example I don't see any reason for Observer to be a class, since it's just a container. It looks like reference types are only used when there are properties that are mutable, but it doesn't make sense for any references to the class itself to be marked mutable with var (such as with Property).

I agree "struct by default" if we are talking about type that has value semantics.
Here, above types have nothing to do with value semantics.
Does it make sense to compare Observer with another Observer with ==?
We can't even compare two Observerthat have same observer: Event -> Void because function types do not have ==.
struct is value type. Value type should have value semantics. It's simple.
(Performance is not related here, and usually over emphasized)

Does it make sense to compare Observer with another Observer with ==?
It doesn't. But, I disagree with the statement that every struct has to implement ==.

(Performance is not related here, and usually over emphasized)
I agree, that's a weak point.

Anyway, it's up to @srdanrasic. But, if it were up to me, I would continue the 'struct by default' convention and not change what there is right now (don't fix what isn't broken, you know?).

Refactoring is fixing what is not broken.
Framework code like ReactiveKit should be fixed before others depend on, even it's not broken.
This is different situation with "Don't fix what isn't broken" can be applied (usually application code).

Struct and value types in general are preferred choice. There are so many benefits that listing them here would take hours. Google "swift struct vs class".
Criteria is identity. If something has identity, it will be a class. Types like PushStream/PushOperation, connectables and properties have identity so they are classed. They have identity because they hold an array of observers which are closures. Closures are reference types. When something holds references or an array of references it can no longer be treated as a pure value type.

Sorry for my stubborn opinion. But here I am again. :-)
You said,

When something holds references or an array of references it can no longer be treated as a pure value type.

RawStream holds producer which is reference type. As you said, it can no longer be treated as a pure value type.
If then, it should be class. Am I wrong?

Ah, persistence is good! :)
Yeah, there is more to this, and it's related usage.
For example, if we made Property a struct and pass it in a function, the receiver would expect that he's getting a copy of it and that the changes he makes are limited to his local scope / function body. However, the Property internally holds an array of observers, and because observers are closures and thus reference types, the copy of Property received by the function would hold references to those same observers. Any changes made in the scope of a function would affect those external observer.
We thus have Property as a reference type so that the receiver cannot make such assumptions.
With Stream/Operation producer we don't care if we are getting a copy or a reference, because the producer is a function meant to be called at will, when we need to produce the stream. It's something that cannot (should not) put an app in an inconsistent state or trigger unexpected side effects.
Of course, just because the usage allows for Stream/Operation to be struct, it does not necessarily mean that it should be struct. There are other benefits like much better performance, thread safety, copy semantics, immutability etc.
Most of the Swift standard library is structs and value types and I think we should aim to that same philosophy.


Visualizations: Positioning of faceted plot panels

When I facet by any variable the resulting panels seem to be positioned in a way that they are all equidistant from each other while consuming whatever horizontal space is available to them. I think the panels should be as near to each other as reasonably possible starting from the left of the page, to facilitate easier comparison across them. My hope is that would also make their positions more consistent when toggling the no data panels on/ off.

wonder if @bobular has thoughts on this or can indicate how much effort it might be

@moontrip This is the PR we discussed in today's EDA that I believe addresses this issue.

Thanks @jernestmyers for your information. I will check/test and close this ticket if it works 👍

I have tested and confirmed that this seemed to be addressed before, so closed

looks good!


Sprint/2205 iarmmgrs

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.20 out of 22 committers have signed the CLA.:white_check_mark: anand-ky:white_check_mark: npoltorapavlo:white_check_mark: ahmedShafi12:white_check_mark: apatel859:white_check_mark: madanagopaltcomcast:white_check_mark: asurdej-comcast:white_check_mark: MManja792:white_check_mark: Gavriliuk:white_check_mark: philipjms:white_check_mark: ksanth850:white_check_mark: muthumanik:white_check_mark: gladish:white_check_mark: sborushevsky:white_check_mark: HaseenaSainul:white_check_mark: pkumbh631:white_check_mark: mrcomcast123:white_check_mark: emutavchi:white_check_mark: MFransen69:white_check_mark: vdinak240:white_check_mark: mateusz-adamski-red:x: mallikarjun manjari:x: rshaiik263mallikarjun manjari seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Closing older PRs. Pls bring changes to latest sprint.


Drop support for h5py<2.10

By dropping h5py<2.10 we also drop debian10 (h5py 2.8)...
If having h5py<2.8 doesn't change anything, maybe it is better? Else debian10 will stay with v0.13 max or a backport of h5py (which is fine for me).

In that case I think it is better to still support 2.7

Maybe not, debian10 comes with h5py v2.8 and matplotlib v3.0.2... so currently released version of silx is compatible.

Hmmm weird, I have not problems with h5py 2.7 on my Ubuntu 20.04 machine.

This is no longer needed. See #3252


Wrap errors to provide context

@luksa: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test lint

unit-tests-arm64_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@luksa: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test lint

unit-tests-arm64_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test unit-tests-arm64

unit-tests_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/hold

@luksa: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test lint

unit-tests_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test unit-tests

unit-tests-arm64_sail-operator_main
1d1650d74a98617e59919aaea1766590be5f7a7a
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@luksa: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_sail-operator_main
cf9b2a983559d4318768f85c41f5145e0856eeba
link
true
/test lint

unit-tests-arm64_sail-operator_main
1d1650d74a98617e59919aaea1766590be5f7a7a
link
true
/test unit-tests-arm64

unit-tests_sail-operator_main
1d1650d74a98617e59919aaea1766590be5f7a7a
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/hold cancel


[WIP] gcp: add support for regional storage types

The version of the Google API library we have vendored does not have the RegionDisks API.
I've attempted to use 15aea8711db98e640b277da9771a9d74270c2edc of google.golang.org/api but that results in some other compilation issues that I am unsure of how to fix currently.
vendor/google.golang.org/api/internal/creds.go:36:10: undefined: google.CredentialsFromJSON
Makefile:113: recipe for target 'shell' failed
make[2]: *** [shell] Error 2
make[2]: Leaving directory '/home/wwitzel3/go/src/github.com/heptio/ark'
Makefile:97: recipe for target '_output/bin/linux/amd64/ark' failed
make[1]: *** [_output/bin/linux/amd64/ark] Error 2
make[1]: Leaving directory '/home/wwitzel3/go/src/github.com/heptio/ark'
Makefile:67: recipe for target 'all' failed
make: *** [all] Error 2

Once I get the vendoring figured out, I'll add tests, and take this out of work in progress.
Fixes #765

@wwitzel3 guessing you'll also need to bump the rev of golang.org/x/oauth2 that we're using?

I'll give that a shot, thanks.


Add invalidation of resource cache on new login

Fixes #68
Invalidates the resource cache when a different user logs into the app.

Hi, thank you for your pr.
i suggest to try first to send a pr to official adal.js library (that react-adal use)
https://github.com/AzureAD/azure-activedirectory-library-for-js
otherwise you can check this branch
https://github.com/salvoravida/react-adal/tree/dev-invalidation
and if all is ok, we can release a new react-adal version with this mod
while waiting for official lib integration


 Each command was manually tested to verify functionality.

To see the specific tasks where the Asana app for GitHub is being used, see below:

https://app.asana.com/0/0/1204615033157553

!ci-build-me

!ci-build-me

!ci-build-me


Photo sphere 360 implementation

Can you implement an image view to  see photo spheres 360° ?

#156


feat: add TDengine database support

TDengine is  a High-Performance, Scalable, Time-Series Database with SQL support
Website: https://tdengine.com

Thanks @arielyang! Would be happy to pull this in.
I've just merged a change to use yarn as package manager instead of npm. Can you pull those in and address the conflicts?
Apologies for the socket-security alert. It is a false positive and I'm not sure how to go about flagging it as such yet with socket.

@arielyang thanks for the effort on this but I'm going to close this one out. SQLPad development is winding down and I'd like to avoid taking more functionality on.


Macros with gensym make not reusing cached results after JVM restart

I noticed that for some function calls results are not taken from cache after JVM restart. It is especially frustrating when it take a couple of minutes to execute something. Turned out that the reason were macros with auto-gensym (like abc#) because on each JVM start that would evaluate to different symbol, thus analyzer would find such form to be different than what it has already cached
.
The workaround was to change gensym with fixed symbols like ~'abc. I'm not sure if there is better solution for that. It would be good to clarify that in docs.

Hi @pm4r, thanks for raising this. I'll need to dig a bit deeper into this. I'd like to get Clerk's caching work for these macros as well.


Annotation as first class citizen

In data visualization it is often important to use annotations so that your reader can get a grip on the systems they are looking at. As it stands user's could certainly add their own annotations through hacking and slashing, but it would be amazing to support this behaviour by adding a few different components to make annotations a breeze:

[ ] AnnotationSeries,
[ ] Reference line (#371)
[ ] CircleCallOut

(I am grabbing most of these ideas from Susie Lu's super cool http://d3-annotation.susielu.com/)

yeah but let's take stock of what we already have:
LabelSeries, which, sure, could have more features
Hint and CrossHair
overall I'd be in favor of reinforcing what we currently have than starting something new.
Notably, Susie Lu's library supports dragging annotations. That's an interesting problem for react-vis.
Today react-vis doesn't natively support dragging. If we did, we'd either have to maintain state at the series level, or change the way XYPlot handles data. either of which have consequences. While we have an example on how react-vis + dragging (zoomable chart), handing of dragging events happen outside of react-vis in this case.

What other features do you see labelSeries gaining? it seems like a pretty uni-purpose component to me, but i might be missing something.
Hint and crosshair are fine at what they do, what more do we need from them? I know in the referenceLine ticket the consensus seemed to be that reference lines could be handled with Crosshairs, but I feel like having a really easy and convinient api will make people use it?
I think whenever someone picks up the story to import the zoomable-chart in to the main library, we could either do it the way that's handled there (with state being held in a higher order component), or make a special type of XYPlot, something like StatefulXYPlot?

re LabelSeries - text anchor is not accessible. and since it's not a style property, it's not overridable. That's a really easy fix though.
Hint is text, or rather content, associated to a datapoint. As such it could be enhanced with connectors to the mark of that datapoint, and other strategies for positioning it.
Crosshair is a second-class rv component. It doesn't have a style property (nor a strokeStyle prop etc.), it's always vertical and how content and items are being represented is maybe too opinionated. Crosshair is among the oldest code, I feel it was too tightly coupled with our first use cases. Whenever I need a reference line - even vertical, I've always used a LineSeries.
I welcome your thoughts on how to implement dragging (and/or brushing, zooming etc.) if we ever go this way.
XYPlot already has a state. data for its children element come from that state. Right now the only time data in the state is different than data in the series props is for stacked elements.
I'm actually wondering if we'd need a state at the series level to handle dragging. or if we can simply handle this the same way we do w/ stacked elements.

text anchor is not accessible. and since it's not a style property, it's not overridable. That's a really easy fix though.

I have been looking for a work around for this for quite some time now. Would you mind helping me figure out how to access textAnchor inside a <LabelSeries/>? I'm sure it might help others as well.

@quasi-nova this is super late, but I tend to use text anchor in labelseries by adding style to the data of the label series like
<LabelSeries data={data.map(d => {
    return ({...d, style: {textAnchor: 'middle}})
})}/>


Using content types other than json could be easier.

I am trying to add XML as an available content type for my api using this library, which I found quite easy to do for setting the response type by registering an XML ViewModel, Renderer and Strategy.
I was a bit disappointed with the support for retrieving request data. The ContentTypeListener is not very extensible and is hardcoded to handle only form data and JSON.
Would there be any interest in a pull request to make this more extensible? )

@bnppl With the event system in ZF2, you can register your own listeners for munging request data. If you register at the same or lower priority as the ContentTypeListener, your own code can overwrite the body params based on the results of your own deserialization. We chose this route, as deserialization will typically be one of JSON, form-encoded, or multipart-form — all of which we can easily handle — or something custom.
We could potentially add a plugin system to zf-content-negotiation, but considering the event system already exists, this seems like overkill.

That's what I ended up doing, thanks!


[Menu, Select] Trigger label prop appears to be unused

Not sure what the original purpose of the prop was, but it's not used in any way. Should we remove it?
https://github.com/mui/base-ui/blob/master/packages/react/src/select/trigger/SelectTrigger.tsx
https://github.com/mui/base-ui/blob/master/packages/react/src/menu/trigger/MenuTrigger.tsx
Search keywords:

It seems that the only purpose of it was to prevent it from being applied to the rendered <button />. I don't remember why, though.


Svelte error: mount() not available on the server

Describe the bug
When creating a wxt project with svelte, the following error occurs in console:
Uncaught Svelte error: lifecycle_function_unavailable
`mount(...)` is not available on the server

This error was discussed in #1228 and should (as of my understanding) be fixed by using<EMAIL_ADDRESS>Reproduction
reproduction.zip
Steps to reproduce
Run pnpm dlx wxt@latest init, follow the setup and select svelte.
Then cd into the project and replace @wxt-dev/module-svelte: ^2.0.0 with @wxt-dev/module-svelte: ^2.0.1.
Install dependencies: pnpm i.
Build and zip the extension: pnpm zip:firefox.
Visit about:debugging#/runtime/this-firefox and load temporary Add-on.
Click the Add-ons Icon in Add-on bar and check console in Add-on Inspector.
System Info
System:
    OS: Linux 6.6 Manjaro Linux
    CPU: (16) x64 AMD Ryzen 7 5800X3D 8-Core Processor
    Memory: 25.36 GB / 31.27 GB
    Container: Yes
    Shell: 3.7.1 - /bin/fish
  Binaries:
    Node: 18.18.2 - ~/.nvm/versions/node/v18.18.2/bin/node
    npm: 10.5.0 - ~/.local/share/pnpm/npm
    pnpm: 9.15.0 - ~/.local/share/pnpm/pnpm
  Browsers:
    Chromium: 131.0.6778.108
  npmPackages:
    wxt: ^0.19.13 => 0.19.22

Used Package Manager
pnpm
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

I also face this issue, but only in my existing project
In a new one, I can run the Svelte-powered popup without issues

https://github.com/avi12/wxt-svelte-test
wxt-svelte-test.zip

I tried your example, but I have the same Issue when building the extension and loading it manually in both chrome and firefox. How do you load the build extension into your browser?

In the example ext I let WXT launch the browser in dev mode

Yeah, dev mode works on mine, too. I only have the problem when building and manually testing in my browser.

@m-krebs I cannot reproduce the issue in my project, whether I let WXT launch the browser for me or I manually sideload it unpacked

Yeah, dev mode works on mine, too.

That's the thing, I only tried running in dev mode, and yet on YTHD it works nicely but my other project cannot run Svelte in the popup/content script 😐

That's makes it complicated 😅. Could you explain, how you sideload the extension? I might be doing it wrong.
Maybe that might help find the issue with your existing project.

I just run wxt and put the build/chrome-mv3-development folder in Chrome, or let WXT load it into a temp Chrome instance

Can confirm that this happens in none dev builds.

Run pnpm dlx wxt@latest init and select the svelte template
Run pnpm build
Load the extension unpacked in chrome (/path/to/proj/.output/chrome-mv3/)
Open the extension example pop-up
This should log an error in the chrome extension logs:

Uncaught Svelte error: lifecycle_function_unavailable `mount(...)` is not available on the server https://svelte.dev/e/lifecycle_function_unavailable

Context
popup.html

This also happens when you zip it (probably anything that isn't dev) and in Firefox.

i found a temporary fix, folks:
go to<EMAIL_ADDRESS>and do:
- conditions: mode === "development" ? ["browser"] : []
+ conditions: mode === "development" ? ["browser"] : ["browser"]

or just conditions: ["browser"]
after this, npm run build should give something that works. at least for me. cheers

@andreasnuesslein Yeah, this seems to work temporarily. The extension just logs a warning about NODE_ENV unset or so. It probably has to do something with the Vite bundling.

Ah, I see I'm late to the party. Anyone want to open a PR for this fix?

@ZerGo0

Can confirm that this happens in none dev builds.

Run pnpm dlx wxt@latest init and select the svelte template
Run pnpm build
Load the extension unpacked in chrome
3.1. Visit chrome://extensions/
3.2. Click the Load unpacked button and point it the the example extension directory (/path/to/proj/.output/chrome-mv3/)
Open the example extension pop-up
This should log an error in the chrome extension logs:

Uncaught Svelte error: lifecycle_function_unavailable `mount(...)` is not available on the server https://svelte.dev/e/lifecycle_function_unavailable

Context
popup.html

This also happens when you zip it (probably anything that isn't dev) and in Firefox.

What's weird is that in my YTHD I don't get any error during dev mode and yet in YTTM I do get this this Svelte error during dev mode

OK, I got a fix that works in both dev mode and production builds, without any errors:
- conditions: mode === "development" ? ["browser"] : []
+ conditions: ["browser", mode]

Will open a PR.

https://github.com/wxt-dev/wxt/pull/1283

I tried to put
{
  "devDependencies": {
    "wxt": "github:wxt-dev/wxt"
  }
}

and I got
C:\repositories\extensions\youtube-time-manager\extension git:[wxt]
pnpm i
../../../../Users/avi12/AppData/Local/pnpm/store/v3/tmp/_tmp_43032_4ea2b01e2261984cc6dc179bc826dd9b [@]: Running pnpm-install script, done in 2m 27.1s
../../../../Users/avi12/AppData/Local/pnpm/store/v3/tmp/_tmp_43032_4ea2b01e2261984cc6dc179bc826dd9b [@]: Running prepublish script, failed in 938ms
...3032_4ea2b01e2261984cc6dc179bc826dd9b prepublish$ pnpm -s build
│ 'build' is not recognized as an internal or external command,
│ operable program or batch file.
└─ Failed in 938ms at C:\Users\avi12\AppData\Local\pnpm\store\v3\tmp\_tmp_43032_4ea2b01e2261984cc6dc179bc826dd9b
 ERR_PNPM_PREPARE_PACKAGE  Failed to prepare git-hosted package fetched from "https://codeload.github.com/wxt-dev/wxt/tar.gz/64a704fc729e95e0703b2549ee62c5577e1628ce": @ prepublish: `pnpm -s build`
Exit status 1

This error happened while installing a direct dependency of C:\repositories\extensions\youtube-time-manager\extension
Progress: resolved 48, reused 48, downloaded 0, added 0

No changes to the wxt module. Released fix in https://github.com/wxt-dev/wxt/releases/tag/module-svelte-v2.0.2

I installed
{
  "devDependencies": {
    "@wxt-dev/module-svelte": "^2.0.2"
  }
}

it seems to be able to load Svelte now, both in the content script and popup page


Fix encoding spec from #6661 to also work 1.9.3

String#b is Ruby 2.0+.

What was the problem that led to this PR?
The CI is failing on the 1-16-stable branch.
What was your diagnosis of the problem?
The CI on master doesn't run against MRI 1.9.3, so this failure slipped in in #6661.
Probably testing against MRI 1.9.3 should be done on master too?
What is your fix for the problem, implemented in this PR?
Make the spec work on 1.9.3.
cc @hsbt

Probably testing against MRI 1.9.3 should be done on master too?

Maybe... although one of the main points of "dropping" old ruby compatibility on master was build time, I think. So I tend to stick with my current opinion: drop 1.8.7 as well on master and delay compatibilty work to backporting PRs, instead of having to do it on every PR (that might not even be backported).

:+1:, to the three statements made :)

@deivid-rodriguez CI is green, could you trigger the merge? :)

@bundlerbot r+


add EnumColumnType

This PR add a new column type to display Enum with the same logic as the EnumType form field.

Hey @bdecarne, thanks for the contribution!
Now we'll only need the documentation for the type in the reference section. If there are no people willing to do it, I'll try to do it within a few days.
Cheers


Add LICENSE

License under the MIT License, pending agreement from:

[x] @md678685 for not being that MD,
[ ] @Bastian for the bot base and bStats command,
[ ] @LaxWasHere for all the Chester-iness,
[ ] @Dariasc for tag arguments,
[ ] @blha303 for the 🔥📼,
[ ] @DoNotSpamPls for preventing spam moderation commands, and
[ ] @drtshock for the word Discord in the initial commit's README.md.

1$ per diff, xD
jk...

Still waiting on @drtshock


Feature/updates for 6.4

Hi @FalkoHilbert
Thank you for your contribution! Can you remove the compiled javascripts? It get's added automatically to the release zips by the GitHub actions. That's why they are not in the repo.

ok, no Problem. That's why I also put it in a separate commit ;)

it's away

Thank you for your contribution! I've added the tag, the release will be available shortly.


list_entities error

Hello @chicco785
I am giving a try to this tool :-)
I have tried to list some entities but orion is complain about some headers. This is the code that I tried:
api_client = ApiClient(host='http://<IP_ADDRESS>:1026')
api_client.set_default_header('fiware-service', 'parking')
api_client.set_default_header('fiware-servicepath', '/parking')
api_instance = swagger_client.EntitiesApi(api_client)

 r = api_instance.list_entities()

print(r)

Orion returns the following response:
HTTP response headers: HTTPHeaderDict({'Connection': 'Keep-Alive', 'Content-Length': '163', 'Content-Type': 'application/json', 'Fiware-Correlator': 'c6e49922-dec4-11e9-bbd2-02420a000b0d', 'Date': 'Tue, 24 Sep 2019 12:13:54 GMT'})
HTTP response body: {"orionError":{"code":"400","reasonPhrase":"Bad Request","details":"Orion accepts no payload for GET/DELETE requests. HTTP header Content-Type is thus forbidden"}}

Orion does not allow the Content-Type It could just ignore the content if it would be present but... :S
It seems that it can be fixed just redefining the swagger but I can't find it.
Best

i will check and provide you the pointer, pr is welcome of course :)
On Tue, 24 Sep 2019 at 14:44, Germán Molina Carrasco <
<EMAIL_ADDRESS>wrote:

Hello @chicco785 https://github.com/chicco785
I am giving a try to this tool :-)
I have tried to list some entities but orion is complain about some
headers. This is the code that I tried:
api_client = ApiClient(host='http://<IP_ADDRESS>:1026')
api_client.set_default_header('fiware-service', 'parking')
api_client.set_default_header('fiware-servicepath', '/parking')
api_instance = swagger_client.EntitiesApi(api_client)
r = api_instance.list_entities()
print(r)
Orion returns the following response:
HTTP response headers: HTTPHeaderDict({'Connection': 'Keep-Alive', 'Content-Length': '163', 'Content-Type': 'application/json', 'Fiware-Correlator': 'c6e49922-dec4-11e9-bbd2-02420a000b0d', 'Date': 'Tue, 24 Sep 2019 12:13:54 GMT'})
HTTP response body: {"orionError":{"code":"400","reasonPhrase":"Bad Request","details":"Orion accepts no payload for GET/DELETE requests. HTTP header Content-Type is thus forbidden"}}
Orion do not allow the Content-Type It could just ignore the content if
it would be present but... :S
It seems that it can be fixed just redefining the swagger but I can't find
it.
Best
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/smartsdk/ngsi-sdk-python/issues/2?email_source=notifications&email_token=AAF5YAXUOHPB2LZQCLEKT63QLIDSLA5CNFSM4IZ7DR52YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HNJVBFA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAF5YAXQYT2QFD3CHY3PU7LQLIDSLANCNFSM4IZ7DR5Q
.

Sure! As soon as I have the swagger file or know how to generate it with the client, I can give it a try

@dherykw have a look at this repo: https://github.com/orchestracities/sdk
i realised this one is not maintained recently.
you can find swagger under specs (also for quantumleap).

look at this comment:
https://github.com/orchestracities/sdk/blob/master/python/ngsi_v2/.openapi-generator-ignore#L11
i think the issue is not swagger related, but you can check (in case of js it's the code generator to be wrong). for python i believe we didn't much tests (we so far mostly use js)

Hello @chicco785
I was also struck in this problem where I tried to run the APIEntryPointApi and other GET requests but the Orion Context Broker would return the same response that @dherykw mentioned
swagger_client.rest.ApiException: (400) Reason: Bad Request HTTP response headers: HTTPHeaderDict({'Date': 'Thu, 25 Jun 2020 18:10:30 GMT', 'Fiware-Correlator': '27bd734a-b70f-11ea-940c-0242ac130003', 'Connection': 'Keep-Alive', 'Content-Type': 'application/json', 'Content-Length': '131'}) HTTP response body: {"error":"BadRequest","description":"Orion accepts no payload for GET/DELETE requests. HTTP header Content-Type is thus forbidden"}
The problem here is that the Orion Context Broker does not accepts HTTP header Content-Type. But the GET request prepared in the rest.py file contains Header value. I just removed that to solve the issue.
# ForGET, HEAD            else:                 print('This is for GET', headers)                 r = self.pool_manager.request(method, url,                                               fields=query_params,                                               preload_content=_preload_content,                                               timeout=timeout,                                               headers=headers)
The last line is where the problem lies. Just change it to headers=None.

Hello @chicco785 I was also struck in this problem where I tried to run the APIEntryPointApi and other GET requests but the Orion Context Broker would return the same response that @dherykw mentioned swagger_client.rest.ApiException: (400) Reason: Bad Request HTTP response headers: HTTPHeaderDict({'Date': 'Thu, 25 Jun 2020 18:10:30 GMT', 'Fiware-Correlator': '27bd734a-b70f-11ea-940c-0242ac130003', 'Connection': 'Keep-Alive', 'Content-Type': 'application/json', 'Content-Length': '131'}) HTTP response body: {"error":"BadRequest","description":"Orion accepts no payload for GET/DELETE requests. HTTP header Content-Type is thus forbidden"}
The problem here is that the Orion Context Broker does not accepts HTTP header Content-Type. But the GET request prepared in the rest.py file contains Header value. I just removed that to solve the issue.
# ForGET, HEADelse: print('This is for GET', headers) r = self.pool_manager.request(method, url, fields=query_params, preload_content=_preload_content, timeout=timeout, headers=headers) The last line is where the problem lies. Just change it to headers=None.

Could you explain ho to set  headers=None ? I'm strugling with the same issue, thanks!


fixing default attributes based on HWRP

There were two default attributes that might have been missed on the last rework of the vault_config HWRP.
 attribute(:address, kind_of: String)  # formerly :listen_address
attribute(:tls_disable, kind_of: String, default: "")
Based on this information I removed the tls_disable default as it was a bool and we are expecting a string, in addition we default that string in the provider.
listen_address was also updated based on the comments.
As always, great work on this cookbook @johnbellone.

Commit looks good to me. The tests failing are not relevant to this PR.


Failed resolution of: Lcom/google/android/gms/common/util/zzv

Summary

Version
0.21.5

Affected OS
Android

OS Version
7

Current behavior

After app compiles it fails to load the app on the device with the error.

Expected behavior

It should load the app

Hi, please check the troubleshooting section and the readme and the many closed bug reports about this issue.

I have tried the fix in the read me as well as the fix from issue. That issue may seem the same but the errors are different. The issue still remains.

android/build.gradle
android/app/build.gradle

This issue was not due to device info. Managed to get past it

@InteliCare what was your resolution?


[de] Fixed german translation

Just a fix for some inconsistencies in the german translation.

php-cs-fixer

Danke

Can you update uploaded, please ?


Use Godep

It looks like a lot of your latest builds have been failing due to upstream changes.
I was wondering if you would care to use Godep to handle pinning dependencies in skydns. Id be willing to add the dependencies even, but right now I'm not sure if skydns is failing because of changes you made, or an upstream package did, or if configuration is wrong.
Going to the last 'stable' tag 2.0.1a, doesn't work because it wont build due to influx. Godep could handle these issues.

[ Quoting<EMAIL_ADDRESS>in "[skydns] Use Godep (#122)..." ]

It looks like a lot of your latest builds have been failing due to upstream changes.
I was wondering if you would care to use Godep to handle pinning dependencies in skydns. Id be willing to add the dependencies even, but right now I'm not sure if skydns is failing because of changes you made, or an upstream package did, or if configuration is wrong.

It's failing because of upstream changes (notably etcd), I ripped out influx
because they are really bad at keeping a stable api.

Going to the last 'stable' tag 2.0.1a, doesn't work because it wont build due to influx. Godep could handle these issues.

I haven't played with godep myself, but I'm willing to consider a PR.
/Miek
--
Miek Gieben

[ Quoting<EMAIL_ADDRESS>in "[skydns] Use Godep (#122)..." ]

It looks like a lot of your latest builds have been failing due to upstream changes.
I was wondering if you would care to use Godep to handle pinning dependencies in skydns. Id be willing to add the dependencies even, but right now I'm not sure if skydns is failing because of changes you made, or an upstream package did, or if configuration is wrong.
Going to the last 'stable' tag 2.0.1a, doesn't work because it wont build due to influx. Godep could handle these issues.

Btw, what's the downside of this? Do I now once in while need to go over these
deps and consider what the new safe versions should be?
/Miek
--
Miek Gieben

once we freeze at a version everything keeps working
if you want to pull in a new version you'd have to update, then freeze new versions
only downside is a little extra tooling client-side and in CI environments.  I use godep on all my work projects.

Basically what was mentioned. The downside is that your vendoring dependencies essentially, but I think it's a pretty good trade-off, compared to completely unreliable builds.

I have to agree with this comment https://github.com/skynetservices/skydns/issues/120#issuecomment-72178991
http://labix.org/gopkg.in is much nicer, but requires upstream support (I think).

Yeah I find gopkg.in to work, but doesn't work well for when you want to update your dependencies because now it's handled by the service.
Also it's still doesn't give reproducible builds 100%.

I find it all very, very ugly. For starters: for some reason godep wants me to look a this giant Godeps directory with a capital 'G' no less.

You don't really look at it. It's only for building.

gopkg.in is an elegant solution. But it has a giant drawback: you cannot refer a specific commit, you can only refer a branch name formatted in a specific way. Yes, it enforces you to follow the semantic versioning conventions, but the main problem is that no one really follows this convention in golang community. At least, I did not see much projects compatible with gopkg.in.  Yes, especially the Godep dir name. But it works -- it provides you 100% reproducible builds.

IMHO another huge advantage of godep is you finally can get rid of GOPATH; you just clone a repo anywhere, cd the cloned repo dir, and build it with godep go build:
git clone https://github.com/progrium/registrator
cd registrator
godep go build

For that feature I could forgive them even if they decided to call the dir GODEP.

+1


kongserver and    consul/etcd

I now have a docker environment kong, need to achieve and etcd or consul update discovery (registrator) found the container api, but I do not know how kong and etcd, consul interactive api information (delete, change, add)

Please take a moment to read over that jumble of words, imagine you are not the one who wrote the question, then try and work out what it is that is being asked. When done with that, please take a moment to reorganise the question into something intelligible.

Does kong have auto-discover, register components?

No, you would need to have something like registrator running, which will auto register docker containers with Consul, then you could point Kong at the Consul DNS server which will then connect Kong to the relevant instances.

Ability to automatically update health APIs?  There are no plug-ins to do it? It is best to help manual ! thanks

Registrator will check the health of the instances and remove them from the pool if they are failing. Read about it here: http://gliderlabs.com/registrator/latest/user/backends/#consul

I also used the Registrator, but the Registrar did not seem to be able to collect the host ip and port (container port and host port inconsistent)

We have something similar running on our official Docker Compose stack, that leverages Container Pilot instead of Registrator.
You can take a look at it: https://github.com/Mashape/docker-kong/tree/master/compose

@thefosk   Container Pilot I have no use; Registrator not recommended? Docker-kong-compose able to automatically update kong from consul api?

Nginx role is to do load balancing kongserver?

Compose up-d later, apis did not see any api record ah, but consul ui can see the record.  api has been registered to consul, but not updated to kong

docker logs c6bb66b449cf
2016/11/17 08:36:59 Unexpected response code: 500 (CheckID does not have associated TTL)
Service not registered, registering...
2016/11/17 08:36:59 Unexpected response code: 500 (CheckID does not have associated TTL)
Service not registered, registering...
2016/11/17 08:36:59 Unexpected response code: 500 (CheckID does not have associated TTL)
Service not registered, registering...

@huyifanstar this questions are not Kong-specific, rather more broad questions on how Registrator or Container Pilot work. This is not the right place to ask this questions. If you want to take it from here, know that the official Docker Compose linked above properly adds Kong nodes behind the load balancer.

But again, if you feel like the existing documentation and material is not enough for you, and you'd like more extensive support and assistance, check out the Enterprise subscription which can allocate more extensive support resources for your case.
That said, both Container Pilot and Registrator work with Kong, it's up to you. A working example of Kong + Consul behind a LB is available in the official Docker Compose stack. You can use that stack to run a scalable Kong deployment, that you can easily scale with commands like docker-compose scale kong=3.
I would reccomend first understanding how Registrator and Container Pilot work.

OK ，Consul + registrator has no problem, and now kong can not get from the consul server node, the latest available API. I saw the issue said kong need to load dns module to achieve?

OK ，Consul + registrator has no problem, and now kong can not get from the consul server node, the latest available API. I saw the issue said kong need to load dns module to achieve?

I think:

registrator still used to register a service instance with name service, ip address and port to Consul.
Write a little code which can query to Consul, list service and register to Kong when something change at Consul.
Use consul-template watch Consul and execute your code which register to Kong. :+1:


Smarty table row generated in loop not working

Hey !
I have been trying to use the plugins on a 'foreach loop tr ' table without any success.
I just past and glue some example code in smarty tpl file, and that's works well. So the probleme don't belongs into smarty.
Any idea or solution ?
Much thanks in advance

Problem solved !
After an enttire day I eventually found a missplacement of a tbody vs a foreach loop ! All is working perfectly now. Million of thanks for this great tool !!


Java:  The TensorFlow library wasn't compiled to use AVX / SSE / FMA instructions, but these are available on your machine and could speed up CPU computations

I'm building a small project using the current java binding of TensorFlow - tensorflow-java
When running the examples of inception network I get this warning about the platform cpu instruction set that could be used
2017-03-23 01:17:20.243925: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-03-23 01:17:20.243980: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-03-23 01:17:20.243986: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-03-23 01:17:20.243990: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-03-23 01:17:20.243994: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

Is it possibile to build the jar here enabling SSE, AVX and FMA instruction set?

You need to build with --config=opt which will do -march=native.
@asimshankar

@loretoparisi To enable these you'll have to build from source using the bazel flags @drpngx suggested.
Unfortunately, in the near term, the release binaries will be built without some of these (see https://github.com/tensorflow/tensorflow/issues/8266#issuecomment-285919845 for a discussion).
Note that these are just warnings, there should not be any correctness issues. So if you're prototyping or are not optimizing performance of your models, then you can continue to use the release binaries.
Hope that helps.
Closing this out for the same reasons as #8266

@asimshankar @drpngx Thank you.
Is it possibile to use a different Inception model? I would like to switch to a different pre-trained model like Inception-ResNet-v2
(taken from here).

@loretoparisi : Such questions are better asked on StackOverflow. We try to keep the GitHub issues focused on bugs and feature requests.


Add instructions for upgrading TF to v4

What changed, and why it matters
For customers who have not upgraded from v2 to v3 some instructions are needed to move to version 4.

@Serpentiel Thanks for reviewing! I just fixed up step 4 to include the same path as in the import resources instructions. Could you make sure that looks ok and then I'll merge! 🙏


Add UnorderedArray matcher

Closes #7
This introduces a new special syntax for defining unordered array expectations:
expect(response).to include_json(
  users: UnorderedArray(
    { .. },
    { .. },
    ......
  )
)

This matcher succeeds, if all expected elements can be found in the actual array in any order. It fails if at least one element can not be found. Elements are matched the same way include_json matcher works, so it is possible to have regex and even another UnorderedArray inside of element expectations.
/cc @benoittgt

Looks good to me @waterlink.


When calling getPermissions api duplicate permissionIds are passed in the payload

Current behavior

In the getPermissions api, duplicate permission keys are passed in the payload that is unnecessary
Expected behavior

Pass only the unique permissionIds in the api call
Steps to reproduce the issue

Login into any app
Inspect the network and check on the getPermissions api call
Check that the same id is passed multiple times in the payload

Can you handle fixing this bug by yourself?

[ ] YES
[ ] NO

Environment details

Browser:
OS:
Code Version:

Additional information

I would like to contribute.


Please invite me to the GitHub Community Organization

Name
Harry Dian
Discord Username (if applicable)
No response
Additional Context
My goal is to be a hard-working, dedicated developer for those who care, support, and hire me.
I all really love what I do, and I believe in my goals.
Of course, there are talented, brilliant engineers everywhere.
However, as in life, there is no success without competition, and I hope that the difficult times of now will be cherished in the future.
“I wanna build a professional career I love while living a life I love while constantly developing new skills.”
This is my creed.
I am always going to try to innovate to avoid obsoletion and make appropriate return for a favor.
Please invite me to the GitHub Community Organization.

It's great having you contribute to this project
If you would like to continue contributing to open source and would like to do it with an awesome inclusive community, you should join our Discord Server and our GitHub Organisation - we help and encourage each other to contribute to open source little and often 🤓 . Any questions let us know.

Invitation sent for the GitHub Organisation. Welcome to the community 🎉#
Don't forget after accepting to make it public so it appears on your GitHub profile for everyone else to see, you can do this by finding your name in the GitHub organisation list and change the dropdown to public https://github.com/orgs/jaidevstudio/people
Like this

Tips for practising:
Remember contributing to open source is not just about code, its about collaboration, communication and adding value
I hope that helps

Please check your email or organisation page 🙏


3.13.0-rc.3 -> 3.13 in matrix files

Just housekeeping

/check-enforcer override
Failure of of python - pullrequest is due to the presence of azure-cosmos.


Selecting Location tab in Hotspot Settings fails when there is no asserted location

Steps to reproduce:

Add a Hotspot using the onboarding flow
Set a location later
go to Hotspot details, tap settings
Tap Update Settings
select Update Location tab
crash

Has happened to several users on Android, iOS but the devs are unable to reproduce. Will wait for more crash logs to come through to see if we can dig deeper.

seems like an update to 3.4.4 has resolved the issue for at least 1 user. will keep monitoring and close when enough people have confirmed it's fixed.

I use iOS 14.4 (iPhone 7).
I have Helium app version 3.4.5.
Three miners (syncrobit) are linked to my wallet.
2 miners are up and running with locations asserted.
I skipped the location assertion for the 3rd one while deciding where to install it. Now the Helium app just shuts down without any warning or error message. I go to the hotspot's settings and select "Update Hotspot". Under options I click on update location button on the left and the app closes immediately.


Nexus data file

I'm struggling with understanding the usefulness of the Nexus data file.
As a record of the exact data that was used in the analysis, it should be part of the supplemental materials of the paper - I guess. If it isn't there, we could keep it here in raw/.
But to re-run the analysis, one could also just re-create a Nexus data file from the lexibank dataset - correct?

Ok, I see. Ideally, I would have hoped that at some point there'd be a package implementing various "binarization" strategies for CLDF data - "specific decisions about how to code cognates" - filling the gap between lexibank data and data.nex.
And considering that the actual forms are still missing in data.nex, adding a CLDF Wordlist created from data.nex doesn't seem to make much sense.
So, I guess I'm ok with adding data.nex to the "official" data of the phlorest phylogeny - i.e. add it to cldf/ - but would want to do some validation, e.g. at least read the file with NexusReader and make sure languages are specified with LanguageTable.ID everywhere.

So what I'd do is

read data.nex with NexusReader
make sure all taxa in the matrix are in LanguageTable
write data.nex with NexusReader.write_to_file

This would make sure

we can read and write the data with our tools and
taxa are in sync with LanguageTable and taxa mentioned elsewhere, e.g. the trees,
data.nex is somewhat standardized (as "written with python-nexus")

Looking at the diff, this seems like a reasonable approach:
$ diff -i -w test.nex raw/Chapacuran_Swadesh207-2019-labelled.nex
0a1
>
2a4,14
> [Taxon Diagnostics:                                                    ]
> [Cojubim = 103                                                         ]
> [Jaru = 84                                                             ]
> [Kitemoka = 80                                                         ]
> [More = 134                                                            ]
> [OroWin = 135                                                          ]
> [Tapakura = 85                                                         ]
> [Tora = 98                                                             ]
> [Urupa = 61                                                            ]
> [Wanyam = 117                                                          ]
> [Wari = 141                                                            ]
5c17
< 	format datatype=STANDARD gap=- missing=? symbols="01";
---
>     FORMAT DATATYPE=STANDARD MISSING=? GAP=-  SYMBOLS="01";
305a318,319
>
>

sounds good (see my comments on the other issue as I think a self.add_tree method would be useful.


Pattern: Callout Media : Mismatch in pixel values  on desktop and mobile.

Issue Description:- 1) As per visual specs there should be 64px difference between media type and bottom of page on desktop and 64px difference between media type and bottom of page on mobile devices, where as in actual it more than 64px on desktop and more than 64px on mobile devices.
2) As per visual specs there should be 64px difference between top of the page and heading of pattern, but on desktop it is more than 64px.
3) As per visual specs there should be a 32px difference between media type and copy text, where as in mobile devices it is less than 32px.
Steps to reproduce the issue

Enter url in the browser.
Select 'Callout with Media
Check the spacing difference between heading and top of page
Check the spacing difference between media type and bottom of page of page
Check the spacing difference between copy text and media type.

URL:- https://ibmdotcom-react-experimental.mybluemix.net/?path=/story/patterns-blocks-calloutwithmedia--default
OS:- Windows10, Mac, iOS 12, 13, Android 8,9
Browsers:- Chrome, Safari, UC, Firefox

Closing as this is a duplicate of issue #2395.


add lookahead execution with SSEU on ICL and MFE fixes for ICQ

add lookahead execution with SSEU on ICL
Also fixes #863
Signed-off-by: Artem Shaporenko<EMAIL_ADDRESS>

Why you mix two dependent commits into one PR?

Why you mix two dependent commits into one PR?

Because of rules with necessity of forks, I don't see issue here,

Why you mix two dependent commits into one PR?

Because of rules with necessity of forks, I don't see issue here,

Why you mix two dependent commits into one PR?

Because of rules with necessity of forks, I don't see issue here,

https://github.com/Intel-Media-SDK/MediaSDK/pull/866 is a good example to creating different branch and then send independent PR.


Add benchmarks

Add benchmarks for comparing against other common solutions (e.g. pure pandas) for the groupby-apply pattern.

Completed in https://github.com/sjoshistrats/fastgrouper/pull/6.


Update run-tests.yml

PHP 8.0 isn't part of the matrix. That means that the exlcude for PHP 8.0 with Laravel 10 can be removed.

Thanks!


Open Image should have "with annotation" option

In the UI, the Open Image dialog should have a filter that either (a) shows recently accessed items, or (b) shows items that have annotations associated with them.  This could be a separate UI button ("Open Annotated Image...").
(b) could just show a list of recently modified items that have annotations (sorted by most recently updated, for instance), rather than a hierarchy widget.

@jbeezley We probably will need an endpoint for images-with-annotations.  It should use proper access controls.

Added in PR #356.


Enahncement Request: Support for Tags (owncloud/Nextcloud)

In owncloud/Nextcloud tasks, I'm able to set tags.  it would be nice to have that same feature in Opentasks.

+1
I would like this too. I think these are referred to as "categories" in Nextcloud

Support for categories (tags) was already on the roadmap #14 so this is a duplicate issue.

@dmfs you can close this issue I guess


Added power operator for complex type

Summary
Added scope for having power operator: **, for complex types in the language specification.
Details and comments
Had a short discussion with @mbhealy and @jwoehr, and concluded that the cost of allowing the power operator is trivial, and added it for the sake of completeness of operations on the complex type.

In line with the recent TSC decision to keep the spec and grammar in sync as much as possible, would you also update the ANTLR grammar to support this change? Please also add a test that covers this as well.

Hi @jakelishman ,

If everyone's happy, I'll merge this PR as it stands.

I'm fine with merging this PR as it is right now.
Thanks again for all your inputs and the detailed discussion on this subject!


XML docs fixes

Various minor XML docs fixes:

Removed parameters from XML that do not exist
Fixed invalid XML syntax (e.g. replaced  <= with >=)
Added some comments on uncommented items (lots and lots of these left to do)

Thank you for the contribution!


pose model export to keras

How I can export your cool pose project models into TF keras?

Hi! Thanks for writing in. At this time we unfortunately don't have a converter for the tf.js pose model to keras. It's helpful to know that you need/want this though.

Thanks again for your feature request idea. We're going to close this issue for now as we're not actively working on it just yet, but rest assured we've made a note of it.


Blocking UI when open in modal

Hello,
Thank you for creating this with Angular.
I just added ngx-emoji-mart to my project and I got an issue when I put <emoji-mart set="twitter" title="Pick your emoji…" emoji="point_up"></emoji-mart> to modal body and It block the UI about 1 second when I open the modal.
It also block UI when I navigate to a screen that use emoji-mart.
I reproduce issue with navigating:
https://stackblitz.com/edit/angular-egigxh
https://angular-egigxh.stackblitz.io/
My package.json:
"@angular/animations": "^5.2.9",
"@angular/common": "^5.2.9",
"@angular/compiler": "^5.2.9",
"@angular/core": "^5.2.9",
"@angular/forms": "^5.2.9",
"@angular/http": "^5.2.9",
"@angular/platform-browser": "^5.2.9",
"@angular/platform-browser-dynamic": "^5.2.9",
"@angular/platform-server": "^5.2.9",
"@angular/router": "^5.2.9",
"@ctrl/ngx-emoji-mart": "^0.2.1",
"@ng-bootstrap/ng-bootstrap": "^1.1.1",
"core-js": "^2.5.4",
"ng2-device-detector": "^1.0.1",
"rxjs": "^5.5.8",
"typed.js": "^2.0.6",
"zone.js": "^0.8.25"

I've added the approach that the original emoji mart uses. With custom emoji it might still take a while, but with native emoji it went from ~1sec to ~200ms

Here's a fork of your stackblitz with v0.3.0. https://angular-gdr6n2.stackblitz.io/emojis thanks for making that btw