Closed andelhie closed 4 years ago
@andelhie I cannot reproduce this issue
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
cat << EOF | helm template ingress ingress-nginx/ingress-nginx --namespace tele-dev --values - | kubectl --namespace tele-dev apply -f -
controller:
service:
type: LoadBalancer
externalTrafficPolicy: Local
scope:
enabled: true
namespace: tele-dev
tcp:
5515: "tele-dev/logstash-logstash:5515"
udp:
5515: "tele-dev/logstash-logstash:5515"
EOF
serviceaccount/ingress-ingress-nginx created
configmap/ingress-ingress-nginx-tcp created
configmap/ingress-ingress-nginx-udp created
configmap/ingress-ingress-nginx-controller created
clusterrole.rbac.authorization.k8s.io/ingress-ingress-nginx unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx unchanged
role.rbac.authorization.k8s.io/ingress-ingress-nginx created
rolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx created
service/ingress-ingress-nginx-controller-admission created
deployment.apps/ingress-ingress-nginx-controller created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-ingress-nginx-admission configured
serviceaccount/ingress-ingress-nginx-admission created
clusterrole.rbac.authorization.k8s.io/ingress-ingress-nginx-admission unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx-admission unchanged
role.rbac.authorization.k8s.io/ingress-ingress-nginx-admission created
rolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx-admission created
job.batch/ingress-ingress-nginx-admission-create created
job.batch/ingress-ingress-nginx-admission-patch created
The Service "ingress-ingress-nginx-controller" is invalid: spec.ports: Invalid value: []core.ServicePort{core.ServicePort{Name:"http", Protocol:"TCP", AppProtocol:(*string)(nil), Port:80, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"http"}, NodePort:0}, core.ServicePort{Name:"https", Protocol:"TCP", AppProtocol:(*string)(nil), Port:443, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"https"}, NodePort:0}, core.ServicePort{Name:"5515-tcp", Protocol:"TCP", AppProtocol:(*string)(nil), Port:5515, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"5515-tcp"}, NodePort:0}, core.ServicePort{Name:"5515-udp", Protocol:"UDP", AppProtocol:(*string)(nil), Port:5515, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"5515-udp"}, NodePort:0}}: cannot create an external load balancer with mix protocols
The error at the end
cannot create an external load balancer with mix protocols
is expected. There is no support for mixed protocol in cloud load balancers.
So I just tried deploying it in the method you show above and I am getting some helm errors. I did upgrade to Helm v3.2.4 to test but I just keep getting this error when I try and run the command you posted.
Error: failed to download "ingress-nginx/ingress-nginx" (hint: running `helm repo update` may help)
error: no objects passed to apply
So I switched it to the repo I do have nginx-stable/ingress-nginx
and i get the same error.
Error: failed to download "nginx-stable/ingress-nginx" (hint: running `helm repo update` may help)
error: no objects passed to apply
I did try the helm repo update
but that did not help.
I did notice this error would pop up when the --values
flag is used and it is not formatted correctly.
@andelhie I cannot reproduce that error
docker run -ti --net=host --rm -v ~/.kube:/root/.kube -v ~/.helm:/root/.helm dtzar/helm-kubectl bash -c '
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
kubectl create ns tele-dev
cat << EOF | helm template ingress ingress-nginx/ingress-nginx --namespace tele-dev --values - | kubectl apply --namespace tele-dev -f -
controller:
service:
type: LoadBalancer
externalTrafficPolicy: Local
scope:
enabled: true
namespace: tele-dev
tcp:
5515: "tele-dev/logstash-logstash:5515"
EOF
kubectl get svc --namespace tele-dev
'
"ingress-nginx" has been added to your repositories
namespace/tele-dev created
serviceaccount/ingress-ingress-nginx created
configmap/ingress-ingress-nginx-tcp created
configmap/ingress-ingress-nginx-controller created
clusterrole.rbac.authorization.k8s.io/ingress-ingress-nginx unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx unchanged
role.rbac.authorization.k8s.io/ingress-ingress-nginx created
rolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx created
service/ingress-ingress-nginx-controller-admission created
service/ingress-ingress-nginx-controller created
deployment.apps/ingress-ingress-nginx-controller created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-ingress-nginx-admission configured
serviceaccount/ingress-ingress-nginx-admission created
clusterrole.rbac.authorization.k8s.io/ingress-ingress-nginx-admission unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx-admission unchanged
role.rbac.authorization.k8s.io/ingress-ingress-nginx-admission created
rolebinding.rbac.authorization.k8s.io/ingress-ingress-nginx-admission created
job.batch/ingress-ingress-nginx-admission-create created
job.batch/ingress-ingress-nginx-admission-patch created
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-ingress-nginx-controller LoadBalancer 10.106.195.115 <pending> 80:31148/TCP,443:30391/TCP,5515:32359/TCP 0s
ingress-ingress-nginx-controller-admission ClusterIP 10.106.119.211 <none> 443/TCP 0s
Getting same error
# helm upgrade --reuse-values nginx-ingress stable/nginx-ingress
Error: UPGRADE FAILED: template: nginx-ingress/templates/default-backend-poddisruptionbudget.yaml:1:73: executing "nginx-ingress/templates/default-backend-poddisruptionbudget.yaml" at <.Values.defaultBackend.autoscaling.minReplicas>: nil pointer evaluating interface {}.minReplicas
Environment:
Cloud provider or hardware configuration: GKE OS (e.g. from /etc/os-release): Ubuntu Kernel (e.g. uname -a): 5.3.0-62-generic #56-Ubuntu SMP Tue Jun 23 11:20:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux Install tools: Helm
# helm version
version.BuildInfo{Version:"v3.2.2", GitCommit:"a6ea66349ae3015618da4f547677a14b9ecc09b3", GitTreeState:"clean", GoVersion:"go1.13.12"}
# kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:58:53Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.11-gke.5", GitCommit:"baccd25d44f1a0d06ad3190eb508784efbb990a5", GitTreeState:"clean", BuildDate:"2020-06-25T22:55:26Z", GoVersion:"go1.13.9b4", Compiler:"gc", Platform:"linux/amd64"}
# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx-ingress default 6 2020-06-16 14:05:24.463862044 +1000 AEST deployed nginx-ingress-1.39.1 0.32.0
So I figured out the problem I was having was I grabbed the values.yaml
from the git repo. I went and grab the chart with helm pull nginx-stable/nginx-ingress --untar
. With the values file I was able to see they where way different. After deploying the updated values.yaml
my setup deployed just fine.
@mavrick your problem is you need to pass some values for autoscaling you passing nill values where it needs a number.
I am using only the below command to install the ingress controller on a new namespace:
$ helm install ingress-nginx/ingress-nginx --generate-name \
> --namespace ingress-tls-test1 \
> --set controller.replicaCount=2 \
> --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
> --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
Error: failed to download "ingress-nginx/ingress-nginx" (hint: running helm repo update
may help)
I don't have a values.yaml file . Does anyone know how can I resolve this issue ?
NGINX Ingress controller version: 1.8.0
Kubernetes version (use
kubectl version
):Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3", GitCommit:"06ad960bfd03b39c8310aaf92d1e7c12ce618213", GitTreeState:"clean", BuildDate:"2020-02-13T18:08:14Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:13:49Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}Environment:
uname -a
):Linux 4.15.0-64-generic #73-Ubuntu SMP Thu Sep 12 13:16:13 UTC 2019 x86_64 x86_64 x86_64 GNU/LinuxWhat happened:
Updated the values.yaml file to deploy new ingress controller to project namespace tele-dev but the only thing that gets deployed is a new svc.
What you expected to happen:
I was hoping to get a new ingress controller to take in syslog from out side kubernetes. I am making a telemetry platform to take a lots of syslog data.
How to reproduce it:
helm install nginx-syslog nginx-stable/nginx-ingress --values Documents/kube-elk-helm/nginx/values-dev.yaml -n tele-dev
Anything else we need to know:
Here is a copy of my values.yaml file