<p>I have installed RabbitMQ to my Kubernetes Cluster via Google Cloud Platform's marketplace.</p>

<p>I can connect to it fine in my other applications hosted in the Kubernetes Cluster, I can create queues and setup consumers from them without any problems too.</p>

<p>I can temporarily port forward port 15672 so that I can access the management user interface from my machine. I can login fine and I get a list of queues and exchanges when visiting their pages. But as soon as I select a queue or an exchange to load that specific item, I get a 404 response and the following message. I get them same when trying to add a new queue.</p>

<pre><code>Not found
The object you clicked on was not found; it may have been deleted on the server.
</code></pre>

<p>They definitely exist, because when I go back to the listing page, they're there. It's really frustrating as it would be nice to test my microservices by simply publishing a message to a queue using RabbitMQ management, but I'm currently blocked from doing so!</p>

<p>Any help would be appreciated, thanks!</p>

<p><strong>Edit</strong><br />
A screenshot provided for clarity (after clicking the queue in the list):
<a href="https://i.stack.imgur.com/nVww2.png" rel="noreferrer"><img src="https://i.stack.imgur.com/nVww2.png" alt="rabbitmq admin"></a></p>

<p>If I try to add a new queue, I don't get that message, instead I get a 405.</p>

<p>This is because the default virtual-host is '/'. RabbitMQ admin uses this in the URL when you access the exchanges/queues pages. URL encoded it becomes '%2F'. However, the Ingress Controller (in my case nginx) converts that back to '/' so the admin app can't find that URL (hence the 404).</p>
<p>The work-around I came up with was to change the <strong>default_vhost</strong> setting in rabbitmq to something without '/' in it (e.g. 'vhost').</p>
<p>In the bitnami rabbitmq <a href="https://github.com/bitnami/charts/tree/master/bitnami/rabbitmq" rel="nofollow noreferrer">Helm chart</a> I'm using, this is configured using:</p>
<pre><code>rabbitmq:
  extraConfiguration: |-
    default_vhost = vhost
</code></pre>
<p>You do have to update your clients to explicitly specify this new virtual-host though as they generally default to using '/'. In Spring Boot this is as simple as adding:</p>
<pre><code>spring:
  rabbitmq:
    virtual-host: vhost
</code></pre>
