When the certificate arn cannot be resolved in AWS, the controller continues to attempt to apply rules to that non-existent listener and eventually crashes.
I0410 18:11:12.688052 1 log.go:42] [ALB-INGRESS] [echoserver-echoserver] [INFO]: Located default rule. Rule: { Actions: [{ Type: "forward" }], IsDefault: true, Priority: "default"}
I0410 18:11:12.688182 1 elbv2.go:42] Request: elasticloadbalancing/&{CreateListener POST / %!s(*request.Paginator=<nil>) %!s(func(*request.Request) error=<nil>)}, Payload: {
Certificates: [{
CertificateArn: "arn:aws:acm:us-east-2:4432733164488:certificate/ffb5c027-5158-4705-ac09-2254a9a669ed"
}],
DefaultActions: [{
TargetGroupArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:targetgroup/dev1-30946-HTTP-58efb8e/74185a08dfdb6047",
Type: "forward"
}],
LoadBalancerArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:loadbalancer/app/dev1-429acf8d129056e/3198865e24d45513",
Port: 443,
Protocol: "HTTPS"
}
I0410 18:11:12.760072 1 log.go:54] [ALB-INGRESS] [echoserver-echoserver] [ERROR]: Failed Listener creation. Error: CertificateNotFound: Certificate 'arn:aws:acm:us-east-2:4432733164488:certificate/ffb5c027-5158-4705-ac09-2254a9a669ed' not found
status code: 400, request id: 149c692f-1e19-11e7-8516-d1d147b45497.
I0410 18:11:12.760303 1 log.go:42] [ALB-INGRESS] [echoserver-echoserver] [INFO]: Start Listener creation.
I0410 18:11:12.760507 1 elbv2.go:42] Request: elasticloadbalancing/&{CreateListener POST / %!s(*request.Paginator=<nil>) %!s(func(*request.Request) error=<nil>)}, Payload: {
DefaultActions: [{
TargetGroupArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:targetgroup/dev1-30946-HTTP-58efb8e/74185a08dfdb6047",
Type: "forward"
}],
LoadBalancerArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:loadbalancer/app/dev1-429acf8d129056e/3198865e24d45513",
Port: 8080,
Protocol: "HTTP"
}
I0410 18:11:12.826473 1 log.go:42] [ALB-INGRESS] [echoserver-echoserver] [INFO]: Completed Listener creation. ARN: arn:aws:elasticloadbalancing:us-east-2:432733164488:listener/app/dev1-429acf8d129056e/3198865e24d45513/578c33fe74804c97 | Port: %!s(int64=8080) | Proto: HTTP.
I0410 18:11:12.826591 1 log.go:42] [ALB-INGRESS] [echoserver-echoserver] [INFO]: Start Rule creation.
I0410 18:11:12.826765 1 elbv2.go:42] Request: elasticloadbalancing/&{CreateRule POST / %!s(*request.Paginator=<nil>) %!s(func(*request.Request) error=<nil>)}, Payload: {
Actions: [{
TargetGroupArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:targetgroup/dev1-32488-HTTP-58efb8e/3abf26a48b8af3a4",
Type: "forward"
}],
Conditions: [{
Field: "path-pattern",
Values: ["/mespecial"]
}],
ListenerArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:listener/app/dev1-429acf8d129056e/3198865e24d45513/578c33fe74804c97",
Priority: 1
}
I0410 18:11:12.852861 1 log.go:42] [ALB-INGRESS] [echoserver-echoserver] [INFO]: Completed Rule creation. Rule: { Actions: [{ TargetGroupArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:targetgroup/dev1-32488-HTTP-58efb8e/3abf26a48b8af3a4", Type: "forward" }], Conditions: [{ Field: "path-pattern", Values: ["/mespecial"] }], IsDefault: false, Priority: "1", RuleArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:listener-rule/app/dev1-429acf8d129056e/3198865e24d45513/578c33fe74804c97/1a110b83682abfa5"}
I0410 18:11:12.852881 1 log.go:42] [ALB-INGRESS] [echoserver-echoserver] [INFO]: Start Listener creation.
I0410 18:11:12.852992 1 elbv2.go:42] Request: elasticloadbalancing/&{CreateListener POST / %!s(*request.Paginator=<nil>) %!s(func(*request.Request) error=<nil>)}, Payload: {
Certificates: [{
CertificateArn: "arn:aws:acm:us-east-2:4432733164488:certificate/ffb5c027-5158-4705-ac09-2254a9a669ed"
}],
DefaultActions: [{
TargetGroupArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:targetgroup/dev1-30946-HTTP-58efb8e/74185a08dfdb6047",
Type: "forward"
}],
LoadBalancerArn: "arn:aws:elasticloadbalancing:us-east-2:432733164488:loadbalancer/app/dev1-429acf8d129056e/3198865e24d45513",
Port: 443,
Protocol: "HTTPS"
}
I0410 18:11:12.911466 1 log.go:54] [ALB-INGRESS] [echoserver-echoserver] [ERROR]: Failed Listener creation. Error: CertificateNotFound: Certificate 'arn:aws:acm:us-east-2:4432733164488:certificate/ffb5c027-5158-4705-ac09-2254a9a669ed' not found
status code: 400, request id: 14b410c7-1e19-11e7-9579-850515bb8d35.
I0410 18:11:12.911507 1 log.go:42] [ALB-INGRESS] [echoserver-echoserver] [INFO]: Start Rule creation.
E0410 18:11:12.911624 1 runtime.go:64] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/runtime/runtime.go:70
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/runtime/runtime.go:63
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/runtime/runtime.go:49
/usr/lib/go/src/runtime/asm_amd64.s:479
/usr/lib/go/src/runtime/panic.go:458
/usr/lib/go/src/runtime/panic.go:62
/usr/lib/go/src/runtime/sigpanic_unix.go:24
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/rule.go:90
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/rule.go:72
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/rules.go:13
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/listeners.go:31
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/loadbalancers.go:26
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/ingress.go:342
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/controller.go:86
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller/controller.go:432
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller/controller.go:158
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task/queue.go:86
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task/queue.go:49
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait/wait.go:96
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait/wait.go:97
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait/wait.go:52
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task/queue.go:49
/usr/lib/go/src/runtime/asm_amd64.s:2086
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x84bd55]
goroutine 90 [running]:
panic(0x16bbe60, 0xc420014030)
/usr/lib/go/src/runtime/panic.go:500 +0x1a1
github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/runtime/runtime.go:56 +0x126
panic(0x16bbe60, 0xc420014030)
/usr/lib/go/src/runtime/panic.go:458 +0x243
github.com/coreos/alb-ingress-controller/controller/alb.(*Rule).create(0xc42079a360, 0xc42016ff40, 0xc420535f80, 0x15, 0x0)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/rule.go:90 +0xe5
github.com/coreos/alb-ingress-controller/controller/alb.(*Rule).SyncState(0xc42079a360, 0xc42016ff40, 0xc420535f80, 0xc420a52270)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/rule.go:72 +0xb9
github.com/coreos/alb-ingress-controller/controller/alb.Rules.SyncState(0xc420022a50, 0x1, 0x1, 0xc42016ff40, 0xc420535f80, 0xc4203512a0, 0x2, 0x4)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/rules.go:13 +0x86
github.com/coreos/alb-ingress-controller/controller/alb.Listeners.SyncState(0xc4205096a0, 0x4, 0x4, 0xc42016ff40, 0xc42016ff70, 0x2, 0x2, 0xc42087fa50)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/listeners.go:31 +0xbc
github.com/coreos/alb-ingress-controller/controller/alb.LoadBalancers.SyncState(0xc420022a58, 0x1, 0x1, 0x8, 0x0, 0x1)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/alb/loadbalancers.go:26 +0x149
github.com/coreos/alb-ingress-controller/controller.(*ALBIngress).SyncState(0xc4201e1630)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/ingress.go:342 +0x81
github.com/coreos/alb-ingress-controller/controller.(*ALBController).Reload(0xc4203c8f80, 0xc420a52348, 0x0, 0x8, 0xc42011e9c0, 0x1, 0x1, 0x2448d88, 0x0, 0x0)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/controller/controller.go:86 +0x76
github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller.(*GenericController).sync(0xc4203acb40, 0x15dcf40, 0xc420544f00, 0xc420544f00, 0xc420544e00)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller/controller.go:432 +0x68f
github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller.(*GenericController).(github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller.sync)-fm(0x15dcf40, 0xc420544f00, 0xa, 0xc42087fdb0)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller/controller.go:158 +0x3e
github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task.(*Queue).worker(0xc420737e30)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task/queue.go:86 +0x101
github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task.(*Queue).(github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task.worker)-fm()
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task/queue.go:49 +0x2a
github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait.JitterUntil.func1(0xc42087ff58)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait/wait.go:96 +0x5e
github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait.JitterUntil(0xc42087ff58, 0x12a05f200, 0x0, 0x1, 0xc4207483c0)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait/wait.go:97 +0xad
github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait.Until(0xc42087ff58, 0x12a05f200, 0xc4207483c0)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/kubernetes/pkg/util/wait/wait.go:52 +0x4d
github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task.(*Queue).Run(0xc420737e30, 0x12a05f200, 0xc4207483c0)
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/task/queue.go:49 +0x55
created by github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller.GenericController.Start
/home/josh/dev/go/src/github.com/coreos/alb-ingress-controller/vendor/k8s.io/ingress/core/pkg/ingress/controller/controller.go:1081 +0x1f1