In 0.23.0 we have introduced a new kubectl plugin for ingress-nginx thanks to @alexkursell. It's bare minimum and we can now add more commands, and refine it. Please comment what you would want to see in that plugin to support then I'll include it in the following list.
kubectl ingress-nginx exec command to execute a command on an ingress-nginx podkubectl ingress-nginx logs command that's just like kubectl logs but does not require to provide pod namekubectl ingress-nginx ingresses should have another column with the number of endpoints of the servicekubectl ingress-nginx ssh might also be a good idea. Essentially just running kubectl exec -it -n <NAMESPACE> <POD> -- /bin/bash.Being able to specify the Nginx service/pod names would be useful, since we run more than one controller in a namespace the service/pod names don't match the defaults set here: https://github.com/kubernetes/ingress-nginx/blob/2fcbcbcb8bf8423e0364ef9c92bf949d8abb3d8c/cmd/plugin/request/request.go#L33-L36
Being able to store these in a config file would be useful too
It could be interesting if we can provide a command to check if some change is required to an ingress before the update to the new version (like the rewrite-target change) to avoid the report of issues after an update. Also, check for invalid/deprecated annotations.
Just for reference, the following of the above features have been implemented:
kubectl ingress-nginx execkubectl ingress-nginx logskubectl ingress-nginx ssh--deployment and --service flagsENDPOINTS column for kubectl ingress-nginx ingresses@aledbf Regarding the idea of checking if changes are required to update, here's an idea as to how this could be done:
validate, lint, or check that contains a bunch of lints checking for one specific thing. Examples being deprecated annotation/configmap values, deprecated/removed config flags, checks for things like if an ingress with rewrite-target contains a path without a capture group, etc.krew update, run the validate command pointed at their clusters, and get a list of every place they might have to update.validate, lint, or check
Maybe something more specific to the check for update process? (naming is hard :smile:)
(naming is hard 馃槃)
Yup :-). I'll just pick something long and we can bikeshed in the actual PR.
Using this script https://github.com/kubernetes/ingress-nginx/issues/3457#issuecomment-455593401 from a job can help to troubleshoot the ingress controller pods
Edit: like this approach https://github.com/iovisor/kubectl-trace/blob/master/pkg/tracejob/job.go
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten
Support DaemonSet-based deployment (currently appears to look specifically for Deployment)
Most helpful comment
Support
DaemonSet-based deployment (currently appears to look specifically forDeployment)