-
Notifications
You must be signed in to change notification settings - Fork 712
Infrastructure runner trying to create/update proxy despite empty listeners #3044
Copy link
Copy link
Closed
Closed
Copy link
Labels
Description
Description:
Sending faulty Gateway spec will result in deploying envoy proxy infra despite no listeners added in infra-ir.
This will result in an error when creating or updating the envoy service:
2024-03-27T17:48:02.953+0100 ERROR infrastructure runner/runner.go:70 failed to create new infra {"runner": "infrastructure", "error": "failed to create or update service envoy-gateway-system/envoy-envoy-gateway-system-example-7a77c167: for Create: Service \"envoy-envoy-gateway-system-example-7a77c167\" is invalid: spec.ports: Required value"}
2024-03-27T17:48:02.954+0100 ERROR watchable message/watchutil.go:56 observed an error {"runner": "infrastructure", "error": "failed to create or update service envoy-gateway-system/envoy-envoy-gateway-system-example-7a77c167: for Create: Service \"envoy-envoy-gateway-system-example-7a77c167\" is invalid: spec.ports: Required value"}Repro steps:
Deploy example Gateway spec with a missing certificate on the cluster
---
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: eg
spec:
controllerName: gateway.envoyproxy.io/gatewayclass-controller
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example
spec:
gatewayClassName: eg
listeners:
- allowedRoutes:
namespaces:
from: All
hostname: www.example.com
name: https
port: 443
protocol: HTTPS
tls:
certificateRefs:
- group: ""
kind: Secret
name: example-tls
namespace: envoy-gateway-system
mode: Terminateobserve that listeners condition will be set properly:
listeners:
- attachedRoutes: 0
conditions:
- lastTransitionTime: "2024-03-27T16:49:41Z"
message: Secret envoy-gateway-system/example-tls does not exist.
observedGeneration: 1
reason: InvalidCertificateRef
status: "False"
type: ResolvedRefs
- lastTransitionTime: "2024-03-27T16:49:41Z"
message: Listener is invalid, see other Conditions for details.
observedGeneration: 1
reason: Invalid
status: "False"
type: Programmedexpect the logs with failing to create service and check that the envoy proxy pod was created anyway:
NAME READY STATUS RESTARTS AGE
envoy-envoy-gateway-system-example-7a77c167-fcc444889-rv6x9 2/2 Running 0 28sEnvironment:
latest
Logs:
2024-03-27T17:48:02.895+0100 INFO gateway-api runner/runner.go:56 received an update {"runner": "gateway-api"}
2024-03-27T17:48:02.897+0100 INFO gateway-api runner/runner.go:104 proxy:
metadata:
labels:
gateway.envoyproxy.io/owning-gateway-name: example
gateway.envoyproxy.io/owning-gateway-namespace: envoy-gateway-system
name: envoy-gateway-system/example
{"runner": "gateway-api", "infra-ir": "envoy-gateway-system/example"}
2024-03-27T17:48:02.897+0100 INFO infrastructure runner/runner.go:59 received an update {"runner": "infrastructure"}
2024-03-27T17:48:02.898+0100 INFO gateway-api runner/runner.go:115 accessLog:
text:
- path: /dev/stdout
{"runner": "gateway-api", "xds-ir": "envoy-gateway-system/example"}
2024-03-27T17:48:02.898+0100 INFO xds-translator runner/runner.go:55 received an update {"runner": "xds-translator"}
2024-03-27T17:48:02.898+0100 INFO provider status/status.go:122 received a status update {"runner": "provider", "namespace": "envoy-gateway-system", "name": "example"}
2024-03-27T17:48:02.898+0100 INFO xds-server runner/runner.go:141 received an update {"runner": "xds-server"}
2024-03-27T17:48:02.932+0100 INFO provider status/status.go:122 received a status update {"runner": "provider", "namespace": "envoy-gateway-system", "name": "example"}
2024-03-27T17:48:02.933+0100 INFO provider.example.envoy-gateway-system status/status.go:92 status unchanged, bypassing update {"runner": "provider"}
2024-03-27T17:48:02.946+0100 INFO provider status/status.go:122 received a status update {"runner": "provider", "namespace": "envoy-gateway-system", "name": "example"}
2024-03-27T17:48:02.946+0100 INFO provider.example.envoy-gateway-system status/status.go:92 status unchanged, bypassing update {"runner": "provider"}
2024-03-27T17:48:02.953+0100 ERROR infrastructure runner/runner.go:70 failed to create new infra {"runner": "infrastructure", "error": "failed to create or update service envoy-gateway-system/envoy-envoy-gateway-system-example-7a77c167: for Create: Service \"envoy-envoy-gateway-system-example-7a77c167\" is invalid: spec.ports: Required value"}
2024-03-27T17:48:02.954+0100 ERROR watchable message/watchutil.go:56 observed an error {"runner": "infrastructure", "error": "failed to create or update service envoy-gateway-system/envoy-envoy-gateway-system-example-7a77c167: for Create: Service \"envoy-envoy-gateway-system-example-7a77c167\" is invalid: spec.ports: Required value"}Reactions are currently unavailable