calico/node is not ready: BIRD is not ready: BGP not established (Calico 3.6 / k8s 1.14.1)

I'm configuring the k8s cluster with 2 nodes (ubuntu 2 vm on VirtualBox).
Nodes are connected with NAT Network (<IP_ADDRESS>/24).
master node : <IP_ADDRESS> / host-only adapter (<IP_ADDRESS>)
worker node2 : <IP_ADDRESS>
Current Behavior
Possible Solution

Steps to Reproduce (for bugs)

Install kubeadm on both master and worker node respectively.
Execute kubeadm init on the master node
kubeadm init --pod-network-cidr=<IP_ADDRESS>/16
Using project calico 3.6 tutorial, apply pod network.
https://docs.projectcalico.org/v3.6/getting-started/kubernetes/
kubectl apply -f
https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

Here, weird thing is that calico-node pod is ready 1/1 --> it should be 2/2 by manual.
$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-5cbcccc885-xtxck   1/1     Running   0          96s
kube-system   calico-node-n4tcf                          1/1     Running   0          96s
kube-system   coredns-fb8b8dccf-x8thj                    1/1     Running   0          4m9s
kube-system   coredns-fb8b8dccf-zvmsp                    1/1     Running   0          4m9s
kube-system   etcd-k8s-master                            1/1     Running   0          3m33s
kube-system   kube-apiserver-k8s-master                  1/1     Running   0          3m18s
kube-system   kube-controller-manager-k8s-master         1/1     Running   0          3m29s
kube-system   kube-proxy-5ck6g                           1/1     Running   0          4m9s
kube-system   kube-scheduler-k8s-master                  1/1     Running   0          3m18s

Anyway, 1 pod status seems to be normal.
$ kubectl describe pods -n kube-system calico-node-n4tcf
...
(skipped)
...
Events:
  Type    Reason     Age    From                 Message
  ----    ------     ----   ----                 -------
  Normal  Scheduled  2m21s  default-scheduler    Successfully assigned kube-system/calico-node-n4tcf to k8s-master
  Normal  Pulled     2m20s  kubelet, k8s-master  Container image "calico/cni:v3.6.1" already present on machine
  Normal  Created    2m20s  kubelet, k8s-master  Created container upgrade-ipam
  Normal  Started    2m19s  kubelet, k8s-master  Started container upgrade-ipam
  Normal  Pulled     2m19s  kubelet, k8s-master  Container image "calico/cni:v3.6.1" already present on machine
  Normal  Created    2m19s  kubelet, k8s-master  Created container install-cni
  Normal  Started    2m18s  kubelet, k8s-master  Started container install-cni
  Normal  Pulling    2m18s  kubelet, k8s-master  Pulling image "calico/node:v3.6.1"
  Normal  Pulled     2m5s   kubelet, k8s-master  Successfully pulled image "calico/node:v3.6.1"
  Normal  Created    2m5s   kubelet, k8s-master  Created container calico-node
  Normal  Started    2m4s   kubelet, k8s-master  Started container calico-node

After joining worker node with kubeadm join, another calico-node was created.
But, in a while, two calico-node (for both master and worker) are crashed.

$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-5cbcccc885-xtxck   1/1     Running   0          40m
kube-system   calico-node-n4tcf                          0/1     Running   0          40m
kube-system   calico-node-sjqsr                          0/1     Running   0          36m
kube-system   coredns-fb8b8dccf-x8thj                    1/1     Running   0          43m
kube-system   coredns-fb8b8dccf-zvmsp                    1/1     Running   0          43m
kube-system   etcd-k8s-master                            1/1     Running   0          42m
kube-system   kube-apiserver-k8s-master                  1/1     Running   0          42m
kube-system   kube-controller-manager-k8s-master         1/1     Running   0          42m
kube-system   kube-proxy-5ck6g                           1/1     Running   0          43m
kube-system   kube-proxy-ds549                           1/1     Running   0          36m
kube-system   kube-scheduler-k8s-master                  1/1     Running   0          42m

calico-node-n4tcf (for master) pod was changed from ready (1/1) to (0/1).
calico-node-sjqsr (newly created for worker) pod was not ready.
$ kubectl describe pod -n kube-system calico-node-n4tcf
...
(skipped)
...
Warning  Unhealthy  10s (x2 over 20s)  kubelet, k8s-master  (combined from similar events): Readiness probe failed: Threshold time for bird readiness check:  30s
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>019-04-18 16:59:27.462 [INFO][607] readiness.go 88: Number of node(s) with BGP peering established = 0

$ kubectl describe pod -n kube-system calico-node-sjqsr
...
(skipped)
...
Warning  Unhealthy  6s (x4 over 36s)  kubelet, k8s-worker1  (combined from similar events): Readiness probe failed: Threshold time for bird readiness check:  30s
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>2019-04-18 16:59:49.812 [INFO][300] readiness.go 88: Number of node(s) with BGP peering established = 0

Context
I don't know why it doesn't work well.
When I applied flannel add-on, there was no problem.
Repeatedly I reset and reinstalled, but result was not different.
Could you tell me what should I do for solving the problem?
Your Environment

Calico version : 3.6
Orchestrator version (e.g. kubernetes, mesos, rkt): k8s 1.14.1, docker 18.9.5
Operating System and version: Ubuntu 18.04.2
Link to your project (optional):

$ sudo ./calicoctl node status
Calico process is running.

IPv4 BGP status
+--------------+-------------------+-------+----------+--------------------------------+
| PEER ADDRESS |     PEER TYPE     | STATE |  SINCE   |              INFO              |
+--------------+-------------------+-------+----------+--------------------------------+
| <IP_ADDRESS>    | node-to-node mesh | start | 16:57:43 | Active Socket: Connection      |
|              |                   |       |          | reset by peer                  |
+--------------+-------------------+-------+----------+--------------------------------+

Here, weird thing is that calico-node pod is ready 1/1 --> it should be 2/2 by manual.

This is a docs bug - it should be 1/1 now.

BIRD is not ready: BGP not established with <IP_ADDRESS>

This means that the two nodes can't communicate with either other for some reason. Have you allowed BGP traffic between the nodes in your networks firewall?

@caseydavenport
Actuall, I intended to communicate with each other via NAT network (<IP_ADDRESS>/24).
And, to access from host os, I added host-only adaptor (<IP_ADDRESS>).
But, according to worker node status, worker node is trying to access via that IP (<IP_ADDRESS>).
On worker node, there is no routing to <IP_ADDRESS>.
ejungpa@k8s-worker1:~$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
<IP_ADDRESS>         <IP_ADDRESS>        <IP_ADDRESS>         UG        0 0          0 enp0s3
<IP_ADDRESS>        <IP_ADDRESS>         <IP_ADDRESS>   U         0 0          0 enp0s3
<IP_ADDRESS>      <IP_ADDRESS>         <IP_ADDRESS>     U         0 0          0 docker0
<IP_ADDRESS>  <IP_ADDRESS>         <IP_ADDRESS> U         0 0          0 *

I'm not familiar with networking, so I don't know how to configure BGP networking.
My env is not proper to apply Calico networking??

@caseydavenport

How did you resolv this issue?

@huzhou520
w/ the original env. (NAT network + Host-only adaptor), I couldn't find the solution.
So, I removed the Host-only adaptor from master node,
and I changed the NAT network from <IP_ADDRESS>/24 to <IP_ADDRESS>/24.
I thought that it was better to avoid the any possible duplication with --pod-network-cidr=<IP_ADDRESS>/16.
In summary,

NAT network : <IP_ADDRESS>/24
--pod-network-cidr=<IP_ADDRESS>/16
master node : <IP_ADDRESS>
worker node 1 : <IP_ADDRESS>
worker node 2 : <IP_ADDRESS>

$ kubectl get nodes -o
NAME         STATUS  ROLES   AGE  VERSION  INTERNAL-IP  EXTERNAL-IP
k8s-master   Ready   master  24h  v1.14.1  <IP_ADDRESS>  <none>
k8s-worker1  Ready   <none>  24h  v1.14.1  <IP_ADDRESS>  <none>
k8s-worker2  Ready   <none>  24h  v1.14.1  <IP_ADDRESS>  <none>

$kubectl get pods -A -o wide
NAMESPACE    NAME                                      READY  STATUS   RESTARTS  AGE  IP               NODE
kube-system  calico-kube-controllers-5cbcccc885-llgk6  1/1    Running  0         24h  <IP_ADDRESS>  k8s-master
kube-system  calico-node-fblk6                         1/1    Running  0         24h  <IP_ADDRESS>      k8s-master
kube-system  calico-node-snvkx                         1/1    Running  0         24h  <IP_ADDRESS>      k8s-worker2
kube-system  calico-node-zmhdx                         1/1    Running  0         24h  <IP_ADDRESS>      k8s-worker1
kube-system  coredns-fb8b8dccf-85zls                   1/1    Running  0         24h  <IP_ADDRESS>  k8s-master
kube-system  coredns-fb8b8dccf-n7ptv                   1/1    Running  0         24h  <IP_ADDRESS>  k8s-master
kube-system  etcd-k8s-master                           1/1    Running  0         24h  <IP_ADDRESS>      k8s-master
kube-system  kube-apiserver-k8s-master                 1/1    Running  0         24h  <IP_ADDRESS>      k8s-master
kube-system  kube-controller-manager-k8s-master        1/1    Running  0         24h  <IP_ADDRESS>      k8s-master
kube-system  kube-proxy-bfzrn                          1/1    Running  0         24h  <IP_ADDRESS>      k8s-worker2
kube-system  kube-proxy-bgg89                          1/1    Running  0         24h  <IP_ADDRESS>      k8s-worker1
kube-system  kube-proxy-hxh9h                          1/1    Running  0         24h  <IP_ADDRESS>      k8s-master
kube-system  kube-scheduler-k8s-master                 1/1    Running  0         24h  <IP_ADDRESS>      k8s-master

I guess, in my case, it's okay to close.

FYI I had very similar problem.
My unrelated IP was <IP_ADDRESS>:
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>

The problem was I previously tried Weave Net (and flannel also) which didn't delete the network interface weave, and misled calico's autodetect feature. :blush:
# ifconfig
...

weave: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 65535
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        ether a6:5d:b9:0c:c5:e7  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5794  bytes 243348 (237.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

...

Resolving the issue was easy as deleting that weave network interface.
I got the tip from kubernetes/kubernetes#70202, from the "uninstall flannel" step:

Remove interfaces related to docker and flannel:
ip link
For each interface for docker or flannel, do the following
ifconfig <name of interface from ip link> down
ip link delete <name of interface from ip link>

Can we reopen it?
I have a similar problem when one of my masters died.
Calico cannot connect to this dead master device, BGP check fails and the entire network is down.
Also with Calico 3.6 and Kube 1.14.1
When I fix a broken master, everything is normal.
But this is unacceptable, I have 3 champions, so one of them may be broken.

I got the solution :
While making the cluster setup in Kubernetes if you are using calico below will be the probelm.
The first perference of ifconig(in my case ) through that it will try connect to connect woker-nodes which is not the right ip.
Solution:
Change the calico.yaml file to override that ip to etho-ip by using following steps.
 # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth1"

calico.yaml
---
# Source: calico/templates/calico-config.yaml
# This ConfigMap is used to configure a self-hosted Calico installation.
kind: ConfigMap
apiVersion: v1
metadata:
  name: calico-config
  namespace: kube-system
data:
  # Typha is disabled.
  typha_service_name: "none"
  # Configure the backend to use.
  calico_backend: "bird"

  # Configure the MTU to use
  veth_mtu: "1440"

  # The CNI network configuration to install on each node.  The special
  # values in this config will be automatically populated.
  cni_network_config: |-
    {
      "name": "k8s-pod-network",
      "cniVersion": "0.3.1",
      "plugins": [
        {
          "type": "calico",
          "log_level": "info",
          "datastore_type": "kubernetes",
          "nodename": "__KUBERNETES_NODE_NAME__",
          "mtu": __CNI_MTU__,
          "ipam": {
              "type": "calico-ipam"
          },
          "policy": {
              "type": "k8s"
          },
          "kubernetes": {
              "kubeconfig": "__KUBECONFIG_FILEPATH__"
          }
        },
        {
          "type": "portmap",
          "snat": true,
          "capabilities": {"portMappings": true}
        }
      ]
    }

---
# Source: calico/templates/kdd-crds.yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
   name: felixconfigurations.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: FelixConfiguration
    plural: felixconfigurations
    singular: felixconfiguration
---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ipamblocks.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPAMBlock
    plural: ipamblocks
    singular: ipamblock

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: blockaffinities.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: BlockAffinity
    plural: blockaffinities
    singular: blockaffinity

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ipamhandles.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPAMHandle
    plural: ipamhandles
    singular: ipamhandle

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ipamconfigs.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPAMConfig
    plural: ipamconfigs
    singular: ipamconfig

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: bgppeers.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: BGPPeer
    plural: bgppeers
    singular: bgppeer

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: bgpconfigurations.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: BGPConfiguration
    plural: bgpconfigurations
    singular: bgpconfiguration

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ippools.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPPool
    plural: ippools
    singular: ippool

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: hostendpoints.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: HostEndpoint
    plural: hostendpoints
    singular: hostendpoint

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: clusterinformations.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: ClusterInformation
    plural: clusterinformations
    singular: clusterinformation

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: globalnetworkpolicies.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: GlobalNetworkPolicy
    plural: globalnetworkpolicies
    singular: globalnetworkpolicy

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: globalnetworksets.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: GlobalNetworkSet
    plural: globalnetworksets
    singular: globalnetworkset

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: networkpolicies.crd.projectcalico.org
spec:
  scope: Namespaced
  group: crd.projectcalico.org
  version: v1
  names:
    kind: NetworkPolicy
    plural: networkpolicies
    singular: networkpolicy

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: networksets.crd.projectcalico.org
spec:
  scope: Namespaced
  group: crd.projectcalico.org
  version: v1
  names:
    kind: NetworkSet
    plural: networksets
    singular: networkset
---
# Source: calico/templates/rbac.yaml

# Include a clusterrole for the kube-controllers component,
# and bind it to the calico-kube-controllers serviceaccount.
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: calico-kube-controllers
rules:
  # Nodes are watched to monitor for deletions.
  - apiGroups: [""]
    resources:
      - nodes
    verbs:
      - watch
      - list
      - get
  # Pods are queried to check for existence.
  - apiGroups: [""]
    resources:
      - pods
    verbs:
      - get
  # IPAM resources are manipulated when nodes are deleted.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - ippools
    verbs:
      - list
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - blockaffinities
      - ipamblocks
      - ipamhandles
    verbs:
      - get
      - list
      - create
      - update
      - delete
  # Needs access to update clusterinformations.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - clusterinformations
    verbs:
      - get
      - create
      - update
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: calico-kube-controllers
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: calico-kube-controllers
subjects:
- kind: ServiceAccount
  name: calico-kube-controllers
  namespace: kube-system
---
# Include a clusterrole for the calico-node DaemonSet,
# and bind it to the calico-node serviceaccount.
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: calico-node
rules:
  # The CNI plugin needs to get pods, nodes, and namespaces.
  - apiGroups: [""]
    resources:
      - pods
      - nodes
      - namespaces
    verbs:
      - get
  - apiGroups: [""]
    resources:
      - endpoints
      - services
    verbs:
      # Used to discover service IPs for advertisement.
      - watch
      - list
      # Used to discover Typhas.
      - get
  - apiGroups: [""]
    resources:
      - nodes/status
    verbs:
      # Needed for clearing NodeNetworkUnavailable flag.
      - patch
      # Calico stores some configuration information in node annotations.
      - update
  # Watch for changes to Kubernetes NetworkPolicies.
  - apiGroups: ["networking.k8s.io"]
    resources:
      - networkpolicies
    verbs:
      - watch
      - list
  # Used by Calico for policy information.
  - apiGroups: [""]
    resources:
      - pods
      - namespaces
      - serviceaccounts
    verbs:
      - list
      - watch
  # The CNI plugin patches pods/status.
  - apiGroups: [""]
    resources:
      - pods/status
    verbs:
      - patch
  # Calico monitors various CRDs for config.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - globalfelixconfigs
      - felixconfigurations
      - bgppeers
      - globalbgpconfigs
      - bgpconfigurations
      - ippools
      - ipamblocks
      - globalnetworkpolicies
      - globalnetworksets
      - networkpolicies
      - networksets
      - clusterinformations
      - hostendpoints
    verbs:
      - get
      - list
      - watch
  # Calico must create and update some CRDs on startup.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - ippools
      - felixconfigurations
      - clusterinformations
    verbs:
      - create
      - update
  # Calico stores some configuration information on the node.
  - apiGroups: [""]
    resources:
      - nodes
    verbs:
      - get
      - list
      - watch
  # These permissions are only requried for upgrade from v2.6, and can
  # be removed after upgrade or on fresh installations.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - bgpconfigurations
      - bgppeers
    verbs:
      - create
      - update
  # These permissions are required for Calico CNI to perform IPAM allocations.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - blockaffinities
      - ipamblocks
      - ipamhandles
    verbs:
      - get
      - list
      - create
      - update
      - delete
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - ipamconfigs
    verbs:
      - get
  # Block affinities must also be watchable by confd for route aggregation.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - blockaffinities
    verbs:
      - watch
  # The Calico IPAM migration needs to get daemonsets. These permissions can be
  # removed if not upgrading from an installation using host-local IPAM.
  - apiGroups: ["apps"]
    resources:
      - daemonsets
    verbs:
      - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: calico-node
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: calico-node
subjects:
- kind: ServiceAccount
  name: calico-node
  namespace: kube-system

---
# Source: calico/templates/calico-node.yaml
# This manifest installs the calico-node container, as well
# as the CNI plugins and network config on
# each master and worker node in a Kubernetes cluster.
kind: DaemonSet
apiVersion: apps/v1
metadata:
  name: calico-node
  namespace: kube-system
  labels:
    k8s-app: calico-node
spec:
  selector:
    matchLabels:
      k8s-app: calico-node
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  template:
    metadata:
      labels:
        k8s-app: calico-node
      annotations:
        # This, along with the CriticalAddonsOnly toleration below,
        # marks the pod as a critical add-on, ensuring it gets
        # priority scheduling and that its resources are reserved
        # if it ever gets evicted.
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      nodeSelector:
        beta.kubernetes.io/os: linux
      hostNetwork: true
      tolerations:
        # Make sure calico-node gets scheduled on all nodes.
        - effect: NoSchedule
          operator: Exists
        # Mark the pod as a critical add-on for rescheduling.
        - key: CriticalAddonsOnly
          operator: Exists
        - effect: NoExecute
          operator: Exists
      serviceAccountName: calico-node
      # Minimize downtime during a rolling upgrade or deletion; tell Kubernetes to do a "force
      # deletion": https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods.
      terminationGracePeriodSeconds: 0
      priorityClassName: system-node-critical
      initContainers:
        # This container performs upgrade from host-local IPAM to calico-ipam.
        # It can be deleted if this is a fresh installation, or if you have already
        # upgraded to use calico-ipam.
        - name: upgrade-ipam
          image: calico/cni:v3.8.2
          command: ["/opt/cni/bin/calico-ipam", "-upgrade"]
          env:
            - name: KUBERNETES_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: CALICO_NETWORKING_BACKEND
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: calico_backend
          volumeMounts:
            - mountPath: /var/lib/cni/networks
              name: host-local-net-dir
            - mountPath: /host/opt/cni/bin
              name: cni-bin-dir
        # This container installs the CNI binaries
        # and CNI network config file on each node.
        - name: install-cni
          image: calico/cni:v3.8.2
          command: ["/install-cni.sh"]
          env:
            # Name of the CNI config file to create.
            - name: CNI_CONF_NAME
              value: "10-calico.conflist"
            # The CNI network config to install on each node.
            - name: CNI_NETWORK_CONFIG
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: cni_network_config
            # Set the hostname based on the k8s node name.
            - name: KUBERNETES_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            # CNI MTU Config variable
            - name: CNI_MTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # Prevents the container from sleeping forever.
            - name: SLEEP
              value: "false"
          volumeMounts:
            - mountPath: /host/opt/cni/bin
              name: cni-bin-dir
            - mountPath: /host/etc/cni/net.d
              name: cni-net-dir
        # Adds a Flex Volume Driver that creates a per-pod Unix Domain Socket to allow Dikastes
        # to communicate with Felix over the Policy Sync API.
        - name: flexvol-driver
          image: calico/pod2daemon-flexvol:v3.8.2
          volumeMounts:
          - name: flexvol-driver-host
            mountPath: /host/driver
      containers:
        # Runs calico-node container on each Kubernetes node.  This
        # container programs network policy and routes on each
        # host.
        - name: calico-node
          image: calico/node:v3.8.2
          env:
            # Use Kubernetes API as the backing datastore.
            - name: DATASTORE_TYPE
              value: "kubernetes"
            # Wait for the datastore.
            - name: WAIT_FOR_DATASTORE
              value: "true"
            # Set based on the k8s node name.
            - name: NODENAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            # Choose the backend to use.
            - name: CALICO_NETWORKING_BACKEND
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: calico_backend
            # Cluster type to identify the deployment type
            - name: CLUSTER_TYPE
              value: "k8s,bgp"
            # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth1"
            # Auto-detect the BGP IP address.
            - name: IP
              value: "autodetect"
            # Enable IPIP
            - name: CALICO_IPV4POOL_IPIP
              value: "Always"
            # Set MTU for tunnel device used if ipip is enabled
            - name: FELIX_IPINIPMTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # The default IPv4 pool to create on startup if none exists. Pod IPs will be
            # chosen from this range. Changing this value after installation will have
            # no effect. This should fall within `--cluster-cidr`.
            - name: CALICO_IPV4POOL_CIDR
              value: "<IP_ADDRESS>/16"
            # Disable file logging so `kubectl logs` works.
            - name: CALICO_DISABLE_FILE_LOGGING
              value: "true"
            # Set Felix endpoint to host default action to ACCEPT.
            - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
              value: "ACCEPT"
            # Disable IPv6 on Kubernetes.
            - name: FELIX_IPV6SUPPORT
              value: "false"
            # Set Felix logging to "info"
            - name: FELIX_LOGSEVERITYSCREEN
              value: "info"
            - name: FELIX_HEALTHENABLED
              value: "true"
          securityContext:
            privileged: true
          resources:
            requests:
              cpu: 250m
          livenessProbe:
            httpGet:
              path: /liveness
              port: 9099
              host: localhost
            periodSeconds: 10
            initialDelaySeconds: 10
            failureThreshold: 6
          readinessProbe:
            exec:
              command:
              - /bin/calico-node
              - -bird-ready
              - -felix-ready
            periodSeconds: 10
          volumeMounts:
            - mountPath: /lib/modules
              name: lib-modules
              readOnly: true
            - mountPath: /run/xtables.lock
              name: xtables-lock
              readOnly: false
            - mountPath: /var/run/calico
              name: var-run-calico
              readOnly: false
            - mountPath: /var/lib/calico
              name: var-lib-calico
              readOnly: false
            - name: policysync
              mountPath: /var/run/nodeagent
      volumes:
        # Used by calico-node.
        - name: lib-modules
          hostPath:
            path: /lib/modules
        - name: var-run-calico
          hostPath:
            path: /var/run/calico
        - name: var-lib-calico
          hostPath:
            path: /var/lib/calico
        - name: xtables-lock
          hostPath:
            path: /run/xtables.lock
            type: FileOrCreate
        # Used to install CNI.
        - name: cni-bin-dir
          hostPath:
            path: /opt/cni/bin
        - name: cni-net-dir
          hostPath:
            path: /etc/cni/net.d
        # Mount in the directory for host-local IPAM allocations. This is
        # used when upgrading from host-local to calico-ipam, and can be removed
        # if not using the upgrade-ipam init container.
        - name: host-local-net-dir
          hostPath:
            path: /var/lib/cni/networks
        # Used to create per-pod Unix Domain Sockets
        - name: policysync
          hostPath:
            type: DirectoryOrCreate
            path: /var/run/nodeagent
        # Used to install Flex Volume Driver
        - name: flexvol-driver-host
          hostPath:
            type: DirectoryOrCreate
            path: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds
---

apiVersion: v1
kind: ServiceAccount
metadata:
  name: calico-node
  namespace: kube-system

---
# Source: calico/templates/calico-kube-controllers.yaml

# See https://github.com/projectcalico/kube-controllers
apiVersion: apps/v1
kind: Deployment
metadata:
  name: calico-kube-controllers
  namespace: kube-system
  labels:
    k8s-app: calico-kube-controllers
spec:
  # The controllers can only have a single active instance.
  replicas: 1
  selector:
    matchLabels:
      k8s-app: calico-kube-controllers
  strategy:
    type: Recreate
  template:
    metadata:
      name: calico-kube-controllers
      namespace: kube-system
      labels:
        k8s-app: calico-kube-controllers
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      nodeSelector:
        beta.kubernetes.io/os: linux
      tolerations:
        # Mark the pod as a critical add-on for rescheduling.
        - key: CriticalAddonsOnly
          operator: Exists
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
      serviceAccountName: calico-kube-controllers
      priorityClassName: system-cluster-critical
      containers:
        - name: calico-kube-controllers
          image: calico/kube-controllers:v3.8.2
          env:
            # Choose which controllers to run.
            - name: ENABLED_CONTROLLERS
              value: node
            - name: DATASTORE_TYPE
              value: kubernetes
          readinessProbe:
            exec:
              command:
              - /usr/bin/check-status
              - -r

---

apiVersion: v1
kind: ServiceAccount
metadata:
  name: calico-kube-controllers
  namespace: kube-system
---
# Source: calico/templates/calico-etcd-secrets.yaml

---
# Source: calico/templates/calico-typha.yaml

---
# Source: calico/templates/configure-canal.yaml

calico.zip

I resolve my problem by upgrading Kubernetes to v1.15.3 and Calico v3.7.3

Actually, I have met this problem on 3.8.* in several different scenarios:

network interface: calico uses wrong interface; please use regex interface=en.+ or similar. Once calico uses previous flannel interfaces, which were not cleared properly.
Re-establish k8s after tearing down: please run iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X as suggested by kubeadm. Some system will reset your ssh connection (e.g. you ssh to one worker) when you are resetting iptables, so the four parts of the resetting commands may not finish. Please ensure this command is fully performed on each machine.

In my case, this problem still exists.
After uninstalling Calico 3.7, I installed Flannel, and then uninstalled Flannel to install Calico 3.10.1. I know it's weird to do this, and now something strange is happening.
I have removed Flannel's interface:
ifconfig does not display any interfaces of flannel.
Server real internal IP:
master <IP_ADDRESS>
node1 <IP_ADDRESS>
node2 <IP_ADDRESS>
My real network card eth0 was deployed using the yaml file of the official 3.10 calico.
My POD CIDR is <IP_ADDRESS>/20, which proves correct.
Then any of my nodes will prompt this error:
Readiness probe failed: calico / node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>2019-12-11 06: 54: 11.577 [INFO] [127] health.go 156: Number of node (s) with BGP peering established = 0
The IPs that appear inside are the contents of the real internal IP of the server above.
It will not be another IP that does not exist.
This is incredible.
            - name: IP
              value: "autodetect"
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth.*"
            # value: "interface=eth0"
            # value: "can-reach=www.163.com"

I had the same issue, BGP not established.  I was using VirtualBox.  Removed Bridged Network, and HostOnly network.  Every thing started working normal

Check the calico logs definitely  you will get some idea.

I resolve my problem by using @MadAboutProgramming 's solution. Thanks a lot!

Updating this section in @MadAboutProgramming 's solution resolve my problem.
 # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth.*"

Due to the fact that "eth.*" does not exist on some platforms, you may find an alternative setting to be more portable and useful.  This is what I did:
            # Set auto-detect method to be publicly routable, whatever that interface may be
            - name: IP_AUTODETECTION_METHOD
              value: "can-reach=<IP_ADDRESS>"

This at least forced Calico to use a public-routing interface.  If you wanted a private interface, stick the IP of one of a node on your internal network in there.  Assuming your routing tables aren't completely busted (and you have other problems), it'll do the right thing more reliably.

The issue was with Oracle Virtual Box. I added Bridged Adpater, a working Kubernetes Cluser stopped working.  I reinstalled Kubernetes using CentOS but got the same results.  Disabled the Bridged Adpater, the problems disappeared.

I had this happen today about a dozen times, installing on a fresh Ubuntu instance.  Docker automatically installed two bridges (and would uninstall when it was removed, so I know that's where it was coming from).

Due to the fact that "eth.*" does not exist on some platforms, you may find an alternative setting to be more portable and useful. This is what I did:
            # Set auto-detect method to be publicly routable, whatever that interface may be
            - name: IP_AUTODETECTION_METHOD
              value: "can-reach=<IP_ADDRESS>"

This at least forced Calico to use a public-routing interface. If you wanted a private interface, stick the IP of one of a node on your internal network in there. Assuming your routing tables aren't completely busted (and you have other problems), it'll do the right thing more reliably.

Updating this section in @MadAboutProgramming 's solution resolved my problem.
 # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth.*"

thanks a lot, it works for me

This issue came up after we removed and reinstalled an old node from the cluster. The issue springs from interface name mismatch and can be resolved by editing calico-node configmap and adding any new interface name there.

While operating k8s using a virtual machine, I experience the same phenomenon, solve it, and leave a post. The host machine is using Centos7 and operated 3 K8s nodes through KVM. Activate the network interface used by calico-node through firewall-cmd.
Looking at the log of calico-node, gatway could not be called, but this occurred because the virtual machine interface of the host is not in the internal zone and is not activated.

While operating k8s using a virtual machine, I experience the same phenomenon, solve it, and leave a post. The host machine is using Centos7 and operated 3 K8s nodes through KVM. Activate the network interface used by calico-node through firewall-cmd.
Looking at the log of calico-node, gatway could not be called, but this occurred because the virtual machine interface of the host is not in the internal zone and is not activated.

Experiencing same issue with Centos7 vm machine.. can you share the solution?

@jhughes2112 Answer was the one that worked for me. I was checking the logs of the Calico node logs on all of my three Kubernetes nodes running with RKE on a datacenter. I was able to notice the discrepancy on the IPs of the network interfaces that the liveness probe was trying to validate, and I ended up updating the Calico deployment with the IP_AUTODETECTION_METHOD variable, sudently after all the Calico pods were now up and running.
This issue was also causing timeouts from Kubernetes services exposed in different nodes, and thank to this the entire Istio Service Mesh was also not able to work as expected, as both the injector webhook and the Ingress Gateway were giving timeouts when making calls to the FQDN K8s services. All the cluster was in a unstable state. I did not know what caused this issue on the environment, as I have other three clusters with the same configurations and I haven't add that specific env variable.
Either way, thanks for the help!

but IP_AUTODETECTION_METHOD tunning seems not working in my case

Updating this section in @MadAboutProgramming 's solution resolved my problem.
 # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth.*"

In my case the following setting did it!
             - name: IP_AUTODETECTION_METHOD
              value: "interface=enp.*"

Updating this section in @MadAboutProgramming 's solution resolved my problem.
 # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth.*"

In my case the following setting did it!
             - name: IP_AUTODETECTION_METHOD
              value: "interface=enp.*"

IP_AUTODETECTION_METHOD was also the same problem for me. The calico-node-* pods in the kube-system namespace wer in 0/0 ready state.
Run:
kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=can-reach=www.google.com
Then the pods became ready within a few seconds.
Reference:
https://docs.projectcalico.org/networking/ip-autodetection#change-the-autodetection-method

Due to the fact that "eth.*" does not exist on some platforms, you may find an alternative setting to be more portable and useful. This is what I did:
            # Set auto-detect method to be publicly routable, whatever that interface may be
            - name: IP_AUTODETECTION_METHOD
              value: "can-reach=<IP_ADDRESS>"

This at least forced Calico to use a public-routing interface. If you wanted a private interface, stick the IP of one of a node on your internal network in there. Assuming your routing tables aren't completely busted (and you have other problems), it'll do the right thing more reliably.

It worked for me. Thanks a lot

Quick response for new calico version:
If you are using Tigers operator for manage and configure calico DaemonSet, you should change your Tigera config file like that:
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  # Configures Calico networking.
  calicoNetwork:
    # Note: The ipPools section cannot be modified post-install.
    ipPools:
    - blockSize: 26
      cidr: <IP_ADDRESS>/16       <---- don't forget to change this part for your own usage
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()
    nodeAddressAutodetectionV4:
      interface: "ens*"    <---- don't forget to change this part for your own usage

You can see more options here : https://docs.projectcalico.org/reference/node/configuration

emmmm
I find the docker container, docker restart and it works .....

for Centos i found a solution,
it is about the IP_AUTODETECTION_METHOD
you have to find your connection device first with this code
nmcli connection show
for my case it was nm-bond
then you can update calico env with this code
kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=interface=nm-bond
validated the change:
kubectl get daemonset/calico-node -n kube-system --output json | jq '.spec.template.spec.containers[].env[] | select(.name | startswith("IP"))'

In my case:
Describe calico POD:
Warning  Unhealthy       31m  kubelet  Readiness probe failed: 2022-03-30 11:23:39.871 [INFO][130] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  30m  kubelet  Readiness probe failed: 2022-03-30 11:23:49.869 [INFO][177] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  30m  kubelet  Readiness probe failed: 2022-03-30 11:23:59.869 [INFO][208] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  30m  kubelet  Readiness probe failed: 2022-03-30 11:24:09.866 [INFO][232] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  30m  kubelet  Readiness probe failed: 2022-03-30 11:24:19.868 [INFO][263] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  30m  kubelet  Readiness probe failed: 2022-03-30 11:24:29.868 [INFO][286] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  30m  kubelet  Readiness probe failed: 2022-03-30 11:24:39.870 [INFO][310] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  29m  kubelet  Readiness probe failed: 2022-03-30 11:24:49.870 [INFO][356] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  29m  kubelet  Readiness probe failed: 2022-03-30 11:24:59.870 [INFO][388] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
Warning  Unhealthy  16m (x82 over 29m)  kubelet  (combined from similar events): Readiness probe failed: 2022-03-30 11:38:39.870 [INFO][2455] confd/health.go 180: Number of node(s) with BGP peering established = 0
calico/node is not ready: BIRD is not ready: BGP not established with <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>
and
[root@master1 ~]# kubectl get pods --all-namespaces | grep calico
kube-system      calico-kube-controllers-7fbf9b4bbb-fsbt4   1/1     Running   4          163m
kube-system      calico-node-8jvq4                          0/1     Running   2          164m
kube-system      calico-node-btghw                          0/1     Running   2          164m
kube-system      calico-node-dx7r5                          0/1     Running   2          164m
kube-system      calico-node-l482b                          0/1     Running   2          164m
kube-system      calico-node-qqsd6                          0/1     Running   2          164m
kube-system      calico-node-tscnv                          0/1     Running   0          23m
[root@master1 ~]#
Solution:
Check if the ports required by calico are open (https://projectcalico.docs.tigera.io/getting-started/kubernetes/requirements)

@jhughes2112 solution got all my calico-node pods running well. My node is still in the NotReady status though.

I got the solution :
While making the cluster setup in Kubernetes if you are using calico below will be the problem.
The first preference of ifconfig(in my case ) is that it will try to connect worker-nodes which is not the right ip.
Solution:
Change the calico.yaml file by overriding that ip to etho-ip by using the following steps.
 # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth1"

Needs to open port Calico networking (BGP) - 179
calico.yaml
---
# Source: calico/templates/calico-config.yaml
# This ConfigMap is used to configure a self-hosted Calico installation.
kind: ConfigMap
apiVersion: v1
metadata:
  name: calico-config
  namespace: kube-system
data:
  # Typha is disabled.
  typha_service_name: "none"
  # Configure the backend to use.
  calico_backend: "bird"

  # Configure the MTU to use
  veth_mtu: "1440"

  # The CNI network configuration to install on each node.  The special
  # values in this config will be automatically populated.
  cni_network_config: |-
    {
      "name": "k8s-pod-network",
      "cniVersion": "0.3.1",
      "plugins": [
        {
          "type": "calico",
          "log_level": "info",
          "datastore_type": "kubernetes",
          "nodename": "__KUBERNETES_NODE_NAME__",
          "mtu": __CNI_MTU__,
          "ipam": {
              "type": "calico-ipam"
          },
          "policy": {
              "type": "k8s"
          },
          "kubernetes": {
              "kubeconfig": "__KUBECONFIG_FILEPATH__"
          }
        },
        {
          "type": "portmap",
          "snat": true,
          "capabilities": {"portMappings": true}
        }
      ]
    }

---
# Source: calico/templates/kdd-crds.yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
   name: felixconfigurations.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: FelixConfiguration
    plural: felixconfigurations
    singular: felixconfiguration
---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ipamblocks.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPAMBlock
    plural: ipamblocks
    singular: ipamblock

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: blockaffinities.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: BlockAffinity
    plural: blockaffinities
    singular: blockaffinity

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ipamhandles.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPAMHandle
    plural: ipamhandles
    singular: ipamhandle

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ipamconfigs.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPAMConfig
    plural: ipamconfigs
    singular: ipamconfig

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: bgppeers.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: BGPPeer
    plural: bgppeers
    singular: bgppeer

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: bgpconfigurations.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: BGPConfiguration
    plural: bgpconfigurations
    singular: bgpconfiguration

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: ippools.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: IPPool
    plural: ippools
    singular: ippool

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: hostendpoints.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: HostEndpoint
    plural: hostendpoints
    singular: hostendpoint

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: clusterinformations.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: ClusterInformation
    plural: clusterinformations
    singular: clusterinformation

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: globalnetworkpolicies.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: GlobalNetworkPolicy
    plural: globalnetworkpolicies
    singular: globalnetworkpolicy

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: globalnetworksets.crd.projectcalico.org
spec:
  scope: Cluster
  group: crd.projectcalico.org
  version: v1
  names:
    kind: GlobalNetworkSet
    plural: globalnetworksets
    singular: globalnetworkset

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: networkpolicies.crd.projectcalico.org
spec:
  scope: Namespaced
  group: crd.projectcalico.org
  version: v1
  names:
    kind: NetworkPolicy
    plural: networkpolicies
    singular: networkpolicy

---

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: networksets.crd.projectcalico.org
spec:
  scope: Namespaced
  group: crd.projectcalico.org
  version: v1
  names:
    kind: NetworkSet
    plural: networksets
    singular: networkset
---
# Source: calico/templates/rbac.yaml

# Include a clusterrole for the kube-controllers component,
# and bind it to the calico-kube-controllers serviceaccount.
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: calico-kube-controllers
rules:
  # Nodes are watched to monitor for deletions.
  - apiGroups: [""]
    resources:
      - nodes
    verbs:
      - watch
      - list
      - get
  # Pods are queried to check for existence.
  - apiGroups: [""]
    resources:
      - pods
    verbs:
      - get
  # IPAM resources are manipulated when nodes are deleted.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - ippools
    verbs:
      - list
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - blockaffinities
      - ipamblocks
      - ipamhandles
    verbs:
      - get
      - list
      - create
      - update
      - delete
  # Needs access to update clusterinformations.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - clusterinformations
    verbs:
      - get
      - create
      - update
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: calico-kube-controllers
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: calico-kube-controllers
subjects:
- kind: ServiceAccount
  name: calico-kube-controllers
  namespace: kube-system
---
# Include a clusterrole for the calico-node DaemonSet,
# and bind it to the calico-node serviceaccount.
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: calico-node
rules:
  # The CNI plugin needs to get pods, nodes, and namespaces.
  - apiGroups: [""]
    resources:
      - pods
      - nodes
      - namespaces
    verbs:
      - get
  - apiGroups: [""]
    resources:
      - endpoints
      - services
    verbs:
      # Used to discover service IPs for advertisement.
      - watch
      - list
      # Used to discover Typhas.
      - get
  - apiGroups: [""]
    resources:
      - nodes/status
    verbs:
      # Needed for clearing NodeNetworkUnavailable flag.
      - patch
      # Calico stores some configuration information in node annotations.
      - update
  # Watch for changes to Kubernetes NetworkPolicies.
  - apiGroups: ["networking.k8s.io"]
    resources:
      - networkpolicies
    verbs:
      - watch
      - list
  # Used by Calico for policy information.
  - apiGroups: [""]
    resources:
      - pods
      - namespaces
      - serviceaccounts
    verbs:
      - list
      - watch
  # The CNI plugin patches pods/status.
  - apiGroups: [""]
    resources:
      - pods/status
    verbs:
      - patch
  # Calico monitors various CRDs for config.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - globalfelixconfigs
      - felixconfigurations
      - bgppeers
      - globalbgpconfigs
      - bgpconfigurations
      - ippools
      - ipamblocks
      - globalnetworkpolicies
      - globalnetworksets
      - networkpolicies
      - networksets
      - clusterinformations
      - hostendpoints
    verbs:
      - get
      - list
      - watch
  # Calico must create and update some CRDs on startup.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - ippools
      - felixconfigurations
      - clusterinformations
    verbs:
      - create
      - update
  # Calico stores some configuration information on the node.
  - apiGroups: [""]
    resources:
      - nodes
    verbs:
      - get
      - list
      - watch
  # These permissions are only requried for upgrade from v2.6, and can
  # be removed after upgrade or on fresh installations.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - bgpconfigurations
      - bgppeers
    verbs:
      - create
      - update
  # These permissions are required for Calico CNI to perform IPAM allocations.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - blockaffinities
      - ipamblocks
      - ipamhandles
    verbs:
      - get
      - list
      - create
      - update
      - delete
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - ipamconfigs
    verbs:
      - get
  # Block affinities must also be watchable by confd for route aggregation.
  - apiGroups: ["crd.projectcalico.org"]
    resources:
      - blockaffinities
    verbs:
      - watch
  # The Calico IPAM migration needs to get daemonsets. These permissions can be
  # removed if not upgrading from an installation using host-local IPAM.
  - apiGroups: ["apps"]
    resources:
      - daemonsets
    verbs:
      - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: calico-node
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: calico-node
subjects:
- kind: ServiceAccount
  name: calico-node
  namespace: kube-system

---
# Source: calico/templates/calico-node.yaml
# This manifest installs the calico-node container, as well
# as the CNI plugins and network config on
# each master and worker node in a Kubernetes cluster.
kind: DaemonSet
apiVersion: apps/v1
metadata:
  name: calico-node
  namespace: kube-system
  labels:
    k8s-app: calico-node
spec:
  selector:
    matchLabels:
      k8s-app: calico-node
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
  template:
    metadata:
      labels:
        k8s-app: calico-node
      annotations:
        # This, along with the CriticalAddonsOnly toleration below,
        # marks the pod as a critical add-on, ensuring it gets
        # priority scheduling and that its resources are reserved
        # if it ever gets evicted.
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      nodeSelector:
        beta.kubernetes.io/os: linux
      hostNetwork: true
      tolerations:
        # Make sure calico-node gets scheduled on all nodes.
        - effect: NoSchedule
          operator: Exists
        # Mark the pod as a critical add-on for rescheduling.
        - key: CriticalAddonsOnly
          operator: Exists
        - effect: NoExecute
          operator: Exists
      serviceAccountName: calico-node
      # Minimize downtime during a rolling upgrade or deletion; tell Kubernetes to do a "force
      # deletion": https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods.
      terminationGracePeriodSeconds: 0
      priorityClassName: system-node-critical
      initContainers:
        # This container performs upgrade from host-local IPAM to calico-ipam.
        # It can be deleted if this is a fresh installation, or if you have already
        # upgraded to use calico-ipam.
        - name: upgrade-ipam
          image: calico/cni:v3.8.2
          command: ["/opt/cni/bin/calico-ipam", "-upgrade"]
          env:
            - name: KUBERNETES_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: CALICO_NETWORKING_BACKEND
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: calico_backend
          volumeMounts:
            - mountPath: /var/lib/cni/networks
              name: host-local-net-dir
            - mountPath: /host/opt/cni/bin
              name: cni-bin-dir
        # This container installs the CNI binaries
        # and CNI network config file on each node.
        - name: install-cni
          image: calico/cni:v3.8.2
          command: ["/install-cni.sh"]
          env:
            # Name of the CNI config file to create.
            - name: CNI_CONF_NAME
              value: "10-calico.conflist"
            # The CNI network config to install on each node.
            - name: CNI_NETWORK_CONFIG
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: cni_network_config
            # Set the hostname based on the k8s node name.
            - name: KUBERNETES_NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            # CNI MTU Config variable
            - name: CNI_MTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # Prevents the container from sleeping forever.
            - name: SLEEP
              value: "false"
          volumeMounts:
            - mountPath: /host/opt/cni/bin
              name: cni-bin-dir
            - mountPath: /host/etc/cni/net.d
              name: cni-net-dir
        # Adds a Flex Volume Driver that creates a per-pod Unix Domain Socket to allow Dikastes
        # to communicate with Felix over the Policy Sync API.
        - name: flexvol-driver
          image: calico/pod2daemon-flexvol:v3.8.2
          volumeMounts:
          - name: flexvol-driver-host
            mountPath: /host/driver
      containers:
        # Runs calico-node container on each Kubernetes node.  This
        # container programs network policy and routes on each
        # host.
        - name: calico-node
          image: calico/node:v3.8.2
          env:
            # Use Kubernetes API as the backing datastore.
            - name: DATASTORE_TYPE
              value: "kubernetes"
            # Wait for the datastore.
            - name: WAIT_FOR_DATASTORE
              value: "true"
            # Set based on the k8s node name.
            - name: NODENAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            # Choose the backend to use.
            - name: CALICO_NETWORKING_BACKEND
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: calico_backend
            # Cluster type to identify the deployment type
            - name: CLUSTER_TYPE
              value: "k8s,bgp"
            # Specify interface
            - name: IP_AUTODETECTION_METHOD
              value: "interface=eth1"
            # Auto-detect the BGP IP address.
            - name: IP
              value: "autodetect"
            # Enable IPIP
            - name: CALICO_IPV4POOL_IPIP
              value: "Always"
            # Set MTU for tunnel device used if ipip is enabled
            - name: FELIX_IPINIPMTU
              valueFrom:
                configMapKeyRef:
                  name: calico-config
                  key: veth_mtu
            # The default IPv4 pool to create on startup if none exists. Pod IPs will be
            # chosen from this range. Changing this value after installation will have
            # no effect. This should fall within `--cluster-cidr`.
            - name: CALICO_IPV4POOL_CIDR
              value: "<IP_ADDRESS>/16"
            # Disable file logging so `kubectl logs` works.
            - name: CALICO_DISABLE_FILE_LOGGING
              value: "true"
            # Set Felix endpoint to host default action to ACCEPT.
            - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
              value: "ACCEPT"
            # Disable IPv6 on Kubernetes.
            - name: FELIX_IPV6SUPPORT
              value: "false"
            # Set Felix logging to "info"
            - name: FELIX_LOGSEVERITYSCREEN
              value: "info"
            - name: FELIX_HEALTHENABLED
              value: "true"
          securityContext:
            privileged: true
          resources:
            requests:
              cpu: 250m
          livenessProbe:
            httpGet:
              path: /liveness
              port: 9099
              host: localhost
            periodSeconds: 10
            initialDelaySeconds: 10
            failureThreshold: 6
          readinessProbe:
            exec:
              command:
              - /bin/calico-node
              - -bird-ready
              - -felix-ready
            periodSeconds: 10
          volumeMounts:
            - mountPath: /lib/modules
              name: lib-modules
              readOnly: true
            - mountPath: /run/xtables.lock
              name: xtables-lock
              readOnly: false
            - mountPath: /var/run/calico
              name: var-run-calico
              readOnly: false
            - mountPath: /var/lib/calico
              name: var-lib-calico
              readOnly: false
            - name: policysync
              mountPath: /var/run/nodeagent
      volumes:
        # Used by calico-node.
        - name: lib-modules
          hostPath:
            path: /lib/modules
        - name: var-run-calico
          hostPath:
            path: /var/run/calico
        - name: var-lib-calico
          hostPath:
            path: /var/lib/calico
        - name: xtables-lock
          hostPath:
            path: /run/xtables.lock
            type: FileOrCreate
        # Used to install CNI.
        - name: cni-bin-dir
          hostPath:
            path: /opt/cni/bin
        - name: cni-net-dir
          hostPath:
            path: /etc/cni/net.d
        # Mount in the directory for host-local IPAM allocations. This is
        # used when upgrading from host-local to calico-ipam, and can be removed
        # if not using the upgrade-ipam init container.
        - name: host-local-net-dir
          hostPath:
            path: /var/lib/cni/networks
        # Used to create per-pod Unix Domain Sockets
        - name: policysync
          hostPath:
            type: DirectoryOrCreate
            path: /var/run/nodeagent
        # Used to install Flex Volume Driver
        - name: flexvol-driver-host
          hostPath:
            type: DirectoryOrCreate
            path: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds
---

apiVersion: v1
kind: ServiceAccount
metadata:
  name: calico-node
  namespace: kube-system

---
# Source: calico/templates/calico-kube-controllers.yaml

# See https://github.com/projectcalico/kube-controllers
apiVersion: apps/v1
kind: Deployment
metadata:
  name: calico-kube-controllers
  namespace: kube-system
  labels:
    k8s-app: calico-kube-controllers
spec:
  # The controllers can only have a single active instance.
  replicas: 1
  selector:
    matchLabels:
      k8s-app: calico-kube-controllers
  strategy:
    type: Recreate
  template:
    metadata:
      name: calico-kube-controllers
      namespace: kube-system
      labels:
        k8s-app: calico-kube-controllers
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      nodeSelector:
        beta.kubernetes.io/os: linux
      tolerations:
        # Mark the pod as a critical add-on for rescheduling.
        - key: CriticalAddonsOnly
          operator: Exists
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
      serviceAccountName: calico-kube-controllers
      priorityClassName: system-cluster-critical
      containers:
        - name: calico-kube-controllers
          image: calico/kube-controllers:v3.8.2
          env:
            # Choose which controllers to run.
            - name: ENABLED_CONTROLLERS
              value: node
            - name: DATASTORE_TYPE
              value: kubernetes
          readinessProbe:
            exec:
              command:
              - /usr/bin/check-status
              - -r

---

apiVersion: v1
kind: ServiceAccount
metadata:
  name: calico-kube-controllers
  namespace: kube-system
---
# Source: calico/templates/calico-etcd-secrets.yaml

---
# Source: calico/templates/calico-typha.yaml

---
# Source: calico/templates/configure-canal.yaml

calico.zip

voted


rooDir does not seems to work with JS files

I have following structure
└───src
    ├───external
    │   └───lib
    └───App
        ├───Class

src/external/lib/ contains 2 files, lib.js and lib.d.ts.
In src/App/Class/Class.ts I am importing ../../external/lib/lib and it works fine, but generates following structure:
└───dist
    └───App
        ├───Class

With JS files in dist/App/Class. My config is:
{
  "compilerOptions": {
    "module": "commonjs",
    "sourceMap": false,
    "target": "ES5",
    "noImplicitAny": true,
    "outDir": "./dist",
    "rootDir": "./src"
  },
  "files": [
    "src/main.ts"
  ]
}

So I thought what rootDir property should solve this problem and transfer entire structure to dist folder. Am I doing something wrong?

The compiler does not copy files. I would add a post build task to copy your dependencies into the output folder.
The issue --rootDir is solving is consistenlly identifiing the root of your files. with out the flag, it is the logest common path of all inputs, that means that something like:
└───src
    └───App
        ├───Class1
        |    └───a.ts
        ├───Class2
              └───b.ts

the output structure without --rootDir will look like:
└───dist
        ├───Class1
        |    └───a.js
        ├───Class2
              └───b.js

with no way of making App show up. --rootDir .\src will cause App to be generated.

Totally off topic, nice tree you have there, how dd generate that?

@mhegazy Yep, I originally structured it in a way where external dependencies are living in separate top level folder and ``srcfolder contains same tree inexternalsub-folder with only.d.tsfiles, but it really feels uncomfortable to have such duplicated structure. So I thought--rootDir``` might resolve this, sorry if I misunderstood its intention.

Totally off topic, nice tree you have there, how dd generate that?

Windows command tree made it for me. Actually it's not quite useful for big tree since it does not have level parameter :(

Looks like this is addresses. please reopen if there is missing information.


Infinite redirection loop

In Ubuntu on latest version of the repo, When I restart the server and try to connect to the web with non authenticated navigator, this do an infinite redirect loop to /auth.aspx

Sorry for any inconveniences. The issue has been detected, the fix will be included into the next version. Please follow the instructions in order to resolve it:

Edit the file /var/www/onlyoffice/WebStudio/web.appsettings.config
Find and delete the line
sudo service monoserve stop \ start

the fix works well.
thanks


Storing request buffer to create new reader on each request

This PR resolves the issue with drained request payload buffer after the first request.
When you repeat the request with the same buffer, you should fill or seek to the beginning before next usage.

Thanks @DLag for the PR, merging

Hi!
I actually spent some time today investigating an issue caused by the bug this PR fixes. I was based on 3.0.0 (the latest version) that does not contain this fix. This was rather unfortunate and lost a bit of time before realising master was fine.
Would it be possible to bump the latest version of the package to 3.0.1 (bug fix bump) to avoid someone else running into this issue?


Logging Plugin

Closes #178
Signed-off-by: Michael Lavers<EMAIL_ADDRESS>

@pselle @ewindisch This is ready to review. See the docs updates for usage details.


ui-select inside a bootstrap dropdown

I am using ui-select inside a bootstrap dropdown menu, this menu only closes when I click outside the dropdown menu area, however, with an ui-select there, the bootstrap dropdown closes when I select a value from ui-select

Closing it, being followed from: https://github.com/angular-ui/bootstrap/issues/3989


New Access Survey email content

Email verification (sent to the person who wants to access the survey) (Same email sent if report id sent or not)
Change the text for:
Share your feedback about (engagement name).
Please click the link below to provide your feedback. This link will expire in 24 hours and is only valid once. If the link has expired, you can request access again at (public link to engagement).
Click here to provide your feedback.
Thank you,
The Environmental Assessment Office Team (will change for each instance)

This card helps us in #1773 because then we don't send an Engagement Closing Email when there is no auto report sent

Latest text is updated in the ticket 1919.


[RR Request]: Squealer v1.0.0

Open Source Project name
Squealer
What is your project?
Squealer scans a git repository or filesystem for secrets that are being leaked deep within the commit history. Performance is achieved by only scanning the difference between each consecutive commit.
The built-in configuration has a large number of checks for common API keys and you can optionally add your own rules to a config file.
When an issue is identified, you can mitigate it and make it as an exclusion.
Version
v1.0.0
Date
April 22, 2022
Description of breaking changes
No breaking changes were included in this release
GitHub Repo
https://github.com/owenrumney/squealer
Website
https://github.com/owenrumney/squealer
Link to changelog
https://github.com/owenrumney/squealer/releases/tag/v1.0.0
Social media
https://twitter.com/owenrum/status/1517494330629541893
Anything else to add?
I love this project (ofcourse I do, its mine)
I genuinely believe it does secret scanning more efficiently than other tools but it only has 118 stars. I'd love people to use it and it help them

Hey @mishmanners, did I miss out on being in the April release radar?

Thanks for submitting your project. We had a lot of projects submitted for the April Release Radar and we couldn't include them all. We'd love to see you submit again, however the team did have some concerns over how you're doing secret scanning given GitHub already has that feature. If you can provide more detail for the next one that'd be great.


fix: fixed 0 errors readme markdown

finally learned how to fix errors because of html usage to display pictures for players and colors on text

approved, learned to create exceptions on markdown lint


[5.5] Fix php docblock on Resource class

dynamic is correct :)

@themsaid should PHPStorm recognize this, then? Why does the framework uses mixed all over the place and dynamic here?


Provide a way to list the product drive participants for a product drive -- all the info, so they can be contacted again

Summary
Provide a pull of all the product drive participants associated with a particular drive, or group of drives.
Why
Banks need to be able to get a list of the people who are associated with particular product drives, so they can ask them to participate the next time around (ex.  annual Mothers Day drives)  They need all the address info.
Details
Add a Product Drive Participants card to the product drive view that shows all the product drive participants for that drive,  with the columns:
Business Name, Contact Name, Phone, Email, Address,  Items for this Drive, Total Items,  Comment
(Total Items will be the all-time total items donated by that person)
Notes
1/  The product drive and participants are not directly linked -- you'll have to go through the donations
2/  There isn't a comment on the product drive participant at time of writing -- there's a separate issue coming for that.
Criteria for completion

[ ] Product drive view has a card that shows all its participants
[ ] Tests to support this functionality (including that it shows the right # of items if the participant is with multiple drives)

@cielf  Can I take this?

You got it!

@cielf Is this still available to pick up?

Hey @dorner you can pass it on

@patelkrunal31 it's yours!


History is replaced on redirect by using parameters

Description:
The replaceHistory conditon in Line 1662  works not as expected, when calling a new route with parameters.
Steps to Reproduce:
When you are in a route /search and call m.route('/search', { foo: 'bar' }) the old history entry will be replaced.
If you make a second call with m.route('/search', { bar: 'foo' }) afterwards, the history entry /search?foo=bar is not replaced.
This is because in the first call the condition the oldRoute variable has the value '/search' and the root variable has the value '/search' too.
In the second call, the oldRoute variable has the value '/search?foo=bar' and the root is '/search'.
I think, the root variable should consider the parameters.
Expected:
The old history entry should not be replaced, when route is changed only by changing parameters. A new history entry should be pushed to the history stack.
Actual:
The old history entry is replaced, when route is changed only by parameters.

Should be a relatively easy fix. PRs accepted.

Sorry, i just learned, that i should've used some keyword like 'resolves #1124' in my previous PR message to close this issue automatically. Could someone with the appropriate rights please close this issue. Thanks.

Fixed by 03c618898930575cb46b853d77e90c5adcb42c81


Town and parish councils

This used to exist but link is dead: https://data.gov.uk/dataset/2fe64aed-a51c-4661-a2de-9b736ace100b/town-parish-councils-in-england

DLUHC have a list of parish and town councils based on council tax records: https://www.gov.uk/government/statistical-data-sets/live-tables-on-council-tax


Null Safety Error

When we install a this plugin and try to reload the application it gives us the null aware operation error in plugin, although it's a minor error.

This will be fixed asap in version 2.0.0

I've released v2.0.0 which fixes this error.

Thanks a lot my friend


invalid user bug

embed-user-tags can result in invalid user being displayed for a valid user
13 April 2020: Testing Android and also web app showed 1-2 invalid users / game.
13 April 2020: Testing  Windows app, 1 invalid user displayed every two games.

Sorry for the late reply.
Yes. This is a known bug on Discord's end. I've added the option for people who want to use it regardless, but it is disabled by default for that exact reason. There's nothing I am aware of that I can do about it.
I mention this on the help page for that configuration option.


Rotating the x-axis labels

I have attempted to rotate the labels using CSS as per the examples already given
https://jsbin.com/kezivew/edit?html,css,js,output
But in my example the labels are never visible.

The simplest way to fix this would be to simply allow the SVG element inside being generated to overflow.
modified example:
https://jsbin.com/lemetexehu/edit?html,css,js,output
#chart svg {
  overflow: visible;
}

Thankyou very much for your reply, this seems to help somewhat, but when I scroll down the x axis scrolls down as well. Please see example https://jsbin.com/rejocavica/edit?html,css,js,output

Your labels are traveling down because you set their position fixed:
.ct-label.ct-label.ct-horizontal {
  position: fixed;  /* THIS IS WHY */
  justify-content: flex-end;
  text-align: right;
  transform-origin: 100% 0;
  transform: translate(-100%) rotate(-45deg);
}

There is no need to do that.
Also, chartist has a padding parameter if you need some more space around your graph.
var chart = new Chartist.Line('#chart', {
  chartPadding: {
    top: 20,
    bottom: 20,
    left: 20,
    right: 20
  },
  labels: ['How are you', 'Very long label', 3, 4, 5],
  series: [
    [10, 4, 12, 22, 21]
  ]
})

@davebat Did this resolve your issue?  Make sure that you close it if you're good.


Dark hat

Waiting for the API update before this gets merged since you said you may have gotten it working locally.

looks good.


Improve the Sparse level's sort procedure

This uses a two-step sort where we first use tbl.ptr to bucket the idxs & values. Then, we sort each bucket individually. Some initial testing showed a 2x matrix transpose improvement:
using Finch
using BenchmarkTools

n = 100000
nnz = 1000000
A = Tensor(Dense(SparseList(Element(0.0))), fsprand(n, n, nnz))
C = Tensor(Dense(Sparse(Element(0.0))))

eval(@finch_kernel mode=:fast function tp(A, C)
    C .= 0
    for i=_
        for j=_
            C[i,j] = A[j,i]
        end
    end
end)

hash_times = []

@benchmark tp($A, $C)

this looks good! We can merge this now, and I'll see if I can tweak it later.


Can not connect to the docker machine without driver

I created a docker machine by running:
$ docker-machine create --url tcp://xxx.xxxx:2376 serve
It was created before I upgrade docker-machine to 0.5.0.
But after I update to 0.5.0, it shows error message when I try to connect to it by:
$ eval "$(docker-machine env serve)"
Error message is following:
Error running connection boilerplate: serve is not running. Please start it in order to use the connection settings.
But actually you can not start a docker machine without driver... WTF...
$ docker-machine start serve
hosts without a driver cannot be started

+1
I've got same issue after upgrading to docker-machine v0.5.0.

@nathanleclaire wdyt?

I think it's generally presumed that instances created with none are guaranteed to be running, so maybe GetState for that driver should return state.Running.

I'll submit a PR for that.

@nathanleclaire Great! Thank you!

@eyakcn Please try master if you can and make sure to verify that it solves your issues.  Thanks!

@nathanleclaire I tried the master branch, the commit hash is 93376828af9aa9bc7734fcf0440e2baedf3aca4f
And then I tried to build the binary by:
$ export USE_CONTAINER=true
$ TARGET_OS=darwin TARGET_ARCH="amd64" make cross
But the binary built in this way still cannot connect to the machine created without a driver.

@eyakcn Did you copy the compiled binaries to your PATH?  Does docker-machine ls report none machine state as Running after creating e.g. docker-machine create --driver none --url foo.bar foobar?  If that is true and it still isn't working, please let us know your latest symptoms.

@nathanleclaire It's really strange, after I updated the master branch, and run
$ TARGET_OS=darwin TARGET_ARCH="amd64" make cross
I can not find the build output of bin/

@eyakcn I believe Monsieur @dgageot broke the build here :) https://github.com/docker/machine/pull/2239/files#diff-47b96c240fe19eb8a0c14dc47e9f4c38R33

@dmp42 Thank you :)
I will try again after it's fixed


Lengthen time to check for managed cluster policy

ref: https://github.com/stolostron/backlog/issues/27336

/cherry-pick release-2.8

/cherry-pick release-2.7

/cherry-pick release-2.6