knative / knative/serving

DomainMapping to Kubernetes Service stuck in "Uninitialized"

Open
#13,158 9 comments 0 reactions 1 assignee View on GitHub

@Gekko0114 is already working on this.

Since Jun 28, 2023.

area/networking kind/bug triage/accepted
Dominant language
Go
Stars
6.1k
Forks
1.2k
Avg merge
2d 7h
Merged PRs (30d)
2

Description

What version of Knative?

1.0

Expected Behavior

DomainMapping with a Kubernetes Service should become ready.

Actual Behavior

I am trying to use a DomainMapping with a regular Kubernetes Service, as described in the Tips in the docs. The custom host is "my-test.biz".

After creation, the DomainMapping remains in Ready state "Unknown" with Reason "Uninitialized".

The DomainMapping does seem to work OK, because I can hit the Kourier ingress gateway with a Host header to "mytest-biz" and get a 200 back from the service, but the status of the DomainMapping never becomes ready. This seems to be caused by the Kourier probe.

The DomainMapping conditions show this status:

Status:
  Address:
    URL:  http://hotcakes-test.biz
  Conditions:
    Last Transition Time:  2022-07-25T18:32:53Z
    Message:               autoTLS is not enabled
    Reason:                TLSNotEnabled
    Status:                True
    Type:                  CertificateProvisioned
    Last Transition Time:  2022-07-25T18:32:53Z
    Status:                True
    Type:                  DomainClaimed
    Last Transition Time:  2022-07-25T18:32:53Z
    Message:               Waiting for load balancer to be ready
    Reason:                Uninitialized
    Status:                Unknown
    Type:                  IngressReady
    Last Transition Time:  2022-07-25T18:32:53Z
    Message:               Waiting for load balancer to be ready
    Reason:                Uninitialized
    Status:                Unknown
    Type:                  Ready
    Last Transition Time:  2022-07-25T18:32:53Z
    Status:                True
    Type:                  ReferenceResolved

Inspecting the logs of the kourier-control pod shows messages of this form:

{"level":"error","ts":"2022-07-27T04:57:55.987+0800","logger":"kourier.status-manager","caller":"status/status.go:399","msg":"Probing of http://mytest-test.biz/ failed, IP: 172.21.129.123:8080, ready: false, error: unexpected status code: want 200, got 404 (depth: 0)","knative.dev/key":"backend/mytest-test.biz","stacktrace":"knative.dev/networking/pkg/status.(*Prober).processWorkItem\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:399\nknative.dev/networking/pkg/status.(*Prober).Start.func1\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:289"}
{"level":"error","ts":"2022-07-27T04:57:55.987+0800","logger":"kourier.status-manager","caller":"status/status.go:399","msg":"Probing of http://mytest-test.biz/ failed, IP: 172.21.129.123:8080, ready: false, error: unexpected status code: want 200, got 404 (depth: 0)","knative.dev/key":"backend/mytest-test.biz","stacktrace":"knative.dev/networking/pkg/status.(*Prober).processWorkItem\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:399\nknative.dev/networking/pkg/status.(*Prober).Start.func1\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:289"}
{"level":"error","ts":"2022-07-27T04:57:55.988+0800","logger":"kourier.status-manager","caller":"status/status.go:399","msg":"Probing of http://mytest-test.biz/ failed, IP: 172.21.160.89:8080, ready: false, error: unexpected status code: want 200, got 404 (depth: 0)","knative.dev/key":"backend/mytest-test.biz","stacktrace":"knative.dev/networking/pkg/status.(*Prober).processWorkItem\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:399\nknative.dev/networking/pkg/status.(*Prober).Start.func1\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:289"}
{"level":"error","ts":"2022-07-27T04:57:55.988+0800","logger":"kourier.status-manager","caller":"status/status.go:399","msg":"Probing of http://mytest-test.biz/ failed, IP: 172.21.160.89:8080, ready: false, error: unexpected status code: want 200, got 404 (depth: 0)","knative.dev/key":"backend/mytest-test.biz","stacktrace":"knative.dev/networking/pkg/status.(*Prober).processWorkItem\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:399\nknative.dev/networking/pkg/status.(*Prober).Start.func1\n\t/go/pkg/mod/knative.dev/networking@v0.0.0-20201103163404-b9f80f4537af/pkg/status/status.go:289"}

where those IPs are for the two kourier gateways. If I grab a shell into the kourier-control container, I am able to curl those two IPs if I add a Host: mytest.biz header.

The cluster is using Kourier and Istio Service Mesh.

Steps to Reproduce the Problem

Create a normal k8s service.
Create a DomainMapping with a custom hostname. The DomainMapping will be stuck in "Uninitialized."

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.