<p>I'm trying to follow <a href="https://github.com/hetznercloud/hcloud-cloud-controller-manager/issues/74#issuecomment-678073133" rel="nofollow noreferrer">this suggestion</a> to use <a href="https://github.com/hetznercloud/hcloud-cloud-controller-manager/blob/master/docs/load_balancers.md" rel="nofollow noreferrer">Hetzner load balancer</a> as a Nginx ingress controller.</p>
<p><code>helm install ingress-nginx</code> with these configurations:</p>
<pre><code>controller:
  config:
    use-proxy-protocol: &quot;true&quot;
  replicaCount: 3
  service:
    type: LoadBalancer
    annotations:
      load-balancer.hetzner.cloud/name: nginx-controller-new
      load-balancer.hetzner.cloud/location: hel1
      load-balancer.hetzner.cloud/use-private-ip: true
      load-balancer.hetzner.cloud/algorithm-type: least_connections
      load-balancer.hetzner.cloud/uses-proxyprotocol: true
      load-balancer.hetzner.cloud/hostname: somehost.com
</code></pre>
<p>Deployments:</p>
<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo1
spec:
  selector:
    matchLabels:
      app: echo1
  replicas: 3
  template:
    metadata:
      labels:
        app: echo1
    spec:
      containers:
        - name: echo1
          image: hashicorp/http-echo
          args:
            - &quot;-text=echo1&quot;
          ports:
            - containerPort: 5678
---
apiVersion: v1
kind: Service
metadata:
  name: echo-service
spec:
  selector:
    app: echo1
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 5678
  ipFamilyPolicy: PreferDualStack

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx
spec:
  ingressClassName: nginx
  rules:
    - http:
        paths:
          - pathType: Prefix
            path: &quot;/&quot;
            backend:
              service:
                name: echo-service
                port:
                  number: 80
      host: somehost.com
</code></pre>
<p>After installation, a Hetzner load balancer is successfully provisioned, however, it isn't able to detect the services:</p>
<p><a href="https://i.stack.imgur.com/zwQOi.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/zwQOi.png" alt="enter image description here" /></a></p>
<p>I'm at a loss here. How can I connect the echo1 app to the ingress-nginx-controller service? I check out <a href="https://github.com/kubernetes/ingress-nginx/blob/master/charts/ingress-nginx/values.yaml" rel="nofollow noreferrer">all of the available helm values</a> but I cannot find something like <code>service.selector</code> to target echo1's service and make it publicly available. Can someone help me? Are there any alternatives?</p>

<p>I am not the Kubernetes master (more a noob) but I got it working with a L4-loadbalancer.</p>
<p>An annotation has to be set to your Ingress:</p>
<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
</code></pre>
<p>And to use it without nginx-ingress, that worked for me (not tested with your labels)</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: &quot;apps/v1&quot;
kind: &quot;Deployment&quot;
metadata:
  name: &quot;nginx-hello-world&quot;
  labels:
    app: &quot;hello-world&quot;
spec:
  selector:
    matchLabels:
      app: &quot;hello-world&quot;
  strategy:
    type: &quot;Recreate&quot;
  template:
    metadata:
      labels:
        app: &quot;hello-world&quot;
    spec:
      containers:
        - image: &quot;rancher/hello-world&quot;
          name: &quot;nginx-hello-world&quot;
          imagePullPolicy: &quot;Always&quot;
          ports:
            - containerPort: 80
              name: &quot;http&quot;
</code></pre>
<p><strong>Service</strong>
for HTTP (to test your deployment)</p>
<pre class="lang-yaml prettyprint-override"><code>---
apiVersion: &quot;v1&quot;
kind: Service
metadata:
  name: &quot;nginx-hello-world&quot;
  labels:
    app: &quot;hello-world&quot;
  annotations:
    load-balancer.hetzner.cloud/name: lb-development
    load-balancer.hetzner.cloud/hostname: somehost.com
    load-balancer.hetzner.cloud/protocol:   http
    load-balancer.hetzner.cloud/health-check-port: 10254
spec:
  type: LoadBalancer
  selector:
    app: &quot;hello-world&quot;
  ports:
    - name: &quot;http&quot;
      port: 80
      targetPort: 80
</code></pre>
<p>for SSL</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
kind: Service
metadata:
  name: nginx-hello-world
  labels:
    app: hello-world
  annotations:
    load-balancer.hetzner.cloud/hostname: somehost.com
    load-balancer.hetzner.cloud/http-certificates: managed-certificate-1-wildcard-somehost.com
    load-balancer.hetzner.cloud/name: lb-development
    load-balancer.hetzner.cloud/protocol: https
spec: 
  ports:
  - name: https
    nodePort: 32725
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: hello-world
  type: LoadBalancer

</code></pre>
