Skip to content

[Bug]: Ingress Controller crashes with the command line argument proxy #8592

@haywoodsh

Description

@haywoodsh

Version

edge

What Kubernetes platforms are you running on?

Kind

Steps to reproduce

The proxy flag is used to run the Ingress Controller in a local environment with the NGINX FakeManager binary. This allows the Go binary to be run in a local environment for development and debugging purposes, without the need to build a Docker image beforehand, especially for minor changes like log messages and templates.

expected behavior:

  1. Run kubectl proxy
kubectl proxy
Starting to serve on 127.0.0.1:8001
  1. build the NGINX Ingress Controller locally without docker
go build -o nginx-ingress ./cmd/nginx-ingress
  1. Run the NGINX Ingress Controller go binary locally with proxy flag without creating any Deployments or Pods
/nginx-ingress -proxy
127.0.0.1:8001
-enable-custom-resources
-log-level=debug
-main-template-path=internal/configs/version1/nginx-plus.tmpl
-ingress-template-path=internal/configs/version1/nginx-plus.ingress.tmpl
-virtualserver-template-path=internal/configs/version2/nginx-plus.virtualserver.tmpl
-transportserver-template-path=internal/configs/version2/nginx-plus.transportserver.tmpl
-global-configuration=nginx-ingress/nginx-configuration
-enable-leader-election=false
-nginx-plus=true
-enable-oidc=true
-enable-prometheus-metrics
-prometheus-metrics-listen-port=9112
-enable-snippets=true
-mgmt-configmap=nginx-ingress/nginx-config-mgmt

Current behavior:
NGINX Ingress Controller should be running in proxy mode without NGINX binary, but it's failing due to following reasons

  • NGINX Ingress Controller tries to read and write its pod name and namespace via Kubernetes API but no pod is created in proxy mode
  • NGINX Ingress Controller fails to access the NGINX plus license secret but it does not require the NGINX binary and therefore does not require a license
  • NGINX Ingress Controller tries to write to the file system but it's not in a container environment
  • NGINX Ingress Controller has to wrong oidc.tmpl because it's not in a container environment and customisng the path like other template is currently not possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAn issue reporting a potential bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions