Ambassador mapping not exposing chosen service

557 Views Asked by At

I'm having troubles with exposing node.js app via Ambassador mapping. I created a deployment and service, tested them from a dummy nginx pod using curl:

curl example-svc:9000/ping

And i get a correct response. Next I created a TLSContext, Host and Mapping CRDs:

apiVersion: getambassador.io/v2
kind: TLSContext
metadata:
  name: example-backend
spec:
  alpn_protocols: h2, http/1.1
  ambassador_id: example-ambassador
  cipher_suites:
  - ECDHE-ECDSA-AES128-GCM-SHA256
  - ECDHE-RSA-AES128-GCM-SHA256
  - ECDHE-ECDSA-AES256-GCM-SHA384
  - ECDHE-RSA-AES256-GCM-SHA384
  - ECDHE-ECDSA-CHACHA20-POLY1305
  - ECDHE-RSA-CHACHA20-POLY1305
  hosts:
  - be.internal-cloud.io
  min_tls_version: v1.2
  secret: example-backend-cert
-------------------------------------------
apiVersion: getambassador.io/v2
kind: Host
metadata:
  name: example-backend
spec:
  acmeProvider:
    authority: none
  hostname: be.internal-cloud.io
  requestPolicy:
    insecure:
      action: Reject
      additionalPort: 8080
  tlsContext:
    name: example-backend
  tlsSecret:
    name: example-backend-cert
-------------------------------------------
apiVersion: getambassador.io/v2
kind: Mapping
metadata:
  name: example-backend
spec:
  allow_upgrade:
  - websocket
  ambassador_id: example-ambassador
  grpc: false
  host: be.internal-cloud.io
  prefix: /
  rewrite: /
  service: example-svc:9000
  timeout_ms: 100

And now when i try to access this url in browser or via curl i get 404 response:

curl -I https://be.internal-cloud.io/
HTTP/2 404 
date: Mon, 08 Aug 2022 10:02:14 GMT
server: envoy

{"error":{"code":404,"status":"Not Found","message":"The requested resource could not be found"}}

And a given log in Ambassador pod:

ACCESS [2022-08-08T10:02:32.987Z] "GET / HTTP/2" 404 - 0 98 2 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36" "d5b580ae-196a-4249-b5ba-3f36b162ca2f" "be.internal-cloud.io" "-"

How can I expose it correctly?

1

There are 1 best solutions below

0
hamz On

Have you also deployed a listener?

apiVersion: getambassador.io/v3alpha1
kind: Listener
metadata:
  name: https-listener
spec:
  port: 8443
  protocol: HTTPS
  securityModel: XFP
  hostBinding:
    namespace:
      from: ALL