skupperproject/skupper

Unsupported `linkAccess` Type Causes Site to Remain in Pending State

Closed this issue · 0 comments

Describe the bug
When setting an unsupported value (rocket) for the linkAccess property in a Skupper Site resource, the site remains in a Pending state. The controller logs this issue as an INFO message instead of an ERROR, making it difficult to identify the root cause. The lack of validation or clear feedback for invalid linkAccess values contributes to user confusion.

How To Reproduce
Steps to reproduce the behavior:

  1. Install Skupper using the following configuration:
    • Repository: https://github.com/skupperproject/skupper.git
    • Branch: v2
    • Release name: skupper-setup
  2. Deploy a Site resource with the following spec:
    apiVersion: skupper.io/v2alpha1
    kind: Site
    metadata:
      name: hello-world-west
      namespace: zago-hello-world-west
    spec:
      linkAccess: rocket
  3. Check the site status:
    kubectl get site -n zago-hello-world-west
    Output:
    NAME               STATUS    SITES IN NETWORK   MESSAGE
    hello-world-west   Pending   1                  Pending
    
  4. Review the controller logs:
    time=2024-11-22T17:33:10.777Z level=INFO msg="Unsupported access type \"rocket\" in SecuredAccess zago-hello-world-west/skupper-router-1"
    

Expected behavior

  • The controller should log an ERROR message instead of INFO for unsupported linkAccess values.
  • The user should receive clear feedback in the logs indicating that the value is invalid.
  • The linkAccess field should be validated against the documented valid values (none, default, route, loadbalancer), and the site should fail to apply the configuration if the value is invalid.

Environment details

  • Skupper CLI: v2
  • Skupper Operator (if applicable): v2
  • Platform: Kubernetes (local cluster)

Additional context
The valid values for linkAccess, as per the documentation, are:

  • none: No linking to this site is permitted.
  • default: Use the default link access for the current platform.
    • On OpenShift, the default is route.
    • On Kubernetes, the default is loadbalancer.
  • route: Use an OpenShift route (OpenShift only).
  • loadbalancer: Use a Kubernetes load balancer (Kubernetes only).

Improving logging and validation for linkAccess will help users quickly identify and resolve configuration issues.