Skip to content

Topology Operator does not respect value of management.path_prefix configuration #287

@matbarker

Description

@matbarker

Describe the bug

Declaring a user with the topology operator fails to declare with the error "Error 404 (Object Not Found): Not Found"

To Reproduce

apiVersion: v1
kind: Secret
metadata:
  name: user-secret
  namespace: xxx #same namespace as the deployed RabbitmqCluster
type: Opaque
stringData:
  username: test
  password: test
---
apiVersion: rabbitmq.com/v1beta1
kind: User
metadata:
  name: tutorial-user
  namespace: xxx #same namespace as the deployed RabbitmqCluster
spec:
  importCredentialsSecret:
    name: user-secret
  rabbitmqClusterReference:
    name: rabbitmq # name of the RabbitmqCluster

kubectl apply -f .\user-repro.yaml

secret/user-secret created
user.rabbitmq.com/tutorial-user created

kubectl describe user.rabbitmq.com tutorial-user -n xxx

Name:         tutorial-user
Namespace:    xxx
Labels:       <none>
Annotations:  <none>
API Version:  rabbitmq.com/v1beta1
Kind:         User
Metadata:
  Creation Timestamp:  2022-01-24T01:10:48Z
  Finalizers:
    deletion.finalizers.users.rabbitmq.com
  Generation:  2
  Managed Fields:
    API Version:  rabbitmq.com/v1beta1
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .:
          f:kubectl.kubernetes.io/last-applied-configuration:
      f:spec:
        .:
        f:importCredentialsSecret:
          .:
          f:name:
        f:rabbitmqClusterReference:
          .:
          f:name:
    Manager:      kubectl-client-side-apply
    Operation:    Update
    Time:         2022-01-24T01:10:48Z
    API Version:  rabbitmq.com/v1beta1
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:finalizers:
          .:
          v:"deletion.finalizers.users.rabbitmq.com":
      f:spec:
        f:rabbitmqClusterReference:
          f:namespace:
      f:status:
        .:
        f:conditions:
        f:credentials:
          .:
          f:name:
    Manager:         manager
    Operation:       Update
    Time:            2022-01-24T01:10:48Z
  Resource Version:  91619254
  Self Link:         /apis/rabbitmq.com/v1beta1/namespaces/xxx/users/tutorial-user
  UID:               c90214f0-dd7d-46f4-acae-ce6746d63c88
Spec:
  Import Credentials Secret:
    Name:  user-secret
  Rabbitmq Cluster Reference:
    Name:       rabbitmq
    Namespace:
Status:
  Conditions:
    Last Transition Time:  2022-01-24T01:10:48Z
    Message:               Error 404 (Object Not Found): Not Found
    Reason:                FailedCreateOrUpdate
    Status:                False
    Type:                  Ready
  Credentials:
    Name:  tutorial-user-user-credentials
Events:
  Type     Reason                  Age                 From             Message
  ----     ------                  ----                ----             -------
  Normal   SuccessfulStatusUpdate  92s                 user-controller  Successfully updated user status
  Warning  FailedDeclare           10s (x15 over 92s)  user-controller  failed to declare user

kubectl logs pod/messaging-topology-operator-f9c69d45b-xf62c -n rabbitmq-system

{"level":"info","ts":1642985902.2593372,"logger":"controller-runtime.manager.controller.queue","msg":"Start reconciling","reconciler group":"rabbitmq.com","reconciler kind":"Queue","name":"tutorial","namespace":"xxx","spec":"{\"name\":\"tutorial\",\"vhost\":\"/\",\"rabbitmqClusterReference\":{\"name\":\"rabbitmq\",\"namespace\":\"\"}}"}
{"level":"error","ts":1642985902.2618473,"logger":"controller-runtime.manager.controller.queue","msg":"failed to declare queue","reconciler group":"rabbitmq.com","reconciler kind":"Queue","name":"tutorial","namespace":"xxx","queue":"tutorial","error":"Error 404 (Object Not Found): Not Found","stacktrace":"github.com/rabbitmq/messaging-topology-operator/controllers.(*QueueReconciler).Reconcile\n\t/workspace/controllers/queue_controller.go:113\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:298\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:253\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:214"}
{"level":"error","ts":1642985902.2669504,"logger":"controller-runtime.manager.controller.queue","msg":"Reconciler error","reconciler group":"rabbitmq.com","reconciler kind":"Queue","name":"tutorial","namespace":"xxx","error":"Error 404 (Object Not Found): Not Found","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:253\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:214"}
kubectl get all -n xxx
NAME                    READY   STATUS    RESTARTS   AGE
pod/rabbitmq-server-0   1/1     Running   0          5m25s

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                        AGE
service/rabbitmq         ClusterIP   10.107.239.163   <none>        5672/TCP,15672/TCP,15692/TCP   5m25s
service/rabbitmq-nodes   ClusterIP   None             <none>        4369/TCP,25672/TCP             5m25s

NAME                               READY   AGE
statefulset.apps/rabbitmq-server   1/1     5m25s

NAME                                    ALLREPLICASREADY   RECONCILESUCCESS   AGE
rabbitmqcluster.rabbitmq.com/rabbitmq   True               True               5m25s

NAME                              AGE
user.rabbitmq.com/tutorial-user   4m11s

Expected behavior

Expect a user to be declared and be able to use the username/password to connect to the cluster

Version and environment information

  • Messaging Topology Operator: [e.g. 0.1.0 or commit if building from source]
    Image:         rabbitmqoperator/cluster-operator:1.11.0
    Image ID:      docker-pullable://rabbitmqoperator/cluster-operator@sha256:2292f5ebac8982c2b9d9d8b75f15a4eee6774807ae625d23d1a8f91d703f9032
  • RabbitMQ: [e.g. 3.8.0]
    Image: rabbitmq:3.8.21-management

  • RabbitMQ Cluster Operator: [e.g. 1.1.0 or commit if building from source]
    Image: rabbitmqoperator/cluster-operator:1.11.0
    Image ID: docker-pullable://rabbitmqoperator/cluster-operator@sha256:2292f5ebac8982c2b9d9d8b75f15a4eee6774807ae625d23d1a8f91d703f9032

  • Kubernetes: [e.g. 1.18.0]
    v1.22.5 on docker-desktop running on Windows 10

Maintainer note: edited title as per this comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions