Egress network policy blocks readiness probe

I have deployed the nginx ingress controller using helm.
NAME    NAMESPACE       REVISION        UPDATED                                         STATUS          CHART                   APP VERSION
nginx   nginx           53              2022-07-03 20:30:34.187933627 +0200 CEST        deployed        nginx-ingress-0.13.2    2.2.2

When securing my cluster using network policies, I noticed that the nginx ingress controller was failing its readiness probe. This was also failing with only a single network policy present for egress. This network policy is:
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: default-allow-nothing
  namespace: nginx
spec:
  podSelector: {}
  policyTypes:
    - Egress

The output of the kubectl describe of the affected pod is
Warning  Unhealthy  5m28s (x22 over 5m47s)  kubelet            Readiness probe failed: Get "http://<IP_ADDRESS>:8081/nginx-ready": dial tcp <IP_ADDRESS>:8081: connect: connection refused

What did you expect to happen?
Upon deleting an nginx pod it should come back and pass its readiness probe. The reason is that it is connecting to its own IP. Even when adding explicit egress rules for TCP port 8081, it still fails.
In general network policies should not affect readiness probes.
How can we reproduce it (as minimally and precisely as possible)?
helm repo add nginx-stable https://helm.nginx.com/stable
helm install -n nginx --create-namespace nginx nginx-stable/nginx-ingress -f values.yaml

Wait until nginx is successfully running and all pods are running.
Now create the network policy:
kubectl apply -f networkpolicy.yaml # the policy shown above

And delete one of the nginx pod.
The pod now fails because of a a readiness probe.
Anything else we need to know?
The network policy is the only network policy that I used for this test. It does not allow communication to any other pods in the system. However, my default network policies did cover egress and ingress rules to the pods that it needs to reach. The example is just a minimal working example.
Kubernetes version

$ kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.3", GitCommit:"aef86a93758dc3cb2c658dd9657ab4ad4afc21cb", GitTreeState:"clean", BuildDate:"2022-07-13T14:30:46Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.4
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.7", GitCommit:"42c05a547468804b2053ecf60a3bd15560362fc2", GitTreeState:"clean", BuildDate:"2022-05-24T12:24:41Z", GoVersion:"go1.17.10", Compiler:"gc", Platform:"linux/amd64"}

Cloud provider

kubeadm install on centos 7

OS version
Server OS version:

# On Linux:
$ cat /etc/os-release
# cat /etc/os-release
NAME="CentOS Stream"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Stream 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"

$ uname -a
Linux panther 4.18.0-301.1.el8.x86_64 #1 SMP Tue Apr 13 16:24:22 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

</details>

### Install tools

<details>
helm was used in the example
</details>

### Container runtime (CRI) and version (if applicable)

<details>
# docker -v
Docker version 20.10.6, build 370c289
</details>

### Related plugins (CNI, CSI, ...) and versions (if applicable)

<details>
CNI: calico

> kubectl exec -it -n kube-system calicoctl -- calicoctl version
Client Version:    v3.23.1
Git commit:        967e24543
Cluster Version:   v3.23.1
Cluster Type:      typha,kdd,k8s,operator,bgp,kubeadm

</details>

A simple deployment with an httpd container and readiness check works together with a NetworkPolicy that disables all egress:
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd
  labels:
    app: httpd
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpd
  template:
    metadata:
      labels:
        app: httpd
    spec:
      containers:
        - name: httpd
          image: httpd:2.4
          ports:
            - containerPort: 80
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /
              port: 80
              scheme: HTTP
            periodSeconds: 1
            successThreshold: 1
            timeoutSeconds: 1
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: default-allow-nothing
spec:
  podSelector: {}
  policyTypes:
    - Egress

It also works when replacing the deployment by a daemonset which is what I was using for nginx.

The following values.yaml was used for installing calico.
The values.yaml used for nginx installation:
controller:
  ## The name of the Ingress Controller daemonset or deployment.
  ## Autogenerated if not set or set to "".
  # name: nginx-ingress

  ## The kind of the Ingress Controller installation - deployment or daemonset.
  kind: daemonset

  ## Deploys the Ingress Controller for NGINX Plus.
  nginxplus: false

  # Timeout in milliseconds which the Ingress Controller will wait for a successful NGINX reload after a change or at the initial start.
  nginxReloadTimeout: 60000

  ## Support for App Protect
  appprotect:
    ## Enable the App Protect module in the Ingress Controller.
    enable: false
    ## Sets log level for App Protect. Allowed values: fatal, error, warn, info, debug, trace
    # logLevel: fatal

  ## Support for App Protect Dos
  appprotectdos:
    ## Enable the App Protect Dos module in the Ingress Controller.
    enable: false
    ## Enable debugging for App Protect Dos.
    debug: false
    ## Max number of nginx processes to support.
    maxWorkers: 0
    ## Max number of ADMD instances.
    maxDaemons: 0
    ## RAM memory size to consume in MB.
    memory: 0

  ## Enables the Ingress Controller pods to use the host's network namespace.
  hostNetwork: false

  ## Enables debugging for NGINX. Uses the nginx-debug binary. Requires error-log-level: debug in the ConfigMap via `controller.config.entries`.
  nginxDebug: false

  ## The log level of the Ingress Controller.
  logLevel: 1

  ## A list of custom ports to expose on the NGINX ingress controller pod. Follows the conventional Kubernetes yaml syntax for container ports.
  customPorts: []

  image:
    ## The image repository of the Ingress Controller.
    repository: nginx/nginx-ingress

    ## The tag of the Ingress Controller image.
    tag: "2.2.2"

    ## The pull policy for the Ingress Controller image.
    pullPolicy: IfNotPresent

  config:
    ## The name of the ConfigMap used by the Ingress Controller.
    ## Autogenerated if not set or set to "".
    # name: nginx-config

    ## The annotations of the Ingress Controller configmap.
    annotations: {}

    ## The entries of the ConfigMap for customizing NGINX configuration.
    entries: # CUSTOM
      ssl-ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
      ssl-protocols: "TLSv1.2 TLSv1.3"
      ssl-dh-param: "ingress-nginx/lb-dhparam"
      hsts: "true"
      hsts-max-age: "63072000"
      hsts-include-subdomains: "true"
      ssl-reject-handshake: "true"
      enable-ocsp: "true"
      client-max-body-size: 1000m
      #proxy-protocol: "True"
      #real-ip-header: "proxy_protocol"
      #set-real-ip-from: "<IP_ADDRESS>/24"
      #server-snippets: |
      #  more_set_headers 'Server: ';

  ## It is recommended to use your own TLS certificates and keys
  defaultTLS:
    ## The base64-encoded TLS certificate for the default HTTPS server. If not specified, a pre-generated self-signed certificate is used.
    ## Note: It is recommended that you specify your own certificate.
    cert: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN2akNDQWFZQ0NRREFPRjl0THNhWFhEQU5CZ2txaGtpRzl3MEJBUXNGQURBaE1SOHdIUVlEVlFRRERCWk8KUjBsT1dFbHVaM0psYzNORGIyNTBjbTlzYkdWeU1CNFhEVEU0TURreE1qRTRNRE16TlZvWERUSXpNRGt4TVRFNApNRE16TlZvd0lURWZNQjBHQTFVRUF3d1dUa2RKVGxoSmJtZHlaWE56UTI5dWRISnZiR3hsY2pDQ0FTSXdEUVlKCktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUwvN2hIUEtFWGRMdjNyaUM3QlBrMTNpWkt5eTlyQ08KR2xZUXYyK2EzUDF0azIrS3YwVGF5aGRCbDRrcnNUcTZzZm8vWUk1Y2Vhbkw4WGM3U1pyQkVRYm9EN2REbWs1Qgo4eDZLS2xHWU5IWlg0Rm5UZ0VPaStlM2ptTFFxRlBSY1kzVnNPazFFeUZBL0JnWlJVbkNHZUtGeERSN0tQdGhyCmtqSXVuektURXUyaDU4Tlp0S21ScUJHdDEwcTNRYzhZT3ExM2FnbmovUWRjc0ZYYTJnMjB1K1lYZDdoZ3krZksKWk4vVUkxQUQ0YzZyM1lma1ZWUmVHd1lxQVp1WXN2V0RKbW1GNWRwdEMzN011cDBPRUxVTExSakZJOTZXNXIwSAo1TmdPc25NWFJNV1hYVlpiNWRxT3R0SmRtS3FhZ25TZ1JQQVpQN2MwQjFQU2FqYzZjNGZRVXpNQ0F3RUFBVEFOCkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWpLb2tRdGRPcEsrTzhibWVPc3lySmdJSXJycVFVY2ZOUitjb0hZVUoKdGhrYnhITFMzR3VBTWI5dm15VExPY2xxeC9aYzJPblEwMEJCLzlTb0swcitFZ1U2UlVrRWtWcitTTFA3NTdUWgozZWI4dmdPdEduMS9ienM3bzNBaS9kclkrcUI5Q2k1S3lPc3FHTG1US2xFaUtOYkcyR1ZyTWxjS0ZYQU80YTY3Cklnc1hzYktNbTQwV1U3cG9mcGltU1ZmaXFSdkV5YmN3N0NYODF6cFErUyt1eHRYK2VBZ3V0NHh3VlI5d2IyVXYKelhuZk9HbWhWNThDd1dIQnNKa0kxNXhaa2VUWXdSN0diaEFMSkZUUkk3dkhvQXprTWIzbjAxQjQyWjNrN3RXNQpJUDFmTlpIOFUvOWxiUHNoT21FRFZkdjF5ZytVRVJxbStGSis2R0oxeFJGcGZnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=

    ## The base64-encoded TLS key for the default HTTPS server. Note: If not specified, a pre-generated key is used.
    ## Note: It is recommended that you specify your own key.
    key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdi91RWM4b1JkMHUvZXVJTHNFK1RYZUprckxMMnNJNGFWaEMvYjVyYy9XMlRiNHEvClJOcktGMEdYaVN1eE9ycXgrajlnamx4NXFjdnhkenRKbXNFUkJ1Z1B0ME9hVGtIekhvb3FVWmcwZGxmZ1dkT0EKUTZMNTdlT1l0Q29VOUZ4amRXdzZUVVRJVUQ4R0JsRlNjSVo0b1hFTkhzbysyR3VTTWk2Zk1wTVM3YUhudzFtMApxWkdvRWEzWFNyZEJ6eGc2clhkcUNlUDlCMXl3VmRyYURiUzc1aGQzdUdETDU4cGszOVFqVUFQaHpxdmRoK1JWClZGNGJCaW9CbTVpeTlZTW1hWVhsMm0wTGZzeTZuUTRRdFFzdEdNVWozcGJtdlFmazJBNnljeGRFeFpkZFZsdmwKMm82MjBsMllxcHFDZEtCRThCay90elFIVTlKcU56cHpoOUJUTXdJREFRQUJBb0lCQVFDZklHbXowOHhRVmorNwpLZnZJUXQwQ0YzR2MxNld6eDhVNml4MHg4Mm15d1kxUUNlL3BzWE9LZlRxT1h1SENyUlp5TnUvZ2IvUUQ4bUFOCmxOMjRZTWl0TWRJODg5TEZoTkp3QU5OODJDeTczckM5bzVvUDlkazAvYzRIbjAzSkVYNzZ5QjgzQm9rR1FvYksKMjhMNk0rdHUzUmFqNjd6Vmc2d2szaEhrU0pXSzBwV1YrSjdrUkRWYmhDYUZhNk5nMUZNRWxhTlozVDhhUUtyQgpDUDNDeEFTdjYxWTk5TEI4KzNXWVFIK3NYaTVGM01pYVNBZ1BkQUk3WEh1dXFET1lvMU5PL0JoSGt1aVg2QnRtCnorNTZud2pZMy8yUytSRmNBc3JMTnIwMDJZZi9oY0IraVlDNzVWYmcydVd6WTY3TWdOTGQ5VW9RU3BDRkYrVm4KM0cyUnhybnhBb0dCQU40U3M0ZVlPU2huMVpQQjdhTUZsY0k2RHR2S2ErTGZTTXFyY2pOZjJlSEpZNnhubmxKdgpGenpGL2RiVWVTbWxSekR0WkdlcXZXaHFISy9iTjIyeWJhOU1WMDlRQ0JFTk5jNmtWajJTVHpUWkJVbEx4QzYrCk93Z0wyZHhKendWelU0VC84ajdHalRUN05BZVpFS2FvRHFyRG5BYWkyaW5oZU1JVWZHRXFGKzJyQW9HQkFOMVAKK0tZL0lsS3RWRzRKSklQNzBjUis3RmpyeXJpY05iWCtQVzUvOXFHaWxnY2grZ3l4b25BWlBpd2NpeDN3QVpGdwpaZC96ZFB2aTBkWEppc1BSZjRMazg5b2pCUmpiRmRmc2l5UmJYbyt3TFU4NUhRU2NGMnN5aUFPaTVBRHdVU0FkCm45YWFweUNweEFkREtERHdObit3ZFhtaTZ0OHRpSFRkK3RoVDhkaVpBb0dCQUt6Wis1bG9OOTBtYlF4VVh5YUwKMjFSUm9tMGJjcndsTmVCaWNFSmlzaEhYa2xpSVVxZ3hSZklNM2hhUVRUcklKZENFaHFsV01aV0xPb2I2NTNyZgo3aFlMSXM1ZUtka3o0aFRVdnpldm9TMHVXcm9CV2xOVHlGanIrSWhKZnZUc0hpOGdsU3FkbXgySkJhZUFVWUNXCndNdlQ4NmNLclNyNkQrZG8wS05FZzFsL0FvR0FlMkFVdHVFbFNqLzBmRzgrV3hHc1RFV1JqclRNUzRSUjhRWXQKeXdjdFA4aDZxTGxKUTRCWGxQU05rMXZLTmtOUkxIb2pZT2pCQTViYjhibXNVU1BlV09NNENoaFJ4QnlHbmR2eAphYkJDRkFwY0IvbEg4d1R0alVZYlN5T294ZGt5OEp0ek90ajJhS0FiZHd6NlArWDZDODhjZmxYVFo5MWpYL3RMCjF3TmRKS2tDZ1lCbyt0UzB5TzJ2SWFmK2UwSkN5TGhzVDQ5cTN3Zis2QWVqWGx2WDJ1VnRYejN5QTZnbXo5aCsKcDNlK2JMRUxwb3B0WFhNdUFRR0xhUkcrYlNNcjR5dERYbE5ZSndUeThXczNKY3dlSTdqZVp2b0ZpbmNvVlVIMwphdmxoTUVCRGYxSjltSDB5cDBwWUNaS2ROdHNvZEZtQktzVEtQMjJhTmtsVVhCS3gyZzR6cFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=

    ## The secret with a TLS certificate and key for the default HTTPS server.
    ## The value must follow the following format: `<namespace>/<name>`.
    ## Used as an alternative to specifying a certificate and key using `controller.defaultTLS.cert` and `controller.defaultTLS.key` parameters.
    ## Format: <namespace>/<secret_name>
    secret:

  wildcardTLS:
    ## The base64-encoded TLS certificate for every Ingress/VirtualServer host that has TLS enabled but no secret specified.
    ## If the parameter is not set, for such Ingress/VirtualServer hosts NGINX will break any attempt to establish a TLS connection.
    cert: ""

    ## The base64-encoded TLS key for every Ingress/VirtualServer host that has TLS enabled but no secret specified.
    ## If the parameter is not set, for such Ingress/VirtualServer hosts NGINX will break any attempt to establish a TLS connection.
    key: ""

    ## The secret with a TLS certificate and key for every Ingress/VirtualServer host that has TLS enabled but no secret specified.
    ## The value must follow the following format: `<namespace>/<name>`.
    ## Used as an alternative to specifying a certificate and key using `controller.wildcardTLS.cert` and `controller.wildcardTLS.key` parameters.
    ## Format: <namespace>/<secret_name>
    secret:

  ## The node selector for pod assignment for the Ingress Controller pods.
  nodeSelector: {}

  ## The termination grace period of the Ingress Controller pod.
  terminationGracePeriodSeconds: 30

  ## The resources of the Ingress Controller pods.
  resources: {}
    # limits:
    #   cpu: 100m
    #   memory: 64Mi
    # requests:
    #   cpu: 100m
    #   memory: 64Mi

  ## The tolerations of the Ingress Controller pods.
  tolerations: []

  ## The affinity of the Ingress Controller pods.
  affinity: {}

  ## The volumes of the Ingress Controller pods.
  volumes: []
  # - name: extra-conf
  #   configMap:
  #     name: extra-conf

  ## The volumeMounts of the Ingress Controller pods.
  volumeMounts: []
  # - name: extra-conf
  #   mountPath: /etc/nginx/conf.d/extra.conf
  #   subPath: extra.conf

  ## InitContainers for the Ingress Controller pods.
  initContainers: []
  # - name: init-container
  #   image: busybox:1.34
  #   command: ['sh', '-c', 'echo this is initial setup!']

  ## Extra containers for the Ingress Controller pods.
  extraContainers: []
  # - name: container
  #   image: busybox:1.34
  #   command: ['sh', '-c', 'echo this is a sidecar!']

  ## The number of replicas of the Ingress Controller deployment.
  replicaCount: 1

  ## A class of the Ingress Controller.

  ## IngressClass resource with the name equal to the class must be deployed. Otherwise,
  ## the Ingress Controller will fail to start.
  ## The Ingress Controller only processes resources that belong to its class - i.e. have the "ingressClassName" field resource equal to the class.

  ## The Ingress Controller processes all the resources that do not have the "ingressClassName" field for all versions of kubernetes.
  ingressClass: nginx

  ## New Ingresses without an ingressClassName field specified will be assigned the class specified in `controller.ingressClass`.
  setAsDefaultIngress: true

  ## Namespace to watch for Ingress resources. By default the Ingress Controller watches all namespaces.
  watchNamespace: ""

  ## Enable the custom resources.
  enableCustomResources: true

  ## Enable preview policies. This parameter is deprecated. To enable OIDC Policies please use controller.enableOIDC instead.
  enablePreviewPolicies: false

  ## Enable OIDC policies.
  enableOIDC: false

  ## Enable TLS Passthrough on port 443. Requires controller.enableCustomResources.
  enableTLSPassthrough: false

  ## Enable cert manager for Virtual Server resources. Requires controller.enableCustomResources.
  enableCertManager: false

  globalConfiguration:
    ## Creates the GlobalConfiguration custom resource. Requires controller.enableCustomResources.
    create: false

    ## The spec of the GlobalConfiguration for defining the global configuration parameters of the Ingress Controller.
    spec: {}
      # listeners:
      # - name: dns-udp
      #   port: 5353
      #   protocol: UDP
      # - name: dns-tcp
      #   port: 5353
      #   protocol: TCP

  ## Enable custom NGINX configuration snippets in Ingress, VirtualServer, VirtualServerRoute and TransportServer resources.
  enableSnippets: false

  ## Add a location based on the value of health-status-uri to the default server. The location responds with the 200 status code for any request.
  ## Useful for external health-checking of the Ingress Controller.
  healthStatus: false

  ## Sets the URI of health status location in the default server. Requires controller.healthStatus.
  healthStatusURI: "/nginx-health"

  nginxStatus:
    ## Enable the NGINX stub_status, or the NGINX Plus API.
    enable: true

    ## Set the port where the NGINX stub_status or the NGINX Plus API is exposed.
    port: 8080

    ## Add IPv4 IP/CIDR blocks to the allow list for NGINX stub_status or the NGINX Plus API. Separate multiple IP/CIDR by commas.
    allowCidrs: "<IP_ADDRESS>"

  service:
    ## Creates a service to expose the Ingress Controller pods.
    create: true

    ## The type of service to create for the Ingress Controller.
    type: LoadBalancer

    ## The externalTrafficPolicy of the service. The value Local preserves the client source IP.
    externalTrafficPolicy: Local

    ## The annotations of the Ingress Controller service.
    annotations: {}

    ## The extra labels of the service.
    extraLabels: {}

    ## The static IP address for the load balancer. Requires controller.service.type set to LoadBalancer. The cloud provider must support this feature.
    loadBalancerIP: ""

    ## The list of external IPs for the Ingress Controller service.
    externalIPs: []

    ## The IP ranges (CIDR) that are allowed to access the load balancer. Requires controller.service.type set to LoadBalancer. The cloud provider must support this feature.
    loadBalancerSourceRanges: []

    ## The name of the service
    ## Autogenerated if not set or set to "".
    # name: nginx-ingress

    httpPort:
      ## Enables the HTTP port for the Ingress Controller service.
      enable: true

      ## The HTTP port of the Ingress Controller service.
      port: 80

      ## The custom NodePort for the HTTP port. Requires controller.service.type set to NodePort.
      nodePort: ""

      ## The HTTP port on the POD where the Ingress Controller service is running.
      targetPort: 80

    httpsPort:
      ## Enables the HTTPS port for the Ingress Controller service.
      enable: true

      ## The HTTPS port of the Ingress Controller service.
      port: 443

      ## The custom NodePort for the HTTPS port. Requires controller.service.type set to NodePort.
      nodePort: ""

      ## The HTTPS port on the POD where the Ingress Controller service is running.
      targetPort: 443

    ## A list of custom ports to expose through the Ingress Controller service. Follows the conventional Kubernetes yaml syntax for service ports.
    customPorts: []

  serviceAccount:
    ## The name of the service account of the Ingress Controller pods. Used for RBAC.
    ## Autogenerated if not set or set to "".
    # name: nginx-ingress

    ## The name of the secret containing docker registry credentials.
    ## Secret must exist in the same namespace as the helm release.
    imagePullSecretName: ""

  reportIngressStatus:
    ## Updates the address field in the status of Ingress resources with an external address of the Ingress Controller.
    ## You must also specify the source of the external address either through an external service via controller.reportIngressStatus.externalService,
    ## controller.reportIngressStatus.ingressLink or the external-status-address entry in the ConfigMap via controller.config.entries.
    ## Note: controller.config.entries.external-status-address takes precedence over the others.
    enable: true

    ## Specifies the name of the service with the type LoadBalancer through which the Ingress Controller is exposed externally.
    ## The external address of the service is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute resources.
    ## controller.reportIngressStatus.enable must be set to true.
    ## The default is autogenerated and matches the created service (see controller.service.create).
    # externalService: nginx-ingress

    ## Specifies the name of the IngressLink resource, which exposes the Ingress Controller pods via a BIG-IP system.
    ## The IP of the BIG-IP system is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute resources.
    ## controller.reportIngressStatus.enable must be set to true.
    ingressLink: ""

    ## Enable Leader election to avoid multiple replicas of the controller reporting the status of Ingress resources. controller.reportIngressStatus.enable must be set to true.
    enableLeaderElection: true

    ## Specifies the name of the ConfigMap, within the same namespace as the controller, used as the lock for leader election. controller.reportIngressStatus.enableLeaderElection must be set to true.
    ## Autogenerated if not set or set to "".
    # leaderElectionLockName: "nginx-ingress-leader-election"

    ## The annotations of the leader election configmap.
    annotations: {}

  pod:
    ## The annotations of the Ingress Controller pod.
    annotations: {}

    ## The additional extra labels of the Ingress Controller pod.
    extraLabels: {}

  ## The PriorityClass of the ingress controller pods.
  priorityClassName:

  readyStatus:
    ## Enables readiness endpoint "/nginx-ready". The endpoint returns a success code when NGINX has loaded all the config after startup.
    enable: true

    ## Set the port where the readiness endpoint is exposed.
    port: 8081

  ## Enable collection of latency metrics for upstreams. Requires prometheus.create.
  enableLatencyMetrics: false

rbac:
  ## Configures RBAC.
  create: true

prometheus:
  ## Expose NGINX or NGINX Plus metrics in the Prometheus format.
  create: true

  ## Configures the port to scrape the metrics.
  port: 9113

  ## Specifies the namespace/name of a Kubernetes TLS Secret which will be used to protect the Prometheus endpoint.
  secret: ""

  ## Configures the HTTP scheme used.
  scheme: http

nginxServiceMesh:
  ## Enables integration with NGINX Service Mesh.
  ## Requires controller.nginxplus
  enable: false

  ## Enables NGINX Service Mesh workload to route egress traffic through the Ingress Controller.
  ## Requires nginxServiceMesh.enable
  enableEgress: false

The difference between nginx and my example deployment is that nginx has the cap_net_bind capability and uses host ports. Also interesting us that only the first readiness probe fails, but not subsequent ones.

For completeness, here is the yaml of one of the nginx containers:
apiVersion: v1
items:
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      cni.projectcalico.org/containerID: 589ce9e7e7af1b4e7575c30ee054c04c156ce76f336387a066f2a1ab4f0080c2
      cni.projectcalico.org/podIP: <IP_ADDRESS>/32
      cni.projectcalico.org/podIPs: <IP_ADDRESS>/32
      prometheus.io/port: "9113"
      prometheus.io/scheme: http
      prometheus.io/scrape: "true"
    creationTimestamp: "2022-07-31T19:36:46Z"
    generateName: nginx-nginx-ingress-
    labels:
      app: nginx-nginx-ingress
      controller-revision-hash: c8f5dbd5c
      pod-template-generation: "3"
    name: nginx-nginx-ingress-jxsq9
    namespace: nginx
    ownerReferences:
    - apiVersion: apps/v1
      blockOwnerDeletion: true
      controller: true
      kind: DaemonSet
      name: nginx-nginx-ingress
      uid: 1cf1afa7-7e81-41fa-9d24-28ccd2f1fb9f
    resourceVersion: "12371415"
    uid: 396e9cb9-d320-4dc1-8286-f1fd31e58578
  spec:
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchFields:
            - key: metadata.name
              operator: In
              values:
              - cobra
    containers:
    - args:
      - -nginx-plus=false
      - -nginx-reload-timeout=60000
      - -enable-app-protect=false
      - -enable-app-protect-dos=false
      - -nginx-configmaps=$(POD_NAMESPACE)/nginx-nginx-ingress
      - -default-server-tls-secret=$(POD_NAMESPACE)/nginx-nginx-ingress-default-server-tls
      - -ingress-class=nginx
      - -health-status=false
      - -health-status-uri=/nginx-health
      - -nginx-debug=false
      - -v=1
      - -nginx-status=true
      - -nginx-status-port=8080
      - -nginx-status-allow-cidrs=<IP_ADDRESS>
      - -report-ingress-status
      - -external-service=nginx-nginx-ingress
      - -enable-leader-election=true
      - -leader-election-lock-name=nginx-nginx-ingress-leader-election
      - -enable-prometheus-metrics=true
      - -prometheus-metrics-listen-port=9113
      - -prometheus-tls-secret=
      - -enable-custom-resources=true
      - -enable-snippets=false
      - -enable-tls-passthrough=false
      - -enable-preview-policies=false
      - -enable-cert-manager=false
      - -enable-oidc=false
      - -ready-status=true
      - -ready-status-port=8081
      - -enable-latency-metrics=false
      env:
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.namespace
      - name: POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      image: nginx/nginx-ingress:2.2.2
      imagePullPolicy: IfNotPresent
      name: nginx-nginx-ingress
      ports:
      - containerPort: 80
        hostPort: 80
        name: http
        protocol: TCP
      - containerPort: 443
        hostPort: 443
        name: https
        protocol: TCP
      - containerPort: 9113
        name: prometheus
        protocol: TCP
      - containerPort: 8081
        name: readiness-port
        protocol: TCP
      readinessProbe:
        failureThreshold: 3
        httpGet:
          path: /nginx-ready
          port: readiness-port
          scheme: HTTP
        periodSeconds: 1
        successThreshold: 1
        timeoutSeconds: 1
      resources: {}
      securityContext:
        allowPrivilegeEscalation: true
        capabilities:
          add:
          - NET_BIND_SERVICE
          drop:
          - ALL
        runAsUser: 101
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-g4kx2
        readOnly: true
    dnsPolicy: ClusterFirst
    enableServiceLinks: true
    nodeName: cobra
    preemptionPolicy: PreemptLowerPriority
    priority: 0
    restartPolicy: Always
    schedulerName: default-scheduler
    securityContext: {}
    serviceAccount: nginx-nginx-ingress
    serviceAccountName: nginx-nginx-ingress
    terminationGracePeriodSeconds: 30
    tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/disk-pressure
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/memory-pressure
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/pid-pressure
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/unschedulable
      operator: Exists
    volumes:
    - name: kube-api-access-g4kx2
      projected:
        defaultMode: 420
        sources:
        - serviceAccountToken:
            expirationSeconds: 3607
            path: token
        - configMap:
            items:
            - key: ca.crt
              path: ca.crt
            name: kube-root-ca.crt
        - downwardAPI:
            items:
            - fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
              path: namespace
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T19:36:46Z"
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T19:36:48Z"
      status: "True"
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T19:36:48Z"
      status: "True"
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T19:36:46Z"
      status: "True"
      type: PodScheduled
    containerStatuses:
    - containerID: docker://2bdddc89560d07c8dc2937d68cb21f81c9055d3a3ffa34872eff248d07983854
      image: nginx/nginx-ingress:2.2.2
      imageID: docker-pullable://nginx/nginx-ingress@sha256:b6dec42d12651b12ced39434336b1022029c8534488aa2084b46f138c9f700ba
      lastState: {}
      name: nginx-nginx-ingress
      ready: true
      restartCount: 0
      started: true
      state:
        running:
          startedAt: "2022-07-31T19:36:47Z"
    hostIP: <IP_ADDRESS>
    phase: Running
    podIP: <IP_ADDRESS>
    podIPs:
    - ip: <IP_ADDRESS>
    qosClass: BestEffort
    startTime: "2022-07-31T19:36:46Z"
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      cni.projectcalico.org/containerID: 5ab3d7dd14fb1280d74d5311012ea3ec1fd0831d70867eaa3c34cc03fdd6b095
      cni.projectcalico.org/podIP: <IP_ADDRESS>/32
      cni.projectcalico.org/podIPs: <IP_ADDRESS>/32
      prometheus.io/port: "9113"
      prometheus.io/scheme: http
      prometheus.io/scrape: "true"
    creationTimestamp: "2022-07-31T13:33:27Z"
    generateName: nginx-nginx-ingress-
    labels:
      app: nginx-nginx-ingress
      controller-revision-hash: c8f5dbd5c
      pod-template-generation: "3"
    name: nginx-nginx-ingress-zxgrd
    namespace: nginx
    ownerReferences:
    - apiVersion: apps/v1
      blockOwnerDeletion: true
      controller: true
      kind: DaemonSet
      name: nginx-nginx-ingress
      uid: 1cf1afa7-7e81-41fa-9d24-28ccd2f1fb9f
    resourceVersion: "12312486"
    uid: 1e4e79b5-1454-4b83-9986-d707e859a069
  spec:
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchFields:
            - key: metadata.name
              operator: In
              values:
              - weasel
    containers:
    - args:
      - -nginx-plus=false
      - -nginx-reload-timeout=60000
      - -enable-app-protect=false
      - -enable-app-protect-dos=false
      - -nginx-configmaps=$(POD_NAMESPACE)/nginx-nginx-ingress
      - -default-server-tls-secret=$(POD_NAMESPACE)/nginx-nginx-ingress-default-server-tls
      - -ingress-class=nginx
      - -health-status=false
      - -health-status-uri=/nginx-health
      - -nginx-debug=false
      - -v=1
      - -nginx-status=true
      - -nginx-status-port=8080
      - -nginx-status-allow-cidrs=<IP_ADDRESS>
      - -report-ingress-status
      - -external-service=nginx-nginx-ingress
      - -enable-leader-election=true
      - -leader-election-lock-name=nginx-nginx-ingress-leader-election
      - -enable-prometheus-metrics=true
      - -prometheus-metrics-listen-port=9113
      - -prometheus-tls-secret=
      - -enable-custom-resources=true
      - -enable-snippets=false
      - -enable-tls-passthrough=false
      - -enable-preview-policies=false
      - -enable-cert-manager=false
      - -enable-oidc=false
      - -ready-status=true
      - -ready-status-port=8081
      - -enable-latency-metrics=false
      env:
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.namespace
      - name: POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      image: nginx/nginx-ingress:2.2.2
      imagePullPolicy: IfNotPresent
      name: nginx-nginx-ingress
      ports:
      - containerPort: 80
        hostPort: 80
        name: http
        protocol: TCP
      - containerPort: 443
        hostPort: 443
        name: https
        protocol: TCP
      - containerPort: 9113
        name: prometheus
        protocol: TCP
      - containerPort: 8081
        name: readiness-port
        protocol: TCP
      readinessProbe:
        failureThreshold: 3
        httpGet:
          path: /nginx-ready
          port: readiness-port
          scheme: HTTP
        periodSeconds: 1
        successThreshold: 1
        timeoutSeconds: 1
      resources: {}
      securityContext:
        allowPrivilegeEscalation: true
        capabilities:
          add:
          - NET_BIND_SERVICE
          drop:
          - ALL
        runAsUser: 101
      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File
      volumeMounts:
      - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
        name: kube-api-access-f7knt
        readOnly: true
    dnsPolicy: ClusterFirst
    enableServiceLinks: true
    nodeName: weasel
    preemptionPolicy: PreemptLowerPriority
    priority: 0
    restartPolicy: Always
    schedulerName: default-scheduler
    securityContext: {}
    serviceAccount: nginx-nginx-ingress
    serviceAccountName: nginx-nginx-ingress
    terminationGracePeriodSeconds: 30
    tolerations:
    - effect: NoExecute
      key: node.kubernetes.io/not-ready
      operator: Exists
    - effect: NoExecute
      key: node.kubernetes.io/unreachable
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/disk-pressure
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/memory-pressure
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/pid-pressure
      operator: Exists
    - effect: NoSchedule
      key: node.kubernetes.io/unschedulable
      operator: Exists
    volumes:
    - name: kube-api-access-f7knt
      projected:
        defaultMode: 420
        sources:
        - serviceAccountToken:
            expirationSeconds: 3607
            path: token
        - configMap:
            items:
            - key: ca.crt
              path: ca.crt
            name: kube-root-ca.crt
        - downwardAPI:
            items:
            - fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
              path: namespace
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T13:33:27Z"
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T13:33:33Z"
      status: "True"
      type: Ready
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T13:33:33Z"
      status: "True"
      type: ContainersReady
    - lastProbeTime: null
      lastTransitionTime: "2022-07-31T13:33:27Z"
      status: "True"
      type: PodScheduled
    containerStatuses:
    - containerID: docker://a9da6fe6f36af5a0b56a20967cb41f0ee10df9d2b40d290b9827d569c813dff0
      image: nginx/nginx-ingress:2.2.2
      imageID: docker-pullable://nginx/nginx-ingress@sha256:b6dec42d12651b12ced39434336b1022029c8534488aa2084b46f138c9f700ba
      lastState: {}
      name: nginx-nginx-ingress
      ready: true
      restartCount: 0
      started: true
      state:
        running:
          startedAt: "2022-07-31T13:33:32Z"
    hostIP: <IP_ADDRESS>
    phase: Running
    podIP: <IP_ADDRESS>
    podIPs:
    - ip: <IP_ADDRESS>
    qosClass: BestEffort
    startTime: "2022-07-31T13:33:27Z"
kind: List
metadata:
  resourceVersion: ""

@ErikEngerd thanks for raising this. I'm looking at it now. I definitely would not expect egress policy to impact a pod's ability to access its own host, perhaps unless you have host endpoints created.
I think you missed posting your Calico deployment values.yaml / manifest - do you know if FELIX_DEFAULTENDPOINTTOHOST is set on the calico/node DaemonSet? Normally we set that to "ACCEPT" by default, which ensures this packet path is functioning.

Get "http://<IP_ADDRESS>:8081/nginx-ready": dial tcp <IP_ADDRESS>:8081: connect: connection refused

Calico network policy doesn't reject packets, so it's unlikely this is a result of Calico's network policy dropping the traffic. We blackhole, so the symptom would be a timeout rather than a connection refused.
This suggests to me that the nginx pod is actually failing to serve its readiness endpoint for some reason. Do you know if the nginx pod requires egress access in some manner in order to successfully start its readiness endpoint?

I am using the following calico version
> kubectl exec -it -n kube-system calicoctl -- calicoctl version
Client Version:    v3.23.1
Git commit:        967e24543
Cluster Version:   v3.23.1
Cluster Type:      typha,kdd,k8s,operator,bgp,kubeadm

I installed calico using the tigera operator:
curl -v https://docs.projectcalico.org/archive/v3.19/manifests/tigera-operator.yaml > tigera-operator.yaml
kubectl apply -f tigera-operator.yaml

Then I applied the following custom resource
# This section includes base Calico installation configuration.
# For more information, see: https://projectcalico.docs.tigera.io/v3.23/reference/installation/api#operator.tigera.io/v1.Installati
on
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  # Configures Calico networking.
  calicoNetwork:
    nodeAddressAutodetectionV4:
      cidrs:
        - "<IP_ADDRESS>/24"
    # Note: The ipPools section cannot be modified post-install.
    ipPools:
    - blockSize: 26
      cidr: <IP_ADDRESS>/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()

Looking at the calico daemonset, it appears that the setting is already as you describe:
> k describe daemonset -n calico-system calico-node
Name:           calico-node
Selector:       k8s-app=calico-node
Node-Selector:  kubernetes.io/os=linux
Labels:         <none>
Annotations:    deprecated.daemonset.template.generation: 1
Desired Number of Nodes Scheduled: 3
Current Number of Nodes Scheduled: 3
Number of Nodes Scheduled with Up-to-date Pods: 3
Number of Nodes Scheduled with Available Pods: 3
Number of Nodes Misscheduled: 0
Pods Status:  3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:           k8s-app=calico-node
  Annotations:      hash.operator.tigera.io/cni-config: 3956e91e3004cfa053f9095050ed56f1cf12b904
                    hash.operator.tigera.io/tigera-ca-private: 1d32553cc9d339cd6761fda4c38aaadf18829ae5
  Service Account:  calico-node
  Init Containers:
   flexvol-driver:
    Image:        docker.io/calico/pod2daemon-flexvol:v3.23.1
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:
      /host/driver from flexvol-driver-host (rw)
   install-cni:
    Image:      docker.io/calico/cni:v3.23.1
    Port:       <none>
    Host Port:  <none>
    Command:
      /opt/cni/bin/install
    Environment:
      CNI_CONF_NAME:            10-calico.conflist
      SLEEP:                    false
      CNI_NET_DIR:              /etc/cni/net.d
      CNI_NETWORK_CONFIG:       <set to the key 'config' of config map 'cni-config'>  Optional: false
      KUBERNETES_SERVICE_HOST:  <IP_ADDRESS>
      KUBERNETES_SERVICE_PORT:  443
    Mounts:
      /host/etc/cni/net.d from cni-net-dir (rw)
      /host/opt/cni/bin from cni-bin-dir (rw)
  Containers:
   calico-node:
    Image:      docker.io/calico/node:v3.23.1
    Port:       <none>
    Host Port:  <none>
    Liveness:   http-get http://localhost:9099/liveness delay=0s timeout=10s period=10s #success=1 #failure=3
    Readiness:  exec [/bin/calico-node -bird-ready -felix-ready] delay=0s timeout=5s period=10s #success=1 #failure=3
    Environment:
      DATASTORE_TYPE:                     kubernetes
      WAIT_FOR_DATASTORE:                 true
      CLUSTER_TYPE:                       k8s,operator,bgp
      CALICO_DISABLE_FILE_LOGGING:        false
      FELIX_DEFAULTENDPOINTTOHOSTACTION:  ACCEPT
      FELIX_HEALTHENABLED:                true
      FELIX_HEALTHPORT:                   9099
      NODENAME:                            (v1:spec.nodeName)
      NAMESPACE:                           (v1:metadata.namespace)
      FELIX_TYPHAK8SNAMESPACE:            calico-system
      FELIX_TYPHAK8SSERVICENAME:          calico-typha
      FELIX_TYPHACAFILE:                  /etc/pki/tls/certs/tigera-ca-bundle.crt
      FELIX_TYPHACERTFILE:                /node-certs/tls.crt
      FELIX_TYPHAKEYFILE:                 /node-certs/tls.key
      FELIX_TYPHACN:                      typha-server
      CALICO_MANAGE_CNI:                  true
      CALICO_IPV4POOL_CIDR:               <IP_ADDRESS>/16
      CALICO_IPV4POOL_VXLAN:              CrossSubnet
      CALICO_IPV4POOL_BLOCK_SIZE:         26
      CALICO_IPV4POOL_NODE_SELECTOR:      all()
      CALICO_NETWORKING_BACKEND:          bird
      IP:                                 autodetect
      IP_AUTODETECTION_METHOD:            cidr=<IP_ADDRESS>/24
      IP6:                                none
      FELIX_IPV6SUPPORT:                  false
      KUBERNETES_SERVICE_HOST:            <IP_ADDRESS>
      KUBERNETES_SERVICE_PORT:            443
    Mounts:
      /etc/pki/tls/certs/ from tigera-ca-bundle (ro)
      /host/etc/cni/net.d from cni-net-dir (rw)
      /lib/modules from lib-modules (ro)
      /node-certs from node-certs (ro)
      /run/xtables.lock from xtables-lock (rw)
      /var/lib/calico from var-lib-calico (rw)
      /var/log/calico/cni from cni-log-dir (rw)
      /var/run/calico from var-run-calico (rw)
      /var/run/nodeagent from policysync (rw)
  Volumes:
   lib-modules:
    Type:          HostPath (bare host directory volume)
    Path:          /lib/modules
    HostPathType:
   xtables-lock:
    Type:          HostPath (bare host directory volume)
    Path:          /run/xtables.lock
    HostPathType:  FileOrCreate
   policysync:
    Type:          HostPath (bare host directory volume)
    Path:          /var/run/nodeagent
    HostPathType:  DirectoryOrCreate
   tigera-ca-bundle:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      tigera-ca-bundle
    Optional:  false
   node-certs:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  node-certs
    Optional:    false
   var-run-calico:
    Type:          HostPath (bare host directory volume)
    Path:          /var/run/calico
    HostPathType:
   var-lib-calico:
    Type:          HostPath (bare host directory volume)
    Path:          /var/lib/calico
    HostPathType:
   cni-bin-dir:
    Type:          HostPath (bare host directory volume)
    Path:          /opt/cni/bin
    HostPathType:
   cni-net-dir:
    Type:          HostPath (bare host directory volume)
    Path:          /etc/cni/net.d
    HostPathType:
   cni-log-dir:
    Type:          HostPath (bare host directory volume)
    Path:          /var/log/calico/cni
    HostPathType:
   flexvol-driver-host:
    Type:               HostPath (bare host directory volume)
    Path:               /usr/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds
    HostPathType:       DirectoryOrCreate
  Priority Class Name:  system-node-critical
Events:
  Type    Reason            Age   From                  Message
  ----    ------            ----  ----                  -------
  Normal  SuccessfulCreate  11m   daemonset-controller  Created pod: calico-node-8h5hj
  Normal  SuccessfulCreate  11m   daemonset-controller  Created pod: calico-node-4bwgx
  Normal  SuccessfulCreate  11m   daemonset-controller  Created pod: calico-node-kkdv2

If I apply the following network policy, then the readiness probe fails. This egress rule allows traffic to <IP_ADDRESS>/24 which is the network of the nodes.
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: default-allow-nothing
  namespace: nginx
spec:
  podSelector: {}
  policyTypes:
   # - Ingress
    - Egress
  egress:
    - to:
      - ipBlock:
          cidr: <IP_ADDRESS>/24

As far as the readiness probe is concerned, it is a standard HTTP check based on the container port 8081. Excerpt from one of the nginx pods above:
ports:
      - containerPort: 80
        hostPort: 80
        name: http
        protocol: TCP
      - containerPort: 443
        hostPort: 443
        name: https
        protocol: TCP
      - containerPort: 9113
        name: prometheus
        protocol: TCP
      - containerPort: 8081
        name: readiness-port
        protocol: TCP
      readinessProbe:
        failureThreshold: 3
        httpGet:
          path: /nginx-ready
          port: readiness-port
          scheme: HTTP
        periodSeconds: 1
        successThreshold: 1
        timeoutSeconds: 1

It is using containerPort 8081 which is not a host port like 80 and 443. Or perhaps the implementation of the 8081 healthcheck uses the host port 80 or 443.

I have done some more experimentation. I think I have figured it out now.
The following post provided a hint: https://github.com/kubernetes/ingress-nginx/issues/5058
Apparently, when nginx starts up it tries to connect to the API server. Therefore, I had to open port 6443 to the API server which listens on an IP address from <IP_ADDRESS>/24.
The following network policy then works:
`kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: default-allow-nothing
namespace: nginx
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress

egress:
- to:
- ipBlock:
cidr: <IP_ADDRESS>/24
ports:
- port: 6443``

I think the issue can be closed. The only annoying thing is that network policies don't really allow the use case of allowing egress to the API server without hardcoding IPs in the egress rule, since the api server is not listening on a cluster IP. Would be nice if this could be fixed somehow in standardization.

The only annoying thing is that network policies don't really allow the use case of allowing egress to the API server without hardcoding IPs in the egress rule, since the api server is not listening on a cluster IP

@ErikEngerd have you looked at using Services in egress rules?
You can use a Calico policy as described here: https://projectcalico.docs.tigera.io/security/service-policy
e.g.
  egress:
    - action: Allow
      destination:
        services:
          name: kubernetes
          namespace: default

I am aware that Calico provides much more advanced network policies than the standard but I am a bit reluctant to become dependant on Calico-specific functionaliry. Also, some services such as Gke autopilot do not allow to choose a specific network provider (even though they appear to use calico under the hood). l


The debugger options cannot be used for this server - Business Central

I was developing a project on VS Code for a Sandbox environment and it was working fine, and I could publish the solution.
However, today I tried to republish the solution again, and I got the following error: "The debugger options cannot be used for this server.".
I already restarted VC Code, and clear the Cache but it didn't work.  I would appreciate if you could help me in finding a solution for this issue.
Thank you !

I'm having the same issue, yesterday evening (Around 9pm-10pm GMT), my sandbox environment didn't react to debugging, it couldn't hit my debug breakpoints. It was working few minutes before that, I was in the middle of some development.
Since then I tried restarting and reinstalling VSCode, Also dropped all my sandboxes and created them again, I tries UK and US Databases. I'm getting the same error:

here is my app.json

Hi, I have same issue since 18h GMT.
AL v5.0.312966
Versión: ES Business Central 16.4 (Plataforma 16.0.14648.15420 + Aplicación 16.4.14693.15090)
Publish without debugging works fine.

It is clearly related to the AL language version 5.0.312966.
To work around, downgrade to 5.0.311667.

We are investigating this issue. We'll update the thread once we know more.

Same here - the only clue I had is that someone posted on a forum somewhere that the issue was due to the fact the AL tools version didn't match the version on the server.
Still took most of the day of tearing my hair out/trying on a different machine before I resolved!

A new version of the extension was released that solved this issue. Thank you very much for your patience and for raising the issue here!

Fantastic, it is now solved, thank you!


reformat all Java classes for consistency

Reading through the code base, there are a couple of different coding conventions being used. In an attempt to increase consistency, here is a patch that brings VileBot closer to following a coding standard as issued by our Google and Oracle overlords.

For historical perspective, I believe vilebot was originally maven code
style[1] (similar to the underlying Keratin-irc framework it utilizes).
Regardless of which style we go with, it would be great to have that
officially sanctioned in the README somewhere.  Lets pick one convention
and stick to it.
[1] - http://maven.apache.org/developers/maven-eclipse-codestyle.xml
aptmac<EMAIL_ADDRESS>writes:

Reading through the code base, there are a couple of different coding conventions being used. In an attempt to increase
consistency, here is a patch that brings VileBot closer to following a coding standard as issued by our Google and Oracle overlords.

You can view, comment on, or merge this pull request online at:
https://github.com/oldterns/VileBot/pull/36
Commit Summary

reformat all Java classes for consistency

File Changes

M vilebot/src/com/oldterns/vilebot/CharactersThatBreakEclipse.java (3)
M vilebot/src/com/oldterns/vilebot/Vilebot.java (91)
M vilebot/src/com/oldterns/vilebot/db/ExcuseDB.java (32)
M vilebot/src/com/oldterns/vilebot/db/GroupDB.java (95)
M vilebot/src/com/oldterns/vilebot/db/KarmaDB.java (154)
M vilebot/src/com/oldterns/vilebot/db/LastSeenDB.java (32)
M vilebot/src/com/oldterns/vilebot/db/PasswordDB.java (93)
M vilebot/src/com/oldterns/vilebot/db/QuoteFactDB.java (88)
M vilebot/src/com/oldterns/vilebot/db/RedisDB.java (3)
M vilebot/src/com/oldterns/vilebot/db/UserlistDB.java (71)
M vilebot/src/com/oldterns/vilebot/handlers/admin/AdminManagement.java (53)
M vilebot/src/com/oldterns/vilebot/handlers/admin/AdminPing.java (22)
M vilebot/src/com/oldterns/vilebot/handlers/admin/Auth.java (34)
M vilebot/src/com/oldterns/vilebot/handlers/admin/GetLog.java (2)
M vilebot/src/com/oldterns/vilebot/handlers/admin/Help.java (42)
M vilebot/src/com/oldterns/vilebot/handlers/admin/NickChange.java (26)
M vilebot/src/com/oldterns/vilebot/handlers/admin/Ops.java (74)
M vilebot/src/com/oldterns/vilebot/handlers/admin/Quit.java (16)
M vilebot/src/com/oldterns/vilebot/handlers/user/AnswerQuestion.java (15)
M vilebot/src/com/oldterns/vilebot/handlers/user/ChatLogger.java (2)
M vilebot/src/com/oldterns/vilebot/handlers/user/Decide.java (67)
M vilebot/src/com/oldterns/vilebot/handlers/user/Excuses.java (24)
M vilebot/src/com/oldterns/vilebot/handlers/user/GetInfoOn.java (15)
M vilebot/src/com/oldterns/vilebot/handlers/user/Help.java (114)
M vilebot/src/com/oldterns/vilebot/handlers/user/ImageToAscii.java (13)
M vilebot/src/com/oldterns/vilebot/handlers/user/Jaziz.java (10)
M vilebot/src/com/oldterns/vilebot/handlers/user/Jokes.java (134)
M vilebot/src/com/oldterns/vilebot/handlers/user/Karma.java (280)
M vilebot/src/com/oldterns/vilebot/handlers/user/KarmaRoll.java (238)
M vilebot/src/com/oldterns/vilebot/handlers/user/LastMessageSed.java (71)
M vilebot/src/com/oldterns/vilebot/handlers/user/LastSeen.java (72)
M vilebot/src/com/oldterns/vilebot/handlers/user/Markov.java (29)
M vilebot/src/com/oldterns/vilebot/handlers/user/Ops.java (42)
M vilebot/src/com/oldterns/vilebot/handlers/user/QuotesAndFacts.java (259)
M vilebot/src/com/oldterns/vilebot/handlers/user/Trivia.java (21)
M vilebot/src/com/oldterns/vilebot/handlers/user/Ttc.java (9)
M vilebot/src/com/oldterns/vilebot/handlers/user/TwitterCorrection.java (23)
M vilebot/src/com/oldterns/vilebot/handlers/user/UrlTitleAnnouncer.java (35)
M vilebot/src/com/oldterns/vilebot/handlers/user/UrlTweetAnnouncer.java (76)
M vilebot/src/com/oldterns/vilebot/handlers/user/UserPing.java (11)
M vilebot/src/com/oldterns/vilebot/handlers/user/Userlists.java (176)
M vilebot/src/com/oldterns/vilebot/handlers/user/Weather.java (320)
M vilebot/src/com/oldterns/vilebot/util/ASCII.java (2)
M vilebot/src/com/oldterns/vilebot/util/BaseNick.java (37)
M vilebot/src/com/oldterns/vilebot/util/ConfMap.java (95)
M vilebot/src/com/oldterns/vilebot/util/HMAC.java (51)
M vilebot/src/com/oldterns/vilebot/util/Ignore.java (19)
M vilebot/src/com/oldterns/vilebot/util/Sessions.java (70)

Patch Links:

https://github.com/oldterns/VileBot/pull/36.patch
https://github.com/oldterns/VileBot/pull/36.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

closing.


updated broken links to github links #4353

corrected /build/yamls/antrea.yml to https://github.com/antrea-io/antrea/blob/main/build/yamls/antrea.yml
https://github.com/antrea-io/antrea/blob/main/build/yamls/antrea-ipsec.yml

fixing issue #4353

@samascience thanks for the PR. Please sign the commit when you update it, following https://github.com/antrea-io/antrea/blob/main/CONTRIBUTING.md#sign-off-your-work

@samascience thanks for the PR. Please sign the commit when you update it, following https://github.com/antrea-io/antrea/blob/main/CONTRIBUTING.md#sign-off-your-work

do we need to cancel this pr and raise a new PR ?

Signed-off-by: Srujan Sama<EMAIL_ADDRESS>

@samascience thanks for the PR. Please sign the commit when you update it, following https://github.com/antrea-io/antrea/blob/main/CONTRIBUTING.md#sign-off-your-work

do we need to cancel this pr and raise a new PR ?

No, you could just use git commit -s --amend to sign the existing commit. The link I shared has more details.
Note that the current one you inserted manually is not correctly formatted.


chore(compiler): use salsa invoke for ease of navigating

Using salsa::invoke to indicate where the function comes from in our hir_db. Makes it soooo much easier to click through to the function definition and just to read where the function is.

that's a great idea, everything gets a salsa::invoke!


Upgrades to Babel v6.

Worth nothing that this attempts to mirror previous functionality precisely. The es2015 preset might not be required here.

Hey @mudetroit, https://github.com/coma/svg-reactify/issues/5#issuecomment-189937525
Sorry for the delay, I've been pretty busy lately.


haskellPackages.net-mqtt: remove from broken packages

Motivation for this change
haskellPackages.net-mqtt had a release that bumped dependency version bounds (<IP_ADDRESS>) and is no longer broken.
I have built net-mqtt using haskell.lib.unmarkBroken (Is this sufficient or should I regenerate hackage-packages.nix? If yes, how?).
I have not tested net-mqtt-lens and net-mqtt-rpc, I assume they were only broken because of their direct dependency on net-mqtt.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Could you rebase this in on the haskell-updates branch?


Added the plotly 3.0 Compatibility to OrbitPlotter2D

Tested. It Works! We may need to bump the required plotly version in setup.py to get the CI build correctly.

Addresses #397

Is there something which I am missing? Coz you can see the plots in Jupyter Lab and I can't :/

Do I need to install the plotly extension like this: jupyter labextension install @jupyterlab/plotly-extension ? But this essentially requires user to install it too and it has prerequisites such as nodejs  and npm.

Installing the extension worked for me. But probably we should mention this somewhere in the docs. Or install these dependencies automatically while shipping poliastro?

I think there is a similar issue in documentation and there is some missing js extension which needs to be installed

The plots will now be visible in the docs!

But probably we should mention this somewhere in the docs.

Totally! At least, refer the people to the proper link. Related: #338

But this essentially requires user to install it too and it has prerequisites such as nodejs and npm.

Yes... I currently use conda for that, so maybe I should update the conda packages, and for pip users we should add more info to the docs. https://github.com/conda-forge/poliastro-feedstock/issues/17

Or install these dependencies automatically while shipping poliastro?

I don't know how to do that, for the moment let's focus on explaining the manual steps.

So, specifically where should I add the note?

I see that we're having problems displaying the output:
https://shreyas-poliastro.readthedocs.io/en/rerun-notebooks/examples/Plotting in 3D.html

Data type cannot be displayed: application/vnd.plotly.v1+json

I found a comment on an unrelated project that might be interesting:
https://github.com/fsprojects/IfSharp/issues/142#issuecomment-327116272
Could you please try again with Plotly 3.0 and the init_notebook_mode with connected both True and False? Bear in mind that you cannot refer to specific builds in Read the Docs, so take screenshots.

Okay! On it!

Meanwhile I found this! I don't know at what level it is relatable, but I also installed the same extension and problem occured.
<EMAIL_ADDRESS>

init_notebook_mode(connected=True) does the job for us!

Does init_notebook_mode(connected=False) work also?

Yes, that works too!

This is not done :confused:

I mean it's so inconsistent. Sometimes they load, sometimes they don't.
Refresh the same page multiple times and you will see the plots appearing and disappearing:
https://shreyas-poliastro.readthedocs.io/en/rerun-notebooks/examples/Plotting in 3D.html

One more thing. It's just my hypothesis. Works well on FIrefox, Not on chrome? Some browser extension is needed?

Works well on FIrefox, Not on chrome? Some browser extension is needed?

I can confirm... Perhaps there's something wrong with this approach? We'll have to investigate more.

There's an intermittent error "Uncaught TypeError: Plotly.newPlot is not a function". I suspect it has to do with how the default Read the Docs HTML theme loads some asynchronous JavaScript stuff...

Just to discard the low hanging fruit, could you try if init_notebook_mode(connected=False) produces fewer errors?

Another idea: can you add another JS library to the first cell?
https://github.com/plotly/plotly.py/issues/1033#issuecomment-402894617

No changes in the state by changing Connected to False.
I will try to add another script.

LOL!
Adding that library removed every other plot that was being plotted a while ago!
https://shreyas-poliastro.readthedocs.io/en/rerun-notebooks/examples/Plotting in 3D.html

Though now I can see this: ReferenceError: require is not defined[Learn More]

I tried adding some other scripts as well. It doesn't work. I will investigate further.

BTW @Juanlu001  I saw somewhere that changing the theme would do the job. What exactly will the theme change?

Oh! We won't change the theme. Sorry

Well, at least let's see if that fixes the issue, and then we can decide what to do.

This needs a rebase on current master.

I took this PR and did some modifications (will submit them soon). It's sad that Read the Docs can't display Plotly plots correctly, but we can't forget that the important issue is to attain Plotly 3.0 compatibility. The change in the tuple arithmetic does that, and I also added require.js to all notebooks with Plotly plots so at least they show properly in Firefox (not in Chrome), so let's leave like that. Depending on how much time does RTD need to fix these issues, we might need to change our workflow and publish Sphinx artifacts ourselves.

Superseded by https://github.com/poliastro/poliastro/pull/399.

Great!😄


[BUG] k3d v3.0.0-rc.4 is incompatible with go modules

Tried to install k3d using go but it does not follow go modules guidelines for versions beyond v1 https://blog.golang.org/v2-go-modules.
I expected it to get installed like previous version or like kind (https://kind.sigs.k8s.io/docs/user/quick-start/#installation):
$ GO111MODULE="on" go get<EMAIL_ADDRESS>$ $GOPATH/bin/k3d
NAME:
   k3d - Run k3s in Docker!

USAGE:
   k3d [global options] command [command options] [arguments...]

VERSION:
   dev

Instead:
$ GO111MODULE="on" go get<EMAIL_ADDRESS>go get<EMAIL_ADDRESS><EMAIL_ADDRESS>invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v3

Which OS & Architecture?

MacOS / amd64

Which version of k3d?
3.0.0-rc.4
Which version of docker?

output of docker version

Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b
 Built:             Wed Mar 11 01:21:11 2020
 OS/Arch:           darwin/amd64
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          19.03.8
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       afacb8b
  Built:            Wed Mar 11 01:29:16 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Hi @salekseev , thanks for opening this issue!
You're totally right there.. I was hoping to avoid the versioning fluff here... apparently I can't :confounded:
I just pushed the changes to the module and you can now do e.g. go get github.com/rancher/k3d/v3@master :+1:

Great. Thanks a ton. For now this works to keep/pin version information:
GO111MODULE="on" go get -ldflags "-w -s -X github.com/rancher/k3d/v3/version.Version=76d90478f5cb4f125c8e0a6b33092b3b047468ce -X github.com/rancher/k3d/v3/version.K3sVersion=v1.18.4-k3s1" github.com/rancher/k3d/v3@76d90478f5cb4f125c8e0a6b33092b3b047468ce


How do we control the cursor display?

I don't see anything in the docs about how to control the cursor. I'd be happy to submit documentation PR, except I have no clue how to control the cursor.

Ok, looks like we need the terminal field of a tui::Frame to be public if we're going to follow the
t.draw(|mut f| { ... } structure because now you can't access the terminal inside the closure with f.terminal since the terminal field is private.
Thoughts?

@fdehau Is it okay to add Frame::show_cursor() and Frame::hide_cursor()? These should call the same methods on the underlying Terminal. I believe this won't interfere with the rest of the rendering. The reason I'm asking for this is because I want to implement an input field, and I currently can't display a cursor from inside the drawing function.
I'll submit a PR if you're okay with the idea.

Sorry, I commented too hastily. Turns out for an input field, I also want to force tui-rs to put the cursor at the end of the input field. This happens automatically in some cases, but I believe I can't count on that in general. Consider my previous offer withdrawn.

@Minoru Isn't the behavior shown in the user_input example what you want ?

It is, @fdehau, it's just that it's inconvenient to do right now: instead of doing it at the time of rendering, I have to store the desired position and act on it later, after all the drawing is done. I think that's exactly what you meant by "ergonomics … is not ideal", I think.
Actually, can't Frame have a field like Option<(u16, u16)>, which is the cursor's desired position after drawing the frame? None means the cursor is hidden, Some with a position means the cursor is shown and is positioned at the given cell.

@Minoru That's a very good compromise. I would gladly accept a PR for that.

Cool! Working on it.


TPU cannot be ran in Colab anymore

System Info
Current accelerate pytorch example in readme doesnt work.

Information

[X] The official example scripts
[ ] My own modified scripts

Tasks

[X] One of the scripts in the examples/ folder of Accelerate or an officially supported no_trainer script in the examples folder of the transformers repo (such as run_no_trainer_glue.py)
[ ] My own task or dataset (give details below)

Reproduction
Go to https://github.com/huggingface/accelerate#launching-your-training-from-a-notebook
Run a notebook
Xla version wont match.
Upon updating first cell to:
  !pip install datasets transformers
  !pip install cloud-tpu-client==0.10 torch==1.13.0 https://storage.googleapis.com/tpu-pytorch/wheels/colab/torch_xla-1.13-cp38-cp38-linux_x86_64.whl
  !pip install git+https://github.com/huggingface/accelerate

Following error is generated:
Exception in device=TPU:2: Cannot replicate if number of devices (1) is different from 8  File "/usr/local/lib/python3.8/dist-packages/torch_xla/distributed/xla_multiprocessing.py", line 331, in _mp_start_fn

It seems like an error regarding distirbution of data and models across different tpu cores, running the examples from terminal doesnt solve the issue, at least for me for current colab version, although this statement should be verified, as I might have done something wrong.
Unfortunatelly, for python 3.8, which is default python for colab only this wheel is avaliable for pytorch_xla as per link.
Expected behavior
Pytorch xla version should be updated, i.e using following command, although unlike command below which is only exemplary, it shouldn't throw an error above.
!pip install cloud-tpu-client==0.10 torch==1.13.0 https://storage.googleapis.com/tpu-pytorch/wheels/colab/torch_xla-1.13-cp38-cp38-linux_x86_64.whl

Thanks for the report! Would you like to open a PR with your suggested change?

This actually should probably be changed to utilize install_xla instead, I'll make a PR today for this. source code

Thank you for you suggestion. Unfortunately neither using install_xla() nor updating a wheel inside a script do help. I will do my best to look into this issue, hovewer I am not sure how my time avaliability will look like.

So XLA is a whole on Colab is broken essentially, noted. I'll look into this asap.

@arkadiusz-czerwinski according to the torch team, try doing the following:
Could reproduce this, thanks @arkadiusz-czerwinski

Wierdly enough, this copy of pytorch/xla example seems to be working after minor tweak of installing and uninstalling torchvision, so maybe some changes in implementation of common functions (pytorch/xla) was the reason. Unfortunately it seems like your previous message has no steps to reproduce, I assume some kind of common pasting error.

Yeah apologies that wasn't a message that was supposed to be sent :)

Thanks @arkadiusz-czerwinski, this is indeed a critical issue that seems to stem on a sneaky change on XLA's side and I've reported it to their team. Hopefully we can have a swift resolution with their help. For now you can still run your code through the CLI in Colab, I've confirmed that this still works.

Update: it's an issue on our side somewhere between the latest release and now. In the interim @arkadiusz-czerwinski you can install accelerate with just pip install accelerate, there's nothing TPU specific on main at this time so it's okay to do this!

Great thanks for the fix. Do you have a working example after a fix in a notebook?
Simple NLP Example at this minute using
"cloud-tpu-client==0.10 torch==1.13.0 https://storage.googleapis.com/tpu-pytorch/wheels/colab/torch_xla-1.13-cp38-cp38-linux_x86_64.whl"
pip install command seems to be generating same mistake, as seen in this colab. It is very likely I am doing something wrong, or that package wasnt updated yet, so I am deeply sorry if it is a case.

Af of now, on python 3.8, which seems to be only python installed on colab it fails. Should I revert back to python 3.7?

Can you share the whole setup/notebook you are running with me?
And can you try installing with:
! pip install datasets transformers
! pip install cloud-tpu-client==0.10 torch==1.9.0 https://storage.googleapis.com/tpu-pytorch/wheels/torch_xla-1.9-cp37-cp37m-linux_x86_64.whl
! pip install git+https://github.com/huggingface/accelerate

As this worked for me, I will try with torch 1.13.0 here shortly

I see that it pulled the right commit, let me try with torch 1.13

Sure, link is here: https://colab.research.google.com/drive/1UGera0AH0hkQwCuTvopN5Phmb0grznhS?usp=sharing
As for code above, colab is running, at least in my case runs with python 3.8, so wheel for 3.7 wouldnt work.

@arkadiusz-czerwinski I was able to get it working on the following install setup, and I will put a PR in to change the notebooks to show this as well:
! pip install datasets transformers evaluate
! pip install cloud-tpu-client==0.10 torch==1.13.0
! pip install https://storage.googleapis.com/tpu-pytorch/wheels/colab/torch_xla-1.13-cp38-cp38-linux_x86_64.whl
! pip install git+https://github.com/huggingface/accelerate

(The same install you had at the start of this issue)

Interesting, it works not on high-ram (what I was testing on). Let me look at high-ram version now

@arkadiusz-czerwinski it ran just fine for me on a high-ram instance. See this notebook: https://gist.github.com/muellerzr/8a57342e35db82b2691e7c7e883de705

So apparently my runtime environment wasn't properly deleted, but now it is working. Sorry for causing trouble. I am not sure if you don't me to do so, but I certainly can test changes across different notebooks and then create PR changing it.

Working in colab can be frustrating with that, believe me :) Definitely please feel free to debug and open a PR! :) Happy to help if you still face issues there too

I also found the error that was causing a little bit of the errors. when executing debug line:
for batch in train_dataloader:
    print({k: v.shape for k, v in batch.items()})
    outputs = model(**batch)
    break

Despite not creating an accelerator instance before, pytorch/xla seems to be doing some hidden initialization, so the moment model is called before training_function it is assigned a device, and during reassigning in the loop, it creates an error in the config. I will also add it as a comment to a notebook if no one will mind. Maybe it is obvious, but I think an additional remark may help some people.

Yes, a note on that would be great!


Add option to generate a "collage of thumbnails" from an online video (without downloading the full video)

Checklist

[X] I'm reporting a feature request
[X] I've verified that I'm running yt-dlp version 2021.10.22. (update instructions)
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Description
I am wondering whether it might be possible (from a technical point of view) to add the feature of generating a collage of thumbnails (like in this movie thumbnailer software) from an online video (e.g., for the youtube service) without downloading the full video.
This would be a great way to save bandwidth; this kind of collages (some people have called them video contact sheets) help a lot as a preview feature before deciding to download the full video.

Are you asking to download storyboards (the thumbnails youtube shows on the timeline), or to literally fetch thumbnails from the video?
If the former, it is a valid feature request since youtube provides this information
For the latter, it may be possible with ffmpeg, but is out of scope for this project

Both options seem interesting to me. I guess the first option seems easier to implement, i.e., adding an option to yt-dlp to generate a storyboard from the "youtube thumbnails shown in the timeline".
As I said before this can be used as a fast way to preview whether it is worth to download the video.

Related https://github.com/ytdl-org/youtube-dl/pull/14951

By the way, is there any way to get the timestamp (minutes, seconds, ...) of each one of the thumbnails given in the timeline (of a youtube video)? I have looked at the json info that yt-dlp gives and this information is missing. This information would be nice to keep it (in case youtube provides it).

I have looked at the json info that yt-dlp gives and this information is missing.

What do u mean? story boards isnt even implemented yet 😕

Let me be more precise. If we run (in a terminal)
url="https://www.youtube.com/watch?v=n1wePk9ZGs0"
yt-dlp -j --skip-download "${url}" | jq . '[.thumbnails]'

we get the list of all (url) thumbnails of this particular video. In particular, one of the thumbnails in the list is

https://i.ytimg.com/vi_webp/n1wePk9ZGs0/sd3.webp

but I do not see any info in the json saying to which minute and second (of the video) corresponds such thumbnail. I find this information really useful to be written down in the final storyboard (which I already know it is not yet implemented).

Related ytdl-org/youtube-dl#14951

By the way, I don't know how much does this fork deviate from the upstream youtube-dl code, but feel free to cherry-pick my PR over there if it works in here.

@MarcAbonce Thanks, but the youtube code in particular has diverged quite a bit. Also, we have a framework to list storyboards as a format, so I am planning to implement this differently than your PR


New extract_cellset_axes_raw_async, extract_cellset_cell_async and extract_cellset_axes_cardinality

New extract_cellset_axes_raw_async and extract_cellset_cells_raw_async were added to extract raw data from TM1 asynchronously. Demonstrate efficiency in retrieving large datasets with > 1M cells and can be further used to create asynchronous execute_mdx.
extract_cellset_axes_cardinality was also added to retrieve cellset cardinality

Hi @vmitsenko,
Nice work. I will merge this and add the combined execute_mdx_async later.


Curl command automation and validation

Most users use Curl command .
We can identify issue like this.
https://github.com/openbmc/phosphor-rest-server/issues/13

IT may be unit test? but need to evaluate again.


Cannot Save the Provider Definition Logic Definition record.

Following the steps in the section, "Add provider definition logic definition to the provider definition".  Cannot save the record due to the following error message. Also attached is the error log file.
ErrorDetails.txt

Thanks for contacting us. Unfortunately, we're unable to handle Support requests for the product here. To contact Support, consider one of the options described here: Support contact options. In particular, you might want to go to the Dynamics 365 community page to get help with your questions from the Dynamics community.


GN-4937: update snippet-preview component to be collapsible

Overview
This PR updates the snippet-preview component of the snippet-plugin to contain a collapsible (by default not shown) preview of the snippet.
Specifically, this PR includes the following:

snippet-preview component: move to .gts file format
snippet-preview component: update css
snippet-preview component: implement collapsible snippet preview

connected issues and PRs:
GN-4937
How to test/reproduce

Start the dummy app
Insert a snippet placeholder with some snippet-lists configured
Open the 'Insert snippet' modal
Notice that for each of the snippets in the list, you can preview the snippet
If a snippet does not have any content, an italic message is shown (should we do this with a warning?)

Challenges/uncertainties

Should we show a warning instead of a simple message when a snippet is empty?
I did not opt for shortening the snippet preview, as this did not seem necessary. Correct me if I'm wrong.

Checks PR readiness

[x] UI: works on smaller screen sizes
[x] UI: feedback for any loading/error states
[x] Check if dummy app is correctly updated
[x] Check cancel/go-back flows
[x] changelog
[x] npm lint
[x] no new deprecations

 Works fine, but I think we need some border bottom in there

Below the header you mean?


Need a bin() equivalent of hex(), oct() and dec()

It's important to be able to print the bit representation of values in memory; at the very least for integer-typed values.
The library should therefore have a strf::bin(), and int_format_fn should have a bin() member.
PS - It's true that this doesn't exist in the standard library, but it's only for historical reasons (see also this discussion).

Implemented on branch develop.

I don't see bin() in the listing of formatting functions here:
https://robhz786.github.io/strf/doc/quick_reference.html#format_functions

That's because the docs refers to the master branch.
I didn't merge develop into master yet.

Merge to master now. And updated docs:
https://robhz786.github.io/strf/doc/quick_reference.html#_integers

Merged to master and updated docs now.

Updated.


Updated dependencies for 1.17.1

Updated to latest fabric api that supports loader < 0.12.x (Some mods do not support >=0.12.x, so this does not break compatibility).

Okay. Please fix conflict

Could you create a 1.17.1 branch (before the 1.18 pr)? This PR is only needed for that MC version.

I can't do that exactly, but I created a 1.17 branch


make date naive

Hey I think the only change we need to make here is to make sure the mtime comparison is against a naive datetime. It's up to the user to make sure that all inputs are either aware or naive.

I agree, this was short term hack; I think I had trouble getting all the outputs/inputs of mmhistorytools to agree as well; may take a few passes to get zoning all figured out.

I'm taken your changes manually into #24. Let me know what you think.


does mset supports options like set operation does?

How to set key expiry while using mset command?
I want to use mset like this, similar to set command.
redisClient.mset({'key1': 'value1'}, 'EX', 10);

Will mset provides the option to set expiry on multiple keys? If not, can anybody let me know the right way to use it?

@jagadeeshmeesala
No. Check out the closed section of the issues for the solution. Particularly this one seems accepted

Calling set multiple times with https://github.com/luin/ioredis#autopipelining is another option, if the only concern is getting a batch of requests finished quickly and not atomicity


Clarification for the parameters of pluralize()

This would have been helpful a few hours ago! :)

Coverage remained the same at 100.0% when pulling 1bcea99e15ebb32cba456c14204149d899b371fd on gandazgul:patch-1 into 298eb67f19369dd30207c0817eda4f0045c6c1a7 on blakeembrey:master.


Add Environment Wrapper Tests

It would be nice to add a test for the environment wrappers we have. Maybe, using the dummy envs, we could do a couple of iterations and check that the obs/action matches those defined by the observation/action space.
@belerico, @DavideTr8: What do you think?

LGTM!

Unittests are never enough

We can also test the environments without creating the expensive game underneath them by mocking the game creation and testing everything else


emit an error if there is no data to populate a Set Request with

closes #75

@karimra addressed, thank you


Event registration as a transaction

WIP PR to deep-insert the candidate with an event registration. This works fine for qualifications/past teaching positions, but for some reason on events it gives an error:
FaultException`1: The required contact reference is missing. Please provide a valid contact reference

It may be something to do with events being a built-in Dynamics type. I'm parking this for now as it's more of a nice-to-have and covers an edge-case condition (where the candidate insert succeeds but the event registration fails, retrying the job will create a duplicate candidate).
We can pick it back up again after the live beta.

Due to limitations/weirdness in the CRM this can't be done.


integration testing is absent

Let's add integration testing phase to make sure our JAR actually works with an external code base. Let's use maven-invoker-plugin.

Oops! There is no order for job gh:yegor256/jpeek#13.

Oops! Job gh:yegor256/jpeek#13 is not in scope.


UI Improvements for Manage Groups/People

I suggested a number of UI improvements in my review of #613
I discussed them with @tdonohue on slack and while they weren't critical issues and there wasn't time to fix them right away, we agreed to move them to this ticket so they could be handled as soon as there was time.
Those suggested improvements were: (original comment)

Please add a trail:

Home > Manage (Groups|People)
Home > Manage (Groups|People) > New (Group|Person)
Home > Manage (Groups|People) > Edit ${name}

I think it would be clearer if the EPeople and Groups sections on the edit group page were separate tabs.

I'd also rename "EPeople" to "Members" and "Groups" to "Subgroups"
And put the number of members/subgroups next to that tab name, that way you can see the number without having to go to that tab.

It would also be nice if a search query was part of the URL, that way if you click on a result, and then go back, you don't have to re-enter your query

This can work on the Manage Groups page, not currently on the edit group page because there are multiple search boxes
But if the edit group gets tabs, and they get URLs of their own, then there's only one search box per page anymore.

I'd add css widths the columns of the results tables, so they're consistent across all of them.
I'd remove the border-bottom from the add EPeople and add Subgroup headers the two borders underneath on another looks weird and the "browse all" button doesn't help matters.
The cancel and submit buttons on the edit group form and the border above them aren't algined with the rest of the page. The same happens on the edit eperson page.
The edit EPerson page doesn't have its own URL. Meaning if you click away from it and go back, you'll end up on the list page again

An additional improvement:

Per PR#632 and #643 , when an Administrator starts from the Edit Community / Collection interface, and clicks on a role-based Group to edit, they jump over to /admin/access-control/groups/[uuid].  At that point, there's not way to return to the Edit Community/Collection interface.

This might be resolved either via a smarter "trail" (which knows whether you started Group editing from Manage Groups or from a Collection/Community Edit page). However, that may be more complex.
Or, it could simply be a link/button from a role-based group back to editing of the Community/Collection it is associated with.  A role-based group can be determined based on whether the Group has a related DSpace Object

