<p>I'm trying to use Knative with ambassador. Followed below steps to install Knative,</p>

<p>Install Knative</p>

<pre><code>kubectl apply --filename https://github.com/knative/serving/releases/download/v0.13.0/serving-crds.yaml
kubectl apply --filename https://github.com/knative/serving/releases/download/v0.13.0/serving-core.yaml
</code></pre>

<p>Configure Ambassador,</p>

<pre><code>kubectl set env --namespace ambassador  deployments/ambassador AMBASSADOR_KNATIVE_SUPPORT=true
</code></pre>

<p>Configure Knative to use ambassdor as ingress,</p>

<pre><code>kubectl patch configmap/config-network --namespace knative-serving --type merge --patch '{"data":"ingress.class":"ambassador.ingress.networking.knative.dev"}}'
</code></pre>

<p>I have already installed ambassador under "ambassador-ns" namespace. Its working fine.</p>

<p>Deployed hello world application,</p>

<pre><code>apiVersion: serving.knative.dev/v1 # Current version of Knative
kind: Service
metadata:
  name: helloworld-go # The name of the app
  namespace: default # The namespace the app will use
spec:
  template:
    spec:
      containers:
        - image: gcr.io/knative-samples/helloworld-go # The URL to the image of the app
          env:
            - name: TARGET # The environment variable printed out by the sample app
              value: "Go Sample v1"
</code></pre>

<p>When i check the status of ksvc,</p>

<pre><code>NAME            URL                                        LATESTCREATED         LATESTREADY           READY     REASON
helloworld-go   http://helloworld-go.default.example.com   helloworld-go-6794c   helloworld-go-6794c   Unknown   IngressNotConfigured
</code></pre>

<p>Knative Controller log</p>

<pre><code>{"level":"info","ts":"2020-03-25T09:54:43.255Z","logger":"controller.route-controller","caller":"route/route.go:125","msg":"Updating targeted revisions.","commit":"804b3bb","knative.dev/controller":"route-controller","knative.dev/traceid":"65e30cd6-9192-4eac-9d8f-a7f5e8bfa554","knative.dev/key":"default/helloworld-go"}
{"level":"info","ts":"2020-03-25T09:54:43.255Z","logger":"controller.route-controller","caller":"route/route.go:139","msg":"Creating placeholder k8s services","commit":"804b3bb","knative.dev/controller":"route-controller","knative.dev/traceid":"65e30cd6-9192-4eac-9d8f-a7f5e8bfa554","knative.dev/key":"default/helloworld-go"}
{"level":"info","ts":"2020-03-25T09:54:43.275Z","logger":"controller.serverlessservice-controller","caller":"controller/controller.go:403","msg":"Reconcile succeeded. Time taken: 51.103056ms.","commit":"804b3bb","knative.dev/controller":"serverlessservice-controller","knative.dev/traceid":"240b98b2-337a-442a-b9f3-b7900a56ddd8","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"error","ts":"2020-03-25T09:54:43.275Z","logger":"controller.revision-controller","caller":"revision/reconciler.go:190","msg":"returned an error","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"fe1694e1-576d-4cd5-9bbb-e97ee6d89a1c","knative.dev/key":"default/helloworld-go-6794c","targetMethod":"ReconcileKind","error":"failed to update deployment \"helloworld-go-6794c-deployment\": Operation cannot be fulfilled on deployments.apps \"helloworld-go-6794c-deployment\": the object has been modified; please apply your changes to the latest version and try again","stacktrace":"knative.dev/serving/pkg/client/injection/reconciler/serving/v1/revision.(*reconcilerImpl).Reconcile\n\tknative.dev/serving/pkg/client/injection/reconciler/serving/v1/revision/reconciler.go:190\nknative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).processNextWorkItem\n\tknative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:394\nknative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).Run.func2\n\tknative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:343"}
{"level":"error","ts":"2020-03-25T09:54:43.275Z","logger":"controller.revision-controller","caller":"controller/controller.go:409","msg":"Reconcile error","commit":"804b3bb","knative.dev/controller":"revision-controller","error":"failed to update deployment \"helloworld-go-6794c-deployment\": Operation cannot be fulfilled on deployments.apps \"helloworld-go-6794c-deployment\": the object has been modified; please apply your changes to the latest version and try again","stacktrace":"knative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).handleErr\n\tknative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:409\nknative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).processNextWorkItem\n\tknative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:395\nknative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).Run.func2\n\tknative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:343"}
{"level":"info","ts":"2020-03-25T09:54:43.276Z","logger":"controller.revision-controller","caller":"controller/controller.go:396","msg":"Reconcile failed. Time taken: 23.651364ms.","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"fe1694e1-576d-4cd5-9bbb-e97ee6d89a1c","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.276Z","logger":"controller.revision-controller.event-broadcaster","caller":"record/event.go:274","msg":"Event(v1.ObjectReference{Kind:\"Revision\", Namespace:\"default\", Name:\"helloworld-go-6794c\", UID:\"541cb07f-b8b2-4943-b9d8-a40c1cca8058\", APIVersion:\"serving.knative.dev/v1\", ResourceVersion:\"8558492\", FieldPath:\"\"}): type: 'Warning' reason: 'InternalError' failed to update deployment \"helloworld-go-6794c-deployment\": Operation cannot be fulfilled on deployments.apps \"helloworld-go-6794c-deployment\": the object has been modified; please apply your changes to the latest version and try again","commit":"804b3bb","knative.dev/controller":"revision-controller"}
{"level":"info","ts":"2020-03-25T09:54:43.277Z","logger":"controller.serverlessservice-controller","caller":"serverlessservice/serverlessservice.go:209","msg":"Endpoints helloworld-go-6794c has no ready endpoints","commit":"804b3bb","knative.dev/controller":"serverlessservice-controller","knative.dev/traceid":"71367ff7-4c31-4c20-aff3-5bc7afd7b652","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.277Z","logger":"controller.serverlessservice-controller","caller":"controller/controller.go:403","msg":"Reconcile succeeded. Time taken: 1.982714ms.","commit":"804b3bb","knative.dev/controller":"serverlessservice-controller","knative.dev/traceid":"71367ff7-4c31-4c20-aff3-5bc7afd7b652","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.283Z","logger":"controller.revision-controller","caller":"revision/reconcile_resources.go:135","msg":"Reconciling PA: helloworld-go-6794c","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"5b724298-8fd8-4c5d-8cd2-630de6d4c211","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.283Z","logger":"controller.revision-controller","caller":"controller/controller.go:403","msg":"Reconcile succeeded. Time taken: 7.477253ms.","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"5b724298-8fd8-4c5d-8cd2-630de6d4c211","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.292Z","logger":"controller.revision-controller","caller":"revision/reconcile_resources.go:135","msg":"Reconciling PA: helloworld-go-6794c","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"dc621289-1c4c-4d7b-a56f-b07354a8b713","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.292Z","logger":"controller.revision-controller","caller":"controller/controller.go:403","msg":"Reconcile succeeded. Time taken: 8.72266ms.","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"dc621289-1c4c-4d7b-a56f-b07354a8b713","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.352Z","logger":"controller.route-controller","caller":"route/route.go:163","msg":"Updating placeholder k8s services with ingress information","commit":"804b3bb","knative.dev/controller":"route-controller","knative.dev/traceid":"65e30cd6-9192-4eac-9d8f-a7f5e8bfa554","knative.dev/key":"default/helloworld-go"}
{"level":"warn","ts":"2020-03-25T09:54:43.352Z","logger":"controller.route-controller","caller":"route/reconcile_resources.go:159","msg":"Failed to update k8s service: failed to fetch loadbalancer domain/IP from ingress status","commit":"804b3bb","knative.dev/controller":"route-controller","knative.dev/traceid":"65e30cd6-9192-4eac-9d8f-a7f5e8bfa554","knative.dev/key":"default/helloworld-go"}
{"level":"info","ts":"2020-03-25T09:54:43.352Z","logger":"controller.route-controller","caller":"route/route.go:169","msg":"Route successfully synced","commit":"804b3bb","knative.dev/controller":"route-controller","knative.dev/traceid":"65e30cd6-9192-4eac-9d8f-a7f5e8bfa554","knative.dev/key":"default/helloworld-go"}
{"level":"info","ts":"2020-03-25T09:54:43.352Z","logger":"controller.route-controller","caller":"controller/controller.go:403","msg":"Reconcile succeeded. Time taken: 97.72538ms.","commit":"804b3bb","knative.dev/controller":"route-controller","knative.dev/traceid":"65e30cd6-9192-4eac-9d8f-a7f5e8bfa554","knative.dev/key":"default/helloworld-go"}
{"level":"info","ts":"2020-03-25T09:54:43.360Z","logger":"controller.revision-controller","caller":"revision/reconcile_resources.go:135","msg":"Reconciling PA: helloworld-go-6794c","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"b198d7b8-f2d9-46a0-80d5-4f43e7ddf340","knative.dev/key":"default/helloworld-go-6794c"}
{"level":"info","ts":"2020-03-25T09:54:43.361Z","logger":"controller.revision-controller","caller":"controller/controller.go:403","msg":"Reconcile succeeded. Time taken: 10.355072ms.","commit":"804b3bb","knative.dev/controller":"revision-controller","knative.dev/traceid":"b198d7b8-f2d9-46a0-80d5-4f43e7ddf340","knative.dev/key":"default/helloworld-go-6794c"}

</code></pre>

<p>can you please tell me what i'm doing wrong?</p>

<p>There was issue with ambassador CRD cluster role.</p>

<p>Make sure you have below entry in ambassador</p>

<pre><code>- apiGroups: [ "networking.internal.knative.dev" ]
  resources: [ "clusteringresses", "ingresses" ]
  verbs: ["get", "list", "watch"]
- apiGroups: [ "networking.internal.knative.dev" ]
  resources: [ "ingresses/status", "clusteringresses/status" ]
  verbs: ["update"]
</code></pre>
