pavankumar-go opened a new issue, #2315:
URL: https://github.com/apache/apisix-ingress-controller/issues/2315

   ### Issue description
   
   I have manually setup NLB and its target groups to target the nodeports of 
controller service 
   ```
   apisix-ingress-controller-apisix-gateway   NodePort    172.16.172.162   
<none>        80:31570/TCP,443:30636/TCP   40m
   ```
   <img width="1000" alt="Screenshot 2024-10-29 at 10 12 52 PM" 
src="https://github.com/user-attachments/assets/9772a689-7396-4924-8216-13bd8d223f83";>
   
   I have created an Ingress to use the `apisix` class 
   ```
   spec:
     ingressClassName: apisix
     rules:
     - host: sample-app.dev.vida.id
       http:
         paths:
         - backend:
             service:
               name: sample-app
               port:
                 number: 80
           path: /
           pathType: Prefix
   ```
   
   I was able to verify the route creation by port-forwarding to controller 
gateway service 
   ```
   10723 ◯  curl 0:9080/healthz -v  -H 'Host:sample-app.dev.vida.id' -k         
                                                                       
   *   Trying 0.0.0.0:9080...
   * Connected to 0.0.0.0 (0.0.0.0) port 9080
   > GET /healthz HTTP/1.1
   > Host:sample-app.dev.vida.id
   > User-Agent: curl/8.7.1
   > Accept: */*
   >
   * Request completely sent off
   < HTTP/1.1 200 OK
   < Content-Length: 0
   < Connection: keep-alive
   < Date: Tue, 29 Oct 2024 16:23:26 GMT
   < Server: APISIX/3.5.0
   <
   * Connection #0 to host 0.0.0.0 left intact
   ```
   
   But i'm getting 400 while accessing via the DNS of the NLB which is 
targetting controller nodeport service  
   <img width="999" alt="Screenshot 2024-10-29 at 10 16 48 PM" 
src="https://github.com/user-attachments/assets/b1312674-2909-45ed-bb4c-38aa9e64fb3d";>
   
   
   Also I noticed that sample-app ingress address field is empty. 
   ```
   10750 ◯  k get ingress -n dev sample-app
   NAME                            CLASS    HOSTS                               
 ADDRESS   PORTS   AGE
   sample-app                   apisix   sample-app.dev.vida.id                 
               80      1d
   ```
   
   I'm using the apisix-ingress-controller chart. 
   
   here's the helm values that i have used
   
   ```
   nameOverride: ""
   
   fullnameOverride: "apisix-ingress-controller"
   
   labelsOverride: {}
   
   annotations: {}
   
   rbac:
     create: true
   
   serviceAccount:
     create: true
     name: ""
     automountServiceAccountToken: true
   
   replicaCount: 3
   
   image:
     repository: apache/apisix-ingress-controller
     pullPolicy: IfNotPresent
     tag: "1.8.3"
   
   podAnnotations: {}
   
   priorityClassName: ""
   
   imagePullSecrets: []
   clusterDomain: cluster.local
   
   service:
     port: 80
   
   config:
     etcdserver:
       enabled: true
     logLevel: "info"
     logOutput: "stderr"
     httpListen: ":8080"
     httpsListen: ":8443"
     # ingressPublishService: "ingress-apisix/apisix-ingress-controller"
     ingressStatusAddress: []
     # - "108.136.185.81"
     enableProfiling: false
     apisixResourceSyncInterval: "1h"
     pluginMetadataCM: ""
     kubernetes:
       # -- the Kubernetes configuration file path, default is "", so the 
in-cluster
       # configuration will be used.
       kubeconfig: ""
       # -- how long should apisix-ingress-controller re-synchronizes with 
Kubernetes,
       # default is 6h,
       resyncInterval: "6h"
       # -- namespace_selector represent basis for selecting managed namespaces.
       # the field is support since version 1.4.0
       # For example, "apisix.ingress=watching", so ingress will watching the 
namespaces which labels "apisix.ingress=watching"
       namespaceSelector: [""]
       # -- the election id for the controller leader campaign,
       # only the leader will watch and delivery resource changes,
       # other instances (as candidates) stand by.
       electionId: "ingress-apisix-leader"
       # -- The class of an Ingress object is set using the field 
IngressClassName in
       # Kubernetes clusters version v1.18.0 or higher or the annotation
       # "kubernetes.io/ingress.class" (deprecated).
       ingressClass: "apisix"
       # -- the supported ingress api group version, can be 
"networking/v1beta1",
       # "networking/v1" (for Kubernetes version v1.19.0 or higher), and
       # "extensions/v1beta1", default is "networking/v1".
       ingressVersion: "networking/v1"
       # -- whether to watch EndpointSlices rather than Endpoints.
       watchEndpointSlices: false
       # -- the supported apisixroute api group version, can be 
"apisix.apache.org/v2"
       # "apisix.apache.org/v2beta3" or "apisix.apache.org/v2beta2"
       apisixRouteVersion: "apisix.apache.org/v2"
       # -- whether to enable support for Gateway API.
       # Note: This feature is currently under development and may not work as 
expected.
       # It is not recommended to use it in a production environment.
       # Before we announce support for it to reach Beta level or GA.
       enableGatewayAPI: false
       # -- the resource API version, support "apisix.apache.org/v2beta3" and 
"apisix.apache.org/v2".
       # default is "apisix.apache.org/v2"
       apiVersion: "apisix.apache.org/v2"
   
   
     # -- APISIX related configurations.
     apisix:
       # -- Enabling this value, overrides serviceName and serviceNamespace.
       # serviceFullname: "apisix-admin.apisix.svc.local"
       serviceNamespace: ingress-apisix
       servicePort: 9180
       adminKey: REDACTED
       clusterName: "dev"
       adminAPIVersion: "v3"
       # -- The APISIX Helm chart supports storing user credentials in a secret.
       # The secret needs to contain a single key for admin token with key 
adminKey by default.
       existingSecret: ""
       # -- Name of the admin token key in the secret, overrides the default 
key name "adminKey"
       existingSecretAdminKeyKey: ""
   
   resources: {}
   
   initContainer:
     image: busybox
     tag: 1.28
   
   autoscaling:
     enabled: false
   
   # -- Update strategy for apisix ingress controller deployment
   updateStrategy:
     type: RollingUpdate
   
   nodeSelector:
     nodesrole: ingress
   tolerations:
   - key: noderole
     value: ingress
     operator: Equal
     effect: NoSchedule
   affinity: {}
   # -- Topology Spread Constraints for pod assignment spread across your 
cluster among failure-domains
   # ref: 
https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
   topologySpreadConstraints: []
   
   serviceMonitor:
     enabled: false
   
   podDisruptionBudget:
     enabled: false
   
   podSecurityContext: {}
   
   securityContext: {}
   
   gateway:
     # -- Apache APISIX service type for user access itself
     type: NodePort
     externalTrafficPolicy: Cluster
     externalIPs: []
     nginx:
       # -- Nginx workerRlimitNoFile
       workerRlimitNofile: "20480"
       # -- Nginx worker connections
       workerConnections: "10620"
       # -- Nginx worker processes
       workerProcesses: auto
       # -- Nginx error logs path
       errorLog: stderr
       # -- Nginx error logs level
       errorLogLevel: warn
     resources: {}
     securityContext: {}
     tls:
       enabled: true
       http2:
         enabled: true
       # -- TLS protocols allowed to use.
       sslProtocols: "TLSv1.2 TLSv1.3"
       # -- Define SNI to fallback if none is presented by client
       fallbackSNI: ""
    ```
   
   
   ### Environment
   
   - your apisix-ingress-controller version (output of 
apisix-ingress-controller version --long):
   - your Kubernetes cluster version (output of kubectl version):
   - if you run apisix-ingress-controller in Bare-metal environment, also show 
your OS version (uname -a):
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to