From https://github.com/DSpace/dspace-angular/pull/653#issuecomment-627950764, the Manage People interface should also include a button to "Impersonate an EPerson" next to the Edit/Delete buttons.

Related to:

It would also be nice if a search query was part of the URL, that way if you click on a result, and then go back, you don't have to re-enter your query

It would be nice if the page number were maintained so that when you edit a group on page 3 of a group search, then select "Back", you're taken back to page 3 rather than to page 1.

Also, the Groups search results table should include a column that includes information about the community or collection that is managed by each auto-generated group.
Browsing through pages of groups that all have names like COLLECTION_a1fea3fc-b0d8-401b-82cb-ca15b59c5c12_ADMIN and no other information to indicate what that might mean makes it really hard to track down which group you need to edit to give someone the permissions they need.


Laravel 5.8 support

Could you please make package compatible with laravel 5.8.

Hi @saimonas7, I just released 0.17.0 which includes Laravel 5.8 support.


chore: filter out polkadot from chain selector

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[ ] Feature
[x] Refactoring

Context

[x] Closes #6494
[x] remove warning on explore/items

Did your issue had any of the "$" label on it?

[x] My DOT address: Payout

cc @preschian check the comment above

which would state if its visible for user

In which line do we put this? and how we differentiate based on env. currently, we have two visible categories

['dot'] -> all env
['dot', 'movr', 'glmr', 'snek'] -> beta and production

@JustLuuuu will be now happy

Let's proceed with this quickie

Hello guys! Just noticed that explorerVisible got removed here but there are still some files referencing it.
Please advice what to do with https://github.com/kodadot/nft-gallery/issues/6769
So I can procede with a PR
Thank you so much @vikiival @yangwao @preschian

hi @stephenjason89, let's revert it back on permission.config

@preschian noted on this. Will do a PR now


For doc documents, skiP_infer_table_types=["doc"] does not take effect

Set skiP_infer_table_types to ["doc"], but the doc document will also default to extracting tables and images

The DOC and DOCX format partitioners extract tables unconditionally, i.e. a table in the document produces a Table element in the output stream.
These formats (and many others) are sensitive to the infer_table_structure argument which determines whether the structure of the table is also written as HTML to .metadata.text_as_html for those Table elements.
DOC and DOCX can parse tables without additional performance overhead because the table is explicitly stated in the document file.
Inference file formats like TIFF, PNG, and PDF (when the document is scanned/rasterized) require use of more CPU-intensive models to "infer" tables from the pixels of the image, work out row, column, and cell boundaries, etc. Giving users a choice on whether to spend performance/latency on this job is the purpose of the skip_infer_table_types parameter and is why it does not apply to DOC.
Closing as assumed resolved.


BUG: Counting with url attribute doesn't work

I want to use the clap buttons to vote for different options on the same page. Therefore, I would use the url parameter as a unique id.
<applause-button url="https://example.com/test/option-c4ac1f14-0079-4ceb-8b5b-a4517b480180" />
<applause-button url="https://example.com/test/option-574fdad7-b12d-4fce-b92c-ba421edccfff" />

This leads to miscounts all the time, it seems like the url parameter is ignored both in post and get responses.
Demo

I've double-checked, and as far as I can tell this functionality still works fine in the latest release. Take a look at this example:
https://codepen.io/ColinEberhardt/pen/xMjgVr

@ColinEberhardt Is it possible that my votes are blocked?
The first time I voted a single vote was counted. But now with different browsers and a different IP it never counts the vote.
Demo 2

One thing to bear in mind when testing the applause button is that there is a 2 second pause between the user clicking the button, and the HTTP request that records the updated clap count. This 'debounce' is used to collect 'multi claps' into a single request.
From your video, I can see that you are clicking and refreshing immediately.


Cloning a namespaced registry fails with an error

Version: v2.4-head
What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):

Create a project and namespaces ns1, ns2
Add a registry "testreg" providing credentials and choosing a registry(dockerhun/quay etc) available for a specific namespace
Clone the registry "testreg", provide a different name and other credentials.
Hit "Save"

Results:
Registry creation fails with the error "No namespace specified"

Namespace dropdown is missing in the clone view.
Note: As seen above, the scope changes to "Available to all namespaces in this project"
Before hitting "Save" the scope is "Available to a single namespace: newns"
Environment information

Installation option (single install/HA): Single node

@soumyalj are you still able to reproduce this? If so, do you have any more specific repro steps because it appears to be working for me.

Namespace dropdown is missing in the clone view.
This has been true for two years. This change disables the selection for clones. https://github.com/rancher/ui/commit/8625fe3528ebe0f00af8eaa15e2cd2a5f7f6126f

@codyrancher : I am still able to reproduce this issue in v2.4-head(aae934198)
Its the same steps I mentioned above.
Steps to reproduce (least amount of steps as possible):

Create a project and namespaces ns1, ns2
Add a registry "testreg" providing credentials and choosing a registry(dockerhun/quay etc) available for a specific namespace
Clone the registry "testreg", provide a different name and other credentials.
Hit "Save"

Results:
Registry creation fails with the error "No namespace specified"

Validated with v2.4-head(b1591f04e819)
Steps:

Create a project and namespaces ns1, ns2
Add a registry "testreg" providing credentials and choosing a registry(dockerhun/quay etc) available for a specific namespace
Clone the registry "testreg", provide a different name and other credentials.
Hit "Save"

Namespace error does not show up now. The issue is fixed.
Note: We can clone only to the namespace from where we cloned the registry .

Tested with master-head(a6da5de55)
In master, when a registry is cloned, UI with auth token is displayed instead of username and password .

UI displayed for clone should be fixed to validate this issue.
This is true for both registry available for all namespaces or a single namespace.

This appears to be a backend issue that was present on master-3063-head but is no longer present on the current master-head.
When we create the new registry resource the frontend sent
{"index.docker.io": {"username": "a", "password": "a"}}
But the backend responded with
{"index.docker.io":{"auth":"YTph","password":"a","username":"a"}}
That response updated the resource locally but the subsequent request after refreshing the page returns the expected resource without the "auth" property.

Validated with latest master(4ef496126)
Steps:

Create a project and namespaces ns1, ns2
Add a registry "testreg" providing credentials and choosing a registry(dockerhun/quay etc) available for a specific namespace
Clone the registry "testreg", provide a different name and other credentials.
Hit "Save"
Namespace error does not show up now. The issue is fixed.
The auth token UI error also is not seen.


Fix issue #281

Aurora.JS is buggy
The logic behind the .desired attribute setter was broken. I fixed it
and jPlayer should now be able to switch between Aurora, HTML and Flash
backends automatically.
Closes #281.
EDIT: As far as I understood, this should be ok for a PR, and I should not include a minified version. Let me know if I missed something.

Is this repo still active or should I consider forking and maintaining my fork? Issues such as the one fixed in this PR can be really blocking for some applications =(
Thanks!

fixes opera not play mp3 with
solution: "html, flash",

?

Please fork and maintain.
I don't think this repo is still active.
Do you think this patch will fix the issue on chrome with solution: "flash,html". Since NPAPI was disabled this doesn't work on chrome anymore.


Add IdealStateCalculator.

@vekterli : please review

Closing ticket for code refactoring.  Will move most of IdealStateCalculator to DistributorBucketSpace, to reduce number of needed
hash lookups.


Setting up playwright to monitor price

Playwright to monitor price that a user is tracking at regular intervals

Create a route that uses an url and selector to get the price using playwright.

Created an api route to get the price given a url and selector.
Next:
Add error handling. If the server fails to get the price, send a notification to the user. Stop the server from checking this website.

Partially done.
Created the skeleton to iterate through an array of urls then get the price through playwright.
Todo:

[ ] Refactor the getPrice function because it's duplicated code used in the playwright controller
[ ] Add functionality to use fetch instead of playwright
[ ] Handle updating the db when a url/selector fails
[ ] Update the db when we get results
[ ] Add function to query for the urls from the database
[ ] Add function to email users
[ ] Set up PM2 to invoke the refresh route


Community Plugins needing TLC

As proposed by @jbucaran.
Follows the #260 discussion, but proclaims the real subject.

Scoped packages are now enabled & parsed by Fly.
This issue should be a list of community packages that need updating.
If you find a Fly plugin that is outdated or seems to be neglected:

Post a link to the repository here
Open an issue in the plugin's repository in attempt to contact the author
Fork & submit a PR if you can 😄

Forked repositories can (and sometimes should) be published as a scoped package.

Note: Don't forget the --access public flag!

Will not use @fly scope only on officially maintained packages ?
(I meant part of the fly org or by a fly core contributor)

No, scopes should only be used if there are name conflicts.

@lukeed Are there any reasons for not using @Swizz 's style for official packages, i mean making them scoped?

I believe that all affected packages will break when existing users go to download them. This sorta thing should have been done before/with 2.0 launch.

Publish under both name and scoped.
Use npm-deprecate to claim the new scoped format ?

Sure. I don't mind doing that. However, I'm still waiting on @jbucaran to grant me NPM access for nearly all the org repos. 🙏 One can only ping so many times.

@lukeed I'll get around that this week. 🙇 👋

lol 🤐 What about fly-coffee very quickly so that @hzlmn can use it?

@lukeed Man, I don't use coffeescript, it was just for example :laughing:

Oh, haha. Well, now it's 1.0 anyway...

Hi. Should I move some my fly-* repositories to the organization what I am managing ? And, do you think other people's repositories should do so 🤔
I think that it is best to be properly maintained ☺

I think that'd be the way to go.
@lukeed Waiting for npm to reply on a thing, then I'll add you all to the repos, hold on tight! 🙏

Finished some days ago the fly-serve  plugin, can I ask for some code reviews ?

Hi @Swizz I've left a "code review" for you in https://github.com/Swizz/fly-serve/pull/2 👍

Closing as Taskr now offers official packages via the scoped @taskr namespace! 🎉 Thanks @Swizz and @hzlmn for the idea -- moving to "Taskr" was the perfect time to introduce this.
We will also be maintaining a list of community plugins on the root README 👍
Thanks all 🙌