Skip to content

Kube-adaptor is not syncing resources when a secret is missing #2433

@fgiorgetti

Description

@fgiorgetti

Describe the bug
If you have a resource that depends on an externally provided tls credential (generateTlsCredentials: false), like a RouterAccess, and the respective secret is not available, kube-adaptor is not proceeding with the syncronization logic for the other entities, like bridges and links.

How To Reproduce

  1. Create a RouterAccess resource with .spec.generateTlsCredentials: false.
  2. Create any other resource like, a listener: skupper listener create backend 8080.
  3. List the active tcpListeners, using: kubectl exec deploy/skupper-router -- skmanage query --type tcpListener

You will see an empty list of tcpListeners as they have been defined to the ConfigMap, but not through the Management API.

Expected behavior
If a resource, like RouterAccess, Listener, Connector refers to a TLS Credential that does not exist, they should simply be skipped from the router configuration at all (including the configmap itself), so that the configuration of other entities are not impacted.

In case the router pod restarts, the config-init container will prevent it from starting, with the following error:

Waiting for Secrets to be created for SslProfiles

Environment details

  • Skupper 2.1.3

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions