Skip to content

Commit 23fb26e

Browse files
Merge pull request #1802 from rabbitmq/kubernetes/limitations-top-op
Document Topology Operator known limitation
2 parents 38559c6 + 81e528d commit 23fb26e

File tree

2 files changed

+64
-1
lines changed

2 files changed

+64
-1
lines changed

site/kubernetes/operator/operator-overview.md

+17
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ used by applications running on Kubernetes or outside of Kubernetes.
1818

1919
Documentation of Cluster Operator spans several guides:
2020

21+
* [Limitations](#limitations)
2122
* [Quickstart guide](quickstart-operator.html) for RabbitMQ Cluster Kubernetes Operator
2223
* [Installing](install-operator.html) RabbitMQ Cluster Kubernetes Operator
2324
* [Configuring Defaults](configure-operator-defaults.html) for RabbitMQ Cluster Operator
@@ -79,11 +80,27 @@ The RabbitMQ Messaging Topology Operator supports managing RabbitMQ messaging to
7980

8081
Documentation for the Messaging Topology Operator is structured as follows:
8182

83+
* [Limitations](#top-op-limitations)
8284
* [Installing RabbitMQ Messaging Topology Operator](./install-topology-operator.html)
8385
* [Using RabbitMQ Messaging Topology Operator](./using-topology-operator.html)
8486
* [TLS for Messaging Topology Operator](./tls-topology-operator.html)
8587
* [Troubleshooting Messaging Topology Operator](./troubleshooting-topology-operator.html)
8688

89+
### <a id='top-op-limitations' class='anchor' href='#top-op-limitations'>Limitations</a>
90+
91+
#### Custom default credentials result in 401 unauthorised
92+
93+
The Topology Operator relies on the default credentials `Secret` created by the Cluster Operator. If the `RabbitmqCluster`
94+
`spec` defines the default user in `additionalConfig` using the keys `default_user` and `default_pass`, it will
95+
result in incorrect credentials generated for the default credentials `Secret`. Due to the incorrect credentials, all
96+
operations from the Topology Operator will error and print the following message in the log:
97+
98+
<pre>
99+
Error: API responded with a 401 Unauthorized
100+
</pre>
101+
102+
See the [troubleshooting Messaging Topology Operator](./troubleshooting-topology-operator.html) section for more details and a workaround.
103+
87104
## <a id='source' class='anchor' href='#source'>The Source Code for these Kubernetes Operators</a>
88105

89106
Both Operators are open source. You can contribute to its development on GitHub:

site/kubernetes/operator/troubleshooting-topology-operator.md

+47-1
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,50 @@ status:
4747
type: Ready
4848
Reason: "SuccessfulCreateOrUpdate" # status false result in reason FailedCreateOrUpdate
4949
Message: "" # set with error message when status is false
50-
</pre>
50+
</pre>
51+
52+
### kubectl apply succeeds, but no object is created inside RabbitMQ
53+
54+
The Topology Operator relies of the default user `Secret` created by the Cluster Operator. If default user `Secret` does not
55+
have working credentials, the Topology Operator will fail to communicate with RabbitMQ HTTP API. This can happen if `RabbitmqCluster`
56+
object defines a default user and password, for example:
57+
58+
<pre class="lang-yaml">
59+
apiVersion: rabbitmq.com/v1beta1
60+
kind: RabbitmqCluster
61+
metadata:
62+
name: custom-configuration
63+
spec:
64+
replicas: 1
65+
rabbitmq:
66+
additionalConfig: |
67+
default_user = some-user
68+
default_pass = some-pass
69+
</pre>
70+
71+
The above will result in incorrect credentials generated in the default user `Secret`. Attempting to target a `RabbitmqCluster` with a Topology
72+
object will result in an error. For example, the following manifest:
73+
74+
<pre class="lang-yaml">
75+
apiVersion: rabbitmq.com/v1beta1
76+
kind: Queue
77+
metadata:
78+
name: my-queue
79+
spec:
80+
name: qq # name of the queue
81+
type: quorum
82+
durable: true
83+
rabbitmqClusterReference:
84+
name: custom-configuration
85+
</pre>
86+
87+
The error observed in Topology Operator logs will have the message:
88+
89+
<pre>
90+
Error: API responded with a 401 Unauthorized
91+
</pre>
92+
93+
#### Workaround
94+
95+
Update the default credentials `Secret` with the username and password used in `default_user` and `default_pass`.
96+

0 commit comments

Comments
 (0